From da3cc6c0a0a09df780e6479389165f1283424be5 Mon Sep 17 00:00:00 2001 From: Romain l'Ourson Date: Mon, 14 Aug 2023 05:35:42 +0200 Subject: [PATCH 001/226] fix: typo (#9102) --- documentation/docs/05-misc/03-typescript.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/documentation/docs/05-misc/03-typescript.md b/documentation/docs/05-misc/03-typescript.md index f525810cc6da..32580ca6440f 100644 --- a/documentation/docs/05-misc/03-typescript.md +++ b/documentation/docs/05-misc/03-typescript.md @@ -140,7 +140,7 @@ declare namespace svelteHTML { Then make sure that `d.ts` file is referenced in your `tsconfig.json`. If it reads something like `"include": ["src/**/*"]` and your `d.ts` file is inside `src`, it should work. You may need to reload for the changes to take effect. -Since Svelte version 4.2 / `svelte-check` version 3.5 / VS Code extension version 107.10.0 you can also declare the typings by augmenting the the `svelte/elements` module like this: +Since Svelte version 4.2 / `svelte-check` version 3.5 / VS Code extension version 107.10.0 you can also declare the typings by augmenting the `svelte/elements` module like this: ```ts /// file: additional-svelte-typings.d.ts From d2ed2ca32918eab7da531a42021946f6149afdc4 Mon Sep 17 00:00:00 2001 From: Simon H <5968653+dummdidumm@users.noreply.github.com> Date: Tue, 15 Aug 2023 16:07:33 +0200 Subject: [PATCH 002/226] docs: note ambient module info (#9106) --- documentation/docs/05-misc/03-typescript.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/documentation/docs/05-misc/03-typescript.md b/documentation/docs/05-misc/03-typescript.md index 32580ca6440f..00bf2e826bcf 100644 --- a/documentation/docs/05-misc/03-typescript.md +++ b/documentation/docs/05-misc/03-typescript.md @@ -156,6 +156,8 @@ declare module 'svelte/elements' { 'veryexperimentalattribute'?: string; } } + +export {}; // ensure this is not an ambient module, else types will be overridden instead of augmented ``` ## Experimental advanced typings From 5a8c1d2cafe8217aa1a6408b024571d3d655a431 Mon Sep 17 00:00:00 2001 From: Ben McCann <322311+benmccann@users.noreply.github.com> Date: Fri, 18 Aug 2023 11:59:20 -0700 Subject: [PATCH 003/226] site: fix removal of tutorial from search engines (#9117) --- sites/svelte.dev/src/routes/tutorial/+layout.svelte | 5 +++++ sites/svelte.dev/static/robots.txt | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) create mode 100644 sites/svelte.dev/src/routes/tutorial/+layout.svelte diff --git a/sites/svelte.dev/src/routes/tutorial/+layout.svelte b/sites/svelte.dev/src/routes/tutorial/+layout.svelte new file mode 100644 index 000000000000..824d5fa141cd --- /dev/null +++ b/sites/svelte.dev/src/routes/tutorial/+layout.svelte @@ -0,0 +1,5 @@ + + + + + diff --git a/sites/svelte.dev/static/robots.txt b/sites/svelte.dev/static/robots.txt index a70a37514a54..eb0536286f30 100644 --- a/sites/svelte.dev/static/robots.txt +++ b/sites/svelte.dev/static/robots.txt @@ -1,2 +1,2 @@ User-agent: * -Disallow: /tutorial/* # new tutorial is at learn.svelte.dev +Disallow: From ba1e67844e268700406f81188c36d673d6339f35 Mon Sep 17 00:00:00 2001 From: gtmnayan <50981692+gtm-nayan@users.noreply.github.com> Date: Sun, 20 Aug 2023 16:19:32 +0545 Subject: [PATCH 004/226] fix: css sourcemap generation with unicode filenames (#9120) * fix: css sourcemap generation with unicode filenames * format --- .changeset/eighty-poems-deliver.md | 5 +++++ packages/svelte/src/compiler/utils/mapped_code.js | 13 ++++++++++++- 2 files changed, 17 insertions(+), 1 deletion(-) create mode 100644 .changeset/eighty-poems-deliver.md diff --git a/.changeset/eighty-poems-deliver.md b/.changeset/eighty-poems-deliver.md new file mode 100644 index 000000000000..a209b85bd4cf --- /dev/null +++ b/.changeset/eighty-poems-deliver.md @@ -0,0 +1,5 @@ +--- +'svelte': patch +--- + +fix: css sourcemap generation with unicode filenames diff --git a/packages/svelte/src/compiler/utils/mapped_code.js b/packages/svelte/src/compiler/utils/mapped_code.js index 0987b85adaeb..22645dd44b34 100644 --- a/packages/svelte/src/compiler/utils/mapped_code.js +++ b/packages/svelte/src/compiler/utils/mapped_code.js @@ -292,7 +292,18 @@ export function apply_preprocessor_sourcemap(filename, svelte_map, preprocessor_ toUrl: { enumerable: false, value: function toUrl() { - return 'data:application/json;charset=utf-8;base64,' + btoa(this.toString()); + let b64 = ''; + if (typeof window !== 'undefined' && window.btoa) { + // btoa doesn't support multi-byte characters + b64 = window.btoa(unescape(encodeURIComponent(this.toString()))); + } else if (typeof Buffer !== 'undefined') { + b64 = Buffer.from(this.toString(), 'utf8').toString('base64'); + } else { + throw new Error( + 'Unsupported environment: `window.btoa` or `Buffer` should be present to use toUrl.' + ); + } + return 'data:application/json;charset=utf-8;base64,' + b64; } } }); From d06cfe37239ca64b1a9f9178cfbb8eeaf12f7ffb Mon Sep 17 00:00:00 2001 From: gtmnayan <50981692+gtm-nayan@users.noreply.github.com> Date: Sun, 20 Aug 2023 19:02:40 +0545 Subject: [PATCH 005/226] chore: render head output in playground (#9123) --- packages/playground/start.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/playground/start.js b/packages/playground/start.js index af37a40e2607..ace479ac9f9a 100644 --- a/packages/playground/start.js +++ b/packages/playground/start.js @@ -69,11 +69,12 @@ const watcher = watch([ async generateBundle(_, bundle) { const result = bundle['entry-server.js']; const mod = (0, eval)(result.code); - const { html } = mod.render(); + const { html, head } = mod.render(); writeFileSync( 'dist/index.html', readFileSync('src/template.html', 'utf-8') + .replace('', head) .replace('', html) .replace('', svelte.VERSION) ); From 670200c78cba68f72a0157a552af6d87f36ae9d8 Mon Sep 17 00:00:00 2001 From: Ben McCann <322311+benmccann@users.noreply.github.com> Date: Mon, 21 Aug 2023 02:03:18 -0700 Subject: [PATCH 006/226] site: remove unused font files (#9119) --- .../src/routes/_components/Demo.svelte | 4 ---- .../fonts/fira-mono/fira-mono-latin-400.woff2 | Bin 16528 -> 0 bytes .../fonts/overpass/overpass-latin-100.woff2 | Bin 18836 -> 0 bytes .../fonts/overpass/overpass-latin-300.woff2 | Bin 19364 -> 0 bytes .../fonts/overpass/overpass-latin-400.woff2 | Bin 19800 -> 0 bytes .../fonts/overpass/overpass-latin-600.woff2 | Bin 19404 -> 0 bytes .../fonts/overpass/overpass-latin-700.woff2 | Bin 19924 -> 0 bytes .../static/fonts/roboto/roboto-latin-400.woff2 | Bin 15344 -> 0 bytes .../fonts/roboto/roboto-latin-400italic.woff2 | Bin 16944 -> 0 bytes .../static/fonts/roboto/roboto-latin-500.woff2 | Bin 15552 -> 0 bytes .../fonts/roboto/roboto-latin-500italic.woff2 | Bin 16940 -> 0 bytes 11 files changed, 4 deletions(-) delete mode 100644 sites/svelte.dev/static/fonts/fira-mono/fira-mono-latin-400.woff2 delete mode 100644 sites/svelte.dev/static/fonts/overpass/overpass-latin-100.woff2 delete mode 100644 sites/svelte.dev/static/fonts/overpass/overpass-latin-300.woff2 delete mode 100644 sites/svelte.dev/static/fonts/overpass/overpass-latin-400.woff2 delete mode 100644 sites/svelte.dev/static/fonts/overpass/overpass-latin-600.woff2 delete mode 100644 sites/svelte.dev/static/fonts/overpass/overpass-latin-700.woff2 delete mode 100644 sites/svelte.dev/static/fonts/roboto/roboto-latin-400.woff2 delete mode 100644 sites/svelte.dev/static/fonts/roboto/roboto-latin-400italic.woff2 delete mode 100644 sites/svelte.dev/static/fonts/roboto/roboto-latin-500.woff2 delete mode 100644 sites/svelte.dev/static/fonts/roboto/roboto-latin-500italic.woff2 diff --git a/sites/svelte.dev/src/routes/_components/Demo.svelte b/sites/svelte.dev/src/routes/_components/Demo.svelte index 3ddab56964c7..ecee643a0a0b 100644 --- a/sites/svelte.dev/src/routes/_components/Demo.svelte +++ b/sites/svelte.dev/src/routes/_components/Demo.svelte @@ -31,10 +31,6 @@ let selected = examples[0]; - - - -

build with ease

diff --git a/sites/svelte.dev/static/fonts/fira-mono/fira-mono-latin-400.woff2 b/sites/svelte.dev/static/fonts/fira-mono/fira-mono-latin-400.woff2 deleted file mode 100644 index e81b9f3c56ccc92bf6b0d80171fb29cdedcc6de3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16528 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�-Zv*!VM^Dh(ut$q})z1_s}tqbOj|%=5WJtiH{g+K2fABlZ0)5rJnh15UHec zni3A2BBYc`Iirqn+-q+M&IBtXPAS4 zmKEp@uddy0K_8mNHd>;RD$KokoR69$1aTC3*(spR`sK=I*n@>!4XU_0?%TpuV!S>R zEFnKHbO7SweK;LqAHC&>+pAO~Mxo^3m@gUiv1I@bnOoG(nttYQC|MyQ{c>^!Uf-BI zu?R!QU~o+phPP;WH6UzCTZu)y+X5(H^0#ls)JWhGDZl18%;* zhF#7_8WhF+>1P`JXh)s$?*9xcc%1nP6sx9gJ42!B-{^OS%${DA6En*%f%SQcb!c1H z4x;IiNq#u|jgw4gq%ub!a3X3ahR)@EL9;<$_M15(KYY2>IS!e~ zao_iyGXwfjnXYsHlk_7Gr8U;nRd&P$L4!{HJ>DZ3()qRhJaTwG=A_6|Z#N%<@Dz{O zQt|^fmxEPuxxWP5yL`H?VYHI>)X4dNjN#YvYtB^4M`S7+aTFFg2C_NjCLO(${{LtJ zUn;eNO0Y!7s+_BbFQOU!P{>uj|NQwpLx}O!R~F7UMP9#p`QrJrCs#Ol75kx{$P4*Z^fEdp%EP$3aW0FI;sjZuv97^L)0kSaZju<1d6Q(aGKp19>fvz_Z(v2G1RlsU6EWCIyA2OA z`uq_B4cCKUGBM#~j!zzp=TwzQ{ad|V^C(wiEK zCfLD`KIFz4Y?f9d=Ypwtuti>IM3~nOkgMst2=hrkQBUw-5{tQNsGaHJ^ji>D(u7Hu zt0d=`@Zw5s%N*mA+xp(Ww`TO5ExAgQ!mMz?28p~yH&+y~(yKo|iS0}H>f`zK`ubS3 z5*@DPZJ%BHQ+`YoM8oeKC zM8KA+`3NEbO$4ff{e~&DvACP~tfd-tP@kAVEO;cC%5*_SCE9n-gn6Y#IjL=k>6&nO z$tN(`B2b#TX9NK#DWm)=+AcHmPkf$&Jz|!;H_wB#lsQo0bjZ77f8NwDq>6sbIT)w|z6-5y;RZ;qP3a6uIae;}3-#sR0X!L9l`L zV%^TlS?HrIbD@E!hxM6%R-74P<#saIN(H#?X8tKHNaxSrk2EbBjtEyo+3Qf>)Tv39 z=%j{(Tzi>tWmr{J)$P2xHpb+;HvmIQd;amoM|j4`V_TQ5Ow5uC6}}tKNXEBcy-u@= z(4w|sjZ-f)s^Zmx#Ng|ORavatl}b@d{mW;E3tO3@O}zWA-mw1s>2~Hyqg7I_EAv&k zA{k$PoOv%w+{qQI)$EFw8@f?Gyl1R3-+X@g`PFCkf-7G~SSP3D;PNJ`D%^AMBkRp9 zoeGn9{^Gr#r%btyDAZZ%1q+YtbB5GOP#sofF#?l51UhW*-eP?H>G`J@pPpXFG<2i$ zm|5~C2G*O0 zMJ6SqDLBJWrVwOa%h(G}hH_P9JC`-+Sf41(KS3aQ$YQ84rW)2da08&%Ft$+cyrd~$ zKWW8|ON_WO9h8n$A5b1jK{MC^W^yTV#hi0tl1-L`u;IyqPhX#08=XayQ>Q-30dEPA z_RiJs%>B;S@AN)2$qsOk-CGR9KRdfhgxw?^f{^y2kW=e{`O| z3R0ki9J{_uhsIVRm?K#x2Xh(^f`48>mHN(idA3v<*(Z$$A;lNiHpGDGEN}o-O(pqN z<3ZT(UW(p0xozB(Y&_H~v;N)#K3UB)l11)0C?q+SN}|r_v(3zZXB!|`%dreG$d%6Rk@wgQnB(@0tcJ)nxPTskllMDF#C z$c&K5lexgzQosMGTL>hJTO_XHs8GMgQ3fO?5NLg72#~&$Y5uQzvJmE;j(k%H-?Ioy^@5;|KF~Xeh}k zXSUZ!+2hw{CTu>*gt-wL_0ZaxM=rB{U|f-XEISyp1Beh6+@>Bt;iYkpD&(=bB3@y% zvbuzcfU@vy)JigeqFCo06zaW|dQueLlF%Dkbh}8F=P_~Q%03aZ=$OmNoG4jTIX}PA zVGd86l5jwqF-RNiYWV1g})wWvp#&rW1oB4cC=^<2!U8j$Qt_V|P+lq=&KGfW>W7A3J zRY?l4)b4J!u{vdEo|UaG^)UOY&e*A{qVC009juvf=j*K*ftrg<4m$PK0Vx~yzzn(__}Kx}O+0~y|u23J8^S6BBu4gq->=f8dc zF=JAMssY#8AP>45CE+eD#()3Qur@AL0`@Pzab2dZ=s+026xy4nTrpgO7q`9@JZfT$M!u=l#3LUC6e{DCa zx|KAklERc#9@%AAkuG!cF-s<@tgXgY4y1IT)&jIEQZ;#-|559&j7h>St|&LU2-W!0 z5P$X`@&{`Ctfnc{n1WTTJXD3KLI!)~HSLm+TuvXJpO95oeRaOVbDkfMGdqp_DcVvYkAaEm$D+&3WK!-p4uR%Rcn`-WNyo#3xK>%Z2%fpGI=9!>crBzxNYU) zE6rUs80j8&?#s(`1_J_k-10cHA(UG!LNk+PhzzLrXa7l%FZ5ZRnR>MZrU=}M6<0!q0ig^~F1V8Z zG>S{3#%x^Mp;znVkD<@`YMECIHX4=XC3(Wn-P!5o2fppiJ77YiHzq}8q^Ow4`T^Fy zM#yJ&YH@`xjyu3z!k-6XwgPv!Q^%Wb3F#A-dg)2Z3%k(tD$uWxbeH!50{oIODga22--nJrlFn@lno}{n}&00)0 zMx7e9#?c(6@kx^|n`XGlG~HDhNz>LaO_>G_G=Dbs=Be6o6`SA}_vo_a zj?rS6vG&}aYSn29yk(8?8gj?T;E|@k+y(qv>!`N^&+)0Ox9Q?BR-I-|v~58F%{aYe zwPD5^r#TSG-jg6ZbJKZbNsP&Aeap4T=jAolh=sK%=1FBi1CM5P{%d%R&}gg+^Wr3@4Iho zNth=@PNN14^5S{w6N)7K;&8$UcS#!|-2p|HnT7R^THf~ooB{<27Q)3XRG4rPTG2#` z5-mooIPnrBN|G!^Di5zT>3lNoc zSmdtvW5fj8P(c(!>QuYcv|L*lsa;`60v84^o+cJCnSPmLHqu1ZW! zbNNZ-`2jqxlA5kpO=sGNBC6a2tnKIWqrs+MvzI22tZ%zC$vz0JjP0Gx%6PW%5;bAZ z59+~4J{d6*WT%37B#03sI}#*QL5u|P=o`@C1w7i__cWpvhlp;?{Sh}$gK_nvIHe?w zZh96OaveWgmMRlD-3}R z8$Ylo(A#%8iQcSIOcUJy0-`7pwau6vsA1y(jbW`>_W%EqGWOecvK_W=@)%cGDeSpkqrgb6!EP(CV-6siap`}=?2SzkBFs&0BojS8La448TL z;4j(zvx0$-wHY>^{jEV=sbu>AEn>?+=O;>0rRm#o?>HuGy}Dj1N(iYLWy6L5eQ-$j z-F*aYP&z8=6lI>eYUHs0|LLsmed&J%kOeL%OobG8lkFCGvL|y?Nmi{UFYCDDs@25V zK;OuY0_SG<08F5o^QAfE3kwnh1@I3==ylt+fu_$}d02~MIyI%{F3gp>X4Hh-BM&fU zR5Oa{A%`CNjROEmRCg+`VuHiGVy5WqlsdJl6rYr$U$#FlLkeIAxE&Ilxj&&a7<}Ko z>~GSRkq~E4`VICFZl~Z<%R$(!+?w*A|NocHzU_PUBqQSv)WPQ;w}0gHr(@g#pUG(( z;%b)CeXmqi?R4NHdLZ&ga{X9`JUNy)5EiXiAHl4X%R;yW1xh=2n?;BekT zyzL#-yM9JUC^t8P`rb1Hk7QOLz)Ps0`wq;n1p3zbUAG4s4?sKl7wqQcowr9AKmZ6O zHh}^JmKy~c7X(<_R=YVCSYVYccKXaA-}u(g{`6-Y#GT}jLJK?MC}WK)?OBx5bD~*hWKJ*2}SAOP04bGP~m@g4s^VhB6C5lrJx_!iwIDRX3V-^$kE#75a z(kv8093%*NFf0$456<|o(??HyoNoDKhEI#jf414@$ropQ`4TyZ->o5v`rKWJ|Ks-f z6F26=zv#`=bF;^1KeU@4BNFvwAy%>2lI&IdmAhWXvhHxn;;k@#1< zg>vhB*W-sDgUo)XL8e}UsDG*?HYzq|j+@%mIcz_^=99kGRix8wSW2H52 zLtT@(EyKBF%x#6&xKN9v@V*p?8>t}b);7B8Pr`$|n;oE{30Op!yg1X>SJZ?7D60%MycG8OVkx0|m@Q{0o?)?=wMMBx-uQ-mYNmisx?_Ta zx)9wYXg^dnNj!_Ca7#}V&HNOysrjAUOEF9YW>y8MwD|Zs6*EbK3sDyo%p)pdnAv%w zO7~(}l$;Y#+pw0AgIH~>%_&k)gXXw0%I6ijDVGURwpiTMDl3ch(s@6{T5Q}D2jOcm zI>)X%fLgvPRc`4Uku&|155+=b@o4{DJu^bzcH%NsSa>0T9I@7v?iwz|FCZT@&wRdB zCRomBGBJnl!U@Kik4Y4I=k!LpgK&vAr9s1xfxs&?P{tWxtN|@TcMFQ-Q zbk;UtgKUu5R4m1q&yZqb7PAV4@wnye4nP2Cpj|?&Ns8(qT5tAUi#TxS7J?OTKrjVJ z%@aVe)K%7)I*x8WbuGve1^~Z{oNUMCQXFiPRA>7T%OjAR9+O+%klWt7a0k_=S0<7& z)h9D4nUj`znJWvjazuIArXWj-SC*CZ6PYqomK7D5smgXW*`Y2wHDs5j?A4Op+OkJS z_8Jhr!bwCt!jUA;bkuS)9Bs9kj`x8OCqs^K%9TT$YLf_OUpc}#c8GF;h^>^!gd_A6 zYzWS~LR@X-jqkYuYo=~J!u$;VihMLdUTWdY^gqLiWVwMLXPP2+<@p-%1R|M@L>2`k z&UGg4-*jdg03Zlp?$4N`<=EvpIV3pM`-`P>NrA(qn#WwEJf;(8U%h>ERUC3YK)6Og z62Eg90bCk;Wn`Uw=Vzs5Gl6>rd2J}DfkrossP*4o!=~8){ydd28RYH#RD#Sq84=^P(Y8SS@8Ym5(i^uuP%-j*2kAez)v`t zreeAlh-Ii1)cO#jexE$Ru-lZho1^iz@5C~^O%!;wZAqs1;Y3)(rkI%klJ7#FEnKXI z$~t<8klVOQGVA+_uFKO~2E~B}gVBI7m7%2ee=|bftw<$#24E^RU%pi^jm35~N(J!- z#$NeNtWh`qj;Wx}Q3g=2r0x}kYE#iQO*jgoN=UgNohd`e2G4OEm94-kb9p{g-NV^} z?EllGx{f(|mN=L=?(KJG-LIZg+q$K*bMNP0?sKd-c5LkNW&F)=aD_=K^HDV$RwP)fI|Djv^7O`D+WW4zvpiHVcnejDC-N4b9=A3TL%&=m?f z!iBD)($QsQu$xAOCgcp99}*P0BCyoWqnjos zf&L68THEa_E@1-yUoiHf)Z~t#FgtnlONY@nW-~Zo$`>cg;-HJL$(?yDgqen_T@Y>v zgp$P(GJ>E&H3~BN2s+RZPVl3Q5Qi8d5HZ_kl2Vuq;$ap+jX{=i+P+~)+LUk_UB|Xf2S|JOL;^WgD7>ktYj4iJ}l%9Zz^s?DysjXO@G?rHs zJ~5QZW{}#ZGsBSr2!Tc3jMHbCBo&5j(kZ&6@lTlal-@o3%x)X(=&1vz;u1^e%#1B+ z)pdQ#`ItJVF@=VzU;wuDT5R1EDqIf&0h(3@p}bL$YL8&PL_FzHBy;WjlFg zKY8sSaRw9lgkwg(4H~0m_Y6Ef`FMf-E{NfKJKlr13 zaUwtX6H^Q1Ct3rOV}F!`kP;?`EV<&ftXr&ei+w?6%#`SR?>M0!VP7SYfw>CmK9k|Hqg<8mo_W9Q*PkA;-9xeA8+v^fkiwVYxc2-CgeBDEOY~) za*NP;VM=88PX7}3(el#7ObHb3)T#HpkD&4vB?~=pVHLr9gzt5o>CqRZik9Taj&a)7 zoad*;6Ce7>$3F3?&wTC+Um~0mOyi7R_}VwV^_}ni;733C8Q)@Z2_T+#K>((+pUxP>I zkGH>RHpSG_eY@{&VMfT%jhK-%TE@6>?V*YJt!ZHA!VaggXw(QAkq+kOck7dn2iGk7 z@82DC>z_T_Y(!mQcV<%N$`q|rdr_D7~|me7}tU~67zyL6Z1dfEpE*? zG||w|-)s6MmIf;w_WwtooWHG#^*eWidG#+`$bnep2MRD%=18kNMdSY*!h&-mV`D9` z7BMDW4-$ajDiY8r^NJLhf)AqE$No;-b1)e&vbW?^Pd|Ap)}#e+>9O~EI)>HUrN*wt zU6C<}C>rQ+U_O1y-H9vpx<($VpOm>#~kQP0_@R715;(AZ^2d>tUfQa_V-cts8v zfV{>jDDc?RlVc=jtW~m9%qq;9G$ojV>AsIr0W$^s0@VR4Dre(I1G^6 z^{T{iP5vz|Z=QxmQBlA<&lGbd~l}gbr-iNT)4_`I|a3mG(@dp5~oz$#ynWg;mK;dQUS+tDIG2f0h{ z@~pG)sA6+lE2_xw6&3v|5fqRp>XJAVlz5~`0t!hY3QIN=ktEbD$>}r%@&y@X@7xP& zk`L!_AMKfjnuX)9X}0E;FhI_D%4JATQ!2)@dtLAQvmbM{LM8K0gS9Q*e!8gf?@Hk+z5_J%ERKEvv|uw zoDKXF%iqp0bG$bSJ=0^HDJX#5`g!<@UZ+B-%-2GE_B-lIP@ zr|QvYoePl_8_kEl>Zv)Nc(`BD*e~-)$%YR$au#nuXc^>LvtZF!1OdB5 zrW$XTpn>|=DGnGfv((aXSP^*qoEX_G2mt=+MH^W+);eNVr-vreXcQ3WlW*=RW~ESs zP&vj^KEHDtJ?62tQgT&pt(m@grpzEOVOCk2-PY?DG3Rjpm@myY%*`WX zQQ1Q*fewcfC{_y`mx2i>h zE8}56s=^V~YJuxgP(zkr+>}7ATHr{EXio{tNe2g{i{+$;1JZ}1G>}L`327wRJ4TkF zJTa++=^PzX?DCn!=>dD%{HLFGv~WU}PSC1dCPln#&3s>KT3waPSDTEus^;OZh0E1YVt6A zHlrq%cCNwi0xAeHQ+NTuF966tATJPT0lJ3wOB+DrU?6Dm-6sSbVy72OWe)XL2z7E6 z2PbVUVQpr5YF1KDj7nr0PKvG>v(Dfs8w!~052%{@s~2;7CDz(`#ui|un7%D(l?t9J zbTd^C6Nyf&Z~u8M0%!OvP|-zpJj!Rh?rOgrGOo6&Y>nx+Y~ zV(=`SKVk%T6wf>I8k{rp+Rs4#p@af6Co=oVKg6LV6BgpU31)~E9X%{cC_-k^tGzpx z%PiBHJ>i%QN+?3^#>JfZWaS+r5lSI5V)Q&?nMXxHZc#$vcADgZ$b-Z@D$Qmy)Cmuq z2%gn57fO^g(BBhI3bX44*ju^ufXBr1$GkoZ*${Uh)PmKMks2V>AAe(RQ=lOy8C9yA zN8w19Y(chVp}45j^`GzfRIsegve3k4Llw2XmIc+8faoyiu^Sc*gSg2nqeCWfgAqO2 z3~ZG_hDu++j6MoVS!RPh{x0EDlap<(Yp;(#ztF!fAs z!KK9JSA%mxAL+wrI-L0gW9Map5R!8N2sTR2SR6m=Bb0=c6bOD(4$%m;30nhkW2X)X zxr`#m`fjS+FtmkqazBO`=O_k>a+N@h8{5LzAI1b z3UPPXJQcJ{ej$lruo1g}G=zV@v)y1Y)bGHpJyV-EjQAN3^5AEmvvII(X;3vy{Zz~S zU%=!4^x~~n@NAXQ4|$UqyVfGB#O!Dj}+Hx+xTf!sht zOyV?#=1F9ih=-87o_2<{3rmJyg`o+9o6%%U6xyBHGp|imlZix5c91e;5v`XBJQvO? zh8*(FO=pX=%3VP(Do>Rd$$IaiG6s5>+U`GVF}Q)CZ1^gkl3|0{y&=dkCZrjbqHIaC z7R|li+I*%k)YIINlwDTyvvy^HJ#ODc=2^)wK@weEo2qJ8ZcHcjx$~E=PrG_^hK??D zQ1ppiUHjK(LE!(#2a|=|!+y$eJ|od$lI;{;G{bW4@e6`D<9me&>=7}%+i>Qg8g(Qq zp0e)u4@pZ@6(D|K(c8|#XwA0cLNB;z5iapqgHG1F}X{W1FtO_Aq7-9eL(*3d}DE>in-N{_Bx zB2e&I+lFcO#{sgF^A{C8SVl*dU`dlYCgFenaBc)!D97tWUcFi^`0i#Kie_KitjGcr z2!i{dQKM@@s&v{}E`}m>MAsD)CC2L54dX(Uhnp4Njxe6Ef(Se9Yl+Z(958nhN%uw8 z6h0)GT*bm8Kd$$S81vo+pcd6uEw8F=EbEonJ52rl+}A@jkC#2J>>AUBZFmcS?$V$>6aF&s0-xRS4HOd zMLbk&4$fp;YDmj%(J>ogmx3X~Nb2ks(HgXkHdw4QVlD_DJlZit-j&?*0lvq<2C5?` zI){O(0MjJ!7F5t^CUC>&w`kPQ^m=aJ(KH7|4W1DShN>>EohD}|FfpCaDWsu~5{ewAkn}ju;$cx<)%7!x=poK166$?Imp5wIcX}QT@RFsK zEo50JSt3*5oks0?cS*4iS!rzDxngJ|GR!8rQFOu@{?xgD_nynxB2a5-Or0)~1){_U zbtk2^1s#jCF_cf)%|mb$$k{);r@esL8lJHYmc`+X3fjLJv;!A!zIn&U{N_gd5c$EfK+ zUbt;1CO>J7hITYBO{B9g*(|!EAg7QR#uWO(Iv;Y=dPEYPS8G%CQoWTzMA%xbfvEQE zqyfaVd#g-Db92GTm%ZDyZa{8eCP6Rk0HyyJwJnG*`n!dfWs!oWc!p}t3d};W1+af$ z|HK#C3#UV5|6;&YOD1K(Qi=E$!k3uM>0|Ly#BdqM_}=VI{CoHjWM_y)cOI0!eq0~# zn-CdMiP-;5Wk4CGs=}qIv|z1Z=b$&j=`4yAd5=K_GF@xyM?FQi_C(50y8X!GjfLXn zMV?_Lr#&!Y=}3ww2ktEk>#g)ITJp&ch5A|gwD=#P+`~7sKyhx^q51=F=u?@uR^Txk z^bf6X4!0<|R%2EFzG}eUaA&^Nllg)sb(JASe3DznQ6EsHHzlMhD6+{b`65e;6}RY- zfDx~`!G)2A(h`1_6e!ORt|i$1gkAwAPuLf`@3c~S;fRufU>Q|130T&uqFa>K16t!) z^JV=?d>V>IWDf%ctmKXU_SxKkhZ%|W@IwN`JvzDfUl`l9vva(T`35}!uBr@V)y#$IMa zOeoDmE10mwL~uTeupeSk~L~UnqT?ohVmsjmkzRcG%1xv z1=w7g?4J>=N;S=&QkFka_F9icVRjm6D1wpzl<5>;kx9mZ%m8`gmuG$Q&{Dd#d%%Vi zU+Z9_*HgsAq~b4p5?PK@X{8k93C1oeDRK?1K&Q~lib&+q#1{j5bhfI<7SfnPfg zB+2HVL%$BZga&~hp;_-MpQcIVWjGyHCoAce*fy$z-1r1p1rE-OGB!euF-ADA3YQ?O z#v?&@#J1WTAM330>}l}ydFA=DV6Jj0?j13GK?*iAIc=28V_25O6@`LNK}E!@6N2Ow5>{PeCzOXO#XDI_E4^VCr2t)(Q3NpQ zOo*3WHmjUVq3#rQkXll$)X7XF3oVOU*fZ`AzC35BJ-tA$R?JOpd@%j4$>wRTEymrF zeI%uQZ1?Wa-*n6eah$t6qeupNouA}sY3iohp{80jonH7& zD_AWnN~1J`5~ctK8(>htvCJ zH*{|LCInB0i%Jz>X(^zvmq1Eu32lYz9Lw7D5ls7ic26w&7%8<$qjROPJ8n(NZyg1e zZNYvahcKc z3O@m&Vo(PM_8e%P1i} z4~|UijwiF5ZT^j2t*dtKU)jCo<3-j5Xj!@A2}@=XaPjz zKNDO3a$u$yUA24%hT)y~Uz5wLWebpuV`@8O@;0`=zP;RFmJ8a~4F7#pt&=NwYd+tO z7FDA(%|dx~dauGI*s<7CX>|zyzHtzw^7uA3-Hvhd3^@y2R+W!qzcbXRWOyfzSmqW$ zZhQyGiYcd-LSPeF_0Tj}s5v1SsUOuB(mnhRFc$CM_J1ci|45BLEu z$ucmng!JygK-22r#{ElYmmtUf|Mn8We@t|h0Jy{O!yLi|!tLkhp2r_fAU=dAg?Ha% zj}QnW*$>``GVKZowLFU+2~R4(m^Y^xu`u>a)V3C}v=-aF0^2REeV879wciM=>^ysd zn`a=*bJ+`j{Y65knGE>9x7}u_@9`hOf9*gNCIKI`=#Ho5k^B7xeOq0@xBShwEKlQ) z(4aVq3^Hz@iugANHoF@P^9QijK5I)s;rjd?{LZ5Ytmd*nz4j=JjI#6^N@SRF8&3df z<>CShqDbENyEG3EkRg9rIZ`cp>d_JL?F4bCDa-NC%GZ4VEJH&t>GCjSon3I(ao`Mq z2T)I=55b47nXl!abt%N(C)9f*1?NbV`w2sln%^ey$CgZ}%}-Gf<<;`<*-O741dh0# zs5VaIuK)L-#d2`tzr@KQ`VPAKtoN`H8JM+ZmgG2!(Pst?KKp|DXa^@@epH2sgDx zBgXbl5Z>f!?Q*2m?o@iA;%Qh(Fcnk2jR3ySq$64jKJNv}t+q!9Aa!ngW&(2@_dtB- z?+TotM4@s^3vYXXTmTn!FWPKh{s2qcE5%AnHH>>Gcbm;7vF(R4ZY+>2;1i4FM?;lE z{I!e^Msu8Ye_tA$k4O~Uxk8=*^@k(xl|3c#E(3{VaK(3)!0+!H{7~H_e-WE#VY}8O3Od&_ncL*;4Aw?C zU(Keh6Q|=pNg?GIsHD{O;Sh;*} zv0Po^(rHUPYE`jEt1EUHx$LdNP4Z3Yf<180PT@}Z@;J8Vb*4DL!$_#yvF3O8>9knndASP1s3~)!&?pIQE0RC=$=0ISSFSvN4E(w|WNcs9 z*xrym`xY+Z>a31NuiM#L>?78{z`(GCfgpOON@kAIFL`4Y>w#pf1HfQmlM0f%R5Bin z7Ch9~^+qzGEd5Pxii{cid0y&&jM8v+&TbMha{H-`(;MGw$-VHdM@fHM>aY7A_5-(Z zS*d7o)A%^qq~CpoFVK|ct6#dumE~jh@gLV>4q+2_C$6;xR*2Lh!nG61N=JWXxl&P4 z-e2Kp0QHKTTrQc^LCInHT8EXxr-9S?r`}oMRx5BD$R|$V{z-rPIgfzOO6n#;Xeeu3 z#cfr~`D_mOY}w(>H#oY(2O7v84^AV?-iXIG;4+vA_*d9e5YO9cIppX zliLU)E#wCztGCu2*os@vdaTWU!@L9G&%pWimE!R7=JB%6Jchm5`O;*VNX95~i!;P= z88B|jgH2zNW~p!c#PJtA)T6G{_;>MfrI@6h#{estAm!5Wl$TwK36M@Q@+A6oVa6ORxLpq(-GC?(V7-5Dtc3q|$@fJho5x z$@sjnL#}Z`oUNkw>l-0$z^vW zCbi^Pob@#pDgpFY5EQfoMFN+g^Vc?z`AS%(F`Ly&*Ss#NcWMQ_8&y-uV-kKd1%Fl7 z+PaQSwYbnF+ptwA)x;t!fg}xL2wp})-0omvL)jfMzb}S^2@QciU~u=fMW0L|jglOS zeLM|8PA=kxB*G_)E^#wxa%njrrDb&f|LFq7!_m&{P5di4>CZ&WpUl6@C!Qn!S@K11 znCJwee>*Hc96|tmU(WP=vHY*6Yf4thZFX|1EEy2wl?Xj)onV4W4pri$!&!qK7@4`% zs8Z8S@|+qnmH0;Ca}bvAzGL4hxw1L6Pgxr^Q}`#Hy^z})6>S*-b@sxOxdh50=*m7# zk>9x)!k#&p5_g0|VBjMj_G!xR?_aK01dCy5BLAZd+$!EW%}xGWi%&V|1}1J!LJQw9 z_e=;hMa0ih!3>U`86hXbJKG;f;fWE_LgA^(Q=I%h6M|1>(t0YI7?UEN34w#empMUo z*60{x&-nOA)M#9DEOu;Ubo{pv14>$nR1QHe_o#J(9FF?N<${LcKct<~YL7Sc-re(G zh>8?bVtJKuJ!$x-;k$q+V$}js&T}au=jq z1j`TP$jCB!{&yi8&60dSDyGaDm zB&1>5mnr?gzd)a9?X48@kmoPz7S#?4F?6nE8lE zA*@}@mKw|p3L6m{c>Dc(GV1{LI55! z#j?0R0LM1cNSNocRm7s)T04dIes`z1hF{ZLWLz$ZctMzN?G*Y2{$4Sp(WwC|mpz&~ z+;1i~D_g3!m{Vo?G!XBkpyQ0pmjf<`FAeA%BgBShG!tvSL^B7niV06SQ+YkJU{z|c z*r?*@PZQ+rW!n8g3xU~hNga+E`nXxG^l8-jd_>LVB%a7|#3HjlZ<=LGNl2%pW8WhU zsC4Bco7af)cP)r*RE`j0iRn?&5o%oH{IyM`3fjIh%SQb1(5_eUl$5j!U8B*6*{vwy zD4It-f|7C;cpJoSUmRI>@aS%y%P@}&m8$Z4RzzqqUuqEYG=$F#r_fbg<6Q$QD9b|wDI&V# zE~@S1E<{x|)fQ}ncVGmg(dvJ0Q-gnsY}OA`W8j(Kg>j_}@{oi=I~W9%5lF?K0pw0m z=rO<(@MQGkikA=5@&hZ0WEjyXawM~yZeh&yD_yeE@Hvo@vU-G%Tm5+ zH}r+1<4^!-2jdjmF7h0XcR?CbpeKri3n3g3iXD(R1_-D?kMW8v+@ITn+bJ7i+~Si6 z?HIww9xGZFOvqJaF;u*r8Az4cP=N?~C8?GB4&ss%t!$4T=U{6jgp4-|ki-C&=|)j) zbPK>pZNe+AP9u{{fE|D)^6)Np1=rBs?l+=`OxiU%hgIaY><|#Dj7aky^2G$B?pCI_ zXeGyGS?9oQcx84PDv^Ys{RO&+5+)cV%{Qi=+t@Z7AWYyw+1Dn5w{v2?!43*<>p~iL zWkC@7nAB)0O|y%wBxjV=UxaH{+5f7Q9S`9V3@X%7dPZ*gEJ8f>r+^lw%oSrn$uMJB zc_WE5vITG`+Fa;K%lDm{aA60BoA{`mG}3gcE#hEf(3%e(dI@0Tfhh!siU0y1@pU<~ zQ=;ovl>H(7*+);J<;Z-6Wy2Y#&h>QMgzKzr@Q1iAG{TdEt_$MEwf*^qg|%ZKkb8Vl+8U!G-@kI9O3<26#> z+YqLq4OEtg_|pgj3SK&1%AA^g%Nt$8S{#4f#u_5R^Y3bbWKGUp_#*eSP@# z@zGzoU>hhiM%whWm>ij@+v^E5 z?4Uj^vO}-+3_U8>qYNr=T6VR##O*P=u(GFUYApd_zdh6n7p6E+xbzv9;6}4%i<1V^ z_hyS!&$2xa)$kx1$%q^T)I=Rg!Gt;aBitG8jc)_g1W8n(ozH97p2*ksm1-2xw7UdT ztu!#a$?UvR1<&;M>+r}ZF#;gPpn!RX=>^#kfsxyU2G!H?UVzwHaqmrX^rS8l<}fSi z%bpeb1!0QpT=-lKZ&QY`I7o%`GaO20BZNe1NY2%|!%<7C zxn*mcxGnDVAgcFykyIOnYFtaCq6_2=DX3A-O!H}0R*nZ~&>_bRkMhQTgUf3xdw;1# zXCCuqNOgw8L9VsPm8Sz6UX79^F?L7@O$NwE@*AUG9CQqwF~Owm>QkbyRKeAyR6>ao z%$ulDf^7}%!-rPMb>(cO>=@kUr6m%S%CKRAS`(S9PDeK+U`K$EdTvC0J`GOfgHnY; zg#gsnWI@X6K!-WEO;CJmZA(LRqhUfF>s*UGYcg_%Ku$LC_61kMi#ZgtL=rs^c zsa`qcyx0Z&4jKp`ypMX?_eAnH^pm;tD>+(nkgf84RDeGL45DSyT{rv!rG$h+eZtJZ z_pns@f72WI?LSOH_lTro@Zt(e59?qEXN-*DUaZ2IH!Ty$*E8M$?1JfR2bN&jwq3JR z!-gkzOfHO>G$U0zn<7U@Gb3r$-E542QLY!wewJ7(ln&n6;Mme?(B3(gVNnjv z)-|zZoHv=Y2}QN@OE{>v-*hgStFErNVC7wHjv>`gIn8M&C}l=aI%gbe8r_^;M9{fs z{T$}2)*_isC?-sDXd%Yz0Qa`F&lx@FdE0uvO$O$hDutf!SJGn)V*E~2NGv8994)(n z>J_oEwYs$nfR$m9N031#U5CNnm6k-AErBD4<4bq&hSjVDQcJt6JeKaA*-n~^S}n=_ zBRV8Xfpjp9f`6@w&NNB~y}liiDq@}uxGr`%x{DI_r* zl_Bgr5x{egU~1@o^%}OCq*N6^+v0IugK5*Tm0ODoM&(_gd++t_~_~jsN15&yy0kLlSTO5 zH!YbUbEBUj;V>ToGY}u)LV`}PV*@rz5_1+Fs2{JpflAn)b@G59jSKZ+2n@fWXnoP{ zB8AB#^YGnm;bpJ!BmiD4DLY6a(Ci|(FMfJ0u~MgK!ZisM?WT{jg(TKCvsARP-D>e$ zbWXhX7eFheQ(L`nvd0y1>=SnT^JC`0^K3 z??#Oz0`zBzL@$8&%_1`esmu9@fBKWr1qaCuL!CN8h~zP%Gfk3>fPo|D$U{wXBfM1t zk7V3B`ggScyiXsMg(Nc+IwO*r!7JNL2MPCXti|S=I|Y2A@WWZ2OyDr!9pkqIcfKgx zaE4R~r+wzc*A6Jj1;+li>)IVPahis8wFDgrqSf%98=LE|qAD_-CK(iM5XcY2=md^W zMmYBHOYxULtqcCE$Ygdt#e?X9lQz`k`)ipfvK0dc;W>uIekl!I4A{fq{p=Zf;B}Z5 zm|*PPvHCWIqAf$|VA()H_C70;%td7ZMlo2D!wrZR5F4~lC(#z(Yu`U8-@~W>>AOH; zAV3hKpqRj0%MNJ2%ZE8ps(sfhwv2EOGLv?dIz@z|29AE4EY3Eyg5pDIu|e;0)Zb$ zu!l@#n}5UpO8&WVEGSFI&SZu1q1Z%)A_T7;@AT-Ni_rdkakcNX{@Z^5{{FnF$=T9v z5bl{_RIVPmfSo}^-`jRV@2T1;@M84o6tED%1fI_2_Reu$9WXZY_Cl$@!gJL%K5tPeX}A1;VC|=qtZYfMLx+F$i*%y zJS(Xdv5|pXJRwWXsX5P3yn`dU4#8`AhE0q1^uI~{j=q*cSv(?JT31PR`k`VuQt>uk z*2M{IN|eNy3Q<Yk8jI>G9$I?)Lg>ykMGnGBeU3 zzXQKQ!l8Z!8Qi`YUPM-!ykpDN!X~aaF>tm&hqE4~a2}P$N@47b6?K;J`%Mse#wki0 zQQN&cMK0PLg(QOfLt+p2G6R7#VwcDo4|grDmY|mO6!PiD4VnCNsy8K|TENAnF{$^& z5^#L@A=64vKC|=0HZGMQ8$K6GL@MJHlc$@wWF*eHyCVeRpoWWRR<0R@%AzW>zXoZq zRQ7j9Xd{r`un<9vUWR$LQ&dbhE``b)FboK(3N9qm7&BKh_{TodFj(Uu8GsuGA?jdZ z$f+eMAE$zVz>l+J9@EBIFYmwIrcY!7Fi;mHjyjM)!b0p&B{tN=T>a22Iw>M6$US<` z_O>7)P@!o*@x5nv+|a{|vxT;XDW;T!pHAO)4Gxsxd~E+rs7FH{Jt~&z%;t9%joLVX zk#zHdi6m!BteW2*8ow;3{g&(fy|YXZpFVb&+ZD@!qAm?oSli@WRGL|y zXq9#WuyL&C{VBT12HA1j%047j+}I)&SsAfV72VI;OL-f5fPEz=HKEcb8B4oL)7OjB zF|bAI(P=R$a<--i^>~1IaA_XfM{6!#iboyEv5>5AVnnC%DJ*Y z@`X!b3lDiR+?(}@+$|3o(Jt-oCV*62?nzT+?K&P-IV|ns4Cp~Wl5tDLGiT^1?Ugb{%JNDqu*H9&uA4T-t}gO=0R5|o(UTB!8)G(D+BqDR&4 z3c*7pR7^*((!q`p8@;64@xam-x=FFU`{oq4K@P^LsbdHgYYZI(#pjqMg5qbx6MVIU zMBsVSu_Wa)a(3gmmAUYf?0NJ;61`ZQ#maj}824PDSRHLxvx#zsV{-gff-62K)NP9F z4h7v65A}wDYhN$Tvf1&D$aGUQ6p)rq@1WgVvc)yxe34>${DkJAwhk#1L1FleMqQ=) zn@y#vkj8lY$ah=t+1=I4^$S_ZGIY$%G=gD{RKF{B=*grT zq~kJq0e1_C^ndz{=dQF4LRok@#!@NJNJEW`qME##9K)JTsVJ;&$)`^kJ9y&7!_C|6 z8@tAe)6mwzDS=8q583GOT54R|c8jL#q~j8KfAW+a&C4U)F%WkFu z1|Hc5M?`ytkblD*TO!c&B|r~uFP=lZeZBwn;n&;idAhPI8qFy#W0|(!hS&0k4ICS- z3gf|H6LTt3Z({;qDU}VCV&<}nmcE55OaesluS}SGtHNrlfE2xV#ux?_74;9`qZIqn zwBr{$>%6j5p>Z1&%)^EeA=at%!Qqf%&R9UwXppL%t^2)pb23^1YpWF_s0@WIb?+N~ zmN*HY6NiQwUy%&L$+&jtgACav8y?ArgC;9G=HU*>;6p%AxIrpOhe61b4uYA-w!qzNbh6&FwNbfQ=5c6ZYL)0|&-3B~yONYq)UFpe z|rfl>w#yjSHhv{vv$rW7A2CeYK!Rf(S znWqJtjYb3gYUF%c5$v} zt69Y>2uk(tK~Ru6Up!G=bb!qK&!ax@Eo<0sQhkiXk|To+LC<)+^WgwkP0SBUR*^Cdm{CG-pr`7!mk=bXVno0BP$EAcPtLIu@#1 z41!v(Q~-R&9WR`ii7@kc%Ft`U8lo|Sk{t^8&2z_C_W&U@DrqZp50cY~IDgPW-JEXvKg5dim8~8<~GLOn3Agfhc}c5 z%Sm`d|g7T2lxhKZmvf2Fa&=~ZTX;f?+GTJ zO3fsyRd+HV4S3Us)S7x$D++m-`l?GZCwlCc!z#l0Nqqk zd=|2lf4r!{#G?|JAuPKosuDPo2Hh1!YUR6CEBrm?`;FjHp1WHY(>1{HdTWC!TpfHs z1tQz0wp3cN5L64~?dX4Jm8T=ez7*6_K15ZyaXf!w?bx_GL`b1wyj{a*CH;#vN$AIU zQ>~4!rrN(Jo74Vz-3x?_&q>AYOBSddvrH8O+WkpMR>A=l4fU>1wJB!ZZ0lHsdp;rz z2RO7AXWL!)peR;{ZN$C)|ll^Gg1~zHD#YluVC9#w=7yXB4X4t zRATr{h|{GTAnm7+Uif%YbE%XNHn(owWPSd`CPlt`DfRflbry_BD)-iW2gjGJyZXMW zRP*(wH*=o8#UYCVyy-3qi^6-6cW->DZMV6zIIEcs516YBcX1SWgTxB-z%bN1|MFEn zsbNSawG6o-0pz6&!L*BXrZm%W_D<`j8ui`yQz|x zK87Zh!m8sdQEj;T%e_oYLE(rg%|hymC-^lSQXk~g%h;iC@*yofP}xk{vaGK;eQFaF9G=X^7N(^ zoPUX2Wp8U`{eL*_StJ1#1pox{$MTOD|3{sru?d0P_Wyj2{u_ah4+?F-bmkLw4}SGz zqf0?oqkBOoW|o-oiqYyi4&O5~sCaqT`~>1YP3)+xg4B*zi_G@X)J&Fl@~tos3r|Q_ z&B>vW8#rb+5O#^0E&_Mxs+$S3^*!(Ci_J;A1r5CmjYg%-BSSx7^{ZR{mIbeVM;OT} z(djT(=i!Y4^)lt^MQtxQJzC23P@LCw+xy32St7on{f}c>JKt?CQ;RVdh#I!+bvMu2 zrYtozkyzGF5H=VZ#lCQ}wh$L$!s#tv_=;AVVCP$vS5iGLm6ul>KHuLa(@hpMHa+xH zyG|wUc=bxtMp~-4Jy@mD!{Ork7S|z;TAEyD=50K8EcEr_Ix})H(uJFm;+HWREXUgI zl1a@Kbu7-(a_iN|TY5i%?kk+b6e}8Yt7p$BnSang%&OUz#Q7qu?~3p2VZB@?1%+*5 z9iIgn%odE^(4XL1in-iyE`(3k_dCYk7&l1YQm5|?5hWwA1rN15qu1u zgsm2qJHTDapOZTb)8n-GkupbS=9-;G+t7d+zTAg7DWn(!5%c!k6ulONVFoJ&(8l$l za7VK?HxpUN0R9lLG!hZpHd0PUHgZg-+xc*#V0~vBMUfEx{&jjfqX2%5x-_d%&8t=x~5Ntz{FcC$v6TEc<( zXqvmBS{q+>GnRtV{$RI_gCML5Qkzn-^_PlfEo%5RNMGXxjD1&baI57~74?!#D*WQO_2hFO{ZK7UFjG&wMb~QJe9eFj9*h(w6 zdJZ*QM3#Ud96GpFNoRoiTUN2he$O;pXwU}7=)J|q&Eo|9^0yEpXgRX#`OM(H#s4=b z6#VaDy%MI%$LgIKg`I;_l;?xzqw)*r5~K+Ui|D57VTg)}OX!uHXMnzES`B)$cC0$2m{9UKOXcTrSwm zSxvao*XaE5=0we>6OaveWg$@UXD-3}R z8>zJi*tRu}+1)A~lw#xvH#<q6Bo+T7#J3Bi_?qyj9M$A$cxOM8<#MhlZ!jwc+`qs%_qM6*7t$~CDMM> zI45^_gp1AA<-(3M+2!D$_)}N4q*RVHp8Ef?4{v;iwus;fCl+>KlgW15>!6MEa*M#m zWsGFyT!vM* z8>aB|upht9%=?IHhXxr>)>TU)k+POVB-(n~xNYmd12m`6I$Y`SKoUp@7GetVyUWGo zA{POIYcMPQFAo*x>Gn0MYpFO?Wv$a$_nnBdq9RVWUyo(TlDc#tUR<*(897Xc_<&qG zCg=YuXW1>ufo@NbalrEU%Bv-Bm7gKf?){|XdBEfaAjt~CD*+De2rml1p$eCsNKa5G zK+nHI>wsYaQ#&Ptl0cWNHz)cIuZL3DpZKj>!Wv%68Ej; zFZrd@>rPf|o)K{G7UAhv$AeJlsvS~u==Sw9m_{H8;z1tl?Wv`wYk%FGegFGZea}6& zyaEt3NQx9F+rN~$$|^HdASzwy4D`o==w;gSmv*3MX^bLNt$PT=_WSa-e{HFQMFXT} zly9Kj02wxB5p5X)BG5BF|SMaz0#|yr$nhhAYncTx|?J-NXEv{fvS>lA%Po*$mHOepAr@h zIGrBw&oQp@Vj1GHm&+gHV!Qb!W7>x)I8PsUTUKz~Y-T(b8=UcioU-UkWS%Ek~ACle%-_MP=u)!a{ z4b-Fvf=0tiyF>hJ1_A7V1c2eVw~)8JgL&7_h=y@VD69*>W5G>hFaR z+DJ8_gcDI@(ZrU#RHr8+xjheJR9;?yUlf^O0%^nu!-u|L_m!XdG2uL&WcVMu5M zCNe^FI4&?Dg8^n3FCUr%;UOZD$Z620kkK$*JtciG$cN+g(KvlPPM^%8Pm_b6&AHDz zKbw`n*ImS`KS?Zo+M z1Q3mj$7Wk>was=rkj)fCK5VUAP>4q%n-ylOLbfT)4)FS?MPuW)|7K|KfuW^!bL#H} z@e=?=LPo!$S%{*=OeGc1VICRq+yL&LiFj^Q!!*oXN$*P{Pm)N_>|*QxgaG~gMl!!X zuoz{mc^mIFYrL6+?5KSj`kD<%K{kbTWq>pyvNM#qtcUQ%2oMdD(p#s}&EaFG4FLE$ z-6lzC$6v)JBb*2y&!MOsJu^yJN~*||fR%O+NU%a=@t*}I1doDa7KO28r4iJ|QK~N# zEoq_MkAqG59A!b)oS^}LP)U?C+bjqSEn`tsaoQLKhyZ6o z*l`N*?^-Nz-!~?ncF-b8ZlO;x-fmFGMzB!kUXQPFlNMKeH6UTk^nVjjEt1!LfmbYi zUc}wgni78pbLhbuzY!+JQ;Z{P9?(G-n$#f-*N@3t?ey?YXR_0JqwIb3v9qdx8M<_-psT+xZeg)*x?<6WVun^3q(i9QQM$TvD+~4WTc*xA?}77 zX?!oXd%Wqa9N-0Kc7fEDaM;1vd-_z2E@d3xFs(!!eZE@fx>3~4?$BWsls;>eexu45 z?_GZ^rb&ZB8WpBVk(w2*MG;zWuSm;KWfhy8qRHQ0SI|b)u1FnkmN&40%*E<%4vlG9XbfrrfAZrU z>&DTw0O5@QrwZNSPeWr=Og@;oHZLbX7KkZG*v$n!Fg}X_ykr5EY_DfZoi7Rib-7-- zBms~}3Nfz5$Y`CzpRJKI`nxfV( zA8uG4l`fhKKWOJn@;FG)B;K45w#6&pF^+v|!u)`-09cV|QW&6(m(tjy@hmc4;THcr zT2g4dq;^{FF}E~Y*tK_g1YLtmSp@J2QrLpkl~+vs!bP1iX_13zhYOF`$j-e=plaZP zZJr7R&}Y3QmvLjoy@Lo3l8+vy-Lut+g%Z_GrdV9n;O=PpW=2TL}K6$=DRl0nD=p-HA>Tc9$2` zdf7@H)>><U;Di^CjqaP!P#Gv9pNB8zECN*o3Z zkjlyo6%}@a201LTgxgX}x$I^)HoM!M+aC7db)plIlbpoiE_X59?E&OL4-y{o5awZz z5gzvx)zhA)d&V=!vtFco*~>Jqc%9Q5-r%v^a+(!Z@K|XjN1;TF=ZJ1Za489~Pj7%r zfKM8b*Q%gN3tgjTetvm1J|zQ40lT`hVDcxX51nHquD*#48*;+OW>Z*Bh|>sBG`!_U zxp~-T<=Ez}crw2u4}$ybLgEm2-oDJiyuF|*<#1wtY>pio4PlXB@Y;wPk=p}dbv)`I zFaw0H_e%+P-tjKA6oDPU@5uGaO{SbIfhiJzIZ7DEOi(N~1cM$ON)pcgCit`?-aM{h zGE5j<-V;5;L`oDS%>^512p3|M5$X^_6r$$aOf!R42c4R^Q0x{l?hB3SLUKIcaITBc z$Rbq!5-p-L*U4GqRVdP0Mf0A*yuUU(w%ktu|7YcR9<>11plp%j=*%bxP`1P7@jc_-O6R6&=RpAt|d0?i=D zXJn(Z9bYzhd>_E(Mt$1n%F3ryFd=1=7FMt-Aj}QrX2%wk)7}m^f_|D!K=yrj3SD9> zC5L0N>_oHB&4lNanzF!LFx_zAZ`}?s zwfA?m!~`ff=j?pgBgi;5s|-OQP9scFWBXp==TZaExao5Gy*S`y-)wX!LEc``_|XXH z0`I;82=X?17<|FdwLTHP-2nqoGmXgr;Y-mOT%};!T>-1N+x(m4f$vLT zwDcS!Snaq7WpB6ewwlEefIwR|*%;3!{$7I{bMm`1Z>fB61Q%>tMkead)Z#NI@L0q1 zUFg)@<>hwd=b2?)oKix#1uwA+ zr^p!=0J9vSkc}Y~*Ss*xmeHQ(qMDc1re~t|h^daOB84Nnf zAto3N4LL^8*HCRSsjV)jtzqO2HHvM&KamjJ2cjCWfZMCN)Ld?^G-u5@){{5DooSn7 z@Bfm#2swGJ#5cKnZT}kN*s7wK4S(QE zxRtN`92c=gWWPS6vU_KEzPGXby2;EOXu9t>^Pcw+CTni6h&itBM}$?%DJZ)7eo-cG zevJGCr^B88{+jWD4}IigpZL^gKKF$$5vP=PMT>mpYv1_RcfR+7AN}NKqFq@_0rtLw zfZ5lpMR%3L`)V3O@dPu- zHwbrrW}5`zOjdkb9KF%E`|feS88KsK!fZ7A&7%2eA`<~C2AJ+-1ko)%v&M`z>HFPr z-$m`^ulncv|9(Dv;l%MHhsM{_-~amlY7i~#5PTPVu!+ya9N&p8w69I){>WHaO}Eh< z8Efj;R~hT-*l#k{*ReljY^XMOq1`ezR-60LK^dE?&BN$uE4Fp`BtD6E;r~2rlTlj)~qJQtwFby+`)!jWae2%}`5H!7O;8<)g4bs(y7MX@nos zw43slx>0u`_^HQ`+|n>ghy^;=pXCKP&;o_U8K|(URDz=#oUzuEs)7Py#bTC~#-SFt zjhMmVN2o#_d&!f{eBy~@em*Il3*!cg*wfH8vF}y9_29&TD$|UM4INVVS3n!LYA`7w zRkw*A0bvIsS+mea>pG|;m$m_Hjy5m_lIzt(2@Wla+;9c_wJC@re@JiQFVM@z2HR+RD@m49^PLVKhtE#$uS&8nJ%U zstFEcHptwc(Ob|7r-RaVe(W0Bhl2BTT;N66kzddS&@GM$I1|#QWc_9n1Jd5QGmB&? zH$DwDi>~RH>+5^@r+a?-d-`ec+-j^NzUz9C;o?Ylg}L{T;;&{Ls7-)yK6+|JC{ z>5rHkn001T!90KtG?WO)B0^eeJ+=UX2dU zL1YSxlbkZtbs>1Pi08hRo!qX0k$r%40u?&Ub`VqS_o9MbDDPASyWtX~WTFVe z6_h4TBwb?QL#iGGLlHVLQFUT)b+^*q%}qJB7etV5Y85t9n5C(6Yo2les8VmfnLZmO znFPfTAf>^*1IEOOJw0TXS4yRO5IJ%;*Dhfamr5$&SP-C0S1Rda@0aZl8r7i|gz)MyvQX!b8h?5b^e5?1dUN)kc4M3EbBkD!8$?hqVR+|Js_ z{1HX)`ENwWW?=#lo?f()9b>Jd&3gXO)Nb@{$-tQQp|)*S_Sz))i1GADz`3m&eyra} z$(^YsGX`dEXV9&cU8;B1HhWey`)mld1SQ%jSxd>9vu(buB-4G4NuU;`!AVJ!szEp{ zfijB7I4g;AH3;V=#ujiWEocmk6l5UMQ{*QMDG~8o{g&hbcAS5jATNZb_iF zBJOZU5_M}3?n#I~Pq-ih*r8!9!Xtth0|0nJMAKS?XN3Fa$cplWdC|&f6IkGwxfD2k z#BqHUjna&M;zi((o)*#V{_oL^3NDOvs6uwya`32mv_{xnphsDA%Bst}(>FFh3N?ZPtlsLNr?5+0Oe`l)r?CS6BUQt45@jsNox=DPj_)ycU8!N|^?mRs>-&24 z7e-TrlKeMlN1OD6PXu}-ND8@PAIeT5hMtM(9SO<=DOVRqW@u>A$OditjMWJV$^=OX zQ$6-U>MJG@NJ3BILazG6TWJCbN|naY6rAD}6Ddh1qB#o_ib7BOsj!fB0(~;uJ`qO0 z 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 DS!8^& diff --git a/sites/svelte.dev/static/fonts/overpass/overpass-latin-600.woff2 b/sites/svelte.dev/static/fonts/overpass/overpass-latin-600.woff2 deleted file mode 100644 index 1956aca6e03873b9cf990c4819cbe11e853e4664..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 19404 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 XC0prpFwdc1ob^=vQ(7tG)&T$jy0z>6 diff --git a/sites/svelte.dev/static/fonts/overpass/overpass-latin-700.woff2 b/sites/svelte.dev/static/fonts/overpass/overpass-latin-700.woff2 deleted file mode 100644 index 14a7f9cce5afdb49b1eff79042eaf323eb4de649..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 19924 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 O6y7R}gQBj@I4BA`2c0zl diff --git a/sites/svelte.dev/static/fonts/roboto/roboto-latin-400italic.woff2 b/sites/svelte.dev/static/fonts/roboto/roboto-latin-400italic.woff2 deleted file mode 100644 index 3791c883e8d0e8d3d5331b60584cf3869276cd43..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16944 zcmV(}K+wN;Pew8T0RR91075VT5&!@I0FZP5071(D0RR9100000000000000000000 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 HBnkikn^Nxw diff --git a/sites/svelte.dev/static/fonts/roboto/roboto-latin-500.woff2 b/sites/svelte.dev/static/fonts/roboto/roboto-latin-500.woff2 deleted file mode 100644 index 8dceabcf6bdfdb0f09be31878c1ebfdd0be943ff..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15552 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 Date: Wed, 23 Aug 2023 00:26:43 +0530 Subject: [PATCH 007/226] chore(sites): Bump deps (#9115) * Push * Bump deps * Bumps deps --- pnpm-lock.yaml | 963 ++++++++++++------ sites/svelte.dev/package.json | 28 +- sites/svelte.dev/src/lib/server/docs/index.js | 14 +- .../src/routes/content.json/content.server.js | 58 +- 4 files changed, 684 insertions(+), 379 deletions(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index a63b35d85965..570597454f13 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -104,7 +104,7 @@ importers: version: 15.1.0(rollup@3.26.2) '@sveltejs/eslint-config': specifier: ^6.0.4 - version: 6.0.4(@typescript-eslint/eslint-plugin@5.60.0)(@typescript-eslint/parser@6.2.1)(eslint-config-prettier@8.10.0)(eslint-plugin-svelte@2.32.4)(eslint-plugin-unicorn@47.0.0)(eslint@8.46.0)(typescript@5.1.3) + version: 6.0.4(@typescript-eslint/eslint-plugin@6.4.1)(@typescript-eslint/parser@6.4.1)(eslint-config-prettier@9.0.0)(eslint-plugin-svelte@2.33.0)(eslint-plugin-unicorn@48.0.1)(eslint@8.47.0)(typescript@5.1.3) '@types/aria-query': specifier: ^5.0.1 version: 5.0.1 @@ -154,11 +154,11 @@ importers: specifier: ^1.4.15 version: 1.4.15 '@supabase/supabase-js': - specifier: ^2.31.0 - version: 2.31.0 + specifier: ^2.33.1 + version: 2.33.1 '@sveltejs/repl': specifier: 0.5.0 - version: 0.5.0(@codemirror/lang-html@6.4.5)(@codemirror/search@6.5.0)(@lezer/common@1.0.3)(@lezer/javascript@1.4.5)(@lezer/lr@1.3.9)(@sveltejs/kit@1.22.4)(svelte@packages+svelte) + version: 0.5.0(@codemirror/lang-html@6.4.5)(@codemirror/search@6.5.1)(@lezer/common@1.0.4)(@lezer/javascript@1.4.6)(@lezer/lr@1.3.10)(@sveltejs/kit@1.22.6)(svelte@packages+svelte) cookie: specifier: ^0.5.0 version: 0.5.0 @@ -180,22 +180,22 @@ importers: version: 2.4.1 '@sveltejs/adapter-vercel': specifier: ^3.0.3 - version: 3.0.3(@sveltejs/kit@1.22.4) + version: 3.0.3(@sveltejs/kit@1.22.6) '@sveltejs/kit': - specifier: ^1.22.4 - version: 1.22.4(svelte@packages+svelte)(vite@4.4.8) + specifier: ^1.22.6 + version: 1.22.6(svelte@packages+svelte)(vite@4.4.9) '@sveltejs/site-kit': - specifier: 6.0.0-next.25 - version: 6.0.0-next.25(@sveltejs/kit@1.22.4)(svelte@packages+svelte) + specifier: 6.0.0-next.32 + version: 6.0.0-next.32(@sveltejs/kit@1.22.6)(svelte@packages+svelte) '@sveltejs/vite-plugin-svelte': - specifier: ^2.4.3 - version: 2.4.3(svelte@packages+svelte)(vite@4.4.8) + specifier: ^2.4.5 + version: 2.4.5(svelte@packages+svelte)(vite@4.4.9) '@types/cookie': specifier: ^0.5.1 version: 0.5.1 '@types/node': - specifier: ^20.4.7 - version: 20.4.7 + specifier: ^20.5.3 + version: 20.5.3 browserslist: specifier: ^4.21.10 version: 4.21.10 @@ -209,26 +209,26 @@ importers: specifier: ^0.22.10 version: 0.22.10 lightningcss: - specifier: ^1.21.5 - version: 1.21.5 + specifier: ^1.21.7 + version: 1.21.7 magic-string: - specifier: ^0.30.2 - version: 0.30.2 + specifier: ^0.30.3 + version: 0.30.3 marked: - specifier: ^6.0.0 - version: 6.0.0 + specifier: ^7.0.4 + version: 7.0.4 prettier: - specifier: ^3.0.1 - version: 3.0.1 + specifier: ^3.0.2 + version: 3.0.2 prettier-plugin-svelte: specifier: ^3.0.3 - version: 3.0.3(prettier@3.0.1)(svelte@packages+svelte) + version: 3.0.3(prettier@3.0.2)(svelte@packages+svelte) sass: - specifier: ^1.64.2 - version: 1.64.2 + specifier: ^1.66.1 + version: 1.66.1 satori: - specifier: ^0.10.2 - version: 0.10.2 + specifier: ^0.10.3 + version: 0.10.3 satori-html: specifier: ^0.3.2 version: 0.3.2 @@ -245,11 +245,11 @@ importers: specifier: workspace:* version: link:../../packages/svelte svelte-check: - specifier: ^3.4.6 - version: 3.4.6(postcss@8.4.24)(sass@1.64.2)(svelte@packages+svelte) + specifier: ^3.5.0 + version: 3.5.0(postcss@8.4.24)(sass@1.66.1)(svelte@packages+svelte) svelte-preprocess: specifier: ^5.0.4 - version: 5.0.4(postcss@8.4.24)(sass@1.64.2)(svelte@packages+svelte)(typescript@5.1.6) + version: 5.0.4(postcss@8.4.24)(sass@1.66.1)(svelte@packages+svelte)(typescript@5.1.6) tiny-glob: specifier: ^0.2.9 version: 0.2.9 @@ -257,11 +257,11 @@ importers: specifier: ^5.1.6 version: 5.1.6 vite: - specifier: ^4.4.8 - version: 4.4.8(@types/node@20.4.7)(lightningcss@1.21.5)(sass@1.64.2) + specifier: ^4.4.9 + version: 4.4.9(@types/node@20.5.3)(lightningcss@1.21.7)(sass@1.66.1) vite-imagetools: - specifier: ^5.0.7 - version: 5.0.7 + specifier: ^5.0.8 + version: 5.0.8 packages: @@ -513,6 +513,20 @@ packages: '@lezer/common': 1.0.3 dev: false + /@codemirror/autocomplete@6.8.1(@codemirror/language@6.8.0)(@codemirror/state@6.2.1)(@codemirror/view@6.14.1)(@lezer/common@1.0.4): + resolution: {integrity: sha512-HpphvDcTdOx+9R3eUw9hZK9JA77jlaBF0kOt2McbyfvY0rX9pnMoO8rkkZc0GzSbzhIY4m5xJ0uHHgjfqHNmXQ==} + peerDependencies: + '@codemirror/language': ^6.0.0 + '@codemirror/state': ^6.0.0 + '@codemirror/view': ^6.0.0 + '@lezer/common': ^1.0.0 + dependencies: + '@codemirror/language': 6.8.0 + '@codemirror/state': 6.2.1 + '@codemirror/view': 6.14.1 + '@lezer/common': 1.0.4 + dev: false + /@codemirror/commands@6.2.4: resolution: {integrity: sha512-42lmDqVH0ttfilLShReLXsDfASKLXzfyC36bzwcqzox9PlHulMcsUOfHXNo2X2aFMVNUoQ7j+d4q5bnfseYoOA==} dependencies: @@ -606,6 +620,14 @@ packages: crelt: 1.0.6 dev: false + /@codemirror/search@6.5.1: + resolution: {integrity: sha512-4jupk4JwkeVbrN2pStY74q6OJEYqwosB4koA66nyLeVedadtX9MHI38j2vbYmnfDGurDApP3OZO46MrWalcjiQ==} + dependencies: + '@codemirror/state': 6.2.1 + '@codemirror/view': 6.16.0 + crelt: 1.0.6 + dev: false + /@codemirror/state@6.2.1: resolution: {integrity: sha512-RupHSZ8+OjNT38zU9fKH2sv+Dnlr8Eb8sl4NOnnqz95mCFTZUaiRP8Xv5MeeaG0px2b8Bnfe7YGwCV3nsBhbuw==} dev: false @@ -618,6 +640,14 @@ packages: w3c-keyname: 2.2.8 dev: false + /@codemirror/view@6.16.0: + resolution: {integrity: sha512-1Z2HkvkC3KR/oEZVuW9Ivmp8TWLzGEd8T8TA04TTwPvqogfkHBdYSlflytDOqmkUxM2d1ywTg7X2dU5mC+SXvg==} + dependencies: + '@codemirror/state': 6.2.1 + style-mod: 4.1.0 + w3c-keyname: 2.2.8 + dev: false + /@esbuild/android-arm64@0.18.11: resolution: {integrity: sha512-snieiq75Z1z5LJX9cduSAjUr7vEI1OdlzFPMw0HH5YI7qQHDd3qs+WZoMrWYDsfRJSq36lIA6mfZBkvL46KoIw==} engines: {node: '>=12'} @@ -633,6 +663,15 @@ packages: cpu: [arm64] os: [android] requiresBuild: true + dev: true + optional: true + + /@esbuild/android-arm64@0.18.20: + resolution: {integrity: sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==} + engines: {node: '>=12'} + cpu: [arm64] + os: [android] + requiresBuild: true optional: true /@esbuild/android-arm@0.18.11: @@ -650,6 +689,15 @@ packages: cpu: [arm] os: [android] requiresBuild: true + dev: true + optional: true + + /@esbuild/android-arm@0.18.20: + resolution: {integrity: sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==} + engines: {node: '>=12'} + cpu: [arm] + os: [android] + requiresBuild: true optional: true /@esbuild/android-x64@0.18.11: @@ -667,6 +715,15 @@ packages: cpu: [x64] os: [android] requiresBuild: true + dev: true + optional: true + + /@esbuild/android-x64@0.18.20: + resolution: {integrity: sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==} + engines: {node: '>=12'} + cpu: [x64] + os: [android] + requiresBuild: true optional: true /@esbuild/darwin-arm64@0.18.11: @@ -684,6 +741,15 @@ packages: cpu: [arm64] os: [darwin] requiresBuild: true + dev: true + optional: true + + /@esbuild/darwin-arm64@0.18.20: + resolution: {integrity: sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==} + engines: {node: '>=12'} + cpu: [arm64] + os: [darwin] + requiresBuild: true optional: true /@esbuild/darwin-x64@0.18.11: @@ -701,6 +767,15 @@ packages: cpu: [x64] os: [darwin] requiresBuild: true + dev: true + optional: true + + /@esbuild/darwin-x64@0.18.20: + resolution: {integrity: sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [darwin] + requiresBuild: true optional: true /@esbuild/freebsd-arm64@0.18.11: @@ -718,6 +793,15 @@ packages: cpu: [arm64] os: [freebsd] requiresBuild: true + dev: true + optional: true + + /@esbuild/freebsd-arm64@0.18.20: + resolution: {integrity: sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==} + engines: {node: '>=12'} + cpu: [arm64] + os: [freebsd] + requiresBuild: true optional: true /@esbuild/freebsd-x64@0.18.11: @@ -735,6 +819,15 @@ packages: cpu: [x64] os: [freebsd] requiresBuild: true + dev: true + optional: true + + /@esbuild/freebsd-x64@0.18.20: + resolution: {integrity: sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [freebsd] + requiresBuild: true optional: true /@esbuild/linux-arm64@0.18.11: @@ -752,6 +845,15 @@ packages: cpu: [arm64] os: [linux] requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-arm64@0.18.20: + resolution: {integrity: sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==} + engines: {node: '>=12'} + cpu: [arm64] + os: [linux] + requiresBuild: true optional: true /@esbuild/linux-arm@0.18.11: @@ -769,6 +871,15 @@ packages: cpu: [arm] os: [linux] requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-arm@0.18.20: + resolution: {integrity: sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==} + engines: {node: '>=12'} + cpu: [arm] + os: [linux] + requiresBuild: true optional: true /@esbuild/linux-ia32@0.18.11: @@ -786,6 +897,15 @@ packages: cpu: [ia32] os: [linux] requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-ia32@0.18.20: + resolution: {integrity: sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==} + engines: {node: '>=12'} + cpu: [ia32] + os: [linux] + requiresBuild: true optional: true /@esbuild/linux-loong64@0.18.11: @@ -803,6 +923,15 @@ packages: cpu: [loong64] os: [linux] requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-loong64@0.18.20: + resolution: {integrity: sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==} + engines: {node: '>=12'} + cpu: [loong64] + os: [linux] + requiresBuild: true optional: true /@esbuild/linux-mips64el@0.18.11: @@ -820,6 +949,15 @@ packages: cpu: [mips64el] os: [linux] requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-mips64el@0.18.20: + resolution: {integrity: sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==} + engines: {node: '>=12'} + cpu: [mips64el] + os: [linux] + requiresBuild: true optional: true /@esbuild/linux-ppc64@0.18.11: @@ -837,6 +975,15 @@ packages: cpu: [ppc64] os: [linux] requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-ppc64@0.18.20: + resolution: {integrity: sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [linux] + requiresBuild: true optional: true /@esbuild/linux-riscv64@0.18.11: @@ -854,6 +1001,15 @@ packages: cpu: [riscv64] os: [linux] requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-riscv64@0.18.20: + resolution: {integrity: sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A==} + engines: {node: '>=12'} + cpu: [riscv64] + os: [linux] + requiresBuild: true optional: true /@esbuild/linux-s390x@0.18.11: @@ -871,6 +1027,15 @@ packages: cpu: [s390x] os: [linux] requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-s390x@0.18.20: + resolution: {integrity: sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==} + engines: {node: '>=12'} + cpu: [s390x] + os: [linux] + requiresBuild: true optional: true /@esbuild/linux-x64@0.18.11: @@ -888,6 +1053,15 @@ packages: cpu: [x64] os: [linux] requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-x64@0.18.20: + resolution: {integrity: sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==} + engines: {node: '>=12'} + cpu: [x64] + os: [linux] + requiresBuild: true optional: true /@esbuild/netbsd-x64@0.18.11: @@ -905,6 +1079,15 @@ packages: cpu: [x64] os: [netbsd] requiresBuild: true + dev: true + optional: true + + /@esbuild/netbsd-x64@0.18.20: + resolution: {integrity: sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==} + engines: {node: '>=12'} + cpu: [x64] + os: [netbsd] + requiresBuild: true optional: true /@esbuild/openbsd-x64@0.18.11: @@ -922,6 +1105,15 @@ packages: cpu: [x64] os: [openbsd] requiresBuild: true + dev: true + optional: true + + /@esbuild/openbsd-x64@0.18.20: + resolution: {integrity: sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==} + engines: {node: '>=12'} + cpu: [x64] + os: [openbsd] + requiresBuild: true optional: true /@esbuild/sunos-x64@0.18.11: @@ -939,6 +1131,15 @@ packages: cpu: [x64] os: [sunos] requiresBuild: true + dev: true + optional: true + + /@esbuild/sunos-x64@0.18.20: + resolution: {integrity: sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [sunos] + requiresBuild: true optional: true /@esbuild/win32-arm64@0.18.11: @@ -956,6 +1157,15 @@ packages: cpu: [arm64] os: [win32] requiresBuild: true + dev: true + optional: true + + /@esbuild/win32-arm64@0.18.20: + resolution: {integrity: sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==} + engines: {node: '>=12'} + cpu: [arm64] + os: [win32] + requiresBuild: true optional: true /@esbuild/win32-ia32@0.18.11: @@ -973,6 +1183,15 @@ packages: cpu: [ia32] os: [win32] requiresBuild: true + dev: true + optional: true + + /@esbuild/win32-ia32@0.18.20: + resolution: {integrity: sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==} + engines: {node: '>=12'} + cpu: [ia32] + os: [win32] + requiresBuild: true optional: true /@esbuild/win32-x64@0.18.11: @@ -990,6 +1209,15 @@ packages: cpu: [x64] os: [win32] requiresBuild: true + dev: true + optional: true + + /@esbuild/win32-x64@0.18.20: + resolution: {integrity: sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [win32] + requiresBuild: true optional: true /@eslint-community/eslint-utils@4.4.0(eslint@8.44.0): @@ -1002,13 +1230,13 @@ packages: eslint-visitor-keys: 3.4.1 dev: true - /@eslint-community/eslint-utils@4.4.0(eslint@8.46.0): + /@eslint-community/eslint-utils@4.4.0(eslint@8.47.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.46.0 + eslint: 8.47.0 eslint-visitor-keys: 3.4.1 dev: true @@ -1017,8 +1245,8 @@ packages: engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} dev: true - /@eslint-community/regexpp@4.6.2: - resolution: {integrity: sha512-pPTNuaAG3QMH+buKyBIGJs3g/S5y0caxw0ygM3YyE6yJFySwiGGSzA+mM3KJ8QQvzeLh3blwgSonkFjgQdxzMw==} + /@eslint-community/regexpp@4.7.0: + resolution: {integrity: sha512-+HencqxU7CFJnQb7IKtuNBqS6Yx3Tz4kOL8BJXo+JyeiBm5MEX6pO8onXDkjrkCRlfYXS1Axro15ZjVFe9YgsA==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} dev: true @@ -1039,14 +1267,14 @@ packages: - supports-color dev: true - /@eslint/eslintrc@2.1.1: - resolution: {integrity: sha512-9t7ZA7NGGK8ckelF0PQCfcxIUzs1Md5rrO6U/c+FIQNanea5UZC0wqKXH4vHBccmu4ZJgZ2idtPeW7+Q2npOEA==} + /@eslint/eslintrc@2.1.2: + resolution: {integrity: sha512-+wvgpDsrB1YqAMdEUCcnTlpfVBH7Vqn6A/NT3D8WVXFIaKMlErPIZT3oCIAVCOtarRpMtelZLqJeU3t7WY6X6g==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: ajv: 6.12.6 debug: 4.3.4 espree: 9.6.1 - globals: 13.20.0 + globals: 13.21.0 ignore: 5.2.4 import-fresh: 3.3.0 js-yaml: 4.1.0 @@ -1061,8 +1289,8 @@ packages: engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /@eslint/js@8.46.0: - resolution: {integrity: sha512-a8TLtmPi8xzPkCbp/OGFUo5yhRkHM2Ko9kOWP4znJr0WAhWyThaw3PnwX4vOTWOAMsV2uRt32PPDcEz63esSaA==} + /@eslint/js@8.47.0: + resolution: {integrity: sha512-P6omY1zv5MItm93kLM8s2vr1HICJH8v0dvddDhysbIuZ+vcjOHg5Zbkf1mTkcmi2JA9oBG2anOkRnW8WJTS8Og==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true @@ -1451,6 +1679,11 @@ packages: resolution: {integrity: sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==} engines: {node: '>=6.0.0'} + /@jridgewell/resolve-uri@3.1.1: + resolution: {integrity: sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==} + engines: {node: '>=6.0.0'} + dev: true + /@jridgewell/set-array@1.1.2: resolution: {integrity: sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==} engines: {node: '>=6.0.0'} @@ -1474,10 +1707,21 @@ packages: '@jridgewell/resolve-uri': 3.1.0 '@jridgewell/sourcemap-codec': 1.4.14 + /@jridgewell/trace-mapping@0.3.19: + resolution: {integrity: sha512-kf37QtfW+Hwx/buWGMPcR60iF9ziHa6r/CZJIHbmcm4+0qrXiVdxegAH0F6yddEVQ7zdkjcGCgCzUu+BcbhQxw==} + dependencies: + '@jridgewell/resolve-uri': 3.1.1 + '@jridgewell/sourcemap-codec': 1.4.15 + dev: true + /@lezer/common@1.0.3: resolution: {integrity: sha512-JH4wAXCgUOcCGNekQPLhVeUtIqjH0yPBs7vvUdSjyQama9618IOKFJwkv2kcqdhF0my8hQEgCTEJU0GIgnahvA==} dev: false + /@lezer/common@1.0.4: + resolution: {integrity: sha512-lZHlk8p67x4aIDtJl6UQrXSOP6oi7dQR3W/geFVrENdA1JDaAJWldnVqVjPMJupbTKbzDfFcePfKttqVidS/dg==} + dev: false + /@lezer/css@1.1.3: resolution: {integrity: sha512-SjSM4pkQnQdJDVc80LYzEaMiNy9txsFbI7HsMgeVF28NdLaAdHNtQ+kB/QqDUzRBV/75NTXjJ/R5IdC8QQGxMg==} dependencies: @@ -1506,11 +1750,11 @@ packages: '@lezer/lr': 1.3.9 dev: false - /@lezer/javascript@1.4.5: - resolution: {integrity: sha512-FmBUHz8K1V22DgjTd6SrIG9owbzOYZ1t3rY6vGEmw+e2RVBd7sqjM8uXEVRFmfxKFn1Mx2ABJehHjrN3G2ZpmA==} + /@lezer/javascript@1.4.6: + resolution: {integrity: sha512-Vfs7hFLxwIW8b0rT956N164KBjy/pOw8zFfrkA1GDYx/07pnZL7seJG6Hi4ANRWzzP6F7XPA71eqwxM4FthwGA==} dependencies: '@lezer/highlight': 1.1.6 - '@lezer/lr': 1.3.9 + '@lezer/lr': 1.3.10 dev: false /@lezer/json@1.0.1: @@ -1520,6 +1764,12 @@ packages: '@lezer/lr': 1.3.9 dev: false + /@lezer/lr@1.3.10: + resolution: {integrity: sha512-BZfVvf7Re5BIwJHlZXbJn9L8lus5EonxQghyn+ih8Wl36XMFBPTXC0KM0IdUtj9w/diPHsKlXVgL+AlX2jYJ0Q==} + dependencies: + '@lezer/common': 1.0.4 + dev: false + /@lezer/lr@1.3.9: resolution: {integrity: sha512-XPz6dzuTHlnsbA5M2DZgjflNQ+9Hi5Swhic0RULdp3oOs3rh6bqGZolosVqN/fQIT8uNiepzINJDnS39oweTHQ==} dependencies: @@ -1571,7 +1821,7 @@ packages: - supports-color dev: true - /@neocodemirror/svelte@0.0.15(@codemirror/autocomplete@6.8.1)(@codemirror/commands@6.2.4)(@codemirror/language@6.8.0)(@codemirror/lint@6.4.0)(@codemirror/search@6.5.0)(@codemirror/state@6.2.1)(@codemirror/view@6.14.1): + /@neocodemirror/svelte@0.0.15(@codemirror/autocomplete@6.8.1)(@codemirror/commands@6.2.4)(@codemirror/language@6.8.0)(@codemirror/lint@6.4.0)(@codemirror/search@6.5.1)(@codemirror/state@6.2.1)(@codemirror/view@6.14.1): resolution: {integrity: sha512-MCux+QCR40CboJu/TFwnqK7gYQ3fvtvHX8F/mk85DRH7vMoG3VDjJhqneAITX5IzohWKeP36hzcV+oHC2LYJqA==} peerDependencies: '@codemirror/autocomplete': ^6.7.1 @@ -1582,11 +1832,11 @@ packages: '@codemirror/state': ^6.2.0 '@codemirror/view': ^6.12.0 dependencies: - '@codemirror/autocomplete': 6.8.1(@codemirror/language@6.8.0)(@codemirror/state@6.2.1)(@codemirror/view@6.14.1)(@lezer/common@1.0.3) + '@codemirror/autocomplete': 6.8.1(@codemirror/language@6.8.0)(@codemirror/state@6.2.1)(@codemirror/view@6.14.1)(@lezer/common@1.0.4) '@codemirror/commands': 6.2.4 '@codemirror/language': 6.8.0 '@codemirror/lint': 6.4.0 - '@codemirror/search': 6.5.0 + '@codemirror/search': 6.5.1 '@codemirror/state': 6.2.1 '@codemirror/view': 6.14.1 csstype: 3.1.2 @@ -1628,7 +1878,7 @@ packages: /@polka/url@1.0.0-next.21: resolution: {integrity: sha512-a5Sab1C4/icpTZVzZc5Ghpz88yQtGOyNqYXcZgOssB2uuAr+wF/MvN6bgtW32q7HHrvBki+BsZ0OuNv6EV3K9g==} - /@replit/codemirror-lang-svelte@6.0.0(@codemirror/autocomplete@6.8.1)(@codemirror/lang-css@6.2.0)(@codemirror/lang-html@6.4.5)(@codemirror/lang-javascript@6.1.9)(@codemirror/language@6.8.0)(@codemirror/state@6.2.1)(@codemirror/view@6.14.1)(@lezer/common@1.0.3)(@lezer/highlight@1.1.6)(@lezer/javascript@1.4.5)(@lezer/lr@1.3.9): + /@replit/codemirror-lang-svelte@6.0.0(@codemirror/autocomplete@6.8.1)(@codemirror/lang-css@6.2.0)(@codemirror/lang-html@6.4.5)(@codemirror/lang-javascript@6.1.9)(@codemirror/language@6.8.0)(@codemirror/state@6.2.1)(@codemirror/view@6.14.1)(@lezer/common@1.0.4)(@lezer/highlight@1.1.6)(@lezer/javascript@1.4.6)(@lezer/lr@1.3.10): resolution: {integrity: sha512-U2OqqgMM6jKelL0GNWbAmqlu1S078zZNoBqlJBW+retTc5M4Mha6/Y2cf4SVg6ddgloJvmcSpt4hHrVoM4ePRA==} peerDependencies: '@codemirror/autocomplete': ^6.0.0 @@ -1643,17 +1893,17 @@ packages: '@lezer/javascript': ^1.2.0 '@lezer/lr': ^1.0.0 dependencies: - '@codemirror/autocomplete': 6.8.1(@codemirror/language@6.8.0)(@codemirror/state@6.2.1)(@codemirror/view@6.14.1)(@lezer/common@1.0.3) + '@codemirror/autocomplete': 6.8.1(@codemirror/language@6.8.0)(@codemirror/state@6.2.1)(@codemirror/view@6.14.1)(@lezer/common@1.0.4) '@codemirror/lang-css': 6.2.0(@codemirror/view@6.14.1) '@codemirror/lang-html': 6.4.5 '@codemirror/lang-javascript': 6.1.9 '@codemirror/language': 6.8.0 '@codemirror/state': 6.2.1 '@codemirror/view': 6.14.1 - '@lezer/common': 1.0.3 + '@lezer/common': 1.0.4 '@lezer/highlight': 1.1.6 - '@lezer/javascript': 1.4.5 - '@lezer/lr': 1.3.9 + '@lezer/javascript': 1.4.6 + '@lezer/lr': 1.3.10 dev: false /@resvg/resvg-js-android-arm-eabi@2.4.1: @@ -1878,6 +2128,20 @@ packages: rollup: 3.26.2 dev: true + /@rollup/pluginutils@5.0.3: + resolution: {integrity: sha512-hfllNN4a80rwNQ9QCxhxuHCGHMAvabXqxNdaChUSSadMre7t4iEUI6fFAhBOn/eIYTgYVhBv7vCLsAJ4u3lf3g==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^1.20.0||^2.0.0||^3.0.0 + peerDependenciesMeta: + rollup: + optional: true + dependencies: + '@types/estree': 1.0.1 + estree-walker: 2.0.2 + picomatch: 2.3.1 + dev: true + /@shuding/opentype.js@1.4.0-beta.0: resolution: {integrity: sha512-3NgmNyH3l/Hv6EvsWJbsvpcpUba6R8IREQ83nH83cyakCw7uM1arZKNfHwv1Wz6jgqrF/j4x5ELvR6PnK9nTcA==} engines: {node: '>= 8.0.0'} @@ -1899,24 +2163,24 @@ packages: - encoding dev: false - /@supabase/gotrue-js@2.46.1: - resolution: {integrity: sha512-tebFX3XvPqEJKHOVgkXTN20g9iUhLx6tebIYQvTggYTrqOT2af8oTpSBdgYzbwJ291G6P6CSpR6KY0cT9ade5A==} + /@supabase/gotrue-js@2.47.0: + resolution: {integrity: sha512-3e34/vsKH/DoSZCpB85UZpFWSJ2p4GRUUlqgAgeTPagPlx4xS+Nc5v7g7ic7vp3gK0J5PsYVCn9Qu2JQUp4vXg==} dependencies: cross-fetch: 3.1.8 transitivePeerDependencies: - encoding dev: false - /@supabase/postgrest-js@1.7.2: - resolution: {integrity: sha512-GK80JpRq8l6Qll85erICypAfQCied8tdlXfsDN14W844HqXCSOisk8AaE01DAwGJanieaoN5fuqhzA2yKxDvEQ==} + /@supabase/postgrest-js@1.8.0: + resolution: {integrity: sha512-R6leDIC92NgjyG2/tCRJ42rWN7+fZY6ulTEE+c00tcnghn6cX4IYUlnTNMtrdfYC2JYNOTyM+rWj63Wdhr7Zig==} dependencies: cross-fetch: 3.1.8 transitivePeerDependencies: - encoding dev: false - /@supabase/realtime-js@2.7.3: - resolution: {integrity: sha512-c7TzL81sx2kqyxsxcDduJcHL9KJdCOoKimGP6lQSqiZKX42ATlBZpWbyy9KFGFBjAP4nyopMf5JhPi2ZH9jyNw==} + /@supabase/realtime-js@2.7.4: + resolution: {integrity: sha512-FzSzs1k9ruh/uds5AJ95Nc3beiMCCIhougExJ3O98CX1LMLAKUKFy5FivKLvcNhXnNfUEL0XUfGMb4UH2J7alg==} dependencies: '@types/phoenix': 1.6.0 '@types/websocket': 1.0.5 @@ -1933,13 +2197,13 @@ packages: - encoding dev: false - /@supabase/supabase-js@2.31.0: - resolution: {integrity: sha512-W9/4s+KnSUX67wJKBn/3yLq+ieycnMzVjK3nNTLX5Wko3ypNT/081l2iFYrf+nsLQ1CiT4mA92I3dxCy6CmxTg==} + /@supabase/supabase-js@2.33.1: + resolution: {integrity: sha512-jA00rquPTppPOHpBB6KABW98lfg0gYXcuGqP3TB1iiduznRVsi3GGk2qBKXPDLMYSe0kRlQp5xCwWWthaJr8eA==} dependencies: '@supabase/functions-js': 2.1.2 - '@supabase/gotrue-js': 2.46.1 - '@supabase/postgrest-js': 1.7.2 - '@supabase/realtime-js': 2.7.3 + '@supabase/gotrue-js': 2.47.0 + '@supabase/postgrest-js': 1.8.0 + '@supabase/realtime-js': 2.7.4 '@supabase/storage-js': 2.5.1 cross-fetch: 3.1.8 transitivePeerDependencies: @@ -1947,12 +2211,12 @@ packages: - supports-color dev: false - /@sveltejs/adapter-vercel@3.0.3(@sveltejs/kit@1.22.4): + /@sveltejs/adapter-vercel@3.0.3(@sveltejs/kit@1.22.6): resolution: {integrity: sha512-0FQMjR6klW4627ewdclSr0lUe/DqiiyOaRTfgb5cXgNbVMsZMOA2fQ77TYQnJdvMfSEWe6y8uznV48XqKh9+vA==} peerDependencies: '@sveltejs/kit': ^1.5.0 dependencies: - '@sveltejs/kit': 1.22.4(svelte@packages+svelte)(vite@4.4.8) + '@sveltejs/kit': 1.22.6(svelte@packages+svelte)(vite@4.4.9) '@vercel/nft': 0.23.0 esbuild: 0.18.17 transitivePeerDependencies: @@ -1960,7 +2224,7 @@ packages: - supports-color dev: true - /@sveltejs/eslint-config@6.0.4(@typescript-eslint/eslint-plugin@5.60.0)(@typescript-eslint/parser@6.2.1)(eslint-config-prettier@8.10.0)(eslint-plugin-svelte@2.32.4)(eslint-plugin-unicorn@47.0.0)(eslint@8.46.0)(typescript@5.1.3): + /@sveltejs/eslint-config@6.0.4(@typescript-eslint/eslint-plugin@6.4.1)(@typescript-eslint/parser@6.4.1)(eslint-config-prettier@9.0.0)(eslint-plugin-svelte@2.33.0)(eslint-plugin-unicorn@48.0.1)(eslint@8.47.0)(typescript@5.1.3): resolution: {integrity: sha512-U9pwmDs+DbmsnCgTfu6Bacdwqn0DuI1IQNSiQqTgzVyYfaaj+zy9ZoQCiJfxFBGXHkklyXuRHp0KMx346N0lcQ==} peerDependencies: '@typescript-eslint/eslint-plugin': '>= 5' @@ -1971,17 +2235,17 @@ packages: eslint-plugin-unicorn: '>= 47' typescript: '>= 4' dependencies: - '@typescript-eslint/eslint-plugin': 5.60.0(@typescript-eslint/parser@6.2.1)(eslint@8.46.0)(typescript@5.1.3) - '@typescript-eslint/parser': 6.2.1(eslint@8.46.0)(typescript@5.1.3) - eslint: 8.46.0 - eslint-config-prettier: 8.10.0(eslint@8.46.0) - eslint-plugin-svelte: 2.32.4(eslint@8.46.0)(svelte@packages+svelte) - eslint-plugin-unicorn: 47.0.0(eslint@8.46.0) + '@typescript-eslint/eslint-plugin': 6.4.1(@typescript-eslint/parser@6.4.1)(eslint@8.47.0)(typescript@5.1.3) + '@typescript-eslint/parser': 6.4.1(eslint@8.47.0)(typescript@5.1.3) + eslint: 8.47.0 + eslint-config-prettier: 9.0.0(eslint@8.47.0) + eslint-plugin-svelte: 2.33.0(eslint@8.47.0)(svelte@packages+svelte) + eslint-plugin-unicorn: 48.0.1(eslint@8.47.0) typescript: 5.1.3 dev: true - /@sveltejs/kit@1.22.4(svelte@packages+svelte)(vite@4.4.8): - resolution: {integrity: sha512-Opkqw1QXk4Cc25b/heJP2D7mX+OUBFAq4MXKfET58svTTxdeiHFKzmnuRsSF3nmxESqrLjqPAgHpib+knNGzRw==} + /@sveltejs/kit@1.22.6(svelte@packages+svelte)(vite@4.4.9): + resolution: {integrity: sha512-SDKxI/QpsReCwIn5czjT53fKlPBybbmMk67d317gUqfeORroBAFN1Z6s/x0E1JYi+04i7kKllS+Sz9wVfmUkAQ==} engines: {node: ^16.14 || >=18} hasBin: true requiresBuild: true @@ -1989,29 +2253,29 @@ packages: svelte: ^3.54.0 || ^4.0.0-next.0 vite: ^4.0.0 dependencies: - '@sveltejs/vite-plugin-svelte': 2.4.3(svelte@packages+svelte)(vite@4.4.8) + '@sveltejs/vite-plugin-svelte': 2.4.5(svelte@packages+svelte)(vite@4.4.9) '@types/cookie': 0.5.1 cookie: 0.5.0 devalue: 4.3.2 esm-env: 1.0.0 kleur: 4.1.5 - magic-string: 0.30.2 + magic-string: 0.30.3 mime: 3.0.0 sade: 1.8.1 set-cookie-parser: 2.6.0 sirv: 2.0.3 svelte: link:packages/svelte - undici: 5.22.1 - vite: 4.4.8(@types/node@20.4.7)(lightningcss@1.21.5)(sass@1.64.2) + undici: 5.23.0 + vite: 4.4.9(@types/node@20.5.3)(lightningcss@1.21.7)(sass@1.66.1) transitivePeerDependencies: - supports-color - /@sveltejs/repl@0.5.0(@codemirror/lang-html@6.4.5)(@codemirror/search@6.5.0)(@lezer/common@1.0.3)(@lezer/javascript@1.4.5)(@lezer/lr@1.3.9)(@sveltejs/kit@1.22.4)(svelte@packages+svelte): + /@sveltejs/repl@0.5.0(@codemirror/lang-html@6.4.5)(@codemirror/search@6.5.1)(@lezer/common@1.0.4)(@lezer/javascript@1.4.6)(@lezer/lr@1.3.10)(@sveltejs/kit@1.22.6)(svelte@packages+svelte): resolution: {integrity: sha512-SyrMn3moP74PY7OtQONom9X53SYREQ7p8CEgspeNK0VG9AYUWc2UPvDDRAHTK94TC7GoNWgOafDw04HJGrOl2g==} peerDependencies: svelte: ^3.54.0 || ^4.0.0-next.0 || ^4.0.0 dependencies: - '@codemirror/autocomplete': 6.8.1(@codemirror/language@6.8.0)(@codemirror/state@6.2.1)(@codemirror/view@6.14.1)(@lezer/common@1.0.3) + '@codemirror/autocomplete': 6.8.1(@codemirror/language@6.8.0)(@codemirror/state@6.2.1)(@codemirror/view@6.14.1)(@lezer/common@1.0.4) '@codemirror/commands': 6.2.4 '@codemirror/lang-css': 6.2.0(@codemirror/view@6.14.1) '@codemirror/lang-javascript': 6.1.9 @@ -2023,13 +2287,13 @@ packages: '@codemirror/view': 6.14.1 '@jridgewell/sourcemap-codec': 1.4.15 '@lezer/highlight': 1.1.6 - '@neocodemirror/svelte': 0.0.15(@codemirror/autocomplete@6.8.1)(@codemirror/commands@6.2.4)(@codemirror/language@6.8.0)(@codemirror/lint@6.4.0)(@codemirror/search@6.5.0)(@codemirror/state@6.2.1)(@codemirror/view@6.14.1) - '@replit/codemirror-lang-svelte': 6.0.0(@codemirror/autocomplete@6.8.1)(@codemirror/lang-css@6.2.0)(@codemirror/lang-html@6.4.5)(@codemirror/lang-javascript@6.1.9)(@codemirror/language@6.8.0)(@codemirror/state@6.2.1)(@codemirror/view@6.14.1)(@lezer/common@1.0.3)(@lezer/highlight@1.1.6)(@lezer/javascript@1.4.5)(@lezer/lr@1.3.9) + '@neocodemirror/svelte': 0.0.15(@codemirror/autocomplete@6.8.1)(@codemirror/commands@6.2.4)(@codemirror/language@6.8.0)(@codemirror/lint@6.4.0)(@codemirror/search@6.5.1)(@codemirror/state@6.2.1)(@codemirror/view@6.14.1) + '@replit/codemirror-lang-svelte': 6.0.0(@codemirror/autocomplete@6.8.1)(@codemirror/lang-css@6.2.0)(@codemirror/lang-html@6.4.5)(@codemirror/lang-javascript@6.1.9)(@codemirror/language@6.8.0)(@codemirror/state@6.2.1)(@codemirror/view@6.14.1)(@lezer/common@1.0.4)(@lezer/highlight@1.1.6)(@lezer/javascript@1.4.6)(@lezer/lr@1.3.10) '@rich_harris/svelte-split-pane': 1.1.1(svelte@packages+svelte) '@rollup/browser': 3.26.2 - '@sveltejs/site-kit': 5.2.2(@sveltejs/kit@1.22.4)(svelte@packages+svelte) + '@sveltejs/site-kit': 5.2.2(@sveltejs/kit@1.22.6)(svelte@packages+svelte) acorn: 8.10.0 - codemirror: 6.0.1(@lezer/common@1.0.3) + codemirror: 6.0.1(@lezer/common@1.0.4) esm-env: 1.0.0 estree-walker: 3.0.3 marked: 5.1.2 @@ -2045,31 +2309,31 @@ packages: - '@sveltejs/kit' dev: false - /@sveltejs/site-kit@5.2.2(@sveltejs/kit@1.22.4)(svelte@packages+svelte): + /@sveltejs/site-kit@5.2.2(@sveltejs/kit@1.22.6)(svelte@packages+svelte): resolution: {integrity: sha512-XLLxVUV/dYytCsUeODAkjtzlaIBSn1kdcH5U36OuN7gMsPEHDy5L/dsWjf1/vDln3JStH5lqZPEN8Fovm33KhA==} peerDependencies: '@sveltejs/kit': ^1.0.0 svelte: ^3.54.0 dependencies: - '@sveltejs/kit': 1.22.4(svelte@packages+svelte)(vite@4.4.8) + '@sveltejs/kit': 1.22.6(svelte@packages+svelte)(vite@4.4.9) esm-env: 1.0.0 svelte: link:packages/svelte svelte-local-storage-store: 0.4.0(svelte@packages+svelte) dev: false - /@sveltejs/site-kit@6.0.0-next.25(@sveltejs/kit@1.22.4)(svelte@packages+svelte): - resolution: {integrity: sha512-MZen4ZdjHoWVHn5DQdYBYprryhsyTHVT3XxW/hUp8K6dgFBXK5Cg/foHcxwzkepP6Gmabgi9eHC8e3PPGNKaAA==} + /@sveltejs/site-kit@6.0.0-next.32(@sveltejs/kit@1.22.6)(svelte@packages+svelte): + resolution: {integrity: sha512-paWcxEnx9XRcoHRjfTpf62Rk3RT69K1nKOtVYz7bvKAiB7hPVrUBaP/ENomq/zXk7pP3yjrxezarCGZO4VGEyg==} peerDependencies: '@sveltejs/kit': ^1.20.0 svelte: ^4.0.0 dependencies: - '@sveltejs/kit': 1.22.4(svelte@packages+svelte)(vite@4.4.8) + '@sveltejs/kit': 1.22.6(svelte@packages+svelte)(vite@4.4.9) esm-env: 1.0.0 svelte: link:packages/svelte - svelte-local-storage-store: 0.5.0(svelte@packages+svelte) + svelte-local-storage-store: 0.6.0(svelte@packages+svelte) dev: true - /@sveltejs/vite-plugin-svelte-inspector@1.0.3(@sveltejs/vite-plugin-svelte@2.4.3)(svelte@packages+svelte)(vite@4.4.8): + /@sveltejs/vite-plugin-svelte-inspector@1.0.3(@sveltejs/vite-plugin-svelte@2.4.5)(svelte@packages+svelte)(vite@4.4.9): resolution: {integrity: sha512-Khdl5jmmPN6SUsVuqSXatKpQTMIifoQPDanaxC84m9JxIibWvSABJyHpyys0Z+1yYrxY5TTEQm+6elh0XCMaOA==} engines: {node: ^14.18.0 || >= 16} peerDependencies: @@ -2077,29 +2341,29 @@ packages: svelte: ^3.54.0 || ^4.0.0 vite: ^4.0.0 dependencies: - '@sveltejs/vite-plugin-svelte': 2.4.3(svelte@packages+svelte)(vite@4.4.8) + '@sveltejs/vite-plugin-svelte': 2.4.5(svelte@packages+svelte)(vite@4.4.9) debug: 4.3.4 svelte: link:packages/svelte - vite: 4.4.8(@types/node@20.4.7)(lightningcss@1.21.5)(sass@1.64.2) + vite: 4.4.9(@types/node@20.5.3)(lightningcss@1.21.7)(sass@1.66.1) transitivePeerDependencies: - supports-color - /@sveltejs/vite-plugin-svelte@2.4.3(svelte@packages+svelte)(vite@4.4.8): - resolution: {integrity: sha512-NY2h+B54KHZO3kDURTdARqthn6D4YSIebtfW75NvZ/fwyk4G+AJw3V/i0OBjyN4406Ht9yZcnNWMuRUFnDNNiA==} + /@sveltejs/vite-plugin-svelte@2.4.5(svelte@packages+svelte)(vite@4.4.9): + resolution: {integrity: sha512-UJKsFNwhzCVuiZd06jM/psscyNJNDwjQC+qIeb7GBJK9iWeQCcIyfcPWDvbCudfcJggY9jtxJeeaZH7uny93FQ==} engines: {node: ^14.18.0 || >= 16} peerDependencies: svelte: ^3.54.0 || ^4.0.0 vite: ^4.0.0 dependencies: - '@sveltejs/vite-plugin-svelte-inspector': 1.0.3(@sveltejs/vite-plugin-svelte@2.4.3)(svelte@packages+svelte)(vite@4.4.8) + '@sveltejs/vite-plugin-svelte-inspector': 1.0.3(@sveltejs/vite-plugin-svelte@2.4.5)(svelte@packages+svelte)(vite@4.4.9) debug: 4.3.4 deepmerge: 4.3.1 kleur: 4.1.5 - magic-string: 0.30.2 + magic-string: 0.30.3 svelte: link:packages/svelte - svelte-hmr: 0.15.2(svelte@packages+svelte) - vite: 4.4.8(@types/node@20.4.7)(lightningcss@1.21.5)(sass@1.64.2) - vitefu: 0.2.4(vite@4.4.8) + svelte-hmr: 0.15.3(svelte@packages+svelte) + vite: 4.4.9(@types/node@20.5.3)(lightningcss@1.21.7)(sass@1.66.1) + vitefu: 0.2.4(vite@4.4.9) transitivePeerDependencies: - supports-color @@ -2168,8 +2432,8 @@ packages: resolution: {integrity: sha512-QpLcX9ZSsq3YYUUnD3nFDY8H7wctAhQj/TFKL8Ya8v5fMm3CFXxo8zStsLAl780ltoYoo1WvKUVGBQK+1ifr7g==} dev: true - /@types/node@20.4.7: - resolution: {integrity: sha512-bUBrPjEry2QUTsnuEjzjbS7voGWCc30W0qzgMf90GPeDGFRakvrz47ju+oqDAKCXLUCe39u57/ORMl/O/04/9g==} + /@types/node@20.5.3: + resolution: {integrity: sha512-ITI7rbWczR8a/S6qjAW7DMqxqFMjjTo61qZVWJ1ubPvbIQsL5D/TvwjYEalM8Kthpe3hTzOGrF2TGbAu2uyqeA==} /@types/normalize-package-data@2.4.1: resolution: {integrity: sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==} @@ -2198,7 +2462,7 @@ packages: /@types/websocket@1.0.5: resolution: {integrity: sha512-NbsqiNX9CnEfC1Z0Vf4mE1SgAJ07JnRYcNex7AJ9zAVzmiGHmjKFEk7O4TJIsgv2B1sLEb6owKFZrACwdYngsQ==} dependencies: - '@types/node': 20.4.7 + '@types/node': 20.5.3 dev: false /@typescript-eslint/eslint-plugin@5.60.0(@typescript-eslint/parser@5.62.0)(eslint@8.44.0)(typescript@5.1.6): @@ -2229,29 +2493,30 @@ packages: - supports-color dev: true - /@typescript-eslint/eslint-plugin@5.60.0(@typescript-eslint/parser@6.2.1)(eslint@8.46.0)(typescript@5.1.3): - resolution: {integrity: sha512-78B+anHLF1TI8Jn/cD0Q00TBYdMgjdOn980JfAVa9yw5sop8nyTfVOQAv6LWywkOGLclDBtv5z3oxN4w7jxyNg==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + /@typescript-eslint/eslint-plugin@6.4.1(@typescript-eslint/parser@6.4.1)(eslint@8.47.0)(typescript@5.1.3): + resolution: {integrity: sha512-3F5PtBzUW0dYlq77Lcqo13fv+58KDwUib3BddilE8ajPJT+faGgxmI9Sw+I8ZS22BYwoir9ZhNXcLi+S+I2bkw==} + 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.5.1 - '@typescript-eslint/parser': 6.2.1(eslint@8.46.0)(typescript@5.1.3) - '@typescript-eslint/scope-manager': 5.60.0 - '@typescript-eslint/type-utils': 5.60.0(eslint@8.46.0)(typescript@5.1.3) - '@typescript-eslint/utils': 5.60.0(eslint@8.46.0)(typescript@5.1.3) + '@eslint-community/regexpp': 4.7.0 + '@typescript-eslint/parser': 6.4.1(eslint@8.47.0)(typescript@5.1.3) + '@typescript-eslint/scope-manager': 6.4.1 + '@typescript-eslint/type-utils': 6.4.1(eslint@8.47.0)(typescript@5.1.3) + '@typescript-eslint/utils': 6.4.1(eslint@8.47.0)(typescript@5.1.3) + '@typescript-eslint/visitor-keys': 6.4.1 debug: 4.3.4 - eslint: 8.46.0 - grapheme-splitter: 1.0.4 + eslint: 8.47.0 + graphemer: 1.4.0 ignore: 5.2.4 - natural-compare-lite: 1.4.0 - semver: 7.5.3 - tsutils: 3.21.0(typescript@5.1.3) + natural-compare: 1.4.0 + semver: 7.5.4 + ts-api-utils: 1.0.2(typescript@5.1.3) typescript: 5.1.3 transitivePeerDependencies: - supports-color @@ -2277,8 +2542,8 @@ packages: - supports-color dev: true - /@typescript-eslint/parser@6.2.1(eslint@8.46.0)(typescript@5.1.3): - resolution: {integrity: sha512-Ld+uL1kYFU8e6btqBFpsHkwQ35rw30IWpdQxgOqOh4NfxSDH6uCkah1ks8R/RgQqI5hHPXMaLy9fbFseIe+dIg==} + /@typescript-eslint/parser@6.4.1(eslint@8.47.0)(typescript@5.1.3): + resolution: {integrity: sha512-610G6KHymg9V7EqOaNBMtD1GgpAmGROsmfHJPXNLCU9bfIuLrkdOygltK784F6Crboyd5tBFayPB7Sf0McrQwg==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 @@ -2287,12 +2552,12 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/scope-manager': 6.2.1 - '@typescript-eslint/types': 6.2.1 - '@typescript-eslint/typescript-estree': 6.2.1(typescript@5.1.3) - '@typescript-eslint/visitor-keys': 6.2.1 + '@typescript-eslint/scope-manager': 6.4.1 + '@typescript-eslint/types': 6.4.1 + '@typescript-eslint/typescript-estree': 6.4.1(typescript@5.1.3) + '@typescript-eslint/visitor-keys': 6.4.1 debug: 4.3.4 - eslint: 8.46.0 + eslint: 8.47.0 typescript: 5.1.3 transitivePeerDependencies: - supports-color @@ -2314,12 +2579,12 @@ packages: '@typescript-eslint/visitor-keys': 5.62.0 dev: true - /@typescript-eslint/scope-manager@6.2.1: - resolution: {integrity: sha512-UCqBF9WFqv64xNsIEPfBtenbfodPXsJ3nPAr55mGPkQIkiQvgoWNo+astj9ZUfJfVKiYgAZDMnM6dIpsxUMp3Q==} + /@typescript-eslint/scope-manager@6.4.1: + resolution: {integrity: sha512-p/OavqOQfm4/Hdrr7kvacOSFjwQ2rrDVJRPxt/o0TOWdFnjJptnjnZ+sYDR7fi4OimvIuKp+2LCkc+rt9fIW+A==} engines: {node: ^16.0.0 || >=18.0.0} dependencies: - '@typescript-eslint/types': 6.2.1 - '@typescript-eslint/visitor-keys': 6.2.1 + '@typescript-eslint/types': 6.4.1 + '@typescript-eslint/visitor-keys': 6.4.1 dev: true /@typescript-eslint/type-utils@5.60.0(eslint@8.44.0)(typescript@5.1.6): @@ -2342,21 +2607,21 @@ packages: - supports-color dev: true - /@typescript-eslint/type-utils@5.60.0(eslint@8.46.0)(typescript@5.1.3): - resolution: {integrity: sha512-X7NsRQddORMYRFH7FWo6sA9Y/zbJ8s1x1RIAtnlj6YprbToTiQnM6vxcMu7iYhdunmoC0rUWlca13D5DVHkK2g==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + /@typescript-eslint/type-utils@6.4.1(eslint@8.47.0)(typescript@5.1.3): + resolution: {integrity: sha512-7ON8M8NXh73SGZ5XvIqWHjgX2f+vvaOarNliGhjrJnv1vdjG0LVIz+ToYfPirOoBi56jxAKLfsLm40+RvxVVXA==} + 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.60.0(typescript@5.1.3) - '@typescript-eslint/utils': 5.60.0(eslint@8.46.0)(typescript@5.1.3) + '@typescript-eslint/typescript-estree': 6.4.1(typescript@5.1.3) + '@typescript-eslint/utils': 6.4.1(eslint@8.47.0)(typescript@5.1.3) debug: 4.3.4 - eslint: 8.46.0 - tsutils: 3.21.0(typescript@5.1.3) + eslint: 8.47.0 + ts-api-utils: 1.0.2(typescript@5.1.3) typescript: 5.1.3 transitivePeerDependencies: - supports-color @@ -2372,32 +2637,11 @@ packages: engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /@typescript-eslint/types@6.2.1: - resolution: {integrity: sha512-528bGcoelrpw+sETlyM91k51Arl2ajbNT9L4JwoXE2dvRe1yd8Q64E4OL7vHYw31mlnVsf+BeeLyAZUEQtqahQ==} + /@typescript-eslint/types@6.4.1: + resolution: {integrity: sha512-zAAopbNuYu++ijY1GV2ylCsQsi3B8QvfPHVqhGdDcbx/NK5lkqMnCGU53amAjccSpk+LfeONxwzUhDzArSfZJg==} engines: {node: ^16.0.0 || >=18.0.0} dev: true - /@typescript-eslint/typescript-estree@5.60.0(typescript@5.1.3): - 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.1.3) - typescript: 5.1.3 - transitivePeerDependencies: - - supports-color - dev: true - /@typescript-eslint/typescript-estree@5.60.0(typescript@5.1.6): resolution: {integrity: sha512-R43thAuwarC99SnvrBmh26tc7F6sPa2B3evkXp/8q954kYL6Ro56AwASYWtEEi+4j09GbiNAHqYwNNZuNlARGQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -2440,8 +2684,8 @@ packages: - supports-color dev: true - /@typescript-eslint/typescript-estree@6.2.1(typescript@5.1.3): - resolution: {integrity: sha512-G+UJeQx9AKBHRQBpmvr8T/3K5bJa485eu+4tQBxFq0KoT22+jJyzo1B50JDT9QdC1DEmWQfdKsa8ybiNWYsi0Q==} + /@typescript-eslint/typescript-estree@6.4.1(typescript@5.1.3): + resolution: {integrity: sha512-xF6Y7SatVE/OyV93h1xGgfOkHr2iXuo8ip0gbfzaKeGGuKiAnzS+HtVhSPx8Www243bwlW8IF7X0/B62SzFftg==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: typescript: '*' @@ -2449,13 +2693,13 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/types': 6.2.1 - '@typescript-eslint/visitor-keys': 6.2.1 + '@typescript-eslint/types': 6.4.1 + '@typescript-eslint/visitor-keys': 6.4.1 debug: 4.3.4 globby: 11.1.0 is-glob: 4.0.3 semver: 7.5.4 - ts-api-utils: 1.0.1(typescript@5.1.3) + ts-api-utils: 1.0.2(typescript@5.1.3) typescript: 5.1.3 transitivePeerDependencies: - supports-color @@ -2481,21 +2725,20 @@ packages: - typescript dev: true - /@typescript-eslint/utils@5.60.0(eslint@8.46.0)(typescript@5.1.3): - resolution: {integrity: sha512-ba51uMqDtfLQ5+xHtwlO84vkdjrqNzOnqrnwbMHMRY8Tqeme8C2Q8Fc7LajfGR+e3/4LoYiWXUM6BpIIbHJ4hQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + /@typescript-eslint/utils@6.4.1(eslint@8.47.0)(typescript@5.1.3): + resolution: {integrity: sha512-F/6r2RieNeorU0zhqZNv89s9bDZSovv3bZQpUNOmmQK1L80/cV4KEu95YUJWi75u5PhboFoKUJBnZ4FQcoqhDw==} + 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.46.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@8.47.0) '@types/json-schema': 7.0.12 '@types/semver': 7.5.0 - '@typescript-eslint/scope-manager': 5.60.0 - '@typescript-eslint/types': 5.60.0 - '@typescript-eslint/typescript-estree': 5.60.0(typescript@5.1.3) - eslint: 8.46.0 - eslint-scope: 5.1.1 - semver: 7.5.3 + '@typescript-eslint/scope-manager': 6.4.1 + '@typescript-eslint/types': 6.4.1 + '@typescript-eslint/typescript-estree': 6.4.1(typescript@5.1.3) + eslint: 8.47.0 + semver: 7.5.4 transitivePeerDependencies: - supports-color - typescript @@ -2514,15 +2757,15 @@ packages: engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: '@typescript-eslint/types': 5.62.0 - eslint-visitor-keys: 3.4.2 + eslint-visitor-keys: 3.4.3 dev: true - /@typescript-eslint/visitor-keys@6.2.1: - resolution: {integrity: sha512-iTN6w3k2JEZ7cyVdZJTVJx2Lv7t6zFA8DCrJEHD2mwfc16AEvvBWVhbFh34XyG2NORCd0viIgQY1+u7kPI0WpA==} + /@typescript-eslint/visitor-keys@6.4.1: + resolution: {integrity: sha512-y/TyRJsbZPkJIZQXrHfdnxVnxyKegnpEvnRGNam7s3TRR2ykGefEWOhaef00/UUN3IZxizS7BTO3svd3lCOJRQ==} engines: {node: ^16.0.0 || >=18.0.0} dependencies: - '@typescript-eslint/types': 6.2.1 - eslint-visitor-keys: 3.4.2 + '@typescript-eslint/types': 6.4.1 + eslint-visitor-keys: 3.4.3 dev: true /@typescript/twoslash@3.1.0: @@ -2591,7 +2834,7 @@ 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.1 dev: true @@ -3011,7 +3254,7 @@ packages: normalize-path: 3.0.0 readdirp: 3.6.0 optionalDependencies: - fsevents: 2.3.2 + fsevents: 2.3.3 /chownr@1.1.4: resolution: {integrity: sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==} @@ -3066,10 +3309,10 @@ packages: periscopic: 3.1.0 dev: false - /codemirror@6.0.1(@lezer/common@1.0.3): + /codemirror@6.0.1(@lezer/common@1.0.4): resolution: {integrity: sha512-J8j+nZ+CdWmIeFIGXEFbFPtpiYacFMDR8GlHK3IyHQJMCaVRfGx9NT+Hxivv1ckLWPvNdZqndbr/7lVhrf/Svg==} dependencies: - '@codemirror/autocomplete': 6.8.1(@codemirror/language@6.8.0)(@codemirror/state@6.2.1)(@codemirror/view@6.14.1)(@lezer/common@1.0.3) + '@codemirror/autocomplete': 6.8.1(@codemirror/language@6.8.0)(@codemirror/state@6.2.1)(@codemirror/view@6.14.1)(@lezer/common@1.0.4) '@codemirror/commands': 6.2.4 '@codemirror/language': 6.8.0 '@codemirror/lint': 6.4.0 @@ -3151,7 +3394,7 @@ packages: /cross-fetch@3.1.8: resolution: {integrity: sha512-cvA+JwZoU0Xq+h6WkMvAUqPEYy92Obet6UdKLfW60qn99ftItKjB5T+BkyWOFWe2pUyfQ+IJHmpOTznqk1M6Kg==} dependencies: - node-fetch: 2.6.12 + node-fetch: 2.6.13 transitivePeerDependencies: - encoding dev: false @@ -3625,6 +3868,36 @@ packages: '@esbuild/win32-arm64': 0.18.17 '@esbuild/win32-ia32': 0.18.17 '@esbuild/win32-x64': 0.18.17 + dev: true + + /esbuild@0.18.20: + resolution: {integrity: sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==} + engines: {node: '>=12'} + hasBin: true + requiresBuild: true + optionalDependencies: + '@esbuild/android-arm': 0.18.20 + '@esbuild/android-arm64': 0.18.20 + '@esbuild/android-x64': 0.18.20 + '@esbuild/darwin-arm64': 0.18.20 + '@esbuild/darwin-x64': 0.18.20 + '@esbuild/freebsd-arm64': 0.18.20 + '@esbuild/freebsd-x64': 0.18.20 + '@esbuild/linux-arm': 0.18.20 + '@esbuild/linux-arm64': 0.18.20 + '@esbuild/linux-ia32': 0.18.20 + '@esbuild/linux-loong64': 0.18.20 + '@esbuild/linux-mips64el': 0.18.20 + '@esbuild/linux-ppc64': 0.18.20 + '@esbuild/linux-riscv64': 0.18.20 + '@esbuild/linux-s390x': 0.18.20 + '@esbuild/linux-x64': 0.18.20 + '@esbuild/netbsd-x64': 0.18.20 + '@esbuild/openbsd-x64': 0.18.20 + '@esbuild/sunos-x64': 0.18.20 + '@esbuild/win32-arm64': 0.18.20 + '@esbuild/win32-ia32': 0.18.20 + '@esbuild/win32-x64': 0.18.20 /escalade@3.1.1: resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} @@ -3658,13 +3931,13 @@ packages: source-map: 0.6.1 dev: true - /eslint-config-prettier@8.10.0(eslint@8.46.0): - resolution: {integrity: sha512-SM8AMJdeQqRYT9O9zguiruQZaN7+z+E4eAP9oiLNGKMtomwaB1E9dcgUD6ZAn/eQAb52USbvezbiljfZUhbJcg==} + /eslint-config-prettier@9.0.0(eslint@8.47.0): + resolution: {integrity: sha512-IcJsTkJae2S35pRsRAwoCE+925rJJStOdkKnLVgtE+tEpqU0EVVM7OqrwxqgptKdX29NUwC82I5pXsGFIgSevw==} hasBin: true peerDependencies: eslint: '>=7.0.0' dependencies: - eslint: 8.46.0 + eslint: 8.47.0 dev: true /eslint-plugin-svelte@2.32.2(eslint@8.44.0)(svelte@packages+svelte): @@ -3695,8 +3968,8 @@ packages: - ts-node dev: true - /eslint-plugin-svelte@2.32.4(eslint@8.46.0)(svelte@packages+svelte): - resolution: {integrity: sha512-VJ12i2Iogug1jvhwxSlognnfGj76P5gks/V4pUD4SCSVQOp14u47MNP0zAG8AQR3LT0Fi1iUvIFnY4l9z5Rwbg==} + /eslint-plugin-svelte@2.33.0(eslint@8.47.0)(svelte@packages+svelte): + resolution: {integrity: sha512-kk7Z4BfxVjFYJseFcOpS8kiKNio7KnAnhFagmM89h1wNSKlM7tIn+uguNQppKM9leYW+S+Us0Rjg2Qg3zsEcvg==} engines: {node: ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0-0 @@ -3705,19 +3978,19 @@ packages: svelte: optional: true dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.46.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@8.47.0) '@jridgewell/sourcemap-codec': 1.4.15 debug: 4.3.4 - eslint: 8.46.0 + eslint: 8.47.0 esutils: 2.0.3 known-css-properties: 0.28.0 - postcss: 8.4.27 - postcss-load-config: 3.1.4(postcss@8.4.27) - postcss-safe-parser: 6.0.0(postcss@8.4.27) + postcss: 8.4.28 + postcss-load-config: 3.1.4(postcss@8.4.28) + postcss-safe-parser: 6.0.0(postcss@8.4.28) postcss-selector-parser: 6.0.13 semver: 7.5.4 svelte: link:packages/svelte - svelte-eslint-parser: 0.32.2(svelte@packages+svelte) + svelte-eslint-parser: 0.33.0(svelte@packages+svelte) transitivePeerDependencies: - supports-color - ts-node @@ -3748,17 +4021,17 @@ packages: strip-indent: 3.0.0 dev: true - /eslint-plugin-unicorn@47.0.0(eslint@8.46.0): - resolution: {integrity: sha512-ivB3bKk7fDIeWOUmmMm9o3Ax9zbMz1Bsza/R2qm46ufw4T6VBFBaJIR1uN3pCKSmSXm8/9Nri8V+iUut1NhQGA==} + /eslint-plugin-unicorn@48.0.1(eslint@8.47.0): + resolution: {integrity: sha512-FW+4r20myG/DqFcCSzoumaddKBicIPeFnTrifon2mWIzlfyvzwyqZjqVP7m4Cqr/ZYisS2aiLghkUWaPg6vtCw==} engines: {node: '>=16'} peerDependencies: - eslint: '>=8.38.0' + eslint: '>=8.44.0' dependencies: '@babel/helper-validator-identifier': 7.22.5 - '@eslint-community/eslint-utils': 4.4.0(eslint@8.46.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@8.47.0) ci-info: 3.8.0 clean-regexp: 1.0.0 - eslint: 8.46.0 + eslint: 8.47.0 esquery: 1.5.0 indent-string: 4.0.0 is-builtin-module: 3.2.1 @@ -3768,8 +4041,7 @@ packages: read-pkg-up: 7.0.1 regexp-tree: 0.1.27 regjsparser: 0.10.0 - safe-regex: 2.1.1 - semver: 7.5.3 + semver: 7.5.4 strip-indent: 3.0.0 dev: true @@ -3802,8 +4074,8 @@ packages: engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /eslint-visitor-keys@3.4.2: - resolution: {integrity: sha512-8drBzUEyZ2llkpCA67iYrgEssKDUu68V8ChqqOfFupIaG/LCVPUT+CoGJpT77zJprs4T/W7p07LP7zAIMuweVw==} + /eslint-visitor-keys@3.4.3: + resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true @@ -3855,15 +4127,15 @@ packages: - supports-color dev: true - /eslint@8.46.0: - resolution: {integrity: sha512-cIO74PvbW0qU8e0mIvk5IV3ToWdCq5FYG6gWPHHkx6gNdjlbAYvtfHmlCMXxjcoVaIdwy/IAt3+mDkZkfvb2Dg==} + /eslint@8.47.0: + resolution: {integrity: sha512-spUQWrdPt+pRVP1TTJLmfRNJJHHZryFmptzcafwSvHsceV81djHOdnEeDmkdotZyLNjDhrOasNK8nikkoG1O8Q==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} hasBin: true dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.46.0) - '@eslint-community/regexpp': 4.6.2 - '@eslint/eslintrc': 2.1.1 - '@eslint/js': 8.46.0 + '@eslint-community/eslint-utils': 4.4.0(eslint@8.47.0) + '@eslint-community/regexpp': 4.7.0 + '@eslint/eslintrc': 2.1.2 + '@eslint/js': 8.47.0 '@humanwhocodes/config-array': 0.11.10 '@humanwhocodes/module-importer': 1.0.1 '@nodelib/fs.walk': 1.2.8 @@ -3874,7 +4146,7 @@ packages: doctrine: 3.0.0 escape-string-regexp: 4.0.0 eslint-scope: 7.2.2 - eslint-visitor-keys: 3.4.2 + eslint-visitor-keys: 3.4.3 espree: 9.6.1 esquery: 1.5.0 esutils: 2.0.3 @@ -3882,7 +4154,7 @@ packages: file-entry-cache: 6.0.1 find-up: 5.0.0 glob-parent: 6.0.2 - globals: 13.20.0 + globals: 13.21.0 graphemer: 1.4.0 ignore: 5.2.4 imurmurhash: 0.1.4 @@ -3919,7 +4191,7 @@ packages: dependencies: acorn: 8.10.0 acorn-jsx: 5.3.2(acorn@8.10.0) - eslint-visitor-keys: 3.4.2 + eslint-visitor-keys: 3.4.3 dev: true /esprima@4.0.1: @@ -4171,6 +4443,14 @@ packages: engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} os: [darwin] requiresBuild: true + dev: true + optional: true + + /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 optional: true /function-bind@1.1.1: @@ -4292,6 +4572,13 @@ packages: type-fest: 0.20.2 dev: true + /globals@13.21.0: + resolution: {integrity: sha512-ybyme3s4yy/t/3s35bewwXKOf7cvzfreG2lH0lZl0JB7I4GxRP2ghxOK/Nb9EkRXdbBXZLfq/p/0W2JUONB/Gg==} + engines: {node: '>=8'} + dependencies: + type-fest: 0.20.2 + dev: true + /globalthis@1.0.3: resolution: {integrity: sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==} engines: {node: '>= 0.4'} @@ -4475,7 +4762,7 @@ packages: resolution: {integrity: sha512-sNRVfUwkUcsVWNn5inTHDXWzpPRWPWbSgGkuQmlsFCWXAR2+K5R5vG5tC3Qs4LeJaMugKB8hGVm6rvZjFHQrUw==} engines: {node: '>=12.0.0'} dependencies: - sharp: 0.32.4 + sharp: 0.32.5 dev: true /immutable@4.3.2: @@ -4876,84 +5163,93 @@ packages: type-check: 0.4.0 dev: true - /lightningcss-darwin-arm64@1.21.5: - resolution: {integrity: sha512-z05hyLX85WY0UfhkFUOrWEFqD69lpVAmgl3aDzMKlIZJGygbhbegqb4PV8qfUrKKNBauut/qVNPKZglhTaDDxA==} + /lightningcss-darwin-arm64@1.21.7: + resolution: {integrity: sha512-tt7hIsFio9jZofTVHtCACz6rB6c9RyABMXfA9A/VcKOjS3sq+koX/QkRJWY06utwOImbJIXBC5hbg9t3RkPUAQ==} engines: {node: '>= 12.0.0'} cpu: [arm64] os: [darwin] requiresBuild: true optional: true - /lightningcss-darwin-x64@1.21.5: - resolution: {integrity: sha512-MSJhmej/U9MrdPxDk7+FWhO8+UqVoZUHG4VvKT5RQ4RJtqtANTiWiI97LvoVNMtdMnHaKs1Pkji6wHUFxjJsHQ==} + /lightningcss-darwin-x64@1.21.7: + resolution: {integrity: sha512-F4gS4bf7eWekfPT+TxJNm/pF+QRgZiTrTkQH6cw4/UWfdeZISfuhD5El2dm16giFnY0K5ylIwO+ZusgYNkGSXA==} engines: {node: '>= 12.0.0'} cpu: [x64] os: [darwin] requiresBuild: true optional: true - /lightningcss-linux-arm-gnueabihf@1.21.5: - resolution: {integrity: sha512-xN6+5/JsMrbZHL1lPl+MiNJ3Xza12ueBKPepiyDCFQzlhFRTj7D0LG+cfNTzPBTO8KcYQynLpl1iBB8LGp3Xtw==} + /lightningcss-freebsd-x64@1.21.7: + resolution: {integrity: sha512-RMfNzJWXCSfPnL55fcLWEAadcY6QUFT0S8NceNKYzp1KiCZtkJIy6RQ5SaVxPzRqd3iMsahUf5sfnG8N1UQSNQ==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [freebsd] + requiresBuild: true + optional: true + + /lightningcss-linux-arm-gnueabihf@1.21.7: + resolution: {integrity: sha512-biSRUDZNx7vubWP1jArw/qqfZKPGpkV/qzunasZzxmqijbZ43sW9faDQYxWNcxPWljJJdF/qs6qcurYFovWtrQ==} engines: {node: '>= 12.0.0'} cpu: [arm] os: [linux] requiresBuild: true optional: true - /lightningcss-linux-arm64-gnu@1.21.5: - resolution: {integrity: sha512-KfzFNhC4XTbmG3ma/xcTs/IhCwieW89XALIusKmnV0N618ZDXEB0XjWOYQRCXeK9mfqPdbTBpurEHV/XZtkniQ==} + /lightningcss-linux-arm64-gnu@1.21.7: + resolution: {integrity: sha512-PENY8QekqL9TG3AY/A7rkUBb5ymefGxea7Oe7+x7Hbw4Bz4Hpj5cec5OoMypMqFbURPmpi0fTWx4vSWUPzpDcA==} engines: {node: '>= 12.0.0'} cpu: [arm64] os: [linux] requiresBuild: true optional: true - /lightningcss-linux-arm64-musl@1.21.5: - resolution: {integrity: sha512-bc0GytQO5Mn9QM6szaZ+31fQHNdidgpM1sSCwzPItz8hg3wOvKl8039rU0veMJV3ZgC9z0ypNRceLrSHeRHmXw==} + /lightningcss-linux-arm64-musl@1.21.7: + resolution: {integrity: sha512-pfOipKvA/0X1OjRaZt3870vnV9UGBSjayIqHh0fGx/+aRz3O0MVFHE/60P2UWXpM3YGJEw/hMWtNkrFwqOge8A==} engines: {node: '>= 12.0.0'} cpu: [arm64] os: [linux] requiresBuild: true optional: true - /lightningcss-linux-x64-gnu@1.21.5: - resolution: {integrity: sha512-JwMbgypPQgc2kW2av3OwzZ8cbrEuIiDiXPJdXRE6aVxu67yHauJawQLqJKTGUhiAhy6iLDG8Wg0a3/ziL+m+Kw==} + /lightningcss-linux-x64-gnu@1.21.7: + resolution: {integrity: sha512-dgcsis4TAA7s0ia4f31QHX+G4PWPwxk+wJaEQLaV0NdJs09O5hHoA8DpLEr8nrvc/tsRTyVNBP1rDtgzySjpXg==} engines: {node: '>= 12.0.0'} cpu: [x64] os: [linux] requiresBuild: true optional: true - /lightningcss-linux-x64-musl@1.21.5: - resolution: {integrity: sha512-Ib8b6IQ/OR/VrPU6YBgy4T3QnuHY7DUa95O+nz+cwrTkMSN6fuHcTcIaz4t8TJ6HI5pl3uxUOZjmtls2pyQWow==} + /lightningcss-linux-x64-musl@1.21.7: + resolution: {integrity: sha512-A+9dXpxld3p4Cd6fxev2eqEvaauYtrgNpXV3t7ioCJy30Oj9nYiNGwiGusM+4MJVcEpUPGUGiuAqY4sWilRDwA==} engines: {node: '>= 12.0.0'} cpu: [x64] os: [linux] requiresBuild: true optional: true - /lightningcss-win32-x64-msvc@1.21.5: - resolution: {integrity: sha512-A8cSi8lUpBeVmoF+DqqW7cd0FemDbCuKr490IXdjyeI+KL8adpSKUs8tcqO0OXPh1EoDqK7JNkD/dELmd4Iz5g==} + /lightningcss-win32-x64-msvc@1.21.7: + resolution: {integrity: sha512-07/8vogEq+C/mF99pdMhh/f19/xreq8N9Ca6AWeVHZIdODyF/pt6KdKSCWDZWIn+3CUxI8gCJWuUWyOc3xymvw==} engines: {node: '>= 12.0.0'} cpu: [x64] os: [win32] requiresBuild: true optional: true - /lightningcss@1.21.5: - resolution: {integrity: sha512-/pEUPeih2EwIx9n4T82aOG6CInN83tl/mWlw6B5gWLf36UplQi1L+5p3FUHsdt4fXVfOkkh9KIaM3owoq7ss8A==} + /lightningcss@1.21.7: + resolution: {integrity: sha512-xITZyh5sLFwRPYUSw15T00Rm7gcQ1qOPuQwNOcvHsTm6nLWTQ723w7zl42wrC5t+xtdg6FPmnXHml1nZxxvp1w==} engines: {node: '>= 12.0.0'} dependencies: detect-libc: 1.0.3 optionalDependencies: - lightningcss-darwin-arm64: 1.21.5 - lightningcss-darwin-x64: 1.21.5 - lightningcss-linux-arm-gnueabihf: 1.21.5 - lightningcss-linux-arm64-gnu: 1.21.5 - lightningcss-linux-arm64-musl: 1.21.5 - lightningcss-linux-x64-gnu: 1.21.5 - lightningcss-linux-x64-musl: 1.21.5 - lightningcss-win32-x64-msvc: 1.21.5 + lightningcss-darwin-arm64: 1.21.7 + lightningcss-darwin-x64: 1.21.7 + lightningcss-freebsd-x64: 1.21.7 + lightningcss-linux-arm-gnueabihf: 1.21.7 + lightningcss-linux-arm64-gnu: 1.21.7 + lightningcss-linux-arm64-musl: 1.21.7 + lightningcss-linux-x64-gnu: 1.21.7 + lightningcss-linux-x64-musl: 1.21.7 + lightningcss-win32-x64-msvc: 1.21.7 /lilconfig@2.1.0: resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==} @@ -5066,8 +5362,8 @@ packages: dependencies: '@jridgewell/sourcemap-codec': 1.4.15 - /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 @@ -5095,8 +5391,8 @@ packages: hasBin: true dev: false - /marked@6.0.0: - resolution: {integrity: sha512-7E3m/xIlymrFL5gWswIT4CheIE3fDeh51NV09M4x8iOc7NDYlyERcQMLAIHcSlrvwliwbPQ4OGD+MpPSYiQcqw==} + /marked@7.0.4: + resolution: {integrity: sha512-t8eP0dXRJMtMvBojtkcsA7n48BkauktUKzfkPSCq85ZMTJ0v76Rke4DYz01omYpPTUh4p/f7HePgRo3ebG8+QQ==} engines: {node: '>= 16'} hasBin: true dev: true @@ -5292,8 +5588,8 @@ packages: resolution: {integrity: sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==} dev: false - /node-abi@3.45.0: - resolution: {integrity: sha512-iwXuFrMAcFVi/ZoZiqq8BzAdsLw9kxDfTC0HMyjXfSL/6CSDAGD5UmR7azrAgWV1zKYq7dUUMj4owusBWKLsiQ==} + /node-abi@3.47.0: + resolution: {integrity: sha512-2s6B2CWZM//kPgwnuI0KrYwNjfdByE25zvAaEpq9IH4zcNsarH8Ihu/UuX6XMPEogDAxkuUFeZn60pXNHAqn3A==} engines: {node: '>=10'} dependencies: semver: 7.5.4 @@ -5325,6 +5621,19 @@ packages: optional: true dependencies: whatwg-url: 5.0.0 + dev: true + + /node-fetch@2.6.13: + resolution: {integrity: sha512-StxNAxh15zr77QvvkmveSQ8uCQ4+v5FkvNTj0OESmiHu+VRi/gXArXtkWMElOsOUNLtUEvI4yS+rdtOHZTwlQA==} + engines: {node: 4.x || >=6.0.0} + peerDependencies: + encoding: ^0.1.0 + peerDependenciesMeta: + encoding: + optional: true + dependencies: + whatwg-url: 5.0.0 + dev: false /node-gyp-build@4.6.0: resolution: {integrity: sha512-NTZVKn9IylLwUzaKjkas1e4u2DLNcV4rdYagA4PWdPwW87Bi7z+BznyKSRwS/761tV/lzCGXplWsiaMjLqP2zQ==} @@ -5679,7 +5988,7 @@ packages: yaml: 1.10.2 dev: true - /postcss-load-config@3.1.4(postcss@8.4.27): + /postcss-load-config@3.1.4(postcss@8.4.28): resolution: {integrity: sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==} engines: {node: '>= 10'} peerDependencies: @@ -5692,7 +6001,7 @@ packages: optional: true dependencies: lilconfig: 2.1.0 - postcss: 8.4.27 + postcss: 8.4.28 yaml: 1.10.2 dev: true @@ -5705,13 +6014,13 @@ packages: postcss: 8.4.24 dev: true - /postcss-safe-parser@6.0.0(postcss@8.4.27): + /postcss-safe-parser@6.0.0(postcss@8.4.28): resolution: {integrity: sha512-FARHN8pwH+WiS2OPCxJI8FuRJpTVnn6ZNFiqAM2aeW2LwTHWWmWgIyKC6cUo0L8aeKiF/14MNvnpls6R2PBeMQ==} engines: {node: '>=12.0'} peerDependencies: postcss: ^8.3.3 dependencies: - postcss: 8.4.27 + postcss: 8.4.28 dev: true /postcss-scss@4.0.6(postcss@8.4.24): @@ -5723,13 +6032,13 @@ packages: postcss: 8.4.24 dev: true - /postcss-scss@4.0.6(postcss@8.4.27): - resolution: {integrity: sha512-rLDPhJY4z/i4nVFZ27j9GqLxj1pwxE80eAzUNRMXtcpipFYIeowerzBgG3yJhMtObGEXidtIgbUpQ3eLDsf5OQ==} + /postcss-scss@4.0.7(postcss@8.4.28): + resolution: {integrity: sha512-xPv2GseoyXPa58Nro7M73ZntttusuCmZdeOojUFR5PZDz2BR62vfYx1w9TyOnp1+nYFowgOMipsCBhxzVkAEPw==} engines: {node: '>=12.0'} peerDependencies: postcss: ^8.4.19 dependencies: - postcss: 8.4.27 + postcss: 8.4.28 dev: true /postcss-selector-parser@6.0.13: @@ -5753,8 +6062,8 @@ packages: source-map-js: 1.0.2 dev: true - /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 @@ -5772,7 +6081,7 @@ packages: minimist: 1.2.8 mkdirp-classic: 0.5.3 napi-build-utils: 1.0.2 - node-abi: 3.45.0 + node-abi: 3.47.0 pump: 3.0.0 rc: 1.2.8 simple-get: 4.0.1 @@ -5810,13 +6119,13 @@ packages: svelte: link:packages/svelte dev: true - /prettier-plugin-svelte@3.0.3(prettier@3.0.1)(svelte@packages+svelte): + /prettier-plugin-svelte@3.0.3(prettier@3.0.2)(svelte@packages+svelte): resolution: {integrity: sha512-dLhieh4obJEK1hnZ6koxF+tMUrZbV5YGvRpf2+OADyanjya5j0z1Llo8iGwiHmFWZVG/hLEw/AJD5chXd9r3XA==} peerDependencies: prettier: ^3.0.0 svelte: ^3.2.0 || ^4.0.0-next.0 dependencies: - prettier: 3.0.1 + prettier: 3.0.2 svelte: link:packages/svelte dev: true @@ -5826,8 +6135,8 @@ packages: hasBin: true dev: true - /prettier@3.0.1: - resolution: {integrity: sha512-fcOWSnnpCrovBsmFZIGIy9UqK2FaI7Hqax+DIO0A9UxeVoY4iweyaFjS5TavZN97Hfehph0nhsZnjlVKzEQSrQ==} + /prettier@3.0.2: + resolution: {integrity: sha512-o2YR9qtniXvwEZlOKbveKfDQVyqxbEIWn48Z8m3ZJjBjcCmUy3xZGIv+7AkaeuaTr6yPXJjwv07ZWlsWbEy1rQ==} engines: {node: '>=14'} hasBin: true dev: true @@ -6056,7 +6365,7 @@ packages: engines: {node: '>=14.18.0', npm: '>=8.0.0'} hasBin: true optionalDependencies: - fsevents: 2.3.2 + fsevents: 2.3.3 dev: true /rollup@3.26.2: @@ -6064,15 +6373,15 @@ packages: engines: {node: '>=14.18.0', npm: '>=8.0.0'} hasBin: true optionalDependencies: - fsevents: 2.3.2 + fsevents: 2.3.3 dev: true - /rollup@3.27.1: - resolution: {integrity: sha512-tXNDFwOkN6C2w5Blj1g6ForKeFw6c1mDu5jxoeDO3/pmYjgt+8yvIFjKzH5FQUq70OKZBkOt0zzv0THXL7vwzQ==} + /rollup@3.28.0: + resolution: {integrity: sha512-d7zhvo1OUY2SXSM6pfNjgD5+d0Nz87CUp4mt8l/GgVP3oBsPwzNvSzyu1me6BSG9JIgWNTVcafIXBIyM8yQ3yw==} engines: {node: '>=14.18.0', npm: '>=8.0.0'} hasBin: true optionalDependencies: - fsevents: 2.3.2 + fsevents: 2.3.3 /rrweb-cssom@0.6.0: resolution: {integrity: sha512-APM0Gt1KoXBz0iIkkdB/kfvGOwC4UuJFeG/c+yV7wSc7q96cG/kJ0HiYCnzivD9SB53cLV1MlHFNfOuPaadYSw==} @@ -6121,8 +6430,8 @@ packages: rimraf: 2.7.1 dev: true - /sass@1.64.2: - resolution: {integrity: sha512-TnDlfc+CRnUAgLO9D8cQLFu/GIjJIzJCGkE7o4ekIGQOH7T3GetiRR/PsTWJUHhkzcSPrARkPI+gNWn5alCzDg==} + /sass@1.66.1: + resolution: {integrity: sha512-50c+zTsZOJVgFfTgwwEzkjA3/QACgdNsKueWPyAR0mRINIvLAStVQBbPg14iuqEQ74NPDbXzJARJ/O4SI1zftA==} engines: {node: '>=14.0.0'} hasBin: true dependencies: @@ -6136,8 +6445,8 @@ packages: ultrahtml: 1.2.0 dev: true - /satori@0.10.2: - resolution: {integrity: sha512-38povLat5QMuKiKBudM/oIk+a0Z5tEfHh8oD/bsh58L0jlOXxfuhAVpDtlG3M0g5FGLajIV0LaKQftXtaYoSUQ==} + /satori@0.10.3: + resolution: {integrity: sha512-8tZPu7AGiRWimbOyja1s2HK0hEC4DacZ8cAKDITxlVI5tKQZbOuMiVgSB50CABwc0I4Imgtkq7o9Egj1WOJTKg==} engines: {node: '>=16'} dependencies: '@shuding/opentype.js': 1.4.0-beta.0 @@ -6196,8 +6505,8 @@ packages: /set-cookie-parser@2.6.0: resolution: {integrity: sha512-RVnVQxTXuerk653XfuliOxBP81Sf0+qfQE73LIYKcyMYHG94AuH0kgrQpRDuTZnSmjpysHmzxJXKNfa6PjFhyQ==} - /sharp@0.32.4: - resolution: {integrity: sha512-exUnZewqVZC6UXqXuQ8fyJJv0M968feBi04jb9GcUHrWtkRoAKnbJt8IfwT4NJs7FskArbJ14JAFGVuooszoGg==} + /sharp@0.32.5: + resolution: {integrity: sha512-0dap3iysgDkNaPOaOL4X/0akdu0ma62GcdC2NBQ+93eqpePdDdr2/LM0sFdDSMmN7yS+odyZtPsb7tx/cYBKnQ==} engines: {node: '>=14.15.0'} requiresBuild: true dependencies: @@ -6413,8 +6722,8 @@ packages: resolution: {integrity: sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==} engines: {node: '>=10.0.0'} - /streamx@2.15.0: - resolution: {integrity: sha512-HcxY6ncGjjklGs1xsP1aR71INYcsXFJet5CU1CHqihQ2J5nOsbd4OjgjHO42w/4QNv9gZb3BueV+Vxok5pLEXg==} + /streamx@2.15.1: + resolution: {integrity: sha512-fQMzy2O/Q47rgwErk/eGeLu/roaFWV0jVsogDmrszM9uIw8L5OA+t+V93MgYlufNptfjmYR1tOMWhei/Eh7TQA==} dependencies: fast-fifo: 1.3.0 queue-tick: 1.0.1 @@ -6511,6 +6820,10 @@ packages: resolution: {integrity: sha512-78Jv8kYJdjbvRwwijtCevYADfsI0lGzYJe4mMFdceO8l75DFFDoqBhR1jVDicDRRaX4//g1u9wKeo+ztc2h1Rw==} dev: false + /style-mod@4.1.0: + resolution: {integrity: sha512-Ca5ib8HrFn+f+0n4N4ScTIA9iTOQ7MaGS1ylHcoVqW9J7w2w8PzN6g9gKmTYgGEBH8e120+RCmhpje6jC5uGWA==} + dev: false + /supports-color@5.5.0: resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} engines: {node: '>=4'} @@ -6530,20 +6843,20 @@ packages: engines: {node: '>= 0.4'} dev: true - /svelte-check@3.4.6(postcss@8.4.24)(sass@1.64.2)(svelte@packages+svelte): - resolution: {integrity: sha512-OBlY8866Zh1zHQTkBMPS6psPi7o2umTUyj6JWm4SacnIHXpWFm658pG32m3dKvKFL49V4ntAkfFHKo4ztH07og==} + /svelte-check@3.5.0(postcss@8.4.24)(sass@1.66.1)(svelte@packages+svelte): + resolution: {integrity: sha512-KHujbn4k17xKYLmtCwv0sKKM7uiHTYcQvXnvrCcNU6a7hcszh99zFTIoiu/Sp/ewAw5aJmillJ1Cs8gKLmcX4A==} hasBin: true peerDependencies: svelte: ^3.55.0 || ^4.0.0-next.0 || ^4.0.0 dependencies: - '@jridgewell/trace-mapping': 0.3.18 + '@jridgewell/trace-mapping': 0.3.19 chokidar: 3.5.3 fast-glob: 3.3.1 import-fresh: 3.3.0 picocolors: 1.0.0 sade: 1.8.1 svelte: link:packages/svelte - svelte-preprocess: 5.0.4(postcss@8.4.24)(sass@1.64.2)(svelte@packages+svelte)(typescript@5.1.6) + svelte-preprocess: 5.0.4(postcss@8.4.24)(sass@1.66.1)(svelte@packages+svelte)(typescript@5.1.6) typescript: 5.1.6 transitivePeerDependencies: - '@babel/core' @@ -6574,8 +6887,8 @@ packages: svelte: link:packages/svelte dev: true - /svelte-eslint-parser@0.32.2(svelte@packages+svelte): - resolution: {integrity: sha512-Ok9D3A4b23iLQsONrjqtXtYDu5ZZ/826Blaw2LeFZVTg1pwofKDG4mz3/GYTax8fQ0plRGHI6j+d9VQYy5Lo/A==} + /svelte-eslint-parser@0.33.0(svelte@packages+svelte): + resolution: {integrity: sha512-5awZ6Bs+Tb/zQwa41PSdcLynAVQTwW0HGyCBjtbAQ59taLZqDgQSMzRlDmapjZdDtzERm0oXDZNE0E+PKJ6ryg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: svelte: ^3.37.0 || ^4.0.0 @@ -6584,18 +6897,18 @@ packages: optional: true dependencies: eslint-scope: 7.2.2 - eslint-visitor-keys: 3.4.2 + eslint-visitor-keys: 3.4.3 espree: 9.6.1 - postcss: 8.4.27 - postcss-scss: 4.0.6(postcss@8.4.27) + postcss: 8.4.28 + postcss-scss: 4.0.7(postcss@8.4.28) svelte: link:packages/svelte dev: true - /svelte-hmr@0.15.2(svelte@packages+svelte): - resolution: {integrity: sha512-q/bAruCvFLwvNbeE1x3n37TYFb3mTBJ6TrCq6p2CoFbSTNhDE9oAtEfpy+wmc9So8AG0Tja+X0/mJzX9tSfvIg==} + /svelte-hmr@0.15.3(svelte@packages+svelte): + resolution: {integrity: sha512-41snaPswvSf8TJUhlkoJBekRrABDXDMdpNpT2tfHIv4JuhgvHqLMhEPGtaQn0BmbNSTkuz2Ed20DF2eHw0SmBQ==} engines: {node: ^12.20 || ^14.13.1 || >= 16} peerDependencies: - svelte: ^3.19.0 || ^4.0.0-next.0 + svelte: ^3.19.0 || ^4.0.0 dependencies: svelte: link:packages/svelte @@ -6616,8 +6929,8 @@ packages: svelte: link:packages/svelte dev: false - /svelte-local-storage-store@0.5.0(svelte@packages+svelte): - resolution: {integrity: sha512-SEDrpapeia6fUqta+r1NvSLlJYPkZ4pBcl15EYIOSPNzy6vhpoXu8cnzUDmZxsWl7fZGAHxrVH9UyZCbyO4W+g==} + /svelte-local-storage-store@0.6.0(svelte@packages+svelte): + resolution: {integrity: sha512-UbCY/yT/YUadU5IX/gZkoRQnA+ebFZHKKQjlJvfWHnBj3CPe9sNn8ndxYz/xy4LUzGjuBLq8+wH5RYK54ba3wA==} engines: {node: '>=0.14'} peerDependencies: svelte: ^3.48.0 || ^4.0.0 @@ -6625,7 +6938,7 @@ packages: svelte: link:packages/svelte dev: true - /svelte-preprocess@5.0.4(postcss@8.4.24)(sass@1.64.2)(svelte@packages+svelte)(typescript@5.1.6): + /svelte-preprocess@5.0.4(postcss@8.4.24)(sass@1.66.1)(svelte@packages+svelte)(typescript@5.1.6): resolution: {integrity: sha512-ABia2QegosxOGsVlsSBJvoWeXy1wUKSfF7SWJdTjLAbx/Y3SrVevvvbFNQqrSJw89+lNSsM58SipmZJ5SRi5iw==} engines: {node: '>= 14.10.0'} requiresBuild: true @@ -6667,7 +6980,7 @@ packages: detect-indent: 6.1.0 magic-string: 0.27.0 postcss: 8.4.24 - sass: 1.64.2 + sass: 1.66.1 sorcery: 0.11.0 strip-indent: 3.0.0 svelte: link:packages/svelte @@ -6711,7 +7024,7 @@ packages: dependencies: b4a: 1.6.4 fast-fifo: 1.3.0 - streamx: 2.15.0 + streamx: 2.15.1 dev: true /tar@6.1.15: @@ -6827,8 +7140,8 @@ packages: typescript: 5.1.3 dev: true - /ts-api-utils@1.0.1(typescript@5.1.3): - resolution: {integrity: sha512-lC/RGlPmwdrIBFTX59wwNzqh7aR2otPNPR/5brHZm/XKFYKsfqxihXUe9pU3JI+3vGkl+vyCoNNnPhJn3aLK1A==} + /ts-api-utils@1.0.2(typescript@5.1.3): + resolution: {integrity: sha512-Cbu4nIqnEdd+THNEsBdkolnOXhg0I8XteoHaEKgvsxpsbWda4IsUut2c187HxywQCvveojow0Dgw/amxtSKVkQ==} engines: {node: '>=16.13.0'} peerDependencies: typescript: '>=4.2.0' @@ -6840,16 +7153,6 @@ packages: resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} dev: true - /tsutils@3.21.0(typescript@5.1.3): - 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.3 - dev: true - /tsutils@3.21.0(typescript@5.1.6): resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==} engines: {node: '>= 6'} @@ -6970,8 +7273,8 @@ packages: which-boxed-primitive: 1.0.2 dev: true - /undici@5.22.1: - resolution: {integrity: sha512-Ji2IJhFXZY0x/0tVBXeQwgPlLWw13GVzpsWPQ3rV50IFMMof2I55PZZxtm4P6iNq+L5znYN9nSTAq0ZyE6lSJw==} + /undici@5.23.0: + resolution: {integrity: sha512-1D7w+fvRsqlQ9GscLBwcAJinqcZGHUKjbOmXdlE/v8BvEGXjeWAax+341q44EuTcHXXnfyKNbKRq4Lg7OzhMmg==} engines: {node: '>=14.0'} dependencies: busboy: 1.6.0 @@ -7042,11 +7345,11 @@ packages: spdx-expression-parse: 3.0.1 dev: true - /vite-imagetools@5.0.7: - resolution: {integrity: sha512-8g7RU+liA4uWuujSe3hdMTCNWimMJsdLIU5uB+/SUBQ+j0TcaMKnQZ6n4LCBF2w30ml1X8WNFGOcTblquWrgGQ==} + /vite-imagetools@5.0.8: + resolution: {integrity: sha512-oFNfc58iLz1lHFsIKQy+wp0RNcZjiaDeHYTexYowpf4RYx9tZ97eWEcw8lQ1jDT8AnOso6XZi5iGjLNAeTR9Tw==} engines: {node: '>=12.0.0'} dependencies: - '@rollup/pluginutils': 5.0.2(rollup@3.26.2) + '@rollup/pluginutils': 5.0.3 imagetools-core: 4.0.5 transitivePeerDependencies: - rollup @@ -7062,7 +7365,7 @@ packages: mlly: 1.4.0 pathe: 1.1.1 picocolors: 1.0.0 - vite: 4.4.8(@types/node@14.18.51) + vite: 4.4.9(@types/node@14.18.51) transitivePeerDependencies: - '@types/node' - less @@ -7074,8 +7377,8 @@ packages: - terser dev: true - /vite@4.4.8(@types/node@14.18.51): - resolution: {integrity: sha512-LONawOUUjxQridNWGQlNizfKH89qPigK36XhMI7COMGztz8KNY0JHim7/xDd71CZwGT4HtSRgI7Hy+RlhG0Gvg==} + /vite@4.4.9(@types/node@14.18.51): + resolution: {integrity: sha512-2mbUn2LlUmNASWwSCNSJ/EG2HuSRTnVNaydp6vMCm5VIqJsjMfbIWtbH2kDuwUVW5mMUKKZvGPX/rqeqVvv1XA==} engines: {node: ^14.18.0 || >=16.0.0} hasBin: true peerDependencies: @@ -7103,15 +7406,15 @@ packages: optional: true dependencies: '@types/node': 14.18.51 - esbuild: 0.18.11 - postcss: 8.4.27 - rollup: 3.26.2 + esbuild: 0.18.20 + postcss: 8.4.28 + rollup: 3.28.0 optionalDependencies: - fsevents: 2.3.2 + fsevents: 2.3.3 dev: true - /vite@4.4.8(@types/node@20.4.7)(lightningcss@1.21.5)(sass@1.64.2): - resolution: {integrity: sha512-LONawOUUjxQridNWGQlNizfKH89qPigK36XhMI7COMGztz8KNY0JHim7/xDd71CZwGT4HtSRgI7Hy+RlhG0Gvg==} + /vite@4.4.9(@types/node@20.5.3)(lightningcss@1.21.7)(sass@1.66.1): + resolution: {integrity: sha512-2mbUn2LlUmNASWwSCNSJ/EG2HuSRTnVNaydp6vMCm5VIqJsjMfbIWtbH2kDuwUVW5mMUKKZvGPX/rqeqVvv1XA==} engines: {node: ^14.18.0 || >=16.0.0} hasBin: true peerDependencies: @@ -7138,16 +7441,16 @@ packages: terser: optional: true dependencies: - '@types/node': 20.4.7 - esbuild: 0.18.17 - lightningcss: 1.21.5 - postcss: 8.4.27 - rollup: 3.27.1 - sass: 1.64.2 + '@types/node': 20.5.3 + esbuild: 0.18.20 + lightningcss: 1.21.7 + postcss: 8.4.28 + rollup: 3.28.0 + sass: 1.66.1 optionalDependencies: - fsevents: 2.3.2 + fsevents: 2.3.3 - /vitefu@0.2.4(vite@4.4.8): + /vitefu@0.2.4(vite@4.4.9): resolution: {integrity: sha512-fanAXjSaf9xXtOOeno8wZXIhgia+CZury481LsDaV++lSvcU2R9Ch2bPh3PYFyoHW+w9LqAeYRISVQjUIew14g==} peerDependencies: vite: ^3.0.0 || ^4.0.0 @@ -7155,7 +7458,7 @@ packages: vite: optional: true dependencies: - vite: 4.4.8(@types/node@20.4.7)(lightningcss@1.21.5)(sass@1.64.2) + vite: 4.4.9(@types/node@20.5.3)(lightningcss@1.21.7)(sass@1.66.1) /vitest@0.33.0(happy-dom@9.20.3)(jsdom@21.1.2)(playwright@1.35.1): resolution: {integrity: sha512-1CxaugJ50xskkQ0e969R/hW47za4YXDUfWJDxip1hwbnhUjYolpfUn2AMOulqG/Dtd9WYAtkHmM/m3yKVrEejQ==} @@ -7204,7 +7507,7 @@ packages: happy-dom: 9.20.3 jsdom: 21.1.2 local-pkg: 0.4.3 - magic-string: 0.30.2 + magic-string: 0.30.3 pathe: 1.1.1 picocolors: 1.0.0 playwright: 1.35.1 @@ -7212,7 +7515,7 @@ packages: strip-literal: 1.0.1 tinybench: 2.5.0 tinypool: 0.6.0 - vite: 4.4.8(@types/node@14.18.51) + vite: 4.4.9(@types/node@14.18.51) vite-node: 0.33.0(@types/node@14.18.51) why-is-node-running: 2.2.2 transitivePeerDependencies: diff --git a/sites/svelte.dev/package.json b/sites/svelte.dev/package.json index b74cb730bbf4..5e6fd4fcca78 100644 --- a/sites/svelte.dev/package.json +++ b/sites/svelte.dev/package.json @@ -18,7 +18,7 @@ }, "dependencies": { "@jridgewell/sourcemap-codec": "^1.4.15", - "@supabase/supabase-js": "^2.31.0", + "@supabase/supabase-js": "^2.33.1", "@sveltejs/repl": "0.5.0", "cookie": "^0.5.0", "devalue": "^4.3.2", @@ -29,32 +29,32 @@ "devDependencies": { "@resvg/resvg-js": "^2.4.1", "@sveltejs/adapter-vercel": "^3.0.3", - "@sveltejs/kit": "^1.22.4", - "@sveltejs/site-kit": "6.0.0-next.25", - "@sveltejs/vite-plugin-svelte": "^2.4.3", + "@sveltejs/kit": "^1.22.6", + "@sveltejs/site-kit": "6.0.0-next.32", + "@sveltejs/vite-plugin-svelte": "^2.4.5", "@types/cookie": "^0.5.1", - "@types/node": "^20.4.7", + "@types/node": "^20.5.3", "browserslist": "^4.21.10", "degit": "^2.8.4", "dotenv": "^16.3.1", "jimp": "^0.22.10", - "lightningcss": "^1.21.5", - "magic-string": "^0.30.2", - "marked": "^6.0.0", - "prettier": "^3.0.1", + "lightningcss": "^1.21.7", + "magic-string": "^0.30.3", + "marked": "^7.0.4", + "prettier": "^3.0.2", "prettier-plugin-svelte": "^3.0.3", - "sass": "^1.64.2", - "satori": "^0.10.2", + "sass": "^1.66.1", + "satori": "^0.10.3", "satori-html": "^0.3.2", "shelljs": "^0.8.5", "shiki": "^0.14.3", "shiki-twoslash": "^3.1.2", "svelte": "workspace:*", - "svelte-check": "^3.4.6", + "svelte-check": "^3.5.0", "svelte-preprocess": "^5.0.4", "tiny-glob": "^0.2.9", "typescript": "^5.1.6", - "vite": "^4.4.8", - "vite-imagetools": "^5.0.7" + "vite": "^4.4.9", + "vite-imagetools": "^5.0.8" } } diff --git a/sites/svelte.dev/src/lib/server/docs/index.js b/sites/svelte.dev/src/lib/server/docs/index.js index 29457886ea66..4a4f9d6e42e7 100644 --- a/sites/svelte.dev/src/lib/server/docs/index.js +++ b/sites/svelte.dev/src/lib/server/docs/index.js @@ -76,7 +76,7 @@ export async function get_docs_data(base = CONTENT_BASE_PATHS.DOCS) { slug: page_slug, content: page_content, category: category_title, - sections: get_sections(page_content), + sections: await get_sections(page_content), path: `${app_base}/docs/${page_slug}`, file: `${category_dir}/${filename}` }); @@ -99,9 +99,9 @@ export function get_docs_list(docs_data) { })); } -const titled = (str) => +const titled = async (str) => removeMarkdown( - escape(markedTransform(str, { paragraph: (txt) => txt })) + escape(await markedTransform(str, { paragraph: (txt) => txt })) .replace(/<\/?code>/g, '') .replace(/'/g, "'") .replace(/"/g, '"') @@ -111,7 +111,7 @@ const titled = (str) => ); /** @param {string} markdown */ -function get_sections(markdown) { +async function get_sections(markdown) { const lines = markdown.split('\n'); const root = /** @type {import('./types').Section} */ ({ title: 'Root', @@ -122,11 +122,11 @@ function get_sections(markdown) { }); let currentNodes = [root]; - lines.forEach((line) => { + for (const line of lines) { const match = line.match(/^(#{2,4})\s(.*)/); if (match) { const level = match[1].length - 2; - const text = titled(match[2]); + const text = await titled(match[2]); const slug = normalizeSlugify(text); // Prepare new node @@ -149,7 +149,7 @@ function get_sections(markdown) { // Add non-heading line to the text of the current section currentNodes[currentNodes.length - 1].text += line + '\n'; } - }); + } return root.sections; } diff --git a/sites/svelte.dev/src/routes/content.json/content.server.js b/sites/svelte.dev/src/routes/content.json/content.server.js index 5dc2355fda01..162b115a1631 100644 --- a/sites/svelte.dev/src/routes/content.json/content.server.js +++ b/sites/svelte.dev/src/routes/content.json/content.server.js @@ -47,7 +47,7 @@ export async function content() { blocks.push({ breadcrumbs: [...breadcrumbs, removeMarkdown(remove_TYPE(metadata.title) ?? '')], href: get_href([slug]), - content: plaintext(intro), + content: await plaintext(intro), rank }); @@ -67,7 +67,7 @@ export async function content() { remove_TYPE(removeMarkdown(h2)) ], href: get_href([slug, normalizeSlugify(h2)]), - content: plaintext(intro), + content: await plaintext(intro), rank }); @@ -83,7 +83,7 @@ export async function content() { removeMarkdown(remove_TYPE(h3)) ], href: get_href([slug, normalizeSlugify(h2) + '-' + normalizeSlugify(h3)]), - content: plaintext(lines.join('\n').trim()), + content: await plaintext(lines.join('\n').trim()), rank }); } @@ -99,37 +99,39 @@ function remove_TYPE(str) { } /** @param {string} markdown */ -function plaintext(markdown) { +async function plaintext(markdown) { /** @param {unknown} text */ const block = (text) => `${text}\n`; /** @param {string} text */ const inline = (text) => text; - return markedTransform(markdown, { - code: (source) => source.split('// ---cut---\n').pop(), - blockquote: block, - html: () => '\n', - heading: (text) => `${text}\n`, - hr: () => '', - list: block, - listitem: block, - checkbox: block, - paragraph: (text) => `${text}\n\n`, - table: block, - tablerow: block, - tablecell: (text, opts) => { - return text + ' '; - }, - strong: inline, - em: inline, - codespan: inline, - br: () => '', - del: inline, - link: (href, title, text) => text, - image: (href, title, text) => text, - text: inline - }) + return ( + await markedTransform(markdown, { + code: (source) => source.split('// ---cut---\n').pop(), + blockquote: block, + html: () => '\n', + heading: (text) => `${text}\n`, + hr: () => '', + list: block, + listitem: block, + checkbox: block, + paragraph: (text) => `${text}\n\n`, + table: block, + tablerow: block, + tablecell: (text, opts) => { + return text + ' '; + }, + strong: inline, + em: inline, + codespan: inline, + br: () => '', + del: inline, + link: (href, title, text) => text, + image: (href, title, text) => text, + text: inline + }) + ) .replace(/</g, '<') .replace(/>/g, '>') .replace(/&#(\d+);/g, (match, code) => { From 2f5d573a9d2861ed4283cad28b7aa1b73368fe6a Mon Sep 17 00:00:00 2001 From: Ben McCann <322311+benmccann@users.noreply.github.com> Date: Tue, 22 Aug 2023 12:02:09 -0700 Subject: [PATCH 008/226] site: preload fonts (#9132) Co-authored-by: Puru Vijay --- sites/svelte.dev/src/hooks.server.js | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 sites/svelte.dev/src/hooks.server.js diff --git a/sites/svelte.dev/src/hooks.server.js b/sites/svelte.dev/src/hooks.server.js new file mode 100644 index 000000000000..06ef665cfb69 --- /dev/null +++ b/sites/svelte.dev/src/hooks.server.js @@ -0,0 +1,6 @@ +/** @type {import('@sveltejs/kit').Handle} */ +export async function handle({ event, resolve }) { + return await resolve(event, { + preload: ({ type }) => type === 'js' || type === 'css' || type === 'font' + }); +} From 2d0738244e1eff84b62dc774421966a187802172 Mon Sep 17 00:00:00 2001 From: Paolo Ricciuti Date: Tue, 22 Aug 2023 21:22:21 +0200 Subject: [PATCH 009/226] feat: add vim mode to repl (#9135) * feat: add vim mode to repl * fix adding url search params --------- Co-authored-by: Puru Vijay --- pnpm-lock.yaml | 270 +++++++++--------- sites/svelte.dev/package.json | 2 +- .../src/routes/(authed)/repl/+page.js | 12 +- .../src/routes/(authed)/repl/[id]/+page.js | 18 ++ .../routes/(authed)/repl/[id]/+page.svelte | 3 + 5 files changed, 165 insertions(+), 140 deletions(-) create mode 100644 sites/svelte.dev/src/routes/(authed)/repl/[id]/+page.js diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 570597454f13..6e3f4dabbfc6 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -104,7 +104,7 @@ importers: version: 15.1.0(rollup@3.26.2) '@sveltejs/eslint-config': specifier: ^6.0.4 - version: 6.0.4(@typescript-eslint/eslint-plugin@6.4.1)(@typescript-eslint/parser@6.4.1)(eslint-config-prettier@9.0.0)(eslint-plugin-svelte@2.33.0)(eslint-plugin-unicorn@48.0.1)(eslint@8.47.0)(typescript@5.1.3) + version: 6.0.4(@typescript-eslint/eslint-plugin@5.60.0)(@typescript-eslint/parser@6.4.1)(eslint-config-prettier@9.0.0)(eslint-plugin-svelte@2.33.0)(eslint-plugin-unicorn@47.0.0)(eslint@8.47.0)(typescript@5.1.3) '@types/aria-query': specifier: ^5.0.1 version: 5.0.1 @@ -157,8 +157,8 @@ importers: specifier: ^2.33.1 version: 2.33.1 '@sveltejs/repl': - specifier: 0.5.0 - version: 0.5.0(@codemirror/lang-html@6.4.5)(@codemirror/search@6.5.1)(@lezer/common@1.0.4)(@lezer/javascript@1.4.6)(@lezer/lr@1.3.10)(@sveltejs/kit@1.22.6)(svelte@packages+svelte) + specifier: 0.6.0 + version: 0.6.0(@codemirror/lang-html@6.4.5)(@codemirror/search@6.5.1)(@lezer/common@1.0.4)(@lezer/javascript@1.4.6)(@lezer/lr@1.3.10)(@sveltejs/kit@1.22.6)(svelte@packages+svelte) cookie: specifier: ^0.5.0 version: 0.5.0 @@ -499,7 +499,7 @@ packages: prettier: 2.8.8 dev: true - /@codemirror/autocomplete@6.8.1(@codemirror/language@6.8.0)(@codemirror/state@6.2.1)(@codemirror/view@6.14.1)(@lezer/common@1.0.3): + /@codemirror/autocomplete@6.8.1(@codemirror/language@6.8.0)(@codemirror/state@6.2.1)(@codemirror/view@6.16.0)(@lezer/common@1.0.4): resolution: {integrity: sha512-HpphvDcTdOx+9R3eUw9hZK9JA77jlaBF0kOt2McbyfvY0rX9pnMoO8rkkZc0GzSbzhIY4m5xJ0uHHgjfqHNmXQ==} peerDependencies: '@codemirror/language': ^6.0.0 @@ -509,21 +509,7 @@ packages: dependencies: '@codemirror/language': 6.8.0 '@codemirror/state': 6.2.1 - '@codemirror/view': 6.14.1 - '@lezer/common': 1.0.3 - dev: false - - /@codemirror/autocomplete@6.8.1(@codemirror/language@6.8.0)(@codemirror/state@6.2.1)(@codemirror/view@6.14.1)(@lezer/common@1.0.4): - resolution: {integrity: sha512-HpphvDcTdOx+9R3eUw9hZK9JA77jlaBF0kOt2McbyfvY0rX9pnMoO8rkkZc0GzSbzhIY4m5xJ0uHHgjfqHNmXQ==} - peerDependencies: - '@codemirror/language': ^6.0.0 - '@codemirror/state': ^6.0.0 - '@codemirror/view': ^6.0.0 - '@lezer/common': ^1.0.0 - dependencies: - '@codemirror/language': 6.8.0 - '@codemirror/state': 6.2.1 - '@codemirror/view': 6.14.1 + '@codemirror/view': 6.16.0 '@lezer/common': 1.0.4 dev: false @@ -532,17 +518,17 @@ packages: dependencies: '@codemirror/language': 6.8.0 '@codemirror/state': 6.2.1 - '@codemirror/view': 6.14.1 - '@lezer/common': 1.0.3 + '@codemirror/view': 6.16.0 + '@lezer/common': 1.0.4 dev: false - /@codemirror/lang-css@6.2.0(@codemirror/view@6.14.1): + /@codemirror/lang-css@6.2.0(@codemirror/view@6.16.0): resolution: {integrity: sha512-oyIdJM29AyRPM3+PPq1I2oIk8NpUfEN3kAM05XWDDs6o3gSneIKaVJifT2P+fqONLou2uIgXynFyMUDQvo/szA==} dependencies: - '@codemirror/autocomplete': 6.8.1(@codemirror/language@6.8.0)(@codemirror/state@6.2.1)(@codemirror/view@6.14.1)(@lezer/common@1.0.3) + '@codemirror/autocomplete': 6.8.1(@codemirror/language@6.8.0)(@codemirror/state@6.2.1)(@codemirror/view@6.16.0)(@lezer/common@1.0.4) '@codemirror/language': 6.8.0 '@codemirror/state': 6.2.1 - '@lezer/common': 1.0.3 + '@lezer/common': 1.0.4 '@lezer/css': 1.1.3 transitivePeerDependencies: - '@codemirror/view' @@ -551,13 +537,13 @@ packages: /@codemirror/lang-html@6.4.5: resolution: {integrity: sha512-dUCSxkIw2G+chaUfw3Gfu5kkN83vJQN8gfQDp9iEHsIZluMJA0YJveT12zg/28BJx+uPsbQ6VimKCgx3oJrZxA==} dependencies: - '@codemirror/autocomplete': 6.8.1(@codemirror/language@6.8.0)(@codemirror/state@6.2.1)(@codemirror/view@6.14.1)(@lezer/common@1.0.3) - '@codemirror/lang-css': 6.2.0(@codemirror/view@6.14.1) + '@codemirror/autocomplete': 6.8.1(@codemirror/language@6.8.0)(@codemirror/state@6.2.1)(@codemirror/view@6.16.0)(@lezer/common@1.0.4) + '@codemirror/lang-css': 6.2.0(@codemirror/view@6.16.0) '@codemirror/lang-javascript': 6.1.9 '@codemirror/language': 6.8.0 '@codemirror/state': 6.2.1 - '@codemirror/view': 6.14.1 - '@lezer/common': 1.0.3 + '@codemirror/view': 6.16.0 + '@lezer/common': 1.0.4 '@lezer/css': 1.1.3 '@lezer/html': 1.3.6 dev: false @@ -565,13 +551,13 @@ packages: /@codemirror/lang-javascript@6.1.9: resolution: {integrity: sha512-z3jdkcqOEBT2txn2a87A0jSy6Te3679wg/U8QzMeftFt+4KA6QooMwfdFzJiuC3L6fXKfTXZcDocoaxMYfGz0w==} dependencies: - '@codemirror/autocomplete': 6.8.1(@codemirror/language@6.8.0)(@codemirror/state@6.2.1)(@codemirror/view@6.14.1)(@lezer/common@1.0.3) + '@codemirror/autocomplete': 6.8.1(@codemirror/language@6.8.0)(@codemirror/state@6.2.1)(@codemirror/view@6.16.0)(@lezer/common@1.0.4) '@codemirror/language': 6.8.0 '@codemirror/lint': 6.4.0 '@codemirror/state': 6.2.1 - '@codemirror/view': 6.14.1 - '@lezer/common': 1.0.3 - '@lezer/javascript': 1.4.4 + '@codemirror/view': 6.16.0 + '@lezer/common': 1.0.4 + '@lezer/javascript': 1.4.6 dev: false /@codemirror/lang-json@6.0.1: @@ -584,12 +570,12 @@ packages: /@codemirror/lang-markdown@6.2.0: resolution: {integrity: sha512-deKegEQVzfBAcLPqsJEa+IxotqPVwWZi90UOEvQbfa01NTAw8jNinrykuYPTULGUj+gha0ZG2HBsn4s5d64Qrg==} dependencies: - '@codemirror/autocomplete': 6.8.1(@codemirror/language@6.8.0)(@codemirror/state@6.2.1)(@codemirror/view@6.14.1)(@lezer/common@1.0.3) + '@codemirror/autocomplete': 6.8.1(@codemirror/language@6.8.0)(@codemirror/state@6.2.1)(@codemirror/view@6.16.0)(@lezer/common@1.0.4) '@codemirror/lang-html': 6.4.5 '@codemirror/language': 6.8.0 '@codemirror/state': 6.2.1 - '@codemirror/view': 6.14.1 - '@lezer/common': 1.0.3 + '@codemirror/view': 6.16.0 + '@lezer/common': 1.0.4 '@lezer/markdown': 1.0.5 dev: false @@ -597,26 +583,18 @@ packages: resolution: {integrity: sha512-r1paAyWOZkfY0RaYEZj3Kul+MiQTEbDvYqf8gPGaRvNneHXCmfSaAVFjwRUPlgxS8yflMxw2CTu6uCMp8R8A2g==} dependencies: '@codemirror/state': 6.2.1 - '@codemirror/view': 6.14.1 - '@lezer/common': 1.0.3 + '@codemirror/view': 6.16.0 + '@lezer/common': 1.0.4 '@lezer/highlight': 1.1.6 - '@lezer/lr': 1.3.9 - style-mod: 4.0.3 + '@lezer/lr': 1.3.10 + style-mod: 4.1.0 dev: false /@codemirror/lint@6.4.0: resolution: {integrity: sha512-6VZ44Ysh/Zn07xrGkdtNfmHCbGSHZzFBdzWi0pbd7chAQ/iUcpLGX99NYRZTa7Ugqg4kEHCqiHhcZnH0gLIgSg==} dependencies: '@codemirror/state': 6.2.1 - '@codemirror/view': 6.14.1 - crelt: 1.0.6 - dev: false - - /@codemirror/search@6.5.0: - resolution: {integrity: sha512-64/M40YeJPToKvGO6p3fijo2vwUEj4nACEAXElCaYQ50HrXSvRaK+NHEhSh73WFBGdvIdhrV+lL9PdJy2RfCYA==} - dependencies: - '@codemirror/state': 6.2.1 - '@codemirror/view': 6.14.1 + '@codemirror/view': 6.16.0 crelt: 1.0.6 dev: false @@ -632,14 +610,6 @@ packages: resolution: {integrity: sha512-RupHSZ8+OjNT38zU9fKH2sv+Dnlr8Eb8sl4NOnnqz95mCFTZUaiRP8Xv5MeeaG0px2b8Bnfe7YGwCV3nsBhbuw==} dev: false - /@codemirror/view@6.14.1: - resolution: {integrity: sha512-ofcsI7lRFo4N0rfnd+V3Gh2boQU3DmaaSKhDOvXUWjeOeuupMXer2e/3i9TUFN7aEIntv300EFBWPEiYVm2svg==} - dependencies: - '@codemirror/state': 6.2.1 - style-mod: 4.0.3 - w3c-keyname: 2.2.8 - dev: false - /@codemirror/view@6.16.0: resolution: {integrity: sha512-1Z2HkvkC3KR/oEZVuW9Ivmp8TWLzGEd8T8TA04TTwPvqogfkHBdYSlflytDOqmkUxM2d1ywTg7X2dU5mC+SXvg==} dependencies: @@ -1714,10 +1684,6 @@ packages: '@jridgewell/sourcemap-codec': 1.4.15 dev: true - /@lezer/common@1.0.3: - resolution: {integrity: sha512-JH4wAXCgUOcCGNekQPLhVeUtIqjH0yPBs7vvUdSjyQama9618IOKFJwkv2kcqdhF0my8hQEgCTEJU0GIgnahvA==} - dev: false - /@lezer/common@1.0.4: resolution: {integrity: sha512-lZHlk8p67x4aIDtJl6UQrXSOP6oi7dQR3W/geFVrENdA1JDaAJWldnVqVjPMJupbTKbzDfFcePfKttqVidS/dg==} dev: false @@ -1726,28 +1692,21 @@ packages: resolution: {integrity: sha512-SjSM4pkQnQdJDVc80LYzEaMiNy9txsFbI7HsMgeVF28NdLaAdHNtQ+kB/QqDUzRBV/75NTXjJ/R5IdC8QQGxMg==} dependencies: '@lezer/highlight': 1.1.6 - '@lezer/lr': 1.3.9 + '@lezer/lr': 1.3.10 dev: false /@lezer/highlight@1.1.6: resolution: {integrity: sha512-cmSJYa2us+r3SePpRCjN5ymCqCPv+zyXmDl0ciWtVaNiORT/MxM7ZgOMQZADD0o51qOaOg24qc/zBViOIwAjJg==} dependencies: - '@lezer/common': 1.0.3 + '@lezer/common': 1.0.4 dev: false /@lezer/html@1.3.6: resolution: {integrity: sha512-Kk9HJARZTc0bAnMQUqbtuhFVsB4AnteR2BFUWfZV7L/x1H0aAKz6YabrfJ2gk/BEgjh9L3hg5O4y2IDZRBdzuQ==} dependencies: - '@lezer/common': 1.0.3 - '@lezer/highlight': 1.1.6 - '@lezer/lr': 1.3.9 - dev: false - - /@lezer/javascript@1.4.4: - resolution: {integrity: sha512-0BiBjpEcrt2IXrIzEAsdTLylrVhGHRqVQL3baTBx1sf4qewjIvhG1/pTUumu7W/7YR0AASjLQOQxFmo5EvNmzQ==} - dependencies: + '@lezer/common': 1.0.4 '@lezer/highlight': 1.1.6 - '@lezer/lr': 1.3.9 + '@lezer/lr': 1.3.10 dev: false /@lezer/javascript@1.4.6: @@ -1761,7 +1720,7 @@ packages: resolution: {integrity: sha512-nkVC27qiEZEjySbi6gQRuMwa2sDu2PtfjSgz0A4QF81QyRGm3kb2YRzLcOPcTEtmcwvrX/cej7mlhbwViA4WJw==} dependencies: '@lezer/highlight': 1.1.6 - '@lezer/lr': 1.3.9 + '@lezer/lr': 1.3.10 dev: false /@lezer/lr@1.3.10: @@ -1770,16 +1729,10 @@ packages: '@lezer/common': 1.0.4 dev: false - /@lezer/lr@1.3.9: - resolution: {integrity: sha512-XPz6dzuTHlnsbA5M2DZgjflNQ+9Hi5Swhic0RULdp3oOs3rh6bqGZolosVqN/fQIT8uNiepzINJDnS39oweTHQ==} - dependencies: - '@lezer/common': 1.0.3 - dev: false - /@lezer/markdown@1.0.5: resolution: {integrity: sha512-J0LRA0l21Ec6ZroaOxjxsWWm+swCOFHcnOU85Z7aH9nj3eJx5ORmtzVkWzs9e21SZrdvyIzM1gt+YF/HnqbvnA==} dependencies: - '@lezer/common': 1.0.3 + '@lezer/common': 1.0.4 '@lezer/highlight': 1.1.6 dev: false @@ -1821,7 +1774,7 @@ packages: - supports-color dev: true - /@neocodemirror/svelte@0.0.15(@codemirror/autocomplete@6.8.1)(@codemirror/commands@6.2.4)(@codemirror/language@6.8.0)(@codemirror/lint@6.4.0)(@codemirror/search@6.5.1)(@codemirror/state@6.2.1)(@codemirror/view@6.14.1): + /@neocodemirror/svelte@0.0.15(@codemirror/autocomplete@6.8.1)(@codemirror/commands@6.2.4)(@codemirror/language@6.8.0)(@codemirror/lint@6.4.0)(@codemirror/search@6.5.1)(@codemirror/state@6.2.1)(@codemirror/view@6.16.0): resolution: {integrity: sha512-MCux+QCR40CboJu/TFwnqK7gYQ3fvtvHX8F/mk85DRH7vMoG3VDjJhqneAITX5IzohWKeP36hzcV+oHC2LYJqA==} peerDependencies: '@codemirror/autocomplete': ^6.7.1 @@ -1832,13 +1785,13 @@ packages: '@codemirror/state': ^6.2.0 '@codemirror/view': ^6.12.0 dependencies: - '@codemirror/autocomplete': 6.8.1(@codemirror/language@6.8.0)(@codemirror/state@6.2.1)(@codemirror/view@6.14.1)(@lezer/common@1.0.4) + '@codemirror/autocomplete': 6.8.1(@codemirror/language@6.8.0)(@codemirror/state@6.2.1)(@codemirror/view@6.16.0)(@lezer/common@1.0.4) '@codemirror/commands': 6.2.4 '@codemirror/language': 6.8.0 '@codemirror/lint': 6.4.0 '@codemirror/search': 6.5.1 '@codemirror/state': 6.2.1 - '@codemirror/view': 6.14.1 + '@codemirror/view': 6.16.0 csstype: 3.1.2 nanostores: 0.8.1 dev: false @@ -1878,7 +1831,7 @@ packages: /@polka/url@1.0.0-next.21: resolution: {integrity: sha512-a5Sab1C4/icpTZVzZc5Ghpz88yQtGOyNqYXcZgOssB2uuAr+wF/MvN6bgtW32q7HHrvBki+BsZ0OuNv6EV3K9g==} - /@replit/codemirror-lang-svelte@6.0.0(@codemirror/autocomplete@6.8.1)(@codemirror/lang-css@6.2.0)(@codemirror/lang-html@6.4.5)(@codemirror/lang-javascript@6.1.9)(@codemirror/language@6.8.0)(@codemirror/state@6.2.1)(@codemirror/view@6.14.1)(@lezer/common@1.0.4)(@lezer/highlight@1.1.6)(@lezer/javascript@1.4.6)(@lezer/lr@1.3.10): + /@replit/codemirror-lang-svelte@6.0.0(@codemirror/autocomplete@6.8.1)(@codemirror/lang-css@6.2.0)(@codemirror/lang-html@6.4.5)(@codemirror/lang-javascript@6.1.9)(@codemirror/language@6.8.0)(@codemirror/state@6.2.1)(@codemirror/view@6.16.0)(@lezer/common@1.0.4)(@lezer/highlight@1.1.6)(@lezer/javascript@1.4.6)(@lezer/lr@1.3.10): resolution: {integrity: sha512-U2OqqgMM6jKelL0GNWbAmqlu1S078zZNoBqlJBW+retTc5M4Mha6/Y2cf4SVg6ddgloJvmcSpt4hHrVoM4ePRA==} peerDependencies: '@codemirror/autocomplete': ^6.0.0 @@ -1893,19 +1846,35 @@ packages: '@lezer/javascript': ^1.2.0 '@lezer/lr': ^1.0.0 dependencies: - '@codemirror/autocomplete': 6.8.1(@codemirror/language@6.8.0)(@codemirror/state@6.2.1)(@codemirror/view@6.14.1)(@lezer/common@1.0.4) - '@codemirror/lang-css': 6.2.0(@codemirror/view@6.14.1) + '@codemirror/autocomplete': 6.8.1(@codemirror/language@6.8.0)(@codemirror/state@6.2.1)(@codemirror/view@6.16.0)(@lezer/common@1.0.4) + '@codemirror/lang-css': 6.2.0(@codemirror/view@6.16.0) '@codemirror/lang-html': 6.4.5 '@codemirror/lang-javascript': 6.1.9 '@codemirror/language': 6.8.0 '@codemirror/state': 6.2.1 - '@codemirror/view': 6.14.1 + '@codemirror/view': 6.16.0 '@lezer/common': 1.0.4 '@lezer/highlight': 1.1.6 '@lezer/javascript': 1.4.6 '@lezer/lr': 1.3.10 dev: false + /@replit/codemirror-vim@6.0.14(@codemirror/commands@6.2.4)(@codemirror/language@6.8.0)(@codemirror/search@6.5.1)(@codemirror/state@6.2.1)(@codemirror/view@6.16.0): + resolution: {integrity: sha512-wwhqhvL76FdRTdwfUWpKCbv0hkp2fvivfMosDVlL/popqOiNLtUhL02ThgHZH8mus/NkVr5Mj582lyFZqQrjOA==} + peerDependencies: + '@codemirror/commands': ^6.0.0 + '@codemirror/language': ^6.1.0 + '@codemirror/search': ^6.2.0 + '@codemirror/state': ^6.0.1 + '@codemirror/view': ^6.0.3 + dependencies: + '@codemirror/commands': 6.2.4 + '@codemirror/language': 6.8.0 + '@codemirror/search': 6.5.1 + '@codemirror/state': 6.2.1 + '@codemirror/view': 6.16.0 + dev: false + /@resvg/resvg-js-android-arm-eabi@2.4.1: resolution: {integrity: sha512-AA6f7hS0FAPpvQMhBCf6f1oD1LdlqNXKCxAAPpKh6tR11kqV0YIB9zOlIYgITM14mq2YooLFl6XIbbvmY+jwUw==} engines: {node: '>= 10'} @@ -2224,7 +2193,7 @@ packages: - supports-color dev: true - /@sveltejs/eslint-config@6.0.4(@typescript-eslint/eslint-plugin@6.4.1)(@typescript-eslint/parser@6.4.1)(eslint-config-prettier@9.0.0)(eslint-plugin-svelte@2.33.0)(eslint-plugin-unicorn@48.0.1)(eslint@8.47.0)(typescript@5.1.3): + /@sveltejs/eslint-config@6.0.4(@typescript-eslint/eslint-plugin@5.60.0)(@typescript-eslint/parser@6.4.1)(eslint-config-prettier@9.0.0)(eslint-plugin-svelte@2.33.0)(eslint-plugin-unicorn@47.0.0)(eslint@8.47.0)(typescript@5.1.3): resolution: {integrity: sha512-U9pwmDs+DbmsnCgTfu6Bacdwqn0DuI1IQNSiQqTgzVyYfaaj+zy9ZoQCiJfxFBGXHkklyXuRHp0KMx346N0lcQ==} peerDependencies: '@typescript-eslint/eslint-plugin': '>= 5' @@ -2235,12 +2204,12 @@ packages: eslint-plugin-unicorn: '>= 47' typescript: '>= 4' dependencies: - '@typescript-eslint/eslint-plugin': 6.4.1(@typescript-eslint/parser@6.4.1)(eslint@8.47.0)(typescript@5.1.3) + '@typescript-eslint/eslint-plugin': 5.60.0(@typescript-eslint/parser@6.4.1)(eslint@8.47.0)(typescript@5.1.3) '@typescript-eslint/parser': 6.4.1(eslint@8.47.0)(typescript@5.1.3) eslint: 8.47.0 eslint-config-prettier: 9.0.0(eslint@8.47.0) eslint-plugin-svelte: 2.33.0(eslint@8.47.0)(svelte@packages+svelte) - eslint-plugin-unicorn: 48.0.1(eslint@8.47.0) + eslint-plugin-unicorn: 47.0.0(eslint@8.47.0) typescript: 5.1.3 dev: true @@ -2270,25 +2239,26 @@ packages: transitivePeerDependencies: - supports-color - /@sveltejs/repl@0.5.0(@codemirror/lang-html@6.4.5)(@codemirror/search@6.5.1)(@lezer/common@1.0.4)(@lezer/javascript@1.4.6)(@lezer/lr@1.3.10)(@sveltejs/kit@1.22.6)(svelte@packages+svelte): - resolution: {integrity: sha512-SyrMn3moP74PY7OtQONom9X53SYREQ7p8CEgspeNK0VG9AYUWc2UPvDDRAHTK94TC7GoNWgOafDw04HJGrOl2g==} + /@sveltejs/repl@0.6.0(@codemirror/lang-html@6.4.5)(@codemirror/search@6.5.1)(@lezer/common@1.0.4)(@lezer/javascript@1.4.6)(@lezer/lr@1.3.10)(@sveltejs/kit@1.22.6)(svelte@packages+svelte): + resolution: {integrity: sha512-NADKN0NZhLlSatTSh5CCsdzgf2KHJFRef/8krA/TVWAWos5kSwmZ5fF0UImuqs61Pu/SiMXksaWNTGTiOtr4fQ==} peerDependencies: svelte: ^3.54.0 || ^4.0.0-next.0 || ^4.0.0 dependencies: - '@codemirror/autocomplete': 6.8.1(@codemirror/language@6.8.0)(@codemirror/state@6.2.1)(@codemirror/view@6.14.1)(@lezer/common@1.0.4) + '@codemirror/autocomplete': 6.8.1(@codemirror/language@6.8.0)(@codemirror/state@6.2.1)(@codemirror/view@6.16.0)(@lezer/common@1.0.4) '@codemirror/commands': 6.2.4 - '@codemirror/lang-css': 6.2.0(@codemirror/view@6.14.1) + '@codemirror/lang-css': 6.2.0(@codemirror/view@6.16.0) '@codemirror/lang-javascript': 6.1.9 '@codemirror/lang-json': 6.0.1 '@codemirror/lang-markdown': 6.2.0 '@codemirror/language': 6.8.0 '@codemirror/lint': 6.4.0 '@codemirror/state': 6.2.1 - '@codemirror/view': 6.14.1 + '@codemirror/view': 6.16.0 '@jridgewell/sourcemap-codec': 1.4.15 '@lezer/highlight': 1.1.6 - '@neocodemirror/svelte': 0.0.15(@codemirror/autocomplete@6.8.1)(@codemirror/commands@6.2.4)(@codemirror/language@6.8.0)(@codemirror/lint@6.4.0)(@codemirror/search@6.5.1)(@codemirror/state@6.2.1)(@codemirror/view@6.14.1) - '@replit/codemirror-lang-svelte': 6.0.0(@codemirror/autocomplete@6.8.1)(@codemirror/lang-css@6.2.0)(@codemirror/lang-html@6.4.5)(@codemirror/lang-javascript@6.1.9)(@codemirror/language@6.8.0)(@codemirror/state@6.2.1)(@codemirror/view@6.14.1)(@lezer/common@1.0.4)(@lezer/highlight@1.1.6)(@lezer/javascript@1.4.6)(@lezer/lr@1.3.10) + '@neocodemirror/svelte': 0.0.15(@codemirror/autocomplete@6.8.1)(@codemirror/commands@6.2.4)(@codemirror/language@6.8.0)(@codemirror/lint@6.4.0)(@codemirror/search@6.5.1)(@codemirror/state@6.2.1)(@codemirror/view@6.16.0) + '@replit/codemirror-lang-svelte': 6.0.0(@codemirror/autocomplete@6.8.1)(@codemirror/lang-css@6.2.0)(@codemirror/lang-html@6.4.5)(@codemirror/lang-javascript@6.1.9)(@codemirror/language@6.8.0)(@codemirror/state@6.2.1)(@codemirror/view@6.16.0)(@lezer/common@1.0.4)(@lezer/highlight@1.1.6)(@lezer/javascript@1.4.6)(@lezer/lr@1.3.10) + '@replit/codemirror-vim': 6.0.14(@codemirror/commands@6.2.4)(@codemirror/language@6.8.0)(@codemirror/search@6.5.1)(@codemirror/state@6.2.1)(@codemirror/view@6.16.0) '@rich_harris/svelte-split-pane': 1.1.1(svelte@packages+svelte) '@rollup/browser': 3.26.2 '@sveltejs/site-kit': 5.2.2(@sveltejs/kit@1.22.6)(svelte@packages+svelte) @@ -2493,30 +2463,29 @@ packages: - supports-color dev: true - /@typescript-eslint/eslint-plugin@6.4.1(@typescript-eslint/parser@6.4.1)(eslint@8.47.0)(typescript@5.1.3): - resolution: {integrity: sha512-3F5PtBzUW0dYlq77Lcqo13fv+58KDwUib3BddilE8ajPJT+faGgxmI9Sw+I8ZS22BYwoir9ZhNXcLi+S+I2bkw==} - engines: {node: ^16.0.0 || >=18.0.0} + /@typescript-eslint/eslint-plugin@5.60.0(@typescript-eslint/parser@6.4.1)(eslint@8.47.0)(typescript@5.1.3): + resolution: {integrity: sha512-78B+anHLF1TI8Jn/cD0Q00TBYdMgjdOn980JfAVa9yw5sop8nyTfVOQAv6LWywkOGLclDBtv5z3oxN4w7jxyNg==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: - '@typescript-eslint/parser': ^6.0.0 || ^6.0.0-alpha - eslint: ^7.0.0 || ^8.0.0 + '@typescript-eslint/parser': ^5.0.0 + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 typescript: '*' peerDependenciesMeta: typescript: optional: true dependencies: - '@eslint-community/regexpp': 4.7.0 + '@eslint-community/regexpp': 4.5.1 '@typescript-eslint/parser': 6.4.1(eslint@8.47.0)(typescript@5.1.3) - '@typescript-eslint/scope-manager': 6.4.1 - '@typescript-eslint/type-utils': 6.4.1(eslint@8.47.0)(typescript@5.1.3) - '@typescript-eslint/utils': 6.4.1(eslint@8.47.0)(typescript@5.1.3) - '@typescript-eslint/visitor-keys': 6.4.1 + '@typescript-eslint/scope-manager': 5.60.0 + '@typescript-eslint/type-utils': 5.60.0(eslint@8.47.0)(typescript@5.1.3) + '@typescript-eslint/utils': 5.60.0(eslint@8.47.0)(typescript@5.1.3) debug: 4.3.4 eslint: 8.47.0 - graphemer: 1.4.0 + grapheme-splitter: 1.0.4 ignore: 5.2.4 - natural-compare: 1.4.0 - semver: 7.5.4 - ts-api-utils: 1.0.2(typescript@5.1.3) + natural-compare-lite: 1.4.0 + semver: 7.5.3 + tsutils: 3.21.0(typescript@5.1.3) typescript: 5.1.3 transitivePeerDependencies: - supports-color @@ -2607,21 +2576,21 @@ packages: - supports-color dev: true - /@typescript-eslint/type-utils@6.4.1(eslint@8.47.0)(typescript@5.1.3): - resolution: {integrity: sha512-7ON8M8NXh73SGZ5XvIqWHjgX2f+vvaOarNliGhjrJnv1vdjG0LVIz+ToYfPirOoBi56jxAKLfsLm40+RvxVVXA==} - engines: {node: ^16.0.0 || >=18.0.0} + /@typescript-eslint/type-utils@5.60.0(eslint@8.47.0)(typescript@5.1.3): + resolution: {integrity: sha512-X7NsRQddORMYRFH7FWo6sA9Y/zbJ8s1x1RIAtnlj6YprbToTiQnM6vxcMu7iYhdunmoC0rUWlca13D5DVHkK2g==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: - eslint: ^7.0.0 || ^8.0.0 + eslint: '*' typescript: '*' peerDependenciesMeta: typescript: optional: true dependencies: - '@typescript-eslint/typescript-estree': 6.4.1(typescript@5.1.3) - '@typescript-eslint/utils': 6.4.1(eslint@8.47.0)(typescript@5.1.3) + '@typescript-eslint/typescript-estree': 5.60.0(typescript@5.1.3) + '@typescript-eslint/utils': 5.60.0(eslint@8.47.0)(typescript@5.1.3) debug: 4.3.4 eslint: 8.47.0 - ts-api-utils: 1.0.2(typescript@5.1.3) + tsutils: 3.21.0(typescript@5.1.3) typescript: 5.1.3 transitivePeerDependencies: - supports-color @@ -2642,6 +2611,27 @@ packages: engines: {node: ^16.0.0 || >=18.0.0} dev: true + /@typescript-eslint/typescript-estree@5.60.0(typescript@5.1.3): + 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.1.3) + typescript: 5.1.3 + transitivePeerDependencies: + - supports-color + dev: true + /@typescript-eslint/typescript-estree@5.60.0(typescript@5.1.6): resolution: {integrity: sha512-R43thAuwarC99SnvrBmh26tc7F6sPa2B3evkXp/8q954kYL6Ro56AwASYWtEEi+4j09GbiNAHqYwNNZuNlARGQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -2725,20 +2715,21 @@ packages: - typescript dev: true - /@typescript-eslint/utils@6.4.1(eslint@8.47.0)(typescript@5.1.3): - resolution: {integrity: sha512-F/6r2RieNeorU0zhqZNv89s9bDZSovv3bZQpUNOmmQK1L80/cV4KEu95YUJWi75u5PhboFoKUJBnZ4FQcoqhDw==} - engines: {node: ^16.0.0 || >=18.0.0} + /@typescript-eslint/utils@5.60.0(eslint@8.47.0)(typescript@5.1.3): + resolution: {integrity: sha512-ba51uMqDtfLQ5+xHtwlO84vkdjrqNzOnqrnwbMHMRY8Tqeme8C2Q8Fc7LajfGR+e3/4LoYiWXUM6BpIIbHJ4hQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: - eslint: ^7.0.0 || ^8.0.0 + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: '@eslint-community/eslint-utils': 4.4.0(eslint@8.47.0) '@types/json-schema': 7.0.12 '@types/semver': 7.5.0 - '@typescript-eslint/scope-manager': 6.4.1 - '@typescript-eslint/types': 6.4.1 - '@typescript-eslint/typescript-estree': 6.4.1(typescript@5.1.3) + '@typescript-eslint/scope-manager': 5.60.0 + '@typescript-eslint/types': 5.60.0 + '@typescript-eslint/typescript-estree': 5.60.0(typescript@5.1.3) eslint: 8.47.0 - semver: 7.5.4 + eslint-scope: 5.1.1 + semver: 7.5.3 transitivePeerDependencies: - supports-color - typescript @@ -3312,13 +3303,13 @@ packages: /codemirror@6.0.1(@lezer/common@1.0.4): resolution: {integrity: sha512-J8j+nZ+CdWmIeFIGXEFbFPtpiYacFMDR8GlHK3IyHQJMCaVRfGx9NT+Hxivv1ckLWPvNdZqndbr/7lVhrf/Svg==} dependencies: - '@codemirror/autocomplete': 6.8.1(@codemirror/language@6.8.0)(@codemirror/state@6.2.1)(@codemirror/view@6.14.1)(@lezer/common@1.0.4) + '@codemirror/autocomplete': 6.8.1(@codemirror/language@6.8.0)(@codemirror/state@6.2.1)(@codemirror/view@6.16.0)(@lezer/common@1.0.4) '@codemirror/commands': 6.2.4 '@codemirror/language': 6.8.0 '@codemirror/lint': 6.4.0 - '@codemirror/search': 6.5.0 + '@codemirror/search': 6.5.1 '@codemirror/state': 6.2.1 - '@codemirror/view': 6.14.1 + '@codemirror/view': 6.16.0 transitivePeerDependencies: - '@lezer/common' dev: false @@ -4021,11 +4012,11 @@ packages: strip-indent: 3.0.0 dev: true - /eslint-plugin-unicorn@48.0.1(eslint@8.47.0): - resolution: {integrity: sha512-FW+4r20myG/DqFcCSzoumaddKBicIPeFnTrifon2mWIzlfyvzwyqZjqVP7m4Cqr/ZYisS2aiLghkUWaPg6vtCw==} + /eslint-plugin-unicorn@47.0.0(eslint@8.47.0): + resolution: {integrity: sha512-ivB3bKk7fDIeWOUmmMm9o3Ax9zbMz1Bsza/R2qm46ufw4T6VBFBaJIR1uN3pCKSmSXm8/9Nri8V+iUut1NhQGA==} engines: {node: '>=16'} peerDependencies: - eslint: '>=8.44.0' + eslint: '>=8.38.0' dependencies: '@babel/helper-validator-identifier': 7.22.5 '@eslint-community/eslint-utils': 4.4.0(eslint@8.47.0) @@ -4041,7 +4032,8 @@ packages: read-pkg-up: 7.0.1 regexp-tree: 0.1.27 regjsparser: 0.10.0 - semver: 7.5.4 + safe-regex: 2.1.1 + semver: 7.5.3 strip-indent: 3.0.0 dev: true @@ -6816,10 +6808,6 @@ packages: peek-readable: 4.1.0 dev: true - /style-mod@4.0.3: - resolution: {integrity: sha512-78Jv8kYJdjbvRwwijtCevYADfsI0lGzYJe4mMFdceO8l75DFFDoqBhR1jVDicDRRaX4//g1u9wKeo+ztc2h1Rw==} - dev: false - /style-mod@4.1.0: resolution: {integrity: sha512-Ca5ib8HrFn+f+0n4N4ScTIA9iTOQ7MaGS1ylHcoVqW9J7w2w8PzN6g9gKmTYgGEBH8e120+RCmhpje6jC5uGWA==} dev: false @@ -7153,6 +7141,16 @@ packages: resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} dev: true + /tsutils@3.21.0(typescript@5.1.3): + 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.3 + dev: true + /tsutils@3.21.0(typescript@5.1.6): resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==} engines: {node: '>= 6'} diff --git a/sites/svelte.dev/package.json b/sites/svelte.dev/package.json index 5e6fd4fcca78..28c8d0e23c53 100644 --- a/sites/svelte.dev/package.json +++ b/sites/svelte.dev/package.json @@ -19,7 +19,7 @@ "dependencies": { "@jridgewell/sourcemap-codec": "^1.4.15", "@supabase/supabase-js": "^2.33.1", - "@sveltejs/repl": "0.5.0", + "@sveltejs/repl": "0.6.0", "cookie": "^0.5.0", "devalue": "^4.3.2", "do-not-zip": "^1.0.0", diff --git a/sites/svelte.dev/src/routes/(authed)/repl/+page.js b/sites/svelte.dev/src/routes/(authed)/repl/+page.js index 4a98d3591190..12eff1cdd3df 100644 --- a/sites/svelte.dev/src/routes/(authed)/repl/+page.js +++ b/sites/svelte.dev/src/routes/(authed)/repl/+page.js @@ -5,6 +5,7 @@ export function load({ url }) { const gist = query.get('gist'); const example = query.get('example'); const version = query.get('version'); + const vim = query.get('vim'); // redirect to v2 REPL if appropriate if (/^[^>]?[12]/.test(version)) { @@ -12,7 +13,12 @@ export function load({ url }) { } const id = gist || example || 'hello-world'; - const q = version ? `?version=${version}` : ``; - - throw redirect(301, `/repl/${id}${q}`); + // we need to filter out null values + const q = new URLSearchParams( + Object.entries({ + version, + vim + }).filter(([, value]) => value !== null) + ).toString(); + throw redirect(301, `/repl/${id}?${q}`); } diff --git a/sites/svelte.dev/src/routes/(authed)/repl/[id]/+page.js b/sites/svelte.dev/src/routes/(authed)/repl/[id]/+page.js new file mode 100644 index 000000000000..b130a6663c39 --- /dev/null +++ b/sites/svelte.dev/src/routes/(authed)/repl/[id]/+page.js @@ -0,0 +1,18 @@ +import { browser } from '$app/environment'; + +export function load({ data, url }) { + // initialize vim with the search param + const vim_search_params = url.searchParams.get('vim'); + let vim = vim_search_params !== null && vim_search_params !== 'false'; + // when in the browser check if there's a local storage entry and eventually override + // vim if there's not a search params otherwise update the local storage + if (browser) { + const vim_local_storage = window.localStorage.getItem('svelte:vim-enabled'); + if (vim_search_params !== null) { + window.localStorage.setItem('svelte:vim-enabled', vim.toString()); + } else if (vim_local_storage) { + vim = vim_local_storage !== 'false'; + } + } + return { ...data, vim }; +} diff --git a/sites/svelte.dev/src/routes/(authed)/repl/[id]/+page.svelte b/sites/svelte.dev/src/routes/(authed)/repl/[id]/+page.svelte index 47fdc9bab717..61d559b4526a 100644 --- a/sites/svelte.dev/src/routes/(authed)/repl/[id]/+page.svelte +++ b/sites/svelte.dev/src/routes/(authed)/repl/[id]/+page.svelte @@ -61,6 +61,8 @@ : `https://unpkg.com/svelte@${version}`; $: relaxed = data.gist.relaxed || (data.user && data.user.id === data.gist.owner); + + $: vim = data.vim; @@ -87,6 +89,7 @@ bind:this={repl} {svelteUrl} {relaxed} + {vim} injectedJS={mapbox_setup} showModified showAst From 3d3680cd11ac747d227ed46a4db4dbc4f9ecffc9 Mon Sep 17 00:00:00 2001 From: Ben McCann <322311+benmccann@users.noreply.github.com> Date: Tue, 22 Aug 2023 15:00:33 -0700 Subject: [PATCH 010/226] chore: move playground (#9131) --- .../basic}/.gitignore | 0 .../basic}/README.md | 0 .../basic}/compile.js | 0 .../basic}/jsconfig.json | 0 .../basic}/package.json | 0 .../basic}/src/App.svelte | 0 .../basic}/src/entry-client.js | 0 .../basic}/src/entry-server.js | 0 .../basic}/src/lib/Counter.svelte | 0 .../basic}/src/template.html | 0 .../playground => playgrounds/basic}/start.js | 0 pnpm-lock.yaml | 40 ++++++++----------- pnpm-workspace.yaml | 3 +- 13 files changed, 18 insertions(+), 25 deletions(-) rename {packages/playground => playgrounds/basic}/.gitignore (100%) rename {packages/playground => playgrounds/basic}/README.md (100%) rename {packages/playground => playgrounds/basic}/compile.js (100%) rename {packages/playground => playgrounds/basic}/jsconfig.json (100%) rename {packages/playground => playgrounds/basic}/package.json (100%) rename {packages/playground => playgrounds/basic}/src/App.svelte (100%) rename {packages/playground => playgrounds/basic}/src/entry-client.js (100%) rename {packages/playground => playgrounds/basic}/src/entry-server.js (100%) rename {packages/playground => playgrounds/basic}/src/lib/Counter.svelte (100%) rename {packages/playground => playgrounds/basic}/src/template.html (100%) rename {packages/playground => playgrounds/basic}/start.js (100%) diff --git a/packages/playground/.gitignore b/playgrounds/basic/.gitignore similarity index 100% rename from packages/playground/.gitignore rename to playgrounds/basic/.gitignore diff --git a/packages/playground/README.md b/playgrounds/basic/README.md similarity index 100% rename from packages/playground/README.md rename to playgrounds/basic/README.md diff --git a/packages/playground/compile.js b/playgrounds/basic/compile.js similarity index 100% rename from packages/playground/compile.js rename to playgrounds/basic/compile.js diff --git a/packages/playground/jsconfig.json b/playgrounds/basic/jsconfig.json similarity index 100% rename from packages/playground/jsconfig.json rename to playgrounds/basic/jsconfig.json diff --git a/packages/playground/package.json b/playgrounds/basic/package.json similarity index 100% rename from packages/playground/package.json rename to playgrounds/basic/package.json diff --git a/packages/playground/src/App.svelte b/playgrounds/basic/src/App.svelte similarity index 100% rename from packages/playground/src/App.svelte rename to playgrounds/basic/src/App.svelte diff --git a/packages/playground/src/entry-client.js b/playgrounds/basic/src/entry-client.js similarity index 100% rename from packages/playground/src/entry-client.js rename to playgrounds/basic/src/entry-client.js diff --git a/packages/playground/src/entry-server.js b/playgrounds/basic/src/entry-server.js similarity index 100% rename from packages/playground/src/entry-server.js rename to playgrounds/basic/src/entry-server.js diff --git a/packages/playground/src/lib/Counter.svelte b/playgrounds/basic/src/lib/Counter.svelte similarity index 100% rename from packages/playground/src/lib/Counter.svelte rename to playgrounds/basic/src/lib/Counter.svelte diff --git a/packages/playground/src/template.html b/playgrounds/basic/src/template.html similarity index 100% rename from packages/playground/src/template.html rename to playgrounds/basic/src/template.html diff --git a/packages/playground/start.js b/playgrounds/basic/start.js similarity index 100% rename from packages/playground/start.js rename to playgrounds/basic/start.js diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 6e3f4dabbfc6..e73d47983410 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -36,18 +36,6 @@ importers: specifier: ^2.10.1 version: 2.10.1(prettier@2.8.8)(svelte@packages+svelte) - packages/playground: - devDependencies: - rollup: - specifier: ^3.25.1 - version: 3.25.1 - rollup-plugin-serve: - specifier: ^2.0.2 - version: 2.0.2 - svelte: - specifier: workspace:* - version: link:../svelte - packages/svelte: dependencies: '@ampproject/remapping': @@ -148,6 +136,18 @@ importers: specifier: ^0.33.0 version: 0.33.0(happy-dom@9.20.3)(jsdom@21.1.2)(playwright@1.35.1) + playgrounds/basic: + devDependencies: + rollup: + specifier: ^3.25.1 + version: 3.26.2 + rollup-plugin-serve: + specifier: ^2.0.2 + version: 2.0.2 + svelte: + specifier: workspace:* + version: link:../../packages/svelte + sites/svelte.dev: dependencies: '@jridgewell/sourcemap-codec': @@ -2062,7 +2062,7 @@ packages: rollup: 3.26.2 dev: true - /@rollup/plugin-virtual@3.0.1(rollup@3.26.2): + /@rollup/plugin-virtual@3.0.1(rollup@3.28.0): resolution: {integrity: sha512-fK8O0IL5+q+GrsMLuACVNk2x21g3yaw+sG2qn16SnUd3IlBsQyvWxLMGHmCmXRMecPjGRSZ/1LmZB4rjQm68og==} engines: {node: '>=14.0.0'} peerDependencies: @@ -2071,7 +2071,7 @@ packages: rollup: optional: true dependencies: - rollup: 3.26.2 + rollup: 3.28.0 dev: true /@rollup/pluginutils@4.2.1: @@ -2894,9 +2894,9 @@ packages: resolution: {integrity: sha512-gq+fjT3Ilrhb88Jf+vYMjdO/+3znYfa7vJ4IMLPFsBPUxglnr40Ed3yCLrW6IABdJAedB94b2BkqR6I04lh3dg==} hasBin: true dependencies: - '@rollup/plugin-virtual': 3.0.1(rollup@3.26.2) + '@rollup/plugin-virtual': 3.0.1(rollup@3.28.0) acorn: 8.9.0 - rollup: 3.26.2 + rollup: 3.28.0 dev: true /agent-base@6.0.2: @@ -6352,14 +6352,6 @@ packages: opener: 1.5.2 dev: true - /rollup@3.25.1: - resolution: {integrity: sha512-tywOR+rwIt5m2ZAWSe5AIJcTat8vGlnPFAv15ycCrw33t6iFsXZ6mzHVFh2psSjxQPmI+xgzMZZizUAukBI4aQ==} - engines: {node: '>=14.18.0', npm: '>=8.0.0'} - hasBin: true - optionalDependencies: - fsevents: 2.3.3 - dev: true - /rollup@3.26.2: resolution: {integrity: sha512-6umBIGVz93er97pMgQO08LuH3m6PUb3jlDUUGFsNJB6VgTCUaDFpupf5JfU30529m/UKOgmiX+uY6Sx8cOYpLA==} engines: {node: '>=14.18.0', npm: '>=8.0.0'} diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index c8e214f99698..c73122314ae1 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -1,3 +1,4 @@ packages: - - 'sites/*' - 'packages/*' + - 'playgrounds/*' + - 'sites/*' From d6f09814523a8aace7dcbb44bd5d2cf07ac7de54 Mon Sep 17 00:00:00 2001 From: Ben McCann <322311+benmccann@users.noreply.github.com> Date: Wed, 23 Aug 2023 02:11:17 -0700 Subject: [PATCH 011/226] site: turn off edge serving for REPL (#9136) Our core web vitals have really taken a hit since enabling edge serving. I ran various configs against pagespeed.web.dev and the traditional serverless functions do the best. That's at least partially because I believe serverless functions default to running in us-east-1 where our supabase instance is located. Therefore try going back to Serverless for a while to see the impact. --- sites/svelte.dev/src/routes/(authed)/+layout.server.js | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/sites/svelte.dev/src/routes/(authed)/+layout.server.js b/sites/svelte.dev/src/routes/(authed)/+layout.server.js index 6271b50b3b37..98ebf9dff7a3 100644 --- a/sites/svelte.dev/src/routes/(authed)/+layout.server.js +++ b/sites/svelte.dev/src/routes/(authed)/+layout.server.js @@ -2,9 +2,7 @@ import * as session from '$lib/db/session'; /** @type {import('@sveltejs/adapter-vercel').Config} */ export const config = { - // regions: ['pdx1', 'sfo1', 'cle1', 'iad1'], - regions: 'all', - runtime: 'edge' + runtime: 'nodejs18.x' // see https://github.com/sveltejs/svelte/pull/9136 }; export async function load({ request }) { From 3c9e661f4a19740b717c9d0de90c1612548d7f84 Mon Sep 17 00:00:00 2001 From: Ben McCann <322311+benmccann@users.noreply.github.com> Date: Thu, 24 Aug 2023 00:01:20 -0700 Subject: [PATCH 012/226] fix: update paths for playground (#9139) --- playgrounds/basic/start.js | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/playgrounds/basic/start.js b/playgrounds/basic/start.js index ace479ac9f9a..6cdcfb623a1b 100644 --- a/playgrounds/basic/start.js +++ b/playgrounds/basic/start.js @@ -3,9 +3,10 @@ import path from 'node:path'; import { fileURLToPath } from 'node:url'; import { watch } from 'rollup'; import serve from 'rollup-plugin-serve'; -import * as svelte from '../svelte/src/compiler/index.js'; +import * as svelte from '../../packages/svelte/src/compiler/index.js'; const __dirname = fileURLToPath(new URL('.', import.meta.url)); +const runtime_path = path.resolve(__dirname, '../../packages/svelte/src/runtime'); /** @returns {import('rollup').Plugin}*/ function create_plugin(ssr = false) { @@ -13,12 +14,9 @@ function create_plugin(ssr = false) { name: 'custom-svelte-ssr-' + ssr, resolveId(id) { if (id === 'svelte') { - return path.resolve( - __dirname, - ssr ? '../svelte/src/runtime/ssr.js' : '../svelte/src/runtime/index.js' - ); + return path.resolve(runtime_path, ssr ? 'ssr.js' : 'index.js'); } else if (id.startsWith('svelte/')) { - return path.resolve(__dirname, `../svelte/src/runtime/${id.slice(7)}/index.js`); + return path.resolve(runtime_path, `${id.slice(7)}/index.js`); } }, transform(code, id) { From bd64f07e985d827b8d475f54e1377a77c2f17677 Mon Sep 17 00:00:00 2001 From: Teo Date: Thu, 24 Aug 2023 17:17:39 +0300 Subject: [PATCH 013/226] fix: take custom attribute name into account when reflecting property (#9140) fixes #9134 --- .changeset/tame-tomatoes-warn.md | 5 ++++ .../svelte/src/runtime/internal/Component.js | 2 +- .../reflect-attributes-add-remove/main.svelte | 23 +++++++++++++++++++ .../reflect-attributes-add-remove/test.js | 19 +++++++++++++++ 4 files changed, 48 insertions(+), 1 deletion(-) create mode 100644 .changeset/tame-tomatoes-warn.md create mode 100644 packages/svelte/test/runtime-browser/custom-elements-samples/reflect-attributes-add-remove/main.svelte create mode 100644 packages/svelte/test/runtime-browser/custom-elements-samples/reflect-attributes-add-remove/test.js diff --git a/.changeset/tame-tomatoes-warn.md b/.changeset/tame-tomatoes-warn.md new file mode 100644 index 000000000000..eafba8820867 --- /dev/null +++ b/.changeset/tame-tomatoes-warn.md @@ -0,0 +1,5 @@ +--- +'svelte': patch +--- + +fix: take custom attribute name into account when reflecting property diff --git a/packages/svelte/src/runtime/internal/Component.js b/packages/svelte/src/runtime/internal/Component.js index bc5b117c2ff0..2bfdb6fd4899 100644 --- a/packages/svelte/src/runtime/internal/Component.js +++ b/packages/svelte/src/runtime/internal/Component.js @@ -283,7 +283,7 @@ if (typeof HTMLElement === 'function') { 'toAttribute' ); if (attribute_value == null) { - this.removeAttribute(key); + this.removeAttribute(this.$$p_d[key].attribute || key); } else { this.setAttribute(this.$$p_d[key].attribute || key, attribute_value); } diff --git a/packages/svelte/test/runtime-browser/custom-elements-samples/reflect-attributes-add-remove/main.svelte b/packages/svelte/test/runtime-browser/custom-elements-samples/reflect-attributes-add-remove/main.svelte new file mode 100644 index 000000000000..c5c80c16a3e4 --- /dev/null +++ b/packages/svelte/test/runtime-browser/custom-elements-samples/reflect-attributes-add-remove/main.svelte @@ -0,0 +1,23 @@ + + + + +
+ +
Hidden Text
+
+ + diff --git a/packages/svelte/test/runtime-browser/custom-elements-samples/reflect-attributes-add-remove/test.js b/packages/svelte/test/runtime-browser/custom-elements-samples/reflect-attributes-add-remove/test.js new file mode 100644 index 000000000000..d973039983b9 --- /dev/null +++ b/packages/svelte/test/runtime-browser/custom-elements-samples/reflect-attributes-add-remove/test.js @@ -0,0 +1,19 @@ +import * as assert from 'assert.js'; +import { tick } from 'svelte'; +import './main.svelte'; + +export default async function (target) { + const element = document.createElement('custom-element'); + target.appendChild(element); + await tick(); + + const el = target.querySelector('custom-element'); + el.shadowRoot.querySelector('button').click(); + await tick(); + + assert.equal(el.getAttribute('aria-expanded'), ''); + el.shadowRoot.querySelector('button').click(); + await tick(); + + assert.equal(el.getAttribute('aria-expanded'), null); +} From 213db5d20ad1c3e7065171a3f146c1df873dccd9 Mon Sep 17 00:00:00 2001 From: gtmnayan <50981692+gtm-nayan@users.noreply.github.com> Date: Fri, 25 Aug 2023 21:49:08 +0545 Subject: [PATCH 014/226] docs: fix easings example glitch (#9114) Co-authored-by: Ben McCann <322311+benmccann@users.noreply.github.com> --- .../examples/11-easing/00-easing/App.svelte | 4 ++++ .../11-easing/00-easing/Controls.svelte | 21 +++++++++++-------- 2 files changed, 16 insertions(+), 9 deletions(-) diff --git a/documentation/examples/11-easing/00-easing/App.svelte b/documentation/examples/11-easing/00-easing/App.svelte index 39b6f4ea7899..c3814bb8bd40 100644 --- a/documentation/examples/11-easing/00-easing/App.svelte +++ b/documentation/examples/11-easing/00-easing/App.svelte @@ -68,6 +68,10 @@ From b62fc8c8fd2640c9b99168f01b9d958cb2f7574f Mon Sep 17 00:00:00 2001 From: Yeom suyun <60684815+Artxe2@users.noreply.github.com> Date: Sat, 16 Sep 2023 03:12:53 +0900 Subject: [PATCH 024/226] chore: eslint rule for naming convention (#9208) --- packages/svelte/package.json | 3 +- packages/svelte/scripts/.eslintrc.json | 6 ++ packages/svelte/scripts/compile-test.js | 4 +- packages/svelte/scripts/generate-dts.js | 12 +-- packages/svelte/scripts/globals-extractor.js | 4 +- packages/svelte/src/.eslintrc.json | 6 ++ .../svelte/src/compiler/compile/Component.js | 4 +- .../src/compiler/compile/create_module.js | 20 ++--- .../src/compiler/compile/nodes/Binding.js | 4 +- .../src/compiler/compile/nodes/EachBlock.js | 8 +- .../src/compiler/compile/nodes/Element.js | 2 +- .../compile/nodes/shared/get_const_tags.js | 4 +- .../compile/render_dom/wrappers/Window.js | 16 ++-- .../parse/read/css-tree-cq/css_tree_parse.js | 8 +- .../css-tree-cq/node/query_feature_range.js | 6 +- packages/svelte/src/runtime/internal/dom.js | 68 ++++++++-------- packages/svelte/test/.eslintrc.json | 4 +- .../compiler-errors/compiler-errors.test.js | 4 +- .../css/samples/custom-css-hash/_config.js | 4 +- packages/svelte/test/helpers.js | 9 ++- .../svelte/test/hydration/hydration.test.js | 4 +- .../samples/dynamic-text-nil/_config.js | 8 +- packages/svelte/test/parser/parser.test.js | 16 ++-- .../svelte/test/runtime-browser/assert.js | 10 +-- .../test/runtime-browser/browser.test.js | 8 +- .../reflect-attributes/test.js | 20 ++--- .../svelte/test/runtime-browser/driver.js | 4 +- .../_config.js | 16 ++-- .../_config.js | 16 ++-- .../_config.js | 40 +++++----- .../_config.js | 40 +++++----- .../_config.js | 40 +++++----- .../_config.js | 80 +++++++++---------- .../svelte/test/runtime/runtime.shared.js | 18 ++--- .../samples/$$rest-without-props/_config.js | 10 +-- .../test/runtime/samples/$$rest/_config.js | 10 +-- .../samples/action-function/_config.js | 8 +- .../runtime/samples/action-update/_config.js | 4 +- .../test/runtime/samples/action/_config.js | 8 +- .../samples/await-function-promise/_config.js | 6 +- .../runtime/samples/await-in-each/_config.js | 6 +- .../samples/await-then-catch-event/_config.js | 6 +- .../samples/await-then-catch-if/_config.js | 8 +- .../samples/await-then-catch-order/_config.js | 6 +- .../runtime/samples/await-then-if/_config.js | 6 +- .../_config.js | 6 +- .../binding-input-group-each-7/_config.js | 8 +- .../_config.js | 16 ++-- .../_config.js | 12 +-- .../samples/binding-input-number-2/_config.js | 8 +- .../component-binding-deep-b/_config.js | 4 +- .../_config.js | 4 +- .../_config.js | 4 +- .../component-slot-fallback-2/_config.js | 4 +- .../component-slot-fallback-5/_config.js | 6 +- .../dynamic-element-animation-2/_config.js | 26 +++--- .../_config.js | 4 +- .../_config.js | 6 +- .../each-blocks-assignment-2/_config.js | 4 +- .../samples/each-blocks-assignment/_config.js | 18 ++--- .../event-handler-dynamic-hash/_config.js | 6 +- .../event-handler-dynamic-invalid/_config.js | 8 +- .../samples/event-handler-dynamic/_config.js | 6 +- .../event-handler-each-modifier/_config.js | 14 ++-- .../samples/flush-before-bindings/_config.js | 6 +- .../fragment-trailing-whitespace/_config.js | 12 ++- .../samples/if-block-else-update/_config.js | 10 +-- .../test/runtime/samples/nbsp-div/_config.js | 18 ++--- .../samples/noscript-removal/_config.js | 4 +- .../samples/props-reactive-slot/_config.js | 4 +- .../samples/raw-mustache-as-root/_config.js | 6 +- .../raw-mustache-inside-head/_config.js | 6 +- .../raw-mustache-inside-slot/_config.js | 6 +- .../reactive-import-statement/_config.js | 6 +- .../spread-element-input-value/_config.js | 16 ++-- .../spread-element-input-value/utils.js | 4 +- .../_config.js | 4 +- .../_config.js | 10 +-- .../_config.js | 10 +-- .../store-resubscribe-export/_config.js | 12 +-- .../svg-foreignobject-namespace/_config.js | 4 +- .../samples/textarea-content/_config.js | 35 ++++---- .../this-in-function-expressions/_config.js | 4 +- .../window-bind-scroll-update/_config.js | 6 +- .../test/server-side-rendering/ssr-1.test.js | 16 ++-- .../test/server-side-rendering/ssr-2.test.js | 10 +-- .../samples/compile-option-dev/test.js | 8 +- .../sourcemaps/samples/each-block/test.js | 4 +- .../samples/preprocessed-markup/test.js | 12 +-- .../samples/preprocessed-multiple/test.js | 12 +-- .../samples/preprocessed-script/test.js | 12 +-- .../samples/preprocessed-styles/test.js | 12 +-- .../samples/sourcemap-names/test.js | 6 +- .../svelte/test/sourcemaps/sourcemaps.test.js | 35 ++++---- packages/svelte/test/stats/stats.test.js | 18 ++--- packages/svelte/test/store/store.test.js | 18 ++--- packages/svelte/test/tsconfig.json | 7 +- packages/svelte/test/vars/vars.test.js | 16 ++-- pnpm-lock.yaml | 9 +++ 99 files changed, 585 insertions(+), 551 deletions(-) create mode 100644 packages/svelte/scripts/.eslintrc.json create mode 100644 packages/svelte/src/.eslintrc.json diff --git a/packages/svelte/package.json b/packages/svelte/package.json index 357bfba31b52..5599dbeaf156 100644 --- a/packages/svelte/package.json +++ b/packages/svelte/package.json @@ -83,7 +83,7 @@ "posttest": "agadoo src/internal/index.js", "prepublishOnly": "pnpm build", "types": "node ./scripts/generate-dts.js", - "lint": "prettier . --cache --plugin-search-dir=. --check && eslint \"{src,test}/**/*.{ts,js}\" --cache" + "lint": "prettier . --cache --plugin-search-dir=. --check && eslint \"{scripts,src,test}/**/*.js\" --cache --fix" }, "repository": { "type": "git", @@ -129,6 +129,7 @@ "agadoo": "^3.0.0", "dts-buddy": "^0.1.7", "esbuild": "^0.18.11", + "eslint-plugin-lube": "^0.1.7", "happy-dom": "^9.20.3", "jsdom": "^21.1.2", "kleur": "^4.1.5", diff --git a/packages/svelte/scripts/.eslintrc.json b/packages/svelte/scripts/.eslintrc.json new file mode 100644 index 000000000000..9138b8ea0be3 --- /dev/null +++ b/packages/svelte/scripts/.eslintrc.json @@ -0,0 +1,6 @@ +{ + "plugins": ["lube"], + "rules": { + "lube/svelte-naming-convention": ["error", { "fixSameNames": true }] + } +} diff --git a/packages/svelte/scripts/compile-test.js b/packages/svelte/scripts/compile-test.js index 9a83708b3833..9c9d0efcd520 100644 --- a/packages/svelte/scripts/compile-test.js +++ b/packages/svelte/scripts/compile-test.js @@ -1,8 +1,8 @@ // Compile all Svelte files in a directory to JS and CSS files // Usage: node scripts/compile-test.js -import { mkdirSync, readFileSync, writeFileSync } from 'fs'; -import path from 'path'; +import { mkdirSync, readFileSync, writeFileSync } from 'node:fs'; +import path from 'node:path'; import glob from 'tiny-glob/sync.js'; import { compile } from '../src/compiler/index.js'; diff --git a/packages/svelte/scripts/generate-dts.js b/packages/svelte/scripts/generate-dts.js index 0ecf7127dfd2..9342eae75fe9 100644 --- a/packages/svelte/scripts/generate-dts.js +++ b/packages/svelte/scripts/generate-dts.js @@ -1,18 +1,18 @@ -import * as fs from 'fs'; +import * as fs from 'node:fs'; import { createBundle } from 'dts-buddy'; // It may look weird, but the imports MUST be ending with index.js to be properly resolved in all TS modes for (const name of ['action', 'animate', 'easing', 'motion', 'store', 'transition']) { - fs.writeFileSync(`${name}.d.ts`, `import './types/index.js';`); + fs.writeFileSync(`${name}.d.ts`, "import './types/index.js';"); } -fs.writeFileSync('index.d.ts', `import './types/index.js';`); -fs.writeFileSync('compiler.d.ts', `import './types/index.js';`); +fs.writeFileSync('index.d.ts', "import './types/index.js';"); +fs.writeFileSync('compiler.d.ts', "import './types/index.js';"); // TODO: some way to mark these as deprecated fs.mkdirSync('./types/compiler', { recursive: true }); -fs.writeFileSync('./types/compiler/preprocess.d.ts', `import '../index.js';`); -fs.writeFileSync('./types/compiler/interfaces.d.ts', `import '../index.js';`); +fs.writeFileSync('./types/compiler/preprocess.d.ts', "import '../index.js';"); +fs.writeFileSync('./types/compiler/interfaces.d.ts', "import '../index.js';"); await createBundle({ output: 'types/index.d.ts', diff --git a/packages/svelte/scripts/globals-extractor.js b/packages/svelte/scripts/globals-extractor.js index c35a39a84fe6..bd94cc501f32 100644 --- a/packages/svelte/scripts/globals-extractor.js +++ b/packages/svelte/scripts/globals-extractor.js @@ -6,8 +6,8 @@ Please run `node scripts/globals-extractor.js` at the project root. see: https://github.com/microsoft/TypeScript/tree/main/lib ---------------------------------------------------------------------- */ -import http from 'https'; -import fs from 'fs'; +import http from 'node:https'; +import fs from 'node:fs'; const GLOBAL_TS_PATH = './src/compiler/utils/globals.js'; diff --git a/packages/svelte/src/.eslintrc.json b/packages/svelte/src/.eslintrc.json new file mode 100644 index 000000000000..9138b8ea0be3 --- /dev/null +++ b/packages/svelte/src/.eslintrc.json @@ -0,0 +1,6 @@ +{ + "plugins": ["lube"], + "rules": { + "lube/svelte-naming-convention": ["error", { "fixSameNames": true }] + } +} diff --git a/packages/svelte/src/compiler/compile/Component.js b/packages/svelte/src/compiler/compile/Component.js index 7598e6096741..4071006836aa 100644 --- a/packages/svelte/src/compiler/compile/Component.js +++ b/packages/svelte/src/compiler/compile/Component.js @@ -1555,8 +1555,8 @@ export default class Component { }, []) ); if (cycle && cycle.length) { - const declarationList = lookup.get(cycle[0]); - const declaration = declarationList[0]; + const declaration_list = lookup.get(cycle[0]); + const declaration = declaration_list[0]; return this.error(declaration.node, compiler_errors.cyclical_reactive_declaration(cycle)); } diff --git a/packages/svelte/src/compiler/compile/create_module.js b/packages/svelte/src/compiler/compile/create_module.js index 7c9ff3710962..30a088c7ecb8 100644 --- a/packages/svelte/src/compiler/compile/create_module.js +++ b/packages/svelte/src/compiler/compile/create_module.js @@ -4,7 +4,7 @@ import { b } from 'code-red'; * @param {any} program * @param {import('estree').Identifier} name * @param {string} banner - * @param {any} sveltePath + * @param {any} svelte_path * @param {Array<{ name: string; alias: import('estree').Identifier }>} helpers * @param {Array<{ name: string; alias: import('estree').Identifier }>} globals * @param {import('estree').ImportDeclaration[]} imports @@ -15,21 +15,21 @@ export default function create_module( program, name, banner, - sveltePath = 'svelte', + svelte_path = 'svelte', helpers, globals, imports, module_exports, exports_from ) { - const internal_path = `${sveltePath}/internal`; + const internal_path = `${svelte_path}/internal`; helpers.sort((a, b) => (a.name < b.name ? -1 : 1)); globals.sort((a, b) => (a.name < b.name ? -1 : 1)); return esm( program, name, banner, - sveltePath, + svelte_path, internal_path, helpers, globals, @@ -41,11 +41,11 @@ export default function create_module( /** * @param {any} source - * @param {any} sveltePath + * @param {any} svelte_path */ -function edit_source(source, sveltePath) { +function edit_source(source, svelte_path) { return source === 'svelte' || source.startsWith('svelte/') - ? source.replace('svelte', sveltePath) + ? source.replace('svelte', svelte_path) : source; } @@ -84,7 +84,7 @@ function get_internal_globals(globals, helpers) { * @param {any} program * @param {import('estree').Identifier} name * @param {string} banner - * @param {string} sveltePath + * @param {string} svelte_path * @param {string} internal_path * @param {Array<{ name: string; alias: import('estree').Identifier }>} helpers * @param {Array<{ name: string; alias: import('estree').Identifier }>} globals @@ -96,7 +96,7 @@ function esm( program, name, banner, - sveltePath, + svelte_path, internal_path, helpers, globals, @@ -118,7 +118,7 @@ function esm( /** @param {any} node */ function rewrite_import(node) { - const value = edit_source(node.source.value, sveltePath); + const value = edit_source(node.source.value, svelte_path); if (node.source.value !== value) { node.source.value = value; node.source.raw = null; diff --git a/packages/svelte/src/compiler/compile/nodes/Binding.js b/packages/svelte/src/compiler/compile/nodes/Binding.js index 0c69ada0d794..d43ea987660d 100644 --- a/packages/svelte/src/compiler/compile/nodes/Binding.js +++ b/packages/svelte/src/compiler/compile/nodes/Binding.js @@ -98,7 +98,7 @@ export default class Binding extends Node { this.is_readonly = regex_dimensions.test(this.name) || regex_box_size.test(this.name) || - (isElement(parent) && + (is_element(parent) && ((parent.is_media_node() && read_only_media_attributes.has(this.name)) || (parent.name === 'input' && type === 'file'))) /* TODO others? */; } @@ -127,6 +127,6 @@ export default class Binding extends Node { * @param {import('./shared/Node.js').default} node * @returns {node is import('./Element.js').default} */ -function isElement(node) { +function is_element(node) { return !!(/** @type {any} */ (node).is_media_node); } diff --git a/packages/svelte/src/compiler/compile/nodes/EachBlock.js b/packages/svelte/src/compiler/compile/nodes/EachBlock.js index 3effb263b67d..e54f0af1398c 100644 --- a/packages/svelte/src/compiler/compile/nodes/EachBlock.js +++ b/packages/svelte/src/compiler/compile/nodes/EachBlock.js @@ -84,7 +84,9 @@ export default class EachBlock extends AbstractBlock { this.has_animation = false; [this.const_tags, this.children] = get_const_tags(info.children, component, this, this); if (this.has_animation) { - this.children = this.children.filter((child) => !isEmptyNode(child) && !isCommentNode(child)); + this.children = this.children.filter( + (child) => !is_empty_node(child) && !is_comment_node(child) + ); if (this.children.length !== 1) { const child = this.children.find( (child) => !!(/** @type {import('./Element.js').default} */ (child).animation) @@ -102,11 +104,11 @@ export default class EachBlock extends AbstractBlock { } /** @param {import('./interfaces.js').INode} node */ -function isEmptyNode(node) { +function is_empty_node(node) { return node.type === 'Text' && node.data.trim() === ''; } /** @param {import('./interfaces.js').INode} node */ -function isCommentNode(node) { +function is_comment_node(node) { return node.type === 'Comment'; } diff --git a/packages/svelte/src/compiler/compile/nodes/Element.js b/packages/svelte/src/compiler/compile/nodes/Element.js index 654c2c48f08c..0ee4f26d5f74 100644 --- a/packages/svelte/src/compiler/compile/nodes/Element.js +++ b/packages/svelte/src/compiler/compile/nodes/Element.js @@ -875,7 +875,7 @@ export default class Element extends Node { ) { const interactive_handlers = handlers .map((handler) => handler.name) - .filter((handlerName) => a11y_interactive_handlers.has(handlerName)); + .filter((handler_name) => a11y_interactive_handlers.has(handler_name)); if (interactive_handlers.length > 0) { component.warn( this, diff --git a/packages/svelte/src/compiler/compile/nodes/shared/get_const_tags.js b/packages/svelte/src/compiler/compile/nodes/shared/get_const_tags.js index 8001420664be..b7660893596b 100644 --- a/packages/svelte/src/compiler/compile/nodes/shared/get_const_tags.js +++ b/packages/svelte/src/compiler/compile/nodes/shared/get_const_tags.js @@ -73,8 +73,8 @@ function sort_consts_nodes(consts_nodes, component) { }, []) ); if (cycle && cycle.length) { - const nodeList = lookup.get(cycle[0]); - const node = nodeList[0]; + const node_list = lookup.get(cycle[0]); + const node = node_list[0]; component.error(node.node, compiler_errors.cyclical_const_tags(cycle)); } diff --git a/packages/svelte/src/compiler/compile/render_dom/wrappers/Window.js b/packages/svelte/src/compiler/compile/render_dom/wrappers/Window.js index ff59cb23d3a6..7b0ffa982e2e 100644 --- a/packages/svelte/src/compiler/compile/render_dom/wrappers/Window.js +++ b/packages/svelte/src/compiler/compile/render_dom/wrappers/Window.js @@ -94,14 +94,14 @@ export default class WindowWrapper extends Wrapper { bindings.scrollX && bindings.scrollY ? x`"${bindings.scrollX}" in this._state || "${bindings.scrollY}" in this._state` : x`"${bindings.scrollX || bindings.scrollY}" in this._state`; - const scrollX = bindings.scrollX && x`this._state.${bindings.scrollX}`; - const scrollY = bindings.scrollY && x`this._state.${bindings.scrollY}`; + const scroll_x = bindings.scrollX && x`this._state.${bindings.scrollX}`; + const scroll_y = bindings.scrollY && x`this._state.${bindings.scrollY}`; renderer.meta_bindings.push(b` if (${condition}) { - @_scrollTo(${scrollX || '@_window.pageXOffset'}, ${scrollY || '@_window.pageYOffset'}); + @_scrollTo(${scroll_x || '@_window.pageXOffset'}, ${scroll_y || '@_window.pageYOffset'}); } - ${scrollX && `${scrollX} = @_window.pageXOffset;`} - ${scrollY && `${scrollY} = @_window.pageYOffset;`} + ${scroll_x && `${scroll_x} = @_window.pageXOffset;`} + ${scroll_y && `${scroll_y} = @_window.pageYOffset;`} `); block.event_listeners.push(x` @listen(@_window, "${event}", () => { @@ -132,17 +132,17 @@ export default class WindowWrapper extends Wrapper { // special case... might need to abstract this out if we add more special cases if (bindings.scrollX || bindings.scrollY) { const condition = renderer.dirty([bindings.scrollX, bindings.scrollY].filter(Boolean)); - const scrollX = bindings.scrollX + const scroll_x = bindings.scrollX ? renderer.reference(bindings.scrollX) : x`@_window.pageXOffset`; - const scrollY = bindings.scrollY + const scroll_y = bindings.scrollY ? renderer.reference(bindings.scrollY) : x`@_window.pageYOffset`; block.chunks.update.push(b` if (${condition} && !${scrolling}) { ${scrolling} = true; @_clearTimeout(${scrolling_timeout}); - @_scrollTo(${scrollX}, ${scrollY}); + @_scrollTo(${scroll_x}, ${scroll_y}); ${scrolling_timeout} = @_setTimeout(${clear_scrolling}, 100); } `); diff --git a/packages/svelte/src/compiler/parse/read/css-tree-cq/css_tree_parse.js b/packages/svelte/src/compiler/parse/read/css-tree-cq/css_tree_parse.js index bacb4cc33433..0e019ca0d22c 100644 --- a/packages/svelte/src/compiler/parse/read/css-tree-cq/css_tree_parse.js +++ b/packages/svelte/src/compiler/parse/read/css-tree-cq/css_tree_parse.js @@ -8,7 +8,7 @@ import * as node from './node/index.js'; * * The new nodes are located in `./node`. */ -const cqSyntax = fork({ +const cq_syntax = fork({ atrule: { // extend or override at-rule dictionary container: { @@ -16,8 +16,8 @@ const cqSyntax = fork({ prelude() { return this.createSingleNodeList(this.ContainerQuery()); }, - block(isStyleBlock = false) { - return this.Block(isStyleBlock); + block(is_style_block = false) { + return this.Block(is_style_block); } } } @@ -25,4 +25,4 @@ const cqSyntax = fork({ node }); -export const parse = cqSyntax.parse; +export const parse = cq_syntax.parse; diff --git a/packages/svelte/src/compiler/parse/read/css-tree-cq/node/query_feature_range.js b/packages/svelte/src/compiler/parse/read/css-tree-cq/node/query_feature_range.js index ee8f14abeadd..8553693d6668 100644 --- a/packages/svelte/src/compiler/parse/read/css-tree-cq/node/query_feature_range.js +++ b/packages/svelte/src/compiler/parse/read/css-tree-cq/node/query_feature_range.js @@ -16,7 +16,7 @@ export const structure = { value: ['Identifier', 'Number', 'Comparison', 'Dimension', 'QueryCSSFunction', 'Ratio', null] }; -function lookup_non_WS_type_and_value(offset, type, referenceStr) { +function lookup_non_ws_type_and_value(offset, type, reference_str) { let current_type; do { @@ -26,7 +26,7 @@ function lookup_non_WS_type_and_value(offset, type, referenceStr) { } } while (current_type !== 0); // NULL -> 0 - return current_type === type ? this.lookupValue(offset - 1, referenceStr) : false; + return current_type === type ? this.lookupValue(offset - 1, reference_str) : false; } export function parse() { @@ -40,7 +40,7 @@ export function parse() { while (!this.eof && this.tokenType !== RightParenthesis) { switch (this.tokenType) { case Number: - if (lookup_non_WS_type_and_value.call(this, 1, Delim, '/')) { + if (lookup_non_ws_type_and_value.call(this, 1, Delim, '/')) { child = this.Ratio(); } else { child = this.Number(); diff --git a/packages/svelte/src/runtime/internal/dom.js b/packages/svelte/src/runtime/internal/dom.js index 18a5d5d2787b..9e1fd7e261ec 100644 --- a/packages/svelte/src/runtime/internal/dom.js +++ b/packages/svelte/src/runtime/internal/dom.js @@ -1,5 +1,7 @@ -import { ResizeObserverSingleton } from './ResizeObserverSingleton.js'; import { contenteditable_truthy_values, has_prop } from './utils.js'; + +import { ResizeObserverSingleton } from './ResizeObserverSingleton.js'; + // Track which nodes are claimed during hydration. Unclaimed nodes can then be removed from the DOM // at the end of hydration without touching the remaining nodes. let is_hydrating = false; @@ -50,14 +52,14 @@ function init_hydrate(target) { let children = /** @type {ArrayLike} */ (target.childNodes); // If target is , there may be children without claim_order if (target.nodeName === 'HEAD') { - const myChildren = []; + const my_children = []; for (let i = 0; i < children.length; i++) { const node = children[i]; if (node.claim_order !== undefined) { - myChildren.push(node); + my_children.push(node); } } - children = myChildren; + children = my_children; } /* * Reorder claimed children optimally. @@ -87,15 +89,15 @@ function init_hydrate(target) { // Find the largest subsequence length such that it ends in a value less than our current value // upper_bound returns first greater value, so we subtract one // with fast path for when we are on the current longest subsequence - const seqLen = + const seq_len = (longest > 0 && children[m[longest]].claim_order <= current ? longest + 1 : upper_bound(1, longest, (idx) => children[m[idx]].claim_order, current)) - 1; - p[i] = m[seqLen] + 1; - const newLen = seqLen + 1; + p[i] = m[seq_len] + 1; + const new_len = seq_len + 1; // We can guarantee that current is the smallest value. Otherwise, we would have generated a longer sequence. - m[newLen] = i; - longest = Math.max(newLen, longest); + m[new_len] = i; + longest = Math.max(new_len, longest); } // The longest increasing subsequence of nodes (initially reversed) @@ -108,28 +110,28 @@ function init_hydrate(target) { /** * @type {NodeEx2[]} */ - const toMove = []; + const to_move = []; let last = children.length - 1; for (let cur = m[longest] + 1; cur != 0; cur = p[cur - 1]) { lis.push(children[cur - 1]); for (; last >= cur; last--) { - toMove.push(children[last]); + to_move.push(children[last]); } last--; } for (; last >= 0; last--) { - toMove.push(children[last]); + to_move.push(children[last]); } lis.reverse(); // We sort the nodes being moved to guarantee that their insertion order matches the claim order - toMove.sort((a, b) => a.claim_order - b.claim_order); + to_move.sort((a, b) => a.claim_order - b.claim_order); // Finally, we move the nodes - for (let i = 0, j = 0; i < toMove.length; i++) { - while (j < lis.length && toMove[i].claim_order >= lis[j].claim_order) { + for (let i = 0, j = 0; i < to_move.length; i++) { + while (j < lis.length && to_move[i].claim_order >= lis[j].claim_order) { j++; } const anchor = j < lis.length ? lis[j] : null; - target.insertBefore(toMove[i], anchor); + target.insertBefore(to_move[i], anchor); } } @@ -624,26 +626,26 @@ function init_claim_info(nodes) { * @template {ChildNodeEx} R * @param {ChildNodeArray} nodes * @param {(node: ChildNodeEx) => node is R} predicate - * @param {(node: ChildNodeEx) => ChildNodeEx | undefined} processNode - * @param {() => R} createNode - * @param {boolean} dontUpdateLastIndex + * @param {(node: ChildNodeEx) => ChildNodeEx | undefined} process_node + * @param {() => R} create_node + * @param {boolean} dont_update_last_index * @returns {R} */ -function claim_node(nodes, predicate, processNode, createNode, dontUpdateLastIndex = false) { +function claim_node(nodes, predicate, process_node, create_node, dont_update_last_index = false) { // Try to find nodes in an order such that we lengthen the longest increasing subsequence init_claim_info(nodes); - const resultNode = (() => { + const result_node = (() => { // We first try to find an element after the previous one for (let i = nodes.claim_info.last_index; i < nodes.length; i++) { const node = nodes[i]; if (predicate(node)) { - const replacement = processNode(node); + const replacement = process_node(node); if (replacement === undefined) { nodes.splice(i, 1); } else { nodes[i] = replacement; } - if (!dontUpdateLastIndex) { + if (!dont_update_last_index) { nodes.claim_info.last_index = i; } return node; @@ -654,13 +656,13 @@ function claim_node(nodes, predicate, processNode, createNode, dontUpdateLastInd for (let i = nodes.claim_info.last_index - 1; i >= 0; i--) { const node = nodes[i]; if (predicate(node)) { - const replacement = processNode(node); + const replacement = process_node(node); if (replacement === undefined) { nodes.splice(i, 1); } else { nodes[i] = replacement; } - if (!dontUpdateLastIndex) { + if (!dont_update_last_index) { nodes.claim_info.last_index = i; } else if (replacement === undefined) { // Since we spliced before the last_index, we decrease it @@ -670,11 +672,11 @@ function claim_node(nodes, predicate, processNode, createNode, dontUpdateLastInd } } // If we can't find any matching node, we create a new one - return createNode(); + return create_node(); })(); - resultNode.claim_order = nodes.claim_info.total_claimed; + result_node.claim_order = nodes.claim_info.total_claimed; nodes.claim_info.total_claimed += 1; - return resultNode; + return result_node; } /** @@ -736,13 +738,13 @@ export function claim_text(nodes, data) { (node) => node.nodeType === 3, /** @param {Text} node */ (node) => { - const dataStr = '' + data; - if (node.data.startsWith(dataStr)) { - if (node.data.length !== dataStr.length) { - return node.splitText(dataStr.length); + const data_str = '' + data; + if (node.data.startsWith(data_str)) { + if (node.data.length !== data_str.length) { + return node.splitText(data_str.length); } } else { - node.data = dataStr; + node.data = data_str; } }, () => text(data), diff --git a/packages/svelte/test/.eslintrc.json b/packages/svelte/test/.eslintrc.json index 89ee14da1639..6075b89ae664 100644 --- a/packages/svelte/test/.eslintrc.json +++ b/packages/svelte/test/.eslintrc.json @@ -1,6 +1,8 @@ { + "plugins": ["lube"], "rules": { "no-console": "off", - "@typescript-eslint/no-var-requires": "off" + "@typescript-eslint/no-var-requires": "off", + "lube/svelte-naming-convention": ["error", { "fixSameNames": true }] } } diff --git a/packages/svelte/test/compiler-errors/compiler-errors.test.js b/packages/svelte/test/compiler-errors/compiler-errors.test.js index 065e9cc01dee..e97e55608783 100644 --- a/packages/svelte/test/compiler-errors/compiler-errors.test.js +++ b/packages/svelte/test/compiler-errors/compiler-errors.test.js @@ -20,14 +20,14 @@ describe('compiler-errors', () => { it_fn(dir, () => { const cwd = path.resolve(`${__dirname}/samples/${dir}`); - const compileOptions = Object.assign({}, config.compileOptions || {}, { + const compile_options = Object.assign({}, config.compileOptions || {}, { immutable: config.immutable, accessors: 'accessors' in config ? config.accessors : true, generate: 'dom' }); try { - compile(fs.readFileSync(`${cwd}/main.svelte`, 'utf-8'), compileOptions); + compile(fs.readFileSync(`${cwd}/main.svelte`, 'utf-8'), compile_options); } catch (error) { if (typeof config.error === 'function') { config.error(assert, error); diff --git a/packages/svelte/test/css/samples/custom-css-hash/_config.js b/packages/svelte/test/css/samples/custom-css-hash/_config.js index e6a60f059d3c..3d55fa1b3c7b 100644 --- a/packages/svelte/test/css/samples/custom-css-hash/_config.js +++ b/packages/svelte/test/css/samples/custom-css-hash/_config.js @@ -2,11 +2,11 @@ export default { compileOptions: { filename: 'src/components/FooSwitcher.svelte', cssHash({ hash, css, name, filename }) { - const minFilename = filename + const min_filename = filename .split('/') .map((i) => i.charAt(0).toLowerCase()) .join(''); - return `sv-${name}-${minFilename}-${hash(css)}`; + return `sv-${name}-${min_filename}-${hash(css)}`; } } }; diff --git a/packages/svelte/test/helpers.js b/packages/svelte/test/helpers.js index b5ee539be8b3..c306cae8bae8 100644 --- a/packages/svelte/test/helpers.js +++ b/packages/svelte/test/helpers.js @@ -1,10 +1,11 @@ import * as fs from 'node:fs'; import * as path from 'node:path'; -import glob from 'tiny-glob/sync'; -import colors from 'kleur'; + import { assert } from 'vitest'; +import colors from 'kleur'; import { compile } from 'svelte/compiler'; import { fileURLToPath } from 'node:url'; +import glob from 'tiny-glob/sync'; export function try_load_json(file) { try { @@ -158,8 +159,8 @@ export function create_loader(compileOptions, cwd) { ) .replace( /^import (\w+, )?{([^}]+)} from ['"](.+)['"];?/gm, - (_, default_, names, source) => { - const d = default_ ? `default: ${default_}` : ''; + (_, _default, names, source) => { + const d = _default ? `default: ${_default}` : ''; return `const { ${d} ${names.replaceAll( ' as ', ': ' diff --git a/packages/svelte/test/hydration/hydration.test.js b/packages/svelte/test/hydration/hydration.test.js index 48e9f3b751fc..fc12802e8257 100644 --- a/packages/svelte/test/hydration/hydration.test.js +++ b/packages/svelte/test/hydration/hydration.test.js @@ -18,12 +18,12 @@ describe('hydration', async () => { it_fn(dir, async () => { const cwd = path.resolve(`${__dirname}/samples/${dir}`); - const compileOptions = Object.assign({}, config.compileOptions, { + const compile_options = Object.assign({}, config.compileOptions, { accessors: 'accessors' in config ? config.accessors : true, hydratable: true }); - const { default: SvelteComponent } = await create_loader(compileOptions, cwd)('main.svelte'); + const { default: SvelteComponent } = await create_loader(compile_options, cwd)('main.svelte'); const target = window.document.body; const head = window.document.head; diff --git a/packages/svelte/test/hydration/samples/dynamic-text-nil/_config.js b/packages/svelte/test/hydration/samples/dynamic-text-nil/_config.js index 35583f7fca53..13196cbbe9a8 100644 --- a/packages/svelte/test/hydration/samples/dynamic-text-nil/_config.js +++ b/packages/svelte/test/hydration/samples/dynamic-text-nil/_config.js @@ -2,12 +2,12 @@ export default { props: {}, snapshot(target) { - const nullText = target.querySelectorAll('p')[0].textContent; - const undefinedText = target.querySelectorAll('p')[1].textContent; + const null_text = target.querySelectorAll('p')[0].textContent; + const undefined_text = target.querySelectorAll('p')[1].textContent; return { - nullText, - undefinedText + nullText: null_text, + undefinedText: undefined_text }; } }; diff --git a/packages/svelte/test/parser/parser.test.js b/packages/svelte/test/parser/parser.test.js index 67a621582a08..7826e00251a4 100644 --- a/packages/svelte/test/parser/parser.test.js +++ b/packages/svelte/test/parser/parser.test.js @@ -26,8 +26,8 @@ describe('parse', () => { .trimEnd() .replace(/\r/g, ''); - const expectedOutput = try_load_json(`${__dirname}/samples/${dir}/output.json`); - const expectedError = try_load_json(`${__dirname}/samples/${dir}/error.json`); + const expected_output = try_load_json(`${__dirname}/samples/${dir}/output.json`); + const expected_error = try_load_json(`${__dirname}/samples/${dir}/error.json`); try { const { ast } = svelte.compile( @@ -42,16 +42,16 @@ describe('parse', () => { JSON.stringify(ast, null, '\t') ); - assert.deepEqual(ast.html, expectedOutput.html); - assert.deepEqual(ast.css, expectedOutput.css); - assert.deepEqual(ast.instance, expectedOutput.instance); - assert.deepEqual(ast.module, expectedOutput.module); + assert.deepEqual(ast.html, expected_output.html); + assert.deepEqual(ast.css, expected_output.css); + assert.deepEqual(ast.instance, expected_output.instance); + assert.deepEqual(ast.module, expected_output.module); } catch (err) { if (err.name !== 'ParseError') throw err; - if (!expectedError) throw err; + if (!expected_error) throw err; const { code, message, pos, start } = err; - assert.deepEqual({ code, message, pos, start }, expectedError); + assert.deepEqual({ code, message, pos, start }, expected_error); } }); }); diff --git a/packages/svelte/test/runtime-browser/assert.js b/packages/svelte/test/runtime-browser/assert.js index 55058d2057c2..3b7863b51991 100644 --- a/packages/svelte/test/runtime-browser/assert.js +++ b/packages/svelte/test/runtime-browser/assert.js @@ -33,10 +33,10 @@ export function ok(condition, message) { } export function htmlEqual(actual, expected, message) { - return deepEqual(normalizeHtml(window, actual), normalizeHtml(window, expected), message); + return deepEqual(normalize_html(window, actual), normalize_html(window, expected), message); } -function normalizeHtml(window, html) { +function normalize_html(window, html) { try { const node = window.document.createElement('div'); node.innerHTML = html @@ -44,7 +44,7 @@ function normalizeHtml(window, html) { .replace(/>[\s\r\n]+<') .trim(); - normalizeStyles(node); + normalize_styles(node); return node.innerHTML.replace(/<\/?noscript\/?>/g, ''); } catch (err) { @@ -52,14 +52,14 @@ function normalizeHtml(window, html) { } } -function normalizeStyles(node) { +function normalize_styles(node) { if (node.nodeType === 1) { if (node.hasAttribute('style')) { node.style = node.style.cssText; } for (const child of node.childNodes) { - normalizeStyles(child); + normalize_styles(child); } } } diff --git a/packages/svelte/test/runtime-browser/browser.test.js b/packages/svelte/test/runtime-browser/browser.test.js index 00ecaa652263..01f2cdb9b1bc 100644 --- a/packages/svelte/test/runtime-browser/browser.test.js +++ b/packages/svelte/test/runtime-browser/browser.test.js @@ -93,7 +93,7 @@ async function run_browser_test(dir) { globalName: 'test' }); - function assertWarnings() { + function assert_warnings() { if (config.warnings) { assert.deepStrictEqual( warnings.map((w) => ({ @@ -112,7 +112,7 @@ async function run_browser_test(dir) { } } - assertWarnings(); + assert_warnings(); try { const page = await browser.newPage(); @@ -191,7 +191,7 @@ async function run_custom_elements_test(dir) { globalName: 'test' }); - function assertWarnings() { + function assert_warnings() { if (expected_warnings) { assert.deepStrictEqual( warnings.map((w) => ({ @@ -205,7 +205,7 @@ async function run_custom_elements_test(dir) { ); } } - assertWarnings(); + assert_warnings(); const page = await browser.newPage(); page.on('console', (type) => { diff --git a/packages/svelte/test/runtime-browser/custom-elements-samples/reflect-attributes/test.js b/packages/svelte/test/runtime-browser/custom-elements-samples/reflect-attributes/test.js index c66f9f3b97bb..e869e7bff987 100644 --- a/packages/svelte/test/runtime-browser/custom-elements-samples/reflect-attributes/test.js +++ b/packages/svelte/test/runtime-browser/custom-elements-samples/reflect-attributes/test.js @@ -6,25 +6,25 @@ export default async function (target) { target.innerHTML = ''; await tick(); await tick(); - const ceRoot = target.querySelector('custom-element').shadowRoot; - const div = ceRoot.querySelector('div'); - const p = ceRoot.querySelector('p'); - const button = ceRoot.querySelector('button'); + const ce_root = target.querySelector('custom-element').shadowRoot; + const div = ce_root.querySelector('div'); + const p = ce_root.querySelector('p'); + const button = ce_root.querySelector('button'); assert.equal(getComputedStyle(div).color, 'rgb(255, 0, 0)'); assert.equal(getComputedStyle(p).color, 'rgb(255, 255, 255)'); - const innerRoot = ceRoot.querySelector('my-widget').shadowRoot; - const innerDiv = innerRoot.querySelector('div'); - const innerP = innerRoot.querySelector('p'); + const inner_root = ce_root.querySelector('my-widget').shadowRoot; + const inner_div = inner_root.querySelector('div'); + const inner_p = inner_root.querySelector('p'); - assert.equal(getComputedStyle(innerDiv).color, 'rgb(255, 0, 0)'); - assert.equal(getComputedStyle(innerP).color, 'rgb(255, 255, 255)'); + assert.equal(getComputedStyle(inner_div).color, 'rgb(255, 0, 0)'); + assert.equal(getComputedStyle(inner_p).color, 'rgb(255, 255, 255)'); button.click(); await tick(); await tick(); assert.equal(getComputedStyle(div).color, 'rgb(0, 0, 0)'); - assert.equal(getComputedStyle(innerDiv).color, 'rgb(0, 0, 0)'); + assert.equal(getComputedStyle(inner_div).color, 'rgb(0, 0, 0)'); } diff --git a/packages/svelte/test/runtime-browser/driver.js b/packages/svelte/test/runtime-browser/driver.js index 286ddbe62d96..349181a2dce8 100644 --- a/packages/svelte/test/runtime-browser/driver.js +++ b/packages/svelte/test/runtime-browser/driver.js @@ -30,7 +30,7 @@ export default async function (target) { const component = new SvelteComponent(options); - const waitUntil = async (fn, ms = 500) => { + const wait_until = async (fn, ms = 500) => { const start = new Date().getTime(); do { if (fn()) return; @@ -48,7 +48,7 @@ export default async function (target) { component, target, window, - waitUntil + waitUntil: wait_until }); component.$destroy(); diff --git a/packages/svelte/test/runtime-browser/samples/component-css-custom-properties-dynamic-svg/_config.js b/packages/svelte/test/runtime-browser/samples/component-css-custom-properties-dynamic-svg/_config.js index a17e6e939d29..4b2c5b8c34ef 100644 --- a/packages/svelte/test/runtime-browser/samples/component-css-custom-properties-dynamic-svg/_config.js +++ b/packages/svelte/test/runtime-browser/samples/component-css-custom-properties-dynamic-svg/_config.js @@ -45,14 +45,14 @@ export default { ` ); - const circleColor1 = target.querySelector('#svg-1 circle'); - const rectColor1 = target.querySelector('#svg-1 rect'); - const circleColor2 = target.querySelector('#svg-2 circle'); - const rectColor2 = target.querySelector('#svg-2 rect'); + const circle_color1 = target.querySelector('#svg-1 circle'); + const rect_color1 = target.querySelector('#svg-1 rect'); + const circle_color2 = target.querySelector('#svg-2 circle'); + const rect_color2 = target.querySelector('#svg-2 rect'); - assert.htmlEqual(window.getComputedStyle(circleColor1).fill, 'rgb(255, 0, 0)'); - assert.htmlEqual(window.getComputedStyle(rectColor1).fill, 'rgb(255, 255, 0)'); - assert.htmlEqual(window.getComputedStyle(circleColor2).fill, 'rgb(0, 255, 255)'); - assert.htmlEqual(window.getComputedStyle(rectColor2).fill, 'rgb(0, 0, 0)'); + assert.htmlEqual(window.getComputedStyle(circle_color1).fill, 'rgb(255, 0, 0)'); + assert.htmlEqual(window.getComputedStyle(rect_color1).fill, 'rgb(255, 255, 0)'); + assert.htmlEqual(window.getComputedStyle(circle_color2).fill, 'rgb(0, 255, 255)'); + assert.htmlEqual(window.getComputedStyle(rect_color2).fill, 'rgb(0, 0, 0)'); } }; diff --git a/packages/svelte/test/runtime-browser/samples/component-css-custom-properties/_config.js b/packages/svelte/test/runtime-browser/samples/component-css-custom-properties/_config.js index 9c3b7cbdeaf2..04c0f0a20b5f 100644 --- a/packages/svelte/test/runtime-browser/samples/component-css-custom-properties/_config.js +++ b/packages/svelte/test/runtime-browser/samples/component-css-custom-properties/_config.js @@ -14,14 +14,14 @@ export default { `, test({ target, window, assert }) { - const railColor1 = target.querySelector('#slider-1 p'); - const trackColor1 = target.querySelector('#slider-1 span'); - const railColor2 = target.querySelector('#slider-2 p'); - const trackColor2 = target.querySelector('#slider-2 span'); + const rail_color1 = target.querySelector('#slider-1 p'); + const track_color1 = target.querySelector('#slider-1 span'); + const rail_color2 = target.querySelector('#slider-2 p'); + const track_color2 = target.querySelector('#slider-2 span'); - assert.htmlEqual(window.getComputedStyle(railColor1).color, 'rgb(0, 0, 0)'); - assert.htmlEqual(window.getComputedStyle(trackColor1).color, 'rgb(255, 0, 0)'); - assert.htmlEqual(window.getComputedStyle(railColor2).color, 'rgb(0, 255, 0)'); - assert.htmlEqual(window.getComputedStyle(trackColor2).color, 'rgb(0, 0, 255)'); + assert.htmlEqual(window.getComputedStyle(rail_color1).color, 'rgb(0, 0, 0)'); + assert.htmlEqual(window.getComputedStyle(track_color1).color, 'rgb(255, 0, 0)'); + assert.htmlEqual(window.getComputedStyle(rail_color2).color, 'rgb(0, 255, 0)'); + assert.htmlEqual(window.getComputedStyle(track_color2).color, 'rgb(0, 0, 255)'); } }; diff --git a/packages/svelte/test/runtime-browser/samples/svelte-component-css-custom-properties/_config.js b/packages/svelte/test/runtime-browser/samples/svelte-component-css-custom-properties/_config.js index 8e423af308b0..53ff398e8f89 100644 --- a/packages/svelte/test/runtime-browser/samples/svelte-component-css-custom-properties/_config.js +++ b/packages/svelte/test/runtime-browser/samples/svelte-component-css-custom-properties/_config.js @@ -18,31 +18,31 @@ export default { `, test({ target, window, assert, component }) { function assert_slider_1() { - const railColor1 = target.querySelector('#component1 p'); - const trackColor1 = target.querySelector('#component1 span'); - const railColor2 = target.querySelector('#component2 p'); - const trackColor2 = target.querySelector('#component2 span'); + const rail_color1 = target.querySelector('#component1 p'); + const track_color1 = target.querySelector('#component1 span'); + const rail_color2 = target.querySelector('#component2 p'); + const track_color2 = target.querySelector('#component2 span'); - assert.equal(window.getComputedStyle(railColor1).color, 'rgb(0, 0, 0)'); - assert.equal(window.getComputedStyle(trackColor1).color, 'rgb(255, 0, 0)'); - assert.equal(window.getComputedStyle(railColor2).color, 'rgb(0, 255, 0)'); - assert.equal(window.getComputedStyle(trackColor2).color, 'rgb(0, 0, 255)'); - assert.equal(railColor1.textContent, 'Slider1'); - assert.equal(railColor2.textContent, 'Slider1'); + assert.equal(window.getComputedStyle(rail_color1).color, 'rgb(0, 0, 0)'); + assert.equal(window.getComputedStyle(track_color1).color, 'rgb(255, 0, 0)'); + assert.equal(window.getComputedStyle(rail_color2).color, 'rgb(0, 255, 0)'); + assert.equal(window.getComputedStyle(track_color2).color, 'rgb(0, 0, 255)'); + assert.equal(rail_color1.textContent, 'Slider1'); + assert.equal(rail_color2.textContent, 'Slider1'); } function assert_slider_2() { - const railColor1 = target.querySelector('#component1 p'); - const trackColor1 = target.querySelector('#component1 span'); - const railColor2 = target.querySelector('#component2 p'); - const trackColor2 = target.querySelector('#component2 span'); + const rail_color1 = target.querySelector('#component1 p'); + const track_color1 = target.querySelector('#component1 span'); + const rail_color2 = target.querySelector('#component2 p'); + const track_color2 = target.querySelector('#component2 span'); - assert.equal(window.getComputedStyle(railColor1).color, 'rgb(0, 0, 0)'); - assert.equal(window.getComputedStyle(trackColor1).color, 'rgb(255, 0, 0)'); - assert.equal(window.getComputedStyle(railColor2).color, 'rgb(0, 255, 0)'); - assert.equal(window.getComputedStyle(trackColor2).color, 'rgb(0, 0, 255)'); - assert.equal(railColor1.textContent, 'Slider2'); - assert.equal(railColor2.textContent, 'Slider2'); + assert.equal(window.getComputedStyle(rail_color1).color, 'rgb(0, 0, 0)'); + assert.equal(window.getComputedStyle(track_color1).color, 'rgb(255, 0, 0)'); + assert.equal(window.getComputedStyle(rail_color2).color, 'rgb(0, 255, 0)'); + assert.equal(window.getComputedStyle(track_color2).color, 'rgb(0, 0, 255)'); + assert.equal(rail_color1.textContent, 'Slider2'); + assert.equal(rail_color2.textContent, 'Slider2'); } assert_slider_1(); diff --git a/packages/svelte/test/runtime-browser/samples/svelte-component-css-custom-properties2/_config.js b/packages/svelte/test/runtime-browser/samples/svelte-component-css-custom-properties2/_config.js index 6bc789035d2b..6c3656f6309e 100644 --- a/packages/svelte/test/runtime-browser/samples/svelte-component-css-custom-properties2/_config.js +++ b/packages/svelte/test/runtime-browser/samples/svelte-component-css-custom-properties2/_config.js @@ -20,31 +20,31 @@ export default { `, test({ target, window, assert, component }) { function assert_slider_1() { - const railColor1 = target.querySelector('#component1 p'); - const trackColor1 = target.querySelector('#component1 span'); - const railColor2 = target.querySelector('#component2 p'); - const trackColor2 = target.querySelector('#component2 span'); + const rail_color1 = target.querySelector('#component1 p'); + const track_color1 = target.querySelector('#component1 span'); + const rail_color2 = target.querySelector('#component2 p'); + const track_color2 = target.querySelector('#component2 span'); - assert.equal(window.getComputedStyle(railColor1).color, 'rgb(0, 0, 0)'); - assert.equal(window.getComputedStyle(trackColor1).color, 'rgb(255, 0, 0)'); - assert.equal(window.getComputedStyle(railColor2).color, 'rgb(0, 255, 0)'); - assert.equal(window.getComputedStyle(trackColor2).color, 'rgb(0, 0, 255)'); - assert.equal(railColor1.textContent, 'Slider1'); - assert.equal(railColor2.textContent, 'Slider1'); + assert.equal(window.getComputedStyle(rail_color1).color, 'rgb(0, 0, 0)'); + assert.equal(window.getComputedStyle(track_color1).color, 'rgb(255, 0, 0)'); + assert.equal(window.getComputedStyle(rail_color2).color, 'rgb(0, 255, 0)'); + assert.equal(window.getComputedStyle(track_color2).color, 'rgb(0, 0, 255)'); + assert.equal(rail_color1.textContent, 'Slider1'); + assert.equal(rail_color2.textContent, 'Slider1'); } function assert_slider_2() { - const railColor1 = target.querySelector('#component1 p'); - const trackColor1 = target.querySelector('#component1 span'); - const railColor2 = target.querySelector('#component2 p'); - const trackColor2 = target.querySelector('#component2 span'); + const rail_color1 = target.querySelector('#component1 p'); + const track_color1 = target.querySelector('#component1 span'); + const rail_color2 = target.querySelector('#component2 p'); + const track_color2 = target.querySelector('#component2 span'); - assert.equal(window.getComputedStyle(railColor1).color, 'rgb(0, 0, 0)'); - assert.equal(window.getComputedStyle(trackColor1).color, 'rgb(255, 0, 0)'); - assert.equal(window.getComputedStyle(railColor2).color, 'rgb(0, 255, 0)'); - assert.equal(window.getComputedStyle(trackColor2).color, 'rgb(0, 0, 255)'); - assert.equal(railColor1.textContent, 'Slider2'); - assert.equal(railColor2.textContent, 'Slider2'); + assert.equal(window.getComputedStyle(rail_color1).color, 'rgb(0, 0, 0)'); + assert.equal(window.getComputedStyle(track_color1).color, 'rgb(255, 0, 0)'); + assert.equal(window.getComputedStyle(rail_color2).color, 'rgb(0, 255, 0)'); + assert.equal(window.getComputedStyle(track_color2).color, 'rgb(0, 0, 255)'); + assert.equal(rail_color1.textContent, 'Slider2'); + assert.equal(rail_color2.textContent, 'Slider2'); } assert_slider_1(); diff --git a/packages/svelte/test/runtime-browser/samples/svelte-self-css-custom-properties/_config.js b/packages/svelte/test/runtime-browser/samples/svelte-self-css-custom-properties/_config.js index f3023db3c401..7350db32caca 100644 --- a/packages/svelte/test/runtime-browser/samples/svelte-self-css-custom-properties/_config.js +++ b/packages/svelte/test/runtime-browser/samples/svelte-self-css-custom-properties/_config.js @@ -22,26 +22,26 @@ export default { `, test({ target, window, assert }) { - const railColor1 = target.querySelector('#component1 p'); - const trackColor1 = target.querySelector('#component1 span'); - const railColor2 = target.querySelector('#component2 p'); - const trackColor2 = target.querySelector('#component2 span'); - const nestRailColor1 = target.querySelector('#nest-component1 p'); - const nestTrackColor1 = target.querySelector('#nest-component1 span'); - const nestRailColor2 = target.querySelector('#nest-component2 p'); - const nestTrackColor2 = target.querySelector('#nest-component2 span'); + const rail_color1 = target.querySelector('#component1 p'); + const track_color1 = target.querySelector('#component1 span'); + const rail_color2 = target.querySelector('#component2 p'); + const track_color2 = target.querySelector('#component2 span'); + const nest_rail_color1 = target.querySelector('#nest-component1 p'); + const nest_track_color1 = target.querySelector('#nest-component1 span'); + const nest_rail_color2 = target.querySelector('#nest-component2 p'); + const nest_track_color2 = target.querySelector('#nest-component2 span'); - assert.equal(window.getComputedStyle(railColor1).color, 'rgb(0, 0, 0)'); - assert.equal(window.getComputedStyle(trackColor1).color, 'rgb(255, 0, 0)'); - assert.equal(window.getComputedStyle(railColor2).color, 'rgb(0, 255, 0)'); - assert.equal(window.getComputedStyle(trackColor2).color, 'rgb(0, 0, 255)'); - assert.equal(window.getComputedStyle(nestRailColor1).color, 'rgb(255, 255, 0)'); - assert.equal(window.getComputedStyle(nestTrackColor1).color, 'rgb(255, 0, 255)'); - assert.equal(window.getComputedStyle(nestRailColor2).color, 'rgb(0, 255, 255)'); - assert.equal(window.getComputedStyle(nestTrackColor2).color, 'rgb(255, 255, 255)'); - assert.equal(railColor1.textContent, 'Slider1'); - assert.equal(railColor2.textContent, 'Slider2'); - assert.equal(nestRailColor1.textContent, 'Slider1'); - assert.equal(nestRailColor2.textContent, 'Slider2'); + assert.equal(window.getComputedStyle(rail_color1).color, 'rgb(0, 0, 0)'); + assert.equal(window.getComputedStyle(track_color1).color, 'rgb(255, 0, 0)'); + assert.equal(window.getComputedStyle(rail_color2).color, 'rgb(0, 255, 0)'); + assert.equal(window.getComputedStyle(track_color2).color, 'rgb(0, 0, 255)'); + assert.equal(window.getComputedStyle(nest_rail_color1).color, 'rgb(255, 255, 0)'); + assert.equal(window.getComputedStyle(nest_track_color1).color, 'rgb(255, 0, 255)'); + assert.equal(window.getComputedStyle(nest_rail_color2).color, 'rgb(0, 255, 255)'); + assert.equal(window.getComputedStyle(nest_track_color2).color, 'rgb(255, 255, 255)'); + assert.equal(rail_color1.textContent, 'Slider1'); + assert.equal(rail_color2.textContent, 'Slider2'); + assert.equal(nest_rail_color1.textContent, 'Slider1'); + assert.equal(nest_rail_color2.textContent, 'Slider2'); } }; diff --git a/packages/svelte/test/runtime-browser/samples/svelte-self-css-custom-properties2/_config.js b/packages/svelte/test/runtime-browser/samples/svelte-self-css-custom-properties2/_config.js index 6a976a141cd3..58ff163f9bcd 100644 --- a/packages/svelte/test/runtime-browser/samples/svelte-self-css-custom-properties2/_config.js +++ b/packages/svelte/test/runtime-browser/samples/svelte-self-css-custom-properties2/_config.js @@ -25,51 +25,51 @@ export default { `, test({ target, window, assert, component }) { function assert_slider_1() { - const railColor1 = target.querySelector('#component1 p'); - const trackColor1 = target.querySelector('#component1 span'); - const railColor2 = target.querySelector('#component2 p'); - const trackColor2 = target.querySelector('#component2 span'); - const nestRailColor1 = target.querySelector('#nest-component1 p'); - const nestTrackColor1 = target.querySelector('#nest-component1 span'); - const nestRailColor2 = target.querySelector('#nest-component2 p'); - const nestTrackColor2 = target.querySelector('#nest-component2 span'); + const rail_color1 = target.querySelector('#component1 p'); + const track_color1 = target.querySelector('#component1 span'); + const rail_color2 = target.querySelector('#component2 p'); + const track_color2 = target.querySelector('#component2 span'); + const nest_rail_color1 = target.querySelector('#nest-component1 p'); + const nest_track_color1 = target.querySelector('#nest-component1 span'); + const nest_rail_color2 = target.querySelector('#nest-component2 p'); + const nest_track_color2 = target.querySelector('#nest-component2 span'); - assert.equal(window.getComputedStyle(railColor1).color, 'rgb(0, 0, 0)'); - assert.equal(window.getComputedStyle(trackColor1).color, 'rgb(255, 0, 0)'); - assert.equal(window.getComputedStyle(railColor2).color, 'rgb(0, 255, 0)'); - assert.equal(window.getComputedStyle(trackColor2).color, 'rgb(0, 0, 255)'); - assert.equal(window.getComputedStyle(nestRailColor1).color, 'rgb(255, 255, 0)'); - assert.equal(window.getComputedStyle(nestTrackColor1).color, 'rgb(255, 0, 255)'); - assert.equal(window.getComputedStyle(nestRailColor2).color, 'rgb(255, 255, 0)'); - assert.equal(window.getComputedStyle(nestTrackColor2).color, 'rgb(255, 0, 255)'); - assert.equal(railColor1.textContent, 'Slider1'); - assert.equal(railColor2.textContent, 'Slider1'); - assert.equal(nestRailColor1.textContent, 'Slider1'); - assert.equal(nestRailColor2.textContent, 'Slider1'); + assert.equal(window.getComputedStyle(rail_color1).color, 'rgb(0, 0, 0)'); + assert.equal(window.getComputedStyle(track_color1).color, 'rgb(255, 0, 0)'); + assert.equal(window.getComputedStyle(rail_color2).color, 'rgb(0, 255, 0)'); + assert.equal(window.getComputedStyle(track_color2).color, 'rgb(0, 0, 255)'); + assert.equal(window.getComputedStyle(nest_rail_color1).color, 'rgb(255, 255, 0)'); + assert.equal(window.getComputedStyle(nest_track_color1).color, 'rgb(255, 0, 255)'); + assert.equal(window.getComputedStyle(nest_rail_color2).color, 'rgb(255, 255, 0)'); + assert.equal(window.getComputedStyle(nest_track_color2).color, 'rgb(255, 0, 255)'); + assert.equal(rail_color1.textContent, 'Slider1'); + assert.equal(rail_color2.textContent, 'Slider1'); + assert.equal(nest_rail_color1.textContent, 'Slider1'); + assert.equal(nest_rail_color2.textContent, 'Slider1'); } function assert_slider_2() { - const railColor1 = target.querySelector('#component1 p'); - const trackColor1 = target.querySelector('#component1 span'); - const railColor2 = target.querySelector('#component2 p'); - const trackColor2 = target.querySelector('#component2 span'); - const nestRailColor1 = target.querySelector('#nest-component1 p'); - const nestTrackColor1 = target.querySelector('#nest-component1 span'); - const nestRailColor2 = target.querySelector('#nest-component2 p'); - const nestTrackColor2 = target.querySelector('#nest-component2 span'); + const rail_color1 = target.querySelector('#component1 p'); + const track_color1 = target.querySelector('#component1 span'); + const rail_color2 = target.querySelector('#component2 p'); + const track_color2 = target.querySelector('#component2 span'); + const nest_rail_color1 = target.querySelector('#nest-component1 p'); + const nest_track_color1 = target.querySelector('#nest-component1 span'); + const nest_rail_color2 = target.querySelector('#nest-component2 p'); + const nest_track_color2 = target.querySelector('#nest-component2 span'); - assert.equal(window.getComputedStyle(railColor1).color, 'rgb(0, 0, 0)'); - assert.equal(window.getComputedStyle(trackColor1).color, 'rgb(255, 0, 0)'); - assert.equal(window.getComputedStyle(railColor2).color, 'rgb(0, 255, 0)'); - assert.equal(window.getComputedStyle(trackColor2).color, 'rgb(0, 0, 255)'); - assert.equal(window.getComputedStyle(nestRailColor1).color, 'rgb(0, 255, 255)'); - assert.equal(window.getComputedStyle(nestTrackColor1).color, 'rgb(255, 255, 255)'); - assert.equal(window.getComputedStyle(nestRailColor2).color, 'rgb(0, 255, 255)'); - assert.equal(window.getComputedStyle(nestTrackColor2).color, 'rgb(255, 255, 255)'); - assert.equal(railColor1.textContent, 'Slider2'); - assert.equal(railColor2.textContent, 'Slider2'); - assert.equal(nestRailColor1.textContent, 'Slider2'); - assert.equal(nestRailColor2.textContent, 'Slider2'); + assert.equal(window.getComputedStyle(rail_color1).color, 'rgb(0, 0, 0)'); + assert.equal(window.getComputedStyle(track_color1).color, 'rgb(255, 0, 0)'); + assert.equal(window.getComputedStyle(rail_color2).color, 'rgb(0, 255, 0)'); + assert.equal(window.getComputedStyle(track_color2).color, 'rgb(0, 0, 255)'); + assert.equal(window.getComputedStyle(nest_rail_color1).color, 'rgb(0, 255, 255)'); + assert.equal(window.getComputedStyle(nest_track_color1).color, 'rgb(255, 255, 255)'); + assert.equal(window.getComputedStyle(nest_rail_color2).color, 'rgb(0, 255, 255)'); + assert.equal(window.getComputedStyle(nest_track_color2).color, 'rgb(255, 255, 255)'); + assert.equal(rail_color1.textContent, 'Slider2'); + assert.equal(rail_color2.textContent, 'Slider2'); + assert.equal(nest_rail_color1.textContent, 'Slider2'); + assert.equal(nest_rail_color2.textContent, 'Slider2'); } assert_slider_1(); diff --git a/packages/svelte/test/runtime/runtime.shared.js b/packages/svelte/test/runtime/runtime.shared.js index b02dfb81ffda..09b990b514ca 100644 --- a/packages/svelte/test/runtime/runtime.shared.js +++ b/packages/svelte/test/runtime/runtime.shared.js @@ -55,18 +55,18 @@ async function run_test(dir) { const cwd = path.resolve(`${__dirname}/samples/${dir}`); - const compileOptions = Object.assign({}, config.compileOptions || {}, { + const compile_options = Object.assign({}, config.compileOptions || {}, { hydratable: hydrate, immutable: config.immutable, accessors: 'accessors' in config ? config.accessors : true }); - const load = create_loader(compileOptions, cwd); + const load = create_loader(compile_options, cwd); let mod; let SvelteComponent; - let unintendedError = null; + let unintended_error = null; if (config.expect_unhandled_rejections) { listeners.forEach((listener) => { @@ -111,7 +111,7 @@ async function run_test(dir) { let snapshot = undefined; if (hydrate && from_ssr_html) { - const load_ssr = create_loader({ ...compileOptions, generate: 'ssr' }, cwd); + const load_ssr = create_loader({ ...compile_options, generate: 'ssr' }, cwd); // ssr into target if (config.before_test) config.before_test(); @@ -152,14 +152,14 @@ async function run_test(dir) { console.warn = warn; if (config.error) { - unintendedError = true; + unintended_error = true; assert.fail('Expected a runtime error'); } if (config.warnings) { assert.deepEqual(warnings, config.warnings); } else if (warnings.length) { - unintendedError = true; + unintended_error = true; assert.fail('Received unexpected warnings'); } @@ -183,7 +183,7 @@ async function run_test(dir) { snapshot, window, raf, - compileOptions, + compileOptions: compile_options, load }); } @@ -201,7 +201,7 @@ async function run_test(dir) { await test() .catch((err) => { - if (config.error && !unintendedError) { + if (config.error && !unintended_error) { if (typeof config.error === 'function') { config.error(assert, err); } else { @@ -217,7 +217,7 @@ async function run_test(dir) { mkdirp(path.dirname(out)); // file could be in subdirectory, therefore don't use dir const { js } = compile(fs.readFileSync(`${cwd}/${file}`, 'utf-8').replace(/\r/g, ''), { - ...compileOptions, + ...compile_options, filename: file }); fs.writeFileSync(out, js.code); diff --git a/packages/svelte/test/runtime/samples/$$rest-without-props/_config.js b/packages/svelte/test/runtime/samples/$$rest-without-props/_config.js index 9412aa99df73..fb1d4f23cec6 100644 --- a/packages/svelte/test/runtime/samples/$$rest-without-props/_config.js +++ b/packages/svelte/test/runtime/samples/$$rest-without-props/_config.js @@ -10,9 +10,9 @@ export default { `, async test({ assert, target, window }) { const [btn1, btn2, btn3, btn4] = target.querySelectorAll('button'); - const clickEvent = new window.MouseEvent('click'); + const click_event = new window.MouseEvent('click'); - await btn1.dispatchEvent(clickEvent); + await btn1.dispatchEvent(click_event); assert.htmlEqual( target.innerHTML, @@ -24,7 +24,7 @@ export default { ` ); - await btn2.dispatchEvent(clickEvent); + await btn2.dispatchEvent(click_event); assert.htmlEqual( target.innerHTML, @@ -36,7 +36,7 @@ export default { ` ); - await btn3.dispatchEvent(clickEvent); + await btn3.dispatchEvent(click_event); assert.htmlEqual( target.innerHTML, @@ -48,7 +48,7 @@ export default { ` ); - await btn4.dispatchEvent(clickEvent); + await btn4.dispatchEvent(click_event); assert.htmlEqual( target.innerHTML, diff --git a/packages/svelte/test/runtime/samples/$$rest/_config.js b/packages/svelte/test/runtime/samples/$$rest/_config.js index 4d050059fc53..473ad9f9bc06 100644 --- a/packages/svelte/test/runtime/samples/$$rest/_config.js +++ b/packages/svelte/test/runtime/samples/$$rest/_config.js @@ -12,9 +12,9 @@ export default { async test({ assert, target, window }) { const [btn1, btn2, btn3, btn4] = target.querySelectorAll('button'); - const clickEvent = new window.MouseEvent('click'); + const click_event = new window.MouseEvent('click'); - await btn1.dispatchEvent(clickEvent); + await btn1.dispatchEvent(click_event); assert.htmlEqual( target.innerHTML, @@ -27,7 +27,7 @@ export default { ` ); - await btn2.dispatchEvent(clickEvent); + await btn2.dispatchEvent(click_event); assert.htmlEqual( target.innerHTML, @@ -40,7 +40,7 @@ export default { ` ); - await btn3.dispatchEvent(clickEvent); + await btn3.dispatchEvent(click_event); assert.htmlEqual( target.innerHTML, @@ -53,7 +53,7 @@ export default { ` ); - await btn4.dispatchEvent(clickEvent); + await btn4.dispatchEvent(click_event); assert.htmlEqual( target.innerHTML, diff --git a/packages/svelte/test/runtime/samples/action-function/_config.js b/packages/svelte/test/runtime/samples/action-function/_config.js index f8cf39055015..1bc45788e5bb 100644 --- a/packages/svelte/test/runtime/samples/action-function/_config.js +++ b/packages/svelte/test/runtime/samples/action-function/_config.js @@ -5,10 +5,10 @@ export default { async test({ assert, target, window }) { const button = target.querySelector('button'); - const eventEnter = new window.MouseEvent('mouseenter'); - const eventLeave = new window.MouseEvent('mouseleave'); + const event_enter = new window.MouseEvent('mouseenter'); + const event_leave = new window.MouseEvent('mouseleave'); - await button.dispatchEvent(eventEnter); + await button.dispatchEvent(event_enter); assert.htmlEqual( target.innerHTML, ` @@ -17,7 +17,7 @@ export default { ` ); - await button.dispatchEvent(eventLeave); + await button.dispatchEvent(event_leave); assert.htmlEqual( target.innerHTML, ` diff --git a/packages/svelte/test/runtime/samples/action-update/_config.js b/packages/svelte/test/runtime/samples/action-update/_config.js index 0de4397418df..f8ce663a8fe8 100644 --- a/packages/svelte/test/runtime/samples/action-update/_config.js +++ b/packages/svelte/test/runtime/samples/action-update/_config.js @@ -7,7 +7,7 @@ export default { const button = target.querySelector('button'); const enter = new window.MouseEvent('mouseenter'); const leave = new window.MouseEvent('mouseleave'); - const ctrlPress = new window.KeyboardEvent('keydown', { ctrlKey: true }); + const ctrl_press = new window.KeyboardEvent('keydown', { ctrlKey: true }); await button.dispatchEvent(enter); assert.htmlEqual( @@ -18,7 +18,7 @@ export default { ` ); - await window.dispatchEvent(ctrlPress); + await window.dispatchEvent(ctrl_press); assert.htmlEqual( target.innerHTML, ` diff --git a/packages/svelte/test/runtime/samples/action/_config.js b/packages/svelte/test/runtime/samples/action/_config.js index f8cf39055015..1bc45788e5bb 100644 --- a/packages/svelte/test/runtime/samples/action/_config.js +++ b/packages/svelte/test/runtime/samples/action/_config.js @@ -5,10 +5,10 @@ export default { async test({ assert, target, window }) { const button = target.querySelector('button'); - const eventEnter = new window.MouseEvent('mouseenter'); - const eventLeave = new window.MouseEvent('mouseleave'); + const event_enter = new window.MouseEvent('mouseenter'); + const event_leave = new window.MouseEvent('mouseleave'); - await button.dispatchEvent(eventEnter); + await button.dispatchEvent(event_enter); assert.htmlEqual( target.innerHTML, ` @@ -17,7 +17,7 @@ export default { ` ); - await button.dispatchEvent(eventLeave); + await button.dispatchEvent(event_leave); assert.htmlEqual( target.innerHTML, ` diff --git a/packages/svelte/test/runtime/samples/await-function-promise/_config.js b/packages/svelte/test/runtime/samples/await-function-promise/_config.js index 01fe60cd0b5b..44cf13160b1c 100644 --- a/packages/svelte/test/runtime/samples/await-function-promise/_config.js +++ b/packages/svelte/test/runtime/samples/await-function-promise/_config.js @@ -1,8 +1,8 @@ -const realPromise = Promise.resolve(42); +const real_promise = Promise.resolve(42); const promise = () => {}; -promise.then = realPromise.then.bind(realPromise); -promise.catch = realPromise.catch.bind(realPromise); +promise.then = real_promise.then.bind(real_promise); +promise.catch = real_promise.catch.bind(real_promise); export default { get props() { diff --git a/packages/svelte/test/runtime/samples/await-in-each/_config.js b/packages/svelte/test/runtime/samples/await-in-each/_config.js index 0e4109ea492e..73dbb01e87d8 100644 --- a/packages/svelte/test/runtime/samples/await-in-each/_config.js +++ b/packages/svelte/test/runtime/samples/await-in-each/_config.js @@ -1,13 +1,13 @@ let fulfil; -const thePromise = new Promise((f) => { +const the_promise = new Promise((f) => { fulfil = f; }); const items = [ { title: 'a title', - data: thePromise + data: the_promise } ]; @@ -23,7 +23,7 @@ export default { test({ assert, target }) { fulfil(42); - return thePromise.then(() => { + return the_promise.then(() => { assert.htmlEqual( target.innerHTML, ` diff --git a/packages/svelte/test/runtime/samples/await-then-catch-event/_config.js b/packages/svelte/test/runtime/samples/await-then-catch-event/_config.js index 2705eb7e170a..32189e23892a 100644 --- a/packages/svelte/test/runtime/samples/await-then-catch-event/_config.js +++ b/packages/svelte/test/runtime/samples/await-then-catch-event/_config.js @@ -28,10 +28,10 @@ export default { assert.equal(component.clicked, 42); - const thePromise = Promise.resolve(43); - component.thePromise = thePromise; + const the_promise = Promise.resolve(43); + component.thePromise = the_promise; - return thePromise; + return the_promise; }) .then(() => { const { button } = component; diff --git a/packages/svelte/test/runtime/samples/await-then-catch-if/_config.js b/packages/svelte/test/runtime/samples/await-then-catch-if/_config.js index 42683c56f8bb..f6a3e2b981a5 100644 --- a/packages/svelte/test/runtime/samples/await-then-catch-if/_config.js +++ b/packages/svelte/test/runtime/samples/await-then-catch-if/_config.js @@ -1,12 +1,12 @@ let fulfil; -const thePromise = new Promise((f) => { +const the_promise = new Promise((f) => { fulfil = f; }); export default { get props() { - return { show: true, thePromise }; + return { show: true, thePromise: the_promise }; }, html: ` @@ -16,7 +16,7 @@ export default { test({ assert, component, target }) { fulfil(42); - return thePromise.then(() => { + return the_promise.then(() => { assert.htmlEqual( target.innerHTML, ` @@ -35,7 +35,7 @@ export default { component.show = true; - return thePromise.then(() => { + return the_promise.then(() => { assert.htmlEqual( target.innerHTML, ` diff --git a/packages/svelte/test/runtime/samples/await-then-catch-order/_config.js b/packages/svelte/test/runtime/samples/await-then-catch-order/_config.js index 275d250233a4..b588d2e150ce 100644 --- a/packages/svelte/test/runtime/samples/await-then-catch-order/_config.js +++ b/packages/svelte/test/runtime/samples/await-then-catch-order/_config.js @@ -1,12 +1,12 @@ let fulfil; -const thePromise = new Promise((f) => { +const the_promise = new Promise((f) => { fulfil = f; }); export default { get props() { - return { thePromise }; + return { thePromise: the_promise }; }, html: ` @@ -16,7 +16,7 @@ export default { test({ assert, target }) { fulfil(42); - return thePromise.then(() => { + return the_promise.then(() => { assert.htmlEqual( target.innerHTML, ` diff --git a/packages/svelte/test/runtime/samples/await-then-if/_config.js b/packages/svelte/test/runtime/samples/await-then-if/_config.js index b32ba0471572..38bf18397113 100644 --- a/packages/svelte/test/runtime/samples/await-then-if/_config.js +++ b/packages/svelte/test/runtime/samples/await-then-if/_config.js @@ -1,12 +1,12 @@ let fulfil; -const thePromise = new Promise((f) => { +const the_promise = new Promise((f) => { fulfil = f; }); export default { get props() { - return { thePromise }; + return { thePromise: the_promise }; }, html: ` @@ -16,7 +16,7 @@ export default { async test({ assert, target }) { fulfil([]); - await thePromise; + await the_promise; assert.htmlEqual( target.innerHTML, diff --git a/packages/svelte/test/runtime/samples/binding-input-checkbox-with-event-in-each/_config.js b/packages/svelte/test/runtime/samples/binding-input-checkbox-with-event-in-each/_config.js index 85e78d35dcc1..fb5aa27b910c 100644 --- a/packages/svelte/test/runtime/samples/binding-input-checkbox-with-event-in-each/_config.js +++ b/packages/svelte/test/runtime/samples/binding-input-checkbox-with-event-in-each/_config.js @@ -15,12 +15,12 @@ export default { test({ assert, component, target, window }) { const { cats } = component; - const newCats = cats.slice(); - newCats.push({ + const new_cats = cats.slice(); + new_cats.push({ name: 'cat ' + cats.length, checked: false }); - component.cats = newCats; + component.cats = new_cats; let inputs = target.querySelectorAll('input'); assert.equal(inputs.length, 3); diff --git a/packages/svelte/test/runtime/samples/binding-input-group-each-7/_config.js b/packages/svelte/test/runtime/samples/binding-input-group-each-7/_config.js index 7535001f6715..3de0231f107d 100644 --- a/packages/svelte/test/runtime/samples/binding-input-group-each-7/_config.js +++ b/packages/svelte/test/runtime/samples/binding-input-group-each-7/_config.js @@ -23,7 +23,7 @@ export default { async test({ assert, target, window }) { const inputs = target.querySelectorAll('input'); const checked = new Set(); - const checkInbox = async (i) => { + const check_inbox = async (i) => { checked.add(i); inputs[i].checked = true; await inputs[i].dispatchEvent(event); @@ -35,17 +35,17 @@ export default { const event = new window.Event('change'); - await checkInbox(2); + await check_inbox(2); for (let i = 0; i < 18; i++) { assert.equal(inputs[i].checked, checked.has(i)); } - await checkInbox(12); + await check_inbox(12); for (let i = 0; i < 18; i++) { assert.equal(inputs[i].checked, checked.has(i)); } - await checkInbox(8); + await check_inbox(8); for (let i = 0; i < 18; i++) { assert.equal(inputs[i].checked, checked.has(i)); } diff --git a/packages/svelte/test/runtime/samples/binding-input-group-if-gh-8372-1/_config.js b/packages/svelte/test/runtime/samples/binding-input-group-if-gh-8372-1/_config.js index bdc4da2d5764..29d7b14bcaf9 100644 --- a/packages/svelte/test/runtime/samples/binding-input-group-if-gh-8372-1/_config.js +++ b/packages/svelte/test/runtime/samples/binding-input-group-if-gh-8372-1/_config.js @@ -1,8 +1,8 @@ export default { async test({ assert, target, component, window }) { const button = target.querySelector('button'); - const clickEvent = new window.Event('click'); - const changeEvent = new window.Event('change'); + const click_event = new window.Event('click'); + const change_event = new window.Event('change'); const [input1, input2] = target.querySelectorAll('input[type="checkbox"]'); function validate_inputs(v1, v2) { @@ -17,24 +17,24 @@ export default { validate_inputs(true, true); input1.checked = false; - await input1.dispatchEvent(changeEvent); + await input1.dispatchEvent(change_event); assert.deepEqual(component.test, ['b']); input2.checked = false; - await input2.dispatchEvent(changeEvent); + await input2.dispatchEvent(change_event); assert.deepEqual(component.test, []); input1.checked = true; input2.checked = true; - await input1.dispatchEvent(changeEvent); - await input2.dispatchEvent(changeEvent); + await input1.dispatchEvent(change_event); + await input2.dispatchEvent(change_event); assert.deepEqual(component.test, ['b', 'a']); - await button.dispatchEvent(clickEvent); + await button.dispatchEvent(click_event); assert.deepEqual(component.test, ['b', 'a']); // should it be ['a'] only? valid arguments for both outcomes input1.checked = false; - await input1.dispatchEvent(changeEvent); + await input1.dispatchEvent(change_event); assert.deepEqual(component.test, []); } }; diff --git a/packages/svelte/test/runtime/samples/binding-input-group-if-gh-8372-2/_config.js b/packages/svelte/test/runtime/samples/binding-input-group-if-gh-8372-2/_config.js index a8d5a7137fae..86f391496e52 100644 --- a/packages/svelte/test/runtime/samples/binding-input-group-if-gh-8372-2/_config.js +++ b/packages/svelte/test/runtime/samples/binding-input-group-if-gh-8372-2/_config.js @@ -1,8 +1,8 @@ export default { async test({ assert, target, component, window }) { const button = target.querySelector('button'); - const clickEvent = new window.Event('click'); - const changeEvent = new window.Event('change'); + const click_event = new window.Event('click'); + const change_event = new window.Event('change'); const [input1, input2] = target.querySelectorAll('input[type="radio"]'); function validate_inputs(v1, v2) { @@ -17,18 +17,18 @@ export default { validate_inputs(false, true); input1.checked = true; - await input1.dispatchEvent(changeEvent); + await input1.dispatchEvent(change_event); assert.deepEqual(component.test, 'a'); input2.checked = true; - await input2.dispatchEvent(changeEvent); + await input2.dispatchEvent(change_event); assert.deepEqual(component.test, 'b'); - await button.dispatchEvent(clickEvent); + await button.dispatchEvent(click_event); assert.deepEqual(component.test, 'b'); // should it be undefined? valid arguments for both outcomes input1.checked = true; - await input1.dispatchEvent(changeEvent); + await input1.dispatchEvent(change_event); assert.deepEqual(component.test, 'a'); } }; diff --git a/packages/svelte/test/runtime/samples/binding-input-number-2/_config.js b/packages/svelte/test/runtime/samples/binding-input-number-2/_config.js index 4411eac0b274..d65df9b81944 100644 --- a/packages/svelte/test/runtime/samples/binding-input-number-2/_config.js +++ b/packages/svelte/test/runtime/samples/binding-input-number-2/_config.js @@ -1,25 +1,25 @@ export default { test({ assert, target, window, component }) { const input = target.querySelector('input'); - const inputEvent = new window.InputEvent('input'); + const input_event = new window.InputEvent('input'); assert.equal(component.value, 5); assert.equal(input.value, '5'); input.value = '5.'; - input.dispatchEvent(inputEvent); + input.dispatchEvent(input_event); // input type number has value === "" if ends with dot/comma assert.equal(component.value, undefined); assert.equal(input.value, ''); input.value = '5.5'; - input.dispatchEvent(inputEvent); + input.dispatchEvent(input_event); assert.equal(component.value, 5.5); assert.equal(input.value, '5.5'); input.value = '5.50'; - input.dispatchEvent(inputEvent); + input.dispatchEvent(input_event); assert.equal(component.value, 5.5); assert.equal(input.value, '5.50'); diff --git a/packages/svelte/test/runtime/samples/component-binding-deep-b/_config.js b/packages/svelte/test/runtime/samples/component-binding-deep-b/_config.js index 1b0e09f735bf..fea5ea4151e4 100644 --- a/packages/svelte/test/runtime/samples/component-binding-deep-b/_config.js +++ b/packages/svelte/test/runtime/samples/component-binding-deep-b/_config.js @@ -9,13 +9,13 @@ const components = [ } ]; -const selectedComponent = components[0]; +const selected_component = components[0]; export default { skip: true, // doesn't reflect real-world bug, maybe a JSDOM quirk get props() { - return { components, selectedComponent }; + return { components, selectedComponent: selected_component }; }, html: ` diff --git a/packages/svelte/test/runtime/samples/component-event-handler-dynamic/_config.js b/packages/svelte/test/runtime/samples/component-event-handler-dynamic/_config.js index 415b860828f5..775899740e3a 100644 --- a/packages/svelte/test/runtime/samples/component-event-handler-dynamic/_config.js +++ b/packages/svelte/test/runtime/samples/component-event-handler-dynamic/_config.js @@ -5,13 +5,13 @@ export default { `, async test({ assert, component, target, window }) { - const [updateButton, button] = target.querySelectorAll('button'); + const [update_button, button] = target.querySelectorAll('button'); const event = new window.MouseEvent('click'); await button.dispatchEvent(event); assert.equal(component.count, 1); - await updateButton.dispatchEvent(event); + await update_button.dispatchEvent(event); await button.dispatchEvent(event); assert.equal(component.count, 11); } diff --git a/packages/svelte/test/runtime/samples/component-event-handler-modifier-once-dynamic/_config.js b/packages/svelte/test/runtime/samples/component-event-handler-modifier-once-dynamic/_config.js index 8796e0faf659..47b6c07edc08 100644 --- a/packages/svelte/test/runtime/samples/component-event-handler-modifier-once-dynamic/_config.js +++ b/packages/svelte/test/runtime/samples/component-event-handler-modifier-once-dynamic/_config.js @@ -5,10 +5,10 @@ export default { `, async test({ assert, component, target, window }) { - const [updateButton, button] = target.querySelectorAll('button'); + const [update_button, button] = target.querySelectorAll('button'); const event = new window.MouseEvent('click'); - await updateButton.dispatchEvent(event); + await update_button.dispatchEvent(event); await button.dispatchEvent(event); assert.equal(component.count, 10); diff --git a/packages/svelte/test/runtime/samples/component-slot-fallback-2/_config.js b/packages/svelte/test/runtime/samples/component-slot-fallback-2/_config.js index 7c86357a8e36..67e464818b40 100644 --- a/packages/svelte/test/runtime/samples/component-slot-fallback-2/_config.js +++ b/packages/svelte/test/runtime/samples/component-slot-fallback-2/_config.js @@ -3,7 +3,7 @@ export default { ssrHtml: ' ', async test({ assert, target, component, window }) { - const [input1, input2, inputFallback] = target.querySelectorAll('input'); + const [input1, input2, input_fallback] = target.querySelectorAll('input'); assert.equal(component.getSubscriberCount(), 3); @@ -13,7 +13,7 @@ export default { await input1.dispatchEvent(new window.Event('input')); assert.equal(input1.value, 'ab'); assert.equal(input2.value, 'ab'); - assert.equal(inputFallback.value, 'ab'); + assert.equal(input_fallback.value, 'ab'); component.props = 'hello'; diff --git a/packages/svelte/test/runtime/samples/component-slot-fallback-5/_config.js b/packages/svelte/test/runtime/samples/component-slot-fallback-5/_config.js index 07d09a3be92d..1463dcb56007 100644 --- a/packages/svelte/test/runtime/samples/component-slot-fallback-5/_config.js +++ b/packages/svelte/test/runtime/samples/component-slot-fallback-5/_config.js @@ -6,9 +6,9 @@ export default { async test({ assert, target, window }) { const btn = target.querySelector('button'); - const clickEvent = new window.MouseEvent('click'); + const click_event = new window.MouseEvent('click'); - await btn.dispatchEvent(clickEvent); + await btn.dispatchEvent(click_event); assert.htmlEqual( target.innerHTML, @@ -18,7 +18,7 @@ export default { ` ); - await btn.dispatchEvent(clickEvent); + await btn.dispatchEvent(click_event); assert.htmlEqual( target.innerHTML, diff --git a/packages/svelte/test/runtime/samples/dynamic-element-animation-2/_config.js b/packages/svelte/test/runtime/samples/dynamic-element-animation-2/_config.js index d8399cac376a..306b282f7a6e 100644 --- a/packages/svelte/test/runtime/samples/dynamic-element-animation-2/_config.js +++ b/packages/svelte/test/runtime/samples/dynamic-element-animation-2/_config.js @@ -1,6 +1,6 @@ -let originalDivGetBoundingClientRect; -let originalSpanGetBoundingClientRect; -let originalParagraphGetBoundingClientRect; +let original_div_get_bounding_client_rect; +let original_span_get_bounding_client_rect; +let original_paragraph_get_bounding_client_rect; export default { skip_if_ssr: true, @@ -26,16 +26,16 @@ export default { `, before_test() { - originalDivGetBoundingClientRect = window.HTMLDivElement.prototype.getBoundingClientRect; - originalSpanGetBoundingClientRect = window.HTMLSpanElement.prototype.getBoundingClientRect; - originalParagraphGetBoundingClientRect = + original_div_get_bounding_client_rect = window.HTMLDivElement.prototype.getBoundingClientRect; + original_span_get_bounding_client_rect = window.HTMLSpanElement.prototype.getBoundingClientRect; + original_paragraph_get_bounding_client_rect = window.HTMLParagraphElement.prototype.getBoundingClientRect; - window.HTMLDivElement.prototype.getBoundingClientRect = fakeGetBoundingClientRect; - window.HTMLSpanElement.prototype.getBoundingClientRect = fakeGetBoundingClientRect; - window.HTMLParagraphElement.prototype.getBoundingClientRect = fakeGetBoundingClientRect; + window.HTMLDivElement.prototype.getBoundingClientRect = fake_get_bounding_client_rect; + window.HTMLSpanElement.prototype.getBoundingClientRect = fake_get_bounding_client_rect; + window.HTMLParagraphElement.prototype.getBoundingClientRect = fake_get_bounding_client_rect; - function fakeGetBoundingClientRect() { + function fake_get_bounding_client_rect() { const index = [...this.parentNode.children].indexOf(this); const top = index * 30; @@ -48,10 +48,10 @@ export default { } }, after_test() { - window.HTMLDivElement.prototype.getBoundingClientRect = originalDivGetBoundingClientRect; - window.HTMLSpanElement.prototype.getBoundingClientRect = originalSpanGetBoundingClientRect; + window.HTMLDivElement.prototype.getBoundingClientRect = original_div_get_bounding_client_rect; + window.HTMLSpanElement.prototype.getBoundingClientRect = original_span_get_bounding_client_rect; window.HTMLParagraphElement.prototype.getBoundingClientRect = - originalParagraphGetBoundingClientRect; + original_paragraph_get_bounding_client_rect; }, async test({ assert, component, raf }) { diff --git a/packages/svelte/test/runtime/samples/each-block-destructured-default-binding/_config.js b/packages/svelte/test/runtime/samples/each-block-destructured-default-binding/_config.js index 2ba27bff0361..a27d56a3063a 100644 --- a/packages/svelte/test/runtime/samples/each-block-destructured-default-binding/_config.js +++ b/packages/svelte/test/runtime/samples/each-block-destructured-default-binding/_config.js @@ -13,10 +13,10 @@ export default { assert.equal(input1.value, ''); assert.equal(input2.value, 'hello'); - const inputEvent = new window.InputEvent('input'); + const input_event = new window.InputEvent('input'); input2.value = 'world'; - input2.dispatchEvent(inputEvent); + input2.dispatchEvent(input_event); assert.equal(input2.value, 'world'); assert.equal(component.array[1].value, 'world'); } diff --git a/packages/svelte/test/runtime/samples/each-block-keyed-random-permute/_config.js b/packages/svelte/test/runtime/samples/each-block-keyed-random-permute/_config.js index 454ef48d0f6b..4fcea8d68fb5 100644 --- a/packages/svelte/test/runtime/samples/each-block-keyed-random-permute/_config.js +++ b/packages/svelte/test/runtime/samples/each-block-keyed-random-permute/_config.js @@ -1,6 +1,6 @@ const VALUES = Array.from('abcdefghijklmnopqrstuvwxyz'); -function toObjects(array) { +function to_objects(array) { return array.split('').map((x) => ({ id: x })); } @@ -17,7 +17,7 @@ function permute() { export default { get props() { - return { values: toObjects('abc') }; + return { values: to_objects('abc') }; }, html: '(a)(b)(c)', @@ -29,7 +29,7 @@ export default { .split('') .map((x) => `(${x})`) .join(''); - component.values = toObjects(sequence); + component.values = to_objects(sequence); assert.htmlEqual( target.innerHTML, expected, diff --git a/packages/svelte/test/runtime/samples/each-blocks-assignment-2/_config.js b/packages/svelte/test/runtime/samples/each-blocks-assignment-2/_config.js index 93f06956d0a9..4f62f6b66bd1 100644 --- a/packages/svelte/test/runtime/samples/each-blocks-assignment-2/_config.js +++ b/packages/svelte/test/runtime/samples/each-blocks-assignment-2/_config.js @@ -6,8 +6,8 @@ export default { async test({ assert, target, window }) { const button = target.querySelector('button'); - const clickEvent = new window.MouseEvent('click'); - await button.dispatchEvent(clickEvent); + const click_event = new window.MouseEvent('click'); + await button.dispatchEvent(click_event); assert.htmlEqual( target.innerHTML, diff --git a/packages/svelte/test/runtime/samples/each-blocks-assignment/_config.js b/packages/svelte/test/runtime/samples/each-blocks-assignment/_config.js index 5e22381e9e26..11591cf026db 100644 --- a/packages/svelte/test/runtime/samples/each-blocks-assignment/_config.js +++ b/packages/svelte/test/runtime/samples/each-blocks-assignment/_config.js @@ -9,10 +9,10 @@ export default { `, async test({ assert, target, window }) { - let [incrementBtn, ...buttons] = target.querySelectorAll('button'); + let [increment_btn, ...buttons] = target.querySelectorAll('button'); - const clickEvent = new window.MouseEvent('click'); - await buttons[0].dispatchEvent(clickEvent); + const click_event = new window.MouseEvent('click'); + await buttons[0].dispatchEvent(click_event); assert.htmlEqual( target.innerHTML, @@ -27,7 +27,7 @@ export default { ` ); - await buttons[0].dispatchEvent(clickEvent); + await buttons[0].dispatchEvent(click_event); assert.htmlEqual( target.innerHTML, @@ -42,8 +42,8 @@ export default { ` ); - await buttons[2].dispatchEvent(clickEvent); - await buttons[2].dispatchEvent(clickEvent); + await buttons[2].dispatchEvent(click_event); + await buttons[2].dispatchEvent(click_event); assert.htmlEqual( target.innerHTML, @@ -58,7 +58,7 @@ export default { ` ); - await incrementBtn.dispatchEvent(clickEvent); + await increment_btn.dispatchEvent(click_event); assert.htmlEqual( target.innerHTML, @@ -75,9 +75,9 @@ export default { ` ); - [incrementBtn, ...buttons] = target.querySelectorAll('button'); + [increment_btn, ...buttons] = target.querySelectorAll('button'); - await buttons[3].dispatchEvent(clickEvent); + await buttons[3].dispatchEvent(click_event); assert.htmlEqual( target.innerHTML, diff --git a/packages/svelte/test/runtime/samples/event-handler-dynamic-hash/_config.js b/packages/svelte/test/runtime/samples/event-handler-dynamic-hash/_config.js index 44990524fde5..db34d02d12c4 100644 --- a/packages/svelte/test/runtime/samples/event-handler-dynamic-hash/_config.js +++ b/packages/svelte/test/runtime/samples/event-handler-dynamic-hash/_config.js @@ -9,7 +9,7 @@ export default { `, async test({ assert, target, window }) { - const [updateButton1, updateButton2, button] = target.querySelectorAll('button'); + const [update_button1, update_button2, button] = target.querySelectorAll('button'); const event = new window.MouseEvent('click'); let err = ''; @@ -32,7 +32,7 @@ export default { ` ); - await updateButton1.dispatchEvent(event); + await update_button1.dispatchEvent(event); await button.dispatchEvent(event); assert.htmlEqual( target.innerHTML, @@ -46,7 +46,7 @@ export default { ` ); - await updateButton2.dispatchEvent(event); + await update_button2.dispatchEvent(event); await button.dispatchEvent(event); assert.htmlEqual( target.innerHTML, diff --git a/packages/svelte/test/runtime/samples/event-handler-dynamic-invalid/_config.js b/packages/svelte/test/runtime/samples/event-handler-dynamic-invalid/_config.js index cac6d60f2e4a..6043d2ba28dd 100644 --- a/packages/svelte/test/runtime/samples/event-handler-dynamic-invalid/_config.js +++ b/packages/svelte/test/runtime/samples/event-handler-dynamic-invalid/_config.js @@ -4,7 +4,7 @@ export default { `, async test({ assert, target, window }) { - const [buttonUndef, buttonNull, buttonInvalid] = target.querySelectorAll('button'); + const [button_undef, button_null, button_invalid] = target.querySelectorAll('button'); const event = new window.MouseEvent('click'); let err = ''; @@ -14,13 +14,13 @@ export default { }); // All three should not throw if proper checking is done in runtime code - await buttonUndef.dispatchEvent(event); + await button_undef.dispatchEvent(event); assert.equal(err, '', err); - await buttonNull.dispatchEvent(event); + await button_null.dispatchEvent(event); assert.equal(err, '', err); - await buttonInvalid.dispatchEvent(event); + await button_invalid.dispatchEvent(event); assert.equal(err, '', err); } }; diff --git a/packages/svelte/test/runtime/samples/event-handler-dynamic/_config.js b/packages/svelte/test/runtime/samples/event-handler-dynamic/_config.js index 44990524fde5..db34d02d12c4 100644 --- a/packages/svelte/test/runtime/samples/event-handler-dynamic/_config.js +++ b/packages/svelte/test/runtime/samples/event-handler-dynamic/_config.js @@ -9,7 +9,7 @@ export default { `, async test({ assert, target, window }) { - const [updateButton1, updateButton2, button] = target.querySelectorAll('button'); + const [update_button1, update_button2, button] = target.querySelectorAll('button'); const event = new window.MouseEvent('click'); let err = ''; @@ -32,7 +32,7 @@ export default { ` ); - await updateButton1.dispatchEvent(event); + await update_button1.dispatchEvent(event); await button.dispatchEvent(event); assert.htmlEqual( target.innerHTML, @@ -46,7 +46,7 @@ export default { ` ); - await updateButton2.dispatchEvent(event); + await update_button2.dispatchEvent(event); await button.dispatchEvent(event); assert.htmlEqual( target.innerHTML, diff --git a/packages/svelte/test/runtime/samples/event-handler-each-modifier/_config.js b/packages/svelte/test/runtime/samples/event-handler-each-modifier/_config.js index e96cd1a98717..72da7a853797 100644 --- a/packages/svelte/test/runtime/samples/event-handler-each-modifier/_config.js +++ b/packages/svelte/test/runtime/samples/event-handler-each-modifier/_config.js @@ -10,21 +10,21 @@ export default { assert.equal(component.updated, 4); const [item1, item2] = target.childNodes; - const [item1Btn1, item1Btn2] = item1.querySelectorAll('button'); - const [item2Btn1, item2Btn2] = item2.querySelectorAll('button'); + const [item1_btn1, item1_btn2] = item1.querySelectorAll('button'); + const [item2_btn1, item2_btn2] = item2.querySelectorAll('button'); - const clickEvent = new window.MouseEvent('click'); + const click_event = new window.MouseEvent('click'); - await item1Btn1.dispatchEvent(clickEvent); + await item1_btn1.dispatchEvent(click_event); assert.equal(component.getNormalCount(), 1); - await item1Btn2.dispatchEvent(clickEvent); + await item1_btn2.dispatchEvent(click_event); assert.equal(component.getModifierCount(), 1); - await item2Btn1.dispatchEvent(clickEvent); + await item2_btn1.dispatchEvent(click_event); assert.equal(component.getNormalCount(), 2); - await item2Btn2.dispatchEvent(clickEvent); + await item2_btn2.dispatchEvent(click_event); assert.equal(component.getModifierCount(), 2); } }; diff --git a/packages/svelte/test/runtime/samples/flush-before-bindings/_config.js b/packages/svelte/test/runtime/samples/flush-before-bindings/_config.js index 4f2029977104..6848fbd50cbe 100644 --- a/packages/svelte/test/runtime/samples/flush-before-bindings/_config.js +++ b/packages/svelte/test/runtime/samples/flush-before-bindings/_config.js @@ -11,11 +11,11 @@ export default { `, test({ assert, component }) { - const visibleThings = component.visibleThings; - assert.deepEqual(visibleThings, ['first thing', 'second thing']); + const visible_things = component.visibleThings; + assert.deepEqual(visible_things, ['first thing', 'second thing']); const snapshots = component.snapshots; - assert.deepEqual(snapshots, [visibleThings]); + assert.deepEqual(snapshots, [visible_things]); // TODO minimise the number of recomputations during oncreate // assert.equal(counter.count, 1); diff --git a/packages/svelte/test/runtime/samples/fragment-trailing-whitespace/_config.js b/packages/svelte/test/runtime/samples/fragment-trailing-whitespace/_config.js index d2c59af0debb..142cab922959 100644 --- a/packages/svelte/test/runtime/samples/fragment-trailing-whitespace/_config.js +++ b/packages/svelte/test/runtime/samples/fragment-trailing-whitespace/_config.js @@ -7,10 +7,14 @@ export default { }, async test({ assert, target }) { - const firstSpanList = target.children[0]; - assert.htmlEqualWithOptions(firstSpanList.innerHTML, expected, { withoutNormalizeHtml: true }); + const first_span_list = target.children[0]; + assert.htmlEqualWithOptions(first_span_list.innerHTML, expected, { + withoutNormalizeHtml: true + }); - const secondSpanList = target.children[1]; - assert.htmlEqualWithOptions(secondSpanList.innerHTML, expected, { withoutNormalizeHtml: true }); + const second_span_list = target.children[1]; + assert.htmlEqualWithOptions(second_span_list.innerHTML, expected, { + withoutNormalizeHtml: true + }); } }; diff --git a/packages/svelte/test/runtime/samples/if-block-else-update/_config.js b/packages/svelte/test/runtime/samples/if-block-else-update/_config.js index 3ba36906adec..cbbf65aa2ce1 100644 --- a/packages/svelte/test/runtime/samples/if-block-else-update/_config.js +++ b/packages/svelte/test/runtime/samples/if-block-else-update/_config.js @@ -2,9 +2,9 @@ export default { async test({ assert, target, window }) { const [btn1, btn2] = target.querySelectorAll('button'); - const clickEvent = new window.MouseEvent('click'); + const click_event = new window.MouseEvent('click'); - await btn2.dispatchEvent(clickEvent); + await btn2.dispatchEvent(click_event); assert.htmlEqual( target.innerHTML, ` @@ -17,7 +17,7 @@ export default { ` ); - await btn1.dispatchEvent(clickEvent); + await btn1.dispatchEvent(click_event); assert.htmlEqual( target.innerHTML, ` @@ -30,7 +30,7 @@ export default { ` ); - await btn2.dispatchEvent(clickEvent); + await btn2.dispatchEvent(click_event); assert.htmlEqual( target.innerHTML, ` @@ -43,7 +43,7 @@ export default { ` ); - await btn1.dispatchEvent(clickEvent); + await btn1.dispatchEvent(click_event); assert.htmlEqual( target.innerHTML, ` diff --git a/packages/svelte/test/runtime/samples/nbsp-div/_config.js b/packages/svelte/test/runtime/samples/nbsp-div/_config.js index 548936093456..d79db8ee8193 100644 --- a/packages/svelte/test/runtime/samples/nbsp-div/_config.js +++ b/packages/svelte/test/runtime/samples/nbsp-div/_config.js @@ -4,14 +4,14 @@ export default {
 hello   hello
`, test({ assert, target }) { - const divList = target.querySelectorAll('div'); - assert.equal(divList[0].textContent.charCodeAt(0), 160); - assert.equal(divList[1].textContent.charCodeAt(0), 160); - assert.equal(divList[1].textContent.charCodeAt(6), 160); - assert.equal(divList[1].textContent.charCodeAt(7), 160); - assert.equal(divList[2].textContent.charCodeAt(0), 160); - assert.equal(divList[2].textContent.charCodeAt(6), 160); - assert.equal(divList[2].textContent.charCodeAt(7), 32); //normal space - assert.equal(divList[2].textContent.charCodeAt(8), 160); + const div_list = target.querySelectorAll('div'); + assert.equal(div_list[0].textContent.charCodeAt(0), 160); + assert.equal(div_list[1].textContent.charCodeAt(0), 160); + assert.equal(div_list[1].textContent.charCodeAt(6), 160); + assert.equal(div_list[1].textContent.charCodeAt(7), 160); + assert.equal(div_list[2].textContent.charCodeAt(0), 160); + assert.equal(div_list[2].textContent.charCodeAt(6), 160); + assert.equal(div_list[2].textContent.charCodeAt(7), 32); //normal space + assert.equal(div_list[2].textContent.charCodeAt(8), 160); } }; diff --git a/packages/svelte/test/runtime/samples/noscript-removal/_config.js b/packages/svelte/test/runtime/samples/noscript-removal/_config.js index a60a4f87b084..69dea81cbd76 100644 --- a/packages/svelte/test/runtime/samples/noscript-removal/_config.js +++ b/packages/svelte/test/runtime/samples/noscript-removal/_config.js @@ -14,7 +14,7 @@ export default { // it's okay not to remove the node during hydration // will not be seen by user anyway - removeNoScript(target); + remove_no_script(target); assert.htmlEqual( target.innerHTML, @@ -26,7 +26,7 @@ export default { } }; -function removeNoScript(target) { +function remove_no_script(target) { target.querySelectorAll('noscript').forEach((elem) => { elem.parentNode.removeChild(elem); }); diff --git a/packages/svelte/test/runtime/samples/props-reactive-slot/_config.js b/packages/svelte/test/runtime/samples/props-reactive-slot/_config.js index 6129866605b5..47effe0d82cf 100644 --- a/packages/svelte/test/runtime/samples/props-reactive-slot/_config.js +++ b/packages/svelte/test/runtime/samples/props-reactive-slot/_config.js @@ -6,9 +6,9 @@ export default { async test({ assert, target, window }) { const btn = target.querySelector('button'); - const clickEvent = new window.MouseEvent('click'); + const click_event = new window.MouseEvent('click'); - await btn.dispatchEvent(clickEvent); + await btn.dispatchEvent(click_event); assert.htmlEqual( target.innerHTML, diff --git a/packages/svelte/test/runtime/samples/raw-mustache-as-root/_config.js b/packages/svelte/test/runtime/samples/raw-mustache-as-root/_config.js index a38c0b1c8148..2f54fd6ab932 100644 --- a/packages/svelte/test/runtime/samples/raw-mustache-as-root/_config.js +++ b/packages/svelte/test/runtime/samples/raw-mustache-as-root/_config.js @@ -6,9 +6,9 @@ export default { `, async test({ assert, target, window }) { const btn = target.querySelector('button'); - const clickEvent = new window.MouseEvent('click'); + const click_event = new window.MouseEvent('click'); - await btn.dispatchEvent(clickEvent); + await btn.dispatchEvent(click_event); assert.htmlEqual( target.innerHTML, @@ -19,7 +19,7 @@ export default { ` ); - await btn.dispatchEvent(clickEvent); + await btn.dispatchEvent(click_event); assert.htmlEqual( target.innerHTML, diff --git a/packages/svelte/test/runtime/samples/raw-mustache-inside-head/_config.js b/packages/svelte/test/runtime/samples/raw-mustache-inside-head/_config.js index f478d186be67..eb0df14136c9 100644 --- a/packages/svelte/test/runtime/samples/raw-mustache-inside-head/_config.js +++ b/packages/svelte/test/runtime/samples/raw-mustache-inside-head/_config.js @@ -1,7 +1,7 @@ export default { async test({ assert, target, window }) { const btn = target.querySelector('button'); - const clickEvent = new window.MouseEvent('click'); + const click_event = new window.MouseEvent('click'); assert.equal( window.document.head.innerHTML.includes( @@ -10,7 +10,7 @@ export default { true ); - await btn.dispatchEvent(clickEvent); + await btn.dispatchEvent(click_event); assert.equal( window.document.head.innerHTML.includes( @@ -19,7 +19,7 @@ export default { true ); - await btn.dispatchEvent(clickEvent); + await btn.dispatchEvent(click_event); assert.equal( window.document.head.innerHTML.includes( diff --git a/packages/svelte/test/runtime/samples/raw-mustache-inside-slot/_config.js b/packages/svelte/test/runtime/samples/raw-mustache-inside-slot/_config.js index a38c0b1c8148..2f54fd6ab932 100644 --- a/packages/svelte/test/runtime/samples/raw-mustache-inside-slot/_config.js +++ b/packages/svelte/test/runtime/samples/raw-mustache-inside-slot/_config.js @@ -6,9 +6,9 @@ export default { `, async test({ assert, target, window }) { const btn = target.querySelector('button'); - const clickEvent = new window.MouseEvent('click'); + const click_event = new window.MouseEvent('click'); - await btn.dispatchEvent(clickEvent); + await btn.dispatchEvent(click_event); assert.htmlEqual( target.innerHTML, @@ -19,7 +19,7 @@ export default { ` ); - await btn.dispatchEvent(clickEvent); + await btn.dispatchEvent(click_event); assert.htmlEqual( target.innerHTML, diff --git a/packages/svelte/test/runtime/samples/reactive-import-statement/_config.js b/packages/svelte/test/runtime/samples/reactive-import-statement/_config.js index 11609198398d..59856dca943b 100644 --- a/packages/svelte/test/runtime/samples/reactive-import-statement/_config.js +++ b/packages/svelte/test/runtime/samples/reactive-import-statement/_config.js @@ -13,9 +13,9 @@ export default { }, async test({ assert, target, window }) { const btn = target.querySelector('button'); - const clickEvent = new window.MouseEvent('click'); + const click_event = new window.MouseEvent('click'); - await btn.dispatchEvent(clickEvent); + await btn.dispatchEvent(click_event); assert.htmlEqual( target.innerHTML, @@ -28,7 +28,7 @@ export default { ` ); - await btn.dispatchEvent(clickEvent); + await btn.dispatchEvent(click_event); assert.htmlEqual( target.innerHTML, diff --git a/packages/svelte/test/runtime/samples/spread-element-input-value/_config.js b/packages/svelte/test/runtime/samples/spread-element-input-value/_config.js index 64ae0fe469ba..c09bf7e7fa4a 100644 --- a/packages/svelte/test/runtime/samples/spread-element-input-value/_config.js +++ b/packages/svelte/test/runtime/samples/spread-element-input-value/_config.js @@ -11,8 +11,8 @@ export default { // and we determine if svelte does not set the `input.value` again by // spying on the setter of `input.value` - const spy1 = spyOnValueSetter(input1, input1.value); - const spy2 = spyOnValueSetter(input2, input2.value); + const spy1 = spy_on_value_setter(input1, input1.value); + const spy2 = spy_on_value_setter(input2, input2.value); const event = new window.Event('input'); @@ -38,25 +38,25 @@ export default { } }; -function spyOnValueSetter(input, initialValue) { - let value = initialValue; - let isSet = false; +function spy_on_value_setter(input, initial_value) { + let value = initial_value; + let is_set = false; Object.defineProperty(input, 'value', { get() { return value; }, set(_value) { value = _value; - isSet = true; + is_set = true; } }); return { isSetCalled() { - return isSet; + return is_set; }, reset() { - isSet = false; + is_set = false; } }; } diff --git a/packages/svelte/test/runtime/samples/spread-element-input-value/utils.js b/packages/svelte/test/runtime/samples/spread-element-input-value/utils.js index ee941bda5545..2fc48fe6ae1b 100644 --- a/packages/svelte/test/runtime/samples/spread-element-input-value/utils.js +++ b/packages/svelte/test/runtime/samples/spread-element-input-value/utils.js @@ -1,6 +1,6 @@ -export function omit(obj, ...keysToOmit) { +export function omit(obj, ...keys_to_omit) { return Object.keys(obj).reduce((acc, key) => { - if (keysToOmit.indexOf(key) === -1) acc[key] = obj[key]; + if (keys_to_omit.indexOf(key) === -1) acc[key] = obj[key]; return acc; }, {}); } diff --git a/packages/svelte/test/runtime/samples/store-auto-subscribe-event-callback/_config.js b/packages/svelte/test/runtime/samples/store-auto-subscribe-event-callback/_config.js index 58b1740f0f7c..ba0556644d5f 100644 --- a/packages/svelte/test/runtime/samples/store-auto-subscribe-event-callback/_config.js +++ b/packages/svelte/test/runtime/samples/store-auto-subscribe-event-callback/_config.js @@ -9,9 +9,9 @@ export default { const input = target.querySelector('input'); input.value = 'foo'; - const inputEvent = new window.InputEvent('input'); + const input_event = new window.InputEvent('input'); - await input.dispatchEvent(inputEvent); + await input.dispatchEvent(input_event); assert.htmlEqual( target.innerHTML, diff --git a/packages/svelte/test/runtime/samples/store-invalidation-while-update-1/_config.js b/packages/svelte/test/runtime/samples/store-invalidation-while-update-1/_config.js index eaa5b3c92b09..00e41c98d755 100644 --- a/packages/svelte/test/runtime/samples/store-invalidation-while-update-1/_config.js +++ b/packages/svelte/test/runtime/samples/store-invalidation-while-update-1/_config.js @@ -16,11 +16,11 @@ export default { const input = target.querySelector('input'); const button = target.querySelector('button'); - const inputEvent = new window.InputEvent('input'); - const clickEvent = new window.MouseEvent('click'); + const input_event = new window.InputEvent('input'); + const click_event = new window.MouseEvent('click'); input.value = 'foo'; - await input.dispatchEvent(inputEvent); + await input.dispatchEvent(input_event); assert.htmlEqual( target.innerHTML, @@ -32,7 +32,7 @@ export default { ` ); - await button.dispatchEvent(clickEvent); + await button.dispatchEvent(click_event); assert.htmlEqual( target.innerHTML, ` @@ -44,7 +44,7 @@ export default { ); input.value = 'bar'; - await input.dispatchEvent(inputEvent); + await input.dispatchEvent(input_event); assert.htmlEqual( target.innerHTML, diff --git a/packages/svelte/test/runtime/samples/store-invalidation-while-update-2/_config.js b/packages/svelte/test/runtime/samples/store-invalidation-while-update-2/_config.js index 8c318b0faf8a..882eb46931e5 100644 --- a/packages/svelte/test/runtime/samples/store-invalidation-while-update-2/_config.js +++ b/packages/svelte/test/runtime/samples/store-invalidation-while-update-2/_config.js @@ -16,11 +16,11 @@ export default { const input = target.querySelector('input'); const button = target.querySelector('button'); - const inputEvent = new window.InputEvent('input'); - const clickEvent = new window.MouseEvent('click'); + const input_event = new window.InputEvent('input'); + const click_event = new window.MouseEvent('click'); input.value = 'foo'; - await input.dispatchEvent(inputEvent); + await input.dispatchEvent(input_event); assert.htmlEqual( target.innerHTML, @@ -32,7 +32,7 @@ export default { ` ); - await button.dispatchEvent(clickEvent); + await button.dispatchEvent(click_event); assert.htmlEqual( target.innerHTML, ` @@ -44,7 +44,7 @@ export default { ); input.value = 'bar'; - await input.dispatchEvent(inputEvent); + await input.dispatchEvent(input_event); assert.htmlEqual( target.innerHTML, diff --git a/packages/svelte/test/runtime/samples/store-resubscribe-export/_config.js b/packages/svelte/test/runtime/samples/store-resubscribe-export/_config.js index b4615a27d14a..44c0fb240393 100644 --- a/packages/svelte/test/runtime/samples/store-resubscribe-export/_config.js +++ b/packages/svelte/test/runtime/samples/store-resubscribe-export/_config.js @@ -1,11 +1,11 @@ -let unsubscribeCalled = false; +let unsubscribe_called = false; -const fakeStore = (val) => ({ +const fake_store = (val) => ({ subscribe: (cb) => { cb(val); return { unsubscribe: () => { - unsubscribeCalled = true; + unsubscribe_called = true; } }; } @@ -13,17 +13,17 @@ const fakeStore = (val) => ({ export default { get props() { - return { foo: fakeStore(1) }; + return { foo: fake_store(1) }; }, html: `

1

`, async test({ assert, component, target }) { - component.foo = fakeStore(5); + component.foo = fake_store(5); assert.htmlEqual(target.innerHTML, '

5

'); - assert.ok(unsubscribeCalled); + assert.ok(unsubscribe_called); } }; diff --git a/packages/svelte/test/runtime/samples/svg-foreignobject-namespace/_config.js b/packages/svelte/test/runtime/samples/svg-foreignobject-namespace/_config.js index 950e35e79d6e..05a7d7d8ecc2 100644 --- a/packages/svelte/test/runtime/samples/svg-foreignobject-namespace/_config.js +++ b/packages/svelte/test/runtime/samples/svg-foreignobject-namespace/_config.js @@ -8,8 +8,8 @@ export default { `, test({ assert, target }) { - const foreignObject = target.querySelector('foreignObject'); - assert.equal(foreignObject.namespaceURI, 'http://www.w3.org/2000/svg'); + const foreign_object = target.querySelector('foreignObject'); + assert.equal(foreign_object.namespaceURI, 'http://www.w3.org/2000/svg'); const p = target.querySelector('p'); assert.equal(p.namespaceURI, 'http://www.w3.org/1999/xhtml'); diff --git a/packages/svelte/test/runtime/samples/textarea-content/_config.js b/packages/svelte/test/runtime/samples/textarea-content/_config.js index 7d4f8f94938d..fd04d5acbe2d 100644 --- a/packages/svelte/test/runtime/samples/textarea-content/_config.js +++ b/packages/svelte/test/runtime/samples/textarea-content/_config.js @@ -18,50 +18,53 @@ multiple leading newlines
{ it_fn(dir, async () => { const { test } = await import(`./samples/${dir}/test.js`); - const inputFile = path.resolve(`${__dirname}/samples/${dir}/input.svelte`); - const outputName = '_actual'; - const outputBase = path.resolve(`${__dirname}/samples/${dir}/${outputName}`); + const input_file = path.resolve(`${__dirname}/samples/${dir}/input.svelte`); + const output_name = '_actual'; + const output_base = path.resolve(`${__dirname}/samples/${dir}/${output_name}`); - const inputCode = fs.readFileSync(inputFile, 'utf-8'); + const input_code = fs.readFileSync(input_file, 'utf-8'); const input = { - code: inputCode, - locate: getLocator(inputCode), - locate_1: getLocator(inputCode, { offsetLine: 1 }) + code: input_code, + locate: getLocator(input_code), + locate_1: getLocator(input_code, { offsetLine: 1 }) }; const preprocessed = await svelte.preprocess( input.code, @@ -46,8 +46,8 @@ describe('sourcemaps', async () => { filename: 'input.svelte', // filenames for sourcemaps sourcemap: preprocessed.map, - outputFilename: `${outputName}.js`, - cssOutputFilename: `${outputName}.css`, + outputFilename: `${output_name}.js`, + cssOutputFilename: `${output_name}.css`, ...(config.compile_options || {}) }); @@ -55,22 +55,25 @@ describe('sourcemaps', async () => { match.replace(/\d/g, 'x') ); - fs.writeFileSync(`${outputBase}.svelte`, preprocessed.code); + fs.writeFileSync(`${output_base}.svelte`, preprocessed.code); if (preprocessed.map) { fs.writeFileSync( - `${outputBase}.svelte.map`, + `${output_base}.svelte.map`, // TODO encode mappings for output - svelte.preprocess returns decoded mappings JSON.stringify(preprocessed.map, null, 2) ); } - fs.writeFileSync(`${outputBase}.js`, `${js.code}\n//# sourceMappingURL=${outputName}.js.map`); - fs.writeFileSync(`${outputBase}.js.map`, JSON.stringify(js.map, null, 2)); + fs.writeFileSync( + `${output_base}.js`, + `${js.code}\n//# sourceMappingURL=${output_name}.js.map` + ); + fs.writeFileSync(`${output_base}.js.map`, JSON.stringify(js.map, null, 2)); if (css.code) { fs.writeFileSync( - `${outputBase}.css`, - `${css.code}\n/*# sourceMappingURL=${outputName}.css.map */` + `${output_base}.css`, + `${css.code}\n/*# sourceMappingURL=${output_name}.css.map */` ); - fs.writeFileSync(`${outputBase}.css.map`, JSON.stringify(css.map, null, ' ')); + fs.writeFileSync(`${output_base}.css.map`, JSON.stringify(css.map, null, ' ')); } if (js.map) { diff --git a/packages/svelte/test/stats/stats.test.js b/packages/svelte/test/stats/stats.test.js index 4abb771c4cf0..bebd2b7ebd13 100644 --- a/packages/svelte/test/stats/stats.test.js +++ b/packages/svelte/test/stats/stats.test.js @@ -17,7 +17,7 @@ describe('stats', () => { const filename = `${__dirname}/samples/${dir}/input.svelte`; const input = fs.readFileSync(filename, 'utf-8').replace(/\s+$/, ''); - const expectedError = try_load_json(`${__dirname}/samples/${dir}/error.json`); + const expected_error = try_load_json(`${__dirname}/samples/${dir}/error.json`); let result; let error; @@ -29,19 +29,19 @@ describe('stats', () => { error = e; } - if (error || expectedError) { - if (error && !expectedError) { + if (error || expected_error) { + if (error && !expected_error) { throw error; } - if (expectedError && !error) { - throw new Error(`Expected an error: ${expectedError.message}`); + if (expected_error && !error) { + throw new Error(`Expected an error: ${expected_error.message}`); } - assert.equal(error.message, expectedError.message); - assert.deepEqual(error.start, expectedError.start); - assert.deepEqual(error.end, expectedError.end); - assert.equal(error.pos, expectedError.pos); + assert.equal(error.message, expected_error.message); + assert.deepEqual(error.start, expected_error.start); + assert.deepEqual(error.end, expected_error.end); + assert.equal(error.pos, expected_error.pos); } }); }); diff --git a/packages/svelte/test/store/store.test.js b/packages/svelte/test/store/store.test.js index 1f7d90e50c1a..82b284de008d 100644 --- a/packages/svelte/test/store/store.test.js +++ b/packages/svelte/test/store/store.test.js @@ -293,7 +293,7 @@ describe('store', () => { it('passes optional set and update functions', () => { const number = writable(1); - const evensAndSquaresOf4 = derived( + const evens_and_squares_of4 = derived( number, (n, set, update) => { if (n % 2 === 0) set(n); @@ -304,7 +304,7 @@ describe('store', () => { const values = []; - const unsubscribe = evensAndSquaresOf4.subscribe((value) => { + const unsubscribe = evens_and_squares_of4.subscribe((value) => { values.push(value); }); @@ -542,18 +542,18 @@ describe('store', () => { describe('readonly', () => { it('makes a store readonly', () => { - const writableStore = writable(1); - const readableStore = readonly(writableStore); + const writable_store = writable(1); + const readable_store = readonly(writable_store); - assert.equal(get(readableStore), get(writableStore)); + assert.equal(get(readable_store), get(writable_store)); - writableStore.set(2); + writable_store.set(2); - assert.equal(get(readableStore), 2); - assert.equal(get(readableStore), get(writableStore)); + assert.equal(get(readable_store), 2); + assert.equal(get(readable_store), get(writable_store)); // @ts-ignore - assert.throws(() => readableStore.set(3)); + assert.throws(() => readable_store.set(3)); }); }); }); diff --git a/packages/svelte/test/tsconfig.json b/packages/svelte/test/tsconfig.json index c5f45fe8210f..71b9d4c6dd27 100644 --- a/packages/svelte/test/tsconfig.json +++ b/packages/svelte/test/tsconfig.json @@ -1,15 +1,10 @@ { "extends": "../tsconfig.json", - "include": ["."], "exclude": ["./**/_output/**/*"], "compilerOptions": { "allowJs": true, "checkJs": true, - "noEmit": true, - "paths": { - "svelte": [".."], - "svelte/*": ["../*"] - } + "noEmit": true } } diff --git a/packages/svelte/test/vars/vars.test.js b/packages/svelte/test/vars/vars.test.js index 9e786377ac9c..3cbcb964f1cf 100644 --- a/packages/svelte/test/vars/vars.test.js +++ b/packages/svelte/test/vars/vars.test.js @@ -20,7 +20,7 @@ describe('vars', () => { .trimEnd() .replace(/\r/g, ''); - const expectedError = try_load_json(`${__dirname}/samples/${dir}/error.json`); + const expected_error = try_load_json(`${__dirname}/samples/${dir}/error.json`); /** * @type {{ options: any, test: (assert: typeof import('vitest').assert, vars: any[]) => void }}} @@ -31,19 +31,19 @@ describe('vars', () => { const { vars } = compile(input, { ...options, generate }); test(assert, vars); } catch (error) { - if (expectedError) { - assert.equal(error.message, expectedError.message); - assert.deepEqual(error.start, expectedError.start); - assert.deepEqual(error.end, expectedError.end); - assert.equal(error.pos, expectedError.pos); + if (expected_error) { + assert.equal(error.message, expected_error.message); + assert.deepEqual(error.start, expected_error.start); + assert.deepEqual(error.end, expected_error.end); + assert.equal(error.pos, expected_error.pos); return; } else { throw error; } } - if (expectedError) { - assert.fail(`Expected an error: ${JSON.stringify(expectedError)}`); + if (expected_error) { + assert.fail(`Expected an error: ${JSON.stringify(expected_error)}`); } }); }); diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 117a8e03387a..b0e4a0553fa2 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -111,6 +111,9 @@ importers: esbuild: specifier: ^0.18.11 version: 0.18.11 + eslint-plugin-lube: + specifier: ^0.1.7 + version: 0.1.7 happy-dom: specifier: ^9.20.3 version: 9.20.3 @@ -3932,6 +3935,12 @@ packages: eslint: 8.47.0 dev: true + /eslint-plugin-lube@0.1.7: + resolution: {integrity: sha512-jqeRZAG3vQWZR6Hue2tSx4bQUfpDYqeSOFf3MlqpUycb5q6av1bhnmfDkxHgsLQoK4Pt7H+puI0cYc/iEvFwfw==} + dependencies: + '@types/estree': 1.0.1 + dev: true + /eslint-plugin-svelte@2.32.2(eslint@8.44.0)(svelte@packages+svelte): resolution: {integrity: sha512-Jgbop2fNZsoxxkklZAIbDNhwAPynvnCtUXLsEC6O2qax7N/pfe2cNqT0ZoBbubXKJitQQDEyVDQ1rZs4ZWcrTA==} engines: {node: ^14.17.0 || >=16.0.0} From 9073241daa0836fc608ebdcfba8ceeb89a92b3f8 Mon Sep 17 00:00:00 2001 From: Jack Farley Date: Sat, 16 Sep 2023 11:26:19 +1200 Subject: [PATCH 025/226] docs: mention escaping of curly braces (#8560) --- documentation/docs/02-template-syntax/02-basic-markup.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/documentation/docs/02-template-syntax/02-basic-markup.md b/documentation/docs/02-template-syntax/02-basic-markup.md index dbdc55c060fd..e6192230d484 100644 --- a/documentation/docs/02-template-syntax/02-basic-markup.md +++ b/documentation/docs/02-template-syntax/02-basic-markup.md @@ -106,11 +106,13 @@ An element or component can have multiple spread attributes, interspersed with r ## Text expressions +A JavaScript expression can be included as text by surrounding it with curly braces. + ```svelte {expression} ``` -Text can also contain JavaScript expressions: +Curly braces can be included in a Svelte template by using their [HTML entity](https://developer.mozilla.org/docs/Glossary/Entity) strings: `{`, `{`, or `{` for `{` and `}`, `}`, or `}` for `}`. > If you're using a regular expression (`RegExp`) [literal notation](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp#literal_notation_and_constructor), you'll need to wrap it in parentheses. From 16504d1f5203b6bada19d22175335791e880de16 Mon Sep 17 00:00:00 2001 From: Conduitry Date: Fri, 15 Sep 2023 19:34:49 -0400 Subject: [PATCH 026/226] docs: add FAQ about why you can't keep unused styles (#9193) --- documentation/docs/05-misc/01-faq.md | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/documentation/docs/05-misc/01-faq.md b/documentation/docs/05-misc/01-faq.md index dd55458647ae..a5c2330f46c7 100644 --- a/documentation/docs/05-misc/01-faq.md +++ b/documentation/docs/05-misc/01-faq.md @@ -131,6 +131,17 @@ If you need hash-based routing on the client side, check out [svelte-spa-router] You can see a [community-maintained list of routers on sveltesociety.dev](https://sveltesociety.dev/components#routers). +## Can I tell Svelte not to remove my unused styles? + +No. Svelte removes the styles from the component and warns you about them in order to prevent issues that would otherwise arise. + +Svelte's component style scoping works by generating a class unique to the given component, adding it to the relevant elements in the component that are under Svelte's control, and then adding it to each of the selectors in that component's styles. When the compiler can't see what elements a style selector applies to, there would be two bad options for keeping it: + +- If it keeps the selector and adds the scoping class to it, the selector will likely not match the expected elements in the component, and they definitely won't if they were created by a child component or `{@html ...}`. +- If it keeps the selector without adding the scoping class to it, the given style will become a global style, affecting your entire page. + +If you need to style something that Svelte can't identify at compile time, you will need to explicitly opt into global styles by using `:global(...)`. But also keep in mind that you can wrap `:global(...)` around only part of a selector. `.foo :global(.bar) { ... }` will style any `.bar` elements that appear within the component's `.foo` elements. As long as there's some parent element in the current component to start from, partially global selectors like this will almost always be able to get you what you want. + ## Is Svelte v2 still available? New features aren't being added to it, and bugs will probably only be fixed if they are extremely nasty or present some sort of security vulnerability. From 1a28d58b5d2bda54cae70718f7ac36e45e25b9f7 Mon Sep 17 00:00:00 2001 From: Puru Vijay <47742487+PuruVJ@users.noreply.github.com> Date: Sat, 16 Sep 2023 20:00:16 +0530 Subject: [PATCH 027/226] feat: Copy code button (#8995) * Push * Bump site-kit * Add headers to primary snippets * Update deps * Bump deos * redploy * Back to normal * Push * Bump deps * site: fix rendering of promise in deprecation warning (#9191) * copy: true * Bump site-kit * Use cache --- .../02-template-syntax/03-logic-blocks.md | 13 + .../02-template-syntax/04-special-tags.md | 4 + .../05-element-directives.md | 43 +- .../06-component-directives.md | 17 +- .../02-template-syntax/07-special-elements.md | 1 - .../docs/03-runtime/02-svelte-store.md | 22 +- .../docs/03-runtime/04-svelte-transition.md | 18 + .../docs/03-runtime/05-svelte-animate.md | 1 + .../docs/03-runtime/07-svelte-action.md | 3 - .../04-compiler-and-api/01-svelte-compiler.md | 5 +- .../02-client-side-component-api.md | 3 + documentation/docs/05-misc/03-typescript.md | 14 +- pnpm-lock.yaml | 674 ++++++++++-------- sites/svelte.dev/package.json | 28 +- sites/svelte.dev/src/routes/+page.svelte | 2 +- .../src/routes/blog/[slug]/+page.svelte | 3 +- .../src/routes/content.json/content.server.js | 24 +- .../src/routes/docs/[slug]/+page.svelte | 3 +- .../svelte.dev/src/routes/nav.json/+server.js | 23 +- 19 files changed, 537 insertions(+), 364 deletions(-) diff --git a/documentation/docs/02-template-syntax/03-logic-blocks.md b/documentation/docs/02-template-syntax/03-logic-blocks.md index 43e7511bf5fc..98bfc3ea1853 100644 --- a/documentation/docs/02-template-syntax/03-logic-blocks.md +++ b/documentation/docs/02-template-syntax/03-logic-blocks.md @@ -5,14 +5,17 @@ title: Logic blocks ## {#if ...} ```svelte + {#if expression}...{/if} ``` ```svelte + {#if expression}...{:else if expression}...{/if} ``` ```svelte + {#if expression}...{:else}...{/if} ``` @@ -41,22 +44,27 @@ Additional conditions can be added with `{:else if expression}`, optionally endi ## {#each ...} ```svelte + {#each expression as name}...{/each} ``` ```svelte + {#each expression as name, index}...{/each} ``` ```svelte + {#each expression as name (key)}...{/each} ``` ```svelte + {#each expression as name, index (key)}...{/each} ``` ```svelte + {#each expression as name}...{:else}...{/each} ``` @@ -125,18 +133,22 @@ Since Svelte 4 it is possible to iterate over iterables like `Map` or `Set`. Ite ## {#await ...} ```svelte + {#await expression}...{:then name}...{:catch name}...{/await} ``` ```svelte + {#await expression}...{:then name}...{/await} ``` ```svelte + {#await expression then name}...{/await} ``` ```svelte + {#await expression catch name}...{/await} ``` @@ -186,6 +198,7 @@ Similarly, if you only want to show the error state, you can omit the `then` blo ## {#key ...} ```svelte + {#key expression}...{/key} ``` diff --git a/documentation/docs/02-template-syntax/04-special-tags.md b/documentation/docs/02-template-syntax/04-special-tags.md index f70ab4d09276..4145d8d6d6bd 100644 --- a/documentation/docs/02-template-syntax/04-special-tags.md +++ b/documentation/docs/02-template-syntax/04-special-tags.md @@ -5,6 +5,7 @@ title: Special tags ## {@html ...} ```svelte + {@html expression} ``` @@ -24,10 +25,12 @@ The expression should be valid standalone HTML — `{@html "
"}content{@html ## {@debug ...} ```svelte + {@debug} ``` ```svelte + {@debug var1, var2, ..., varN} ``` @@ -65,6 +68,7 @@ The `{@debug}` tag without any arguments will insert a `debugger` statement that ## {@const ...} ```svelte + {@const assignment} ``` diff --git a/documentation/docs/02-template-syntax/05-element-directives.md b/documentation/docs/02-template-syntax/05-element-directives.md index ee24c97e5134..f9ff1821c813 100644 --- a/documentation/docs/02-template-syntax/05-element-directives.md +++ b/documentation/docs/02-template-syntax/05-element-directives.md @@ -7,10 +7,12 @@ As well as attributes, elements can have _directives_, which control the element ## on:_eventname_ ```svelte + on:eventname={handler} ``` ```svelte + on:eventname|modifiers={handler} ``` @@ -72,7 +74,6 @@ If the `on:` directive is used without a value, the component will _forward_ the It's possible to have multiple event listeners for the same event: ```svelte - - + - + ``` Listening for component events looks the same as listening for DOM events: @@ -44,6 +40,7 @@ As with DOM events, if the `on:` directive is used without a value, the event wi ## --style-props ```svelte + --style-props="anycssvalue" ``` @@ -78,7 +75,6 @@ For SVG namespace, the example above desugars into using `` instead: Svelte's CSS Variables support allows for easily themeable components: ```svelte - From 68b40effb24c05eafd6b05fceb4a094b373f2522 Mon Sep 17 00:00:00 2001 From: Simon H <5968653+dummdidumm@users.noreply.github.com> Date: Wed, 20 Sep 2023 17:02:36 +0200 Subject: [PATCH 040/226] site: runes banner (#9228) * site: runes banner * well I should get the title right, shouldnt I? * padding * fix typo * tweak --- documentation/blog/2023-09-20-runes.md | 2 +- pnpm-lock.yaml | 66 +++++++++++++++------- sites/svelte.dev/package.json | 2 +- sites/svelte.dev/src/routes/+layout.svelte | 18 +++++- 4 files changed, 65 insertions(+), 23 deletions(-) diff --git a/documentation/blog/2023-09-20-runes.md b/documentation/blog/2023-09-20-runes.md index 3ae3699434a7..3e3448885e00 100644 --- a/documentation/blog/2023-09-20-runes.md +++ b/documentation/blog/2023-09-20-runes.md @@ -124,7 +124,7 @@ export function createCounter() { return { - subscribe, - increment: () => update((n) => n + 1) -+ get count { return count }, ++ get count() { return count }, + increment: () => count += 1 }; } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 4a3d645c02f2..8407e35ddcd8 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -188,8 +188,8 @@ importers: specifier: ^1.24.1 version: 1.25.0(svelte@packages+svelte)(vite@4.4.9) '@sveltejs/site-kit': - specifier: 6.0.0-next.46 - version: 6.0.0-next.46(@sveltejs/kit@1.25.0)(svelte@packages+svelte) + specifier: 6.0.0-next.47 + version: 6.0.0-next.47(@sveltejs/kit@1.25.0)(svelte@packages+svelte) '@sveltejs/vite-plugin-svelte': specifier: ^2.4.6 version: 2.4.6(svelte@packages+svelte)(vite@4.4.9) @@ -502,8 +502,8 @@ packages: prettier: 2.8.8 dev: true - /@codemirror/autocomplete@6.8.1(@codemirror/language@6.8.0)(@codemirror/state@6.2.1)(@codemirror/view@6.16.0)(@lezer/common@1.0.4): - resolution: {integrity: sha512-HpphvDcTdOx+9R3eUw9hZK9JA77jlaBF0kOt2McbyfvY0rX9pnMoO8rkkZc0GzSbzhIY4m5xJ0uHHgjfqHNmXQ==} + /@codemirror/autocomplete@6.9.1(@codemirror/language@6.8.0)(@codemirror/state@6.2.1)(@codemirror/view@6.16.0)(@lezer/common@1.0.4): + resolution: {integrity: sha512-yma56tqD7khIZK4gy4X5lX3/k5ArMiCGat7HEWRF/8L2kqOjVdp2qKZqpcJjwTIjSj6fqKAHqi7IjtH3QFE+Bw==} peerDependencies: '@codemirror/language': ^6.0.0 '@codemirror/state': ^6.0.0 @@ -516,6 +516,20 @@ packages: '@lezer/common': 1.0.4 dev: false + /@codemirror/autocomplete@6.9.1(@codemirror/language@6.8.0)(@codemirror/state@6.2.1)(@codemirror/view@6.19.0)(@lezer/common@1.0.4): + resolution: {integrity: sha512-yma56tqD7khIZK4gy4X5lX3/k5ArMiCGat7HEWRF/8L2kqOjVdp2qKZqpcJjwTIjSj6fqKAHqi7IjtH3QFE+Bw==} + peerDependencies: + '@codemirror/language': ^6.0.0 + '@codemirror/state': ^6.0.0 + '@codemirror/view': ^6.0.0 + '@lezer/common': ^1.0.0 + dependencies: + '@codemirror/language': 6.8.0 + '@codemirror/state': 6.2.1 + '@codemirror/view': 6.19.0 + '@lezer/common': 1.0.4 + dev: false + /@codemirror/autocomplete@6.9.1(@codemirror/language@6.9.0)(@codemirror/state@6.2.1)(@codemirror/view@6.19.0)(@lezer/common@1.0.4): resolution: {integrity: sha512-yma56tqD7khIZK4gy4X5lX3/k5ArMiCGat7HEWRF/8L2kqOjVdp2qKZqpcJjwTIjSj6fqKAHqi7IjtH3QFE+Bw==} peerDependencies: @@ -542,7 +556,19 @@ packages: /@codemirror/lang-css@6.2.0(@codemirror/view@6.16.0): resolution: {integrity: sha512-oyIdJM29AyRPM3+PPq1I2oIk8NpUfEN3kAM05XWDDs6o3gSneIKaVJifT2P+fqONLou2uIgXynFyMUDQvo/szA==} dependencies: - '@codemirror/autocomplete': 6.8.1(@codemirror/language@6.8.0)(@codemirror/state@6.2.1)(@codemirror/view@6.16.0)(@lezer/common@1.0.4) + '@codemirror/autocomplete': 6.9.1(@codemirror/language@6.8.0)(@codemirror/state@6.2.1)(@codemirror/view@6.19.0)(@lezer/common@1.0.4) + '@codemirror/language': 6.8.0 + '@codemirror/state': 6.2.1 + '@lezer/common': 1.0.4 + '@lezer/css': 1.1.3 + transitivePeerDependencies: + - '@codemirror/view' + dev: false + + /@codemirror/lang-css@6.2.0(@codemirror/view@6.19.0): + resolution: {integrity: sha512-oyIdJM29AyRPM3+PPq1I2oIk8NpUfEN3kAM05XWDDs6o3gSneIKaVJifT2P+fqONLou2uIgXynFyMUDQvo/szA==} + dependencies: + '@codemirror/autocomplete': 6.9.1(@codemirror/language@6.8.0)(@codemirror/state@6.2.1)(@codemirror/view@6.19.0)(@lezer/common@1.0.4) '@codemirror/language': 6.8.0 '@codemirror/state': 6.2.1 '@lezer/common': 1.0.4 @@ -566,7 +592,7 @@ packages: /@codemirror/lang-html@6.4.5: resolution: {integrity: sha512-dUCSxkIw2G+chaUfw3Gfu5kkN83vJQN8gfQDp9iEHsIZluMJA0YJveT12zg/28BJx+uPsbQ6VimKCgx3oJrZxA==} dependencies: - '@codemirror/autocomplete': 6.8.1(@codemirror/language@6.8.0)(@codemirror/state@6.2.1)(@codemirror/view@6.16.0)(@lezer/common@1.0.4) + '@codemirror/autocomplete': 6.9.1(@codemirror/language@6.8.0)(@codemirror/state@6.2.1)(@codemirror/view@6.16.0)(@lezer/common@1.0.4) '@codemirror/lang-css': 6.2.0(@codemirror/view@6.16.0) '@codemirror/lang-javascript': 6.1.9 '@codemirror/language': 6.8.0 @@ -594,7 +620,7 @@ packages: /@codemirror/lang-javascript@6.1.9: resolution: {integrity: sha512-z3jdkcqOEBT2txn2a87A0jSy6Te3679wg/U8QzMeftFt+4KA6QooMwfdFzJiuC3L6fXKfTXZcDocoaxMYfGz0w==} dependencies: - '@codemirror/autocomplete': 6.8.1(@codemirror/language@6.8.0)(@codemirror/state@6.2.1)(@codemirror/view@6.16.0)(@lezer/common@1.0.4) + '@codemirror/autocomplete': 6.9.1(@codemirror/language@6.8.0)(@codemirror/state@6.2.1)(@codemirror/view@6.16.0)(@lezer/common@1.0.4) '@codemirror/language': 6.8.0 '@codemirror/lint': 6.4.0 '@codemirror/state': 6.2.1 @@ -625,7 +651,7 @@ packages: /@codemirror/lang-markdown@6.2.0: resolution: {integrity: sha512-deKegEQVzfBAcLPqsJEa+IxotqPVwWZi90UOEvQbfa01NTAw8jNinrykuYPTULGUj+gha0ZG2HBsn4s5d64Qrg==} dependencies: - '@codemirror/autocomplete': 6.8.1(@codemirror/language@6.8.0)(@codemirror/state@6.2.1)(@codemirror/view@6.16.0)(@lezer/common@1.0.4) + '@codemirror/autocomplete': 6.9.1(@codemirror/language@6.8.0)(@codemirror/state@6.2.1)(@codemirror/view@6.16.0)(@lezer/common@1.0.4) '@codemirror/lang-html': 6.4.5 '@codemirror/language': 6.8.0 '@codemirror/state': 6.2.1 @@ -1882,7 +1908,7 @@ packages: - supports-color dev: true - /@neocodemirror/svelte@0.0.15(@codemirror/autocomplete@6.8.1)(@codemirror/commands@6.2.4)(@codemirror/language@6.8.0)(@codemirror/lint@6.4.0)(@codemirror/search@6.5.3)(@codemirror/state@6.2.1)(@codemirror/view@6.16.0): + /@neocodemirror/svelte@0.0.15(@codemirror/autocomplete@6.9.1)(@codemirror/commands@6.2.4)(@codemirror/language@6.8.0)(@codemirror/lint@6.4.0)(@codemirror/search@6.5.3)(@codemirror/state@6.2.1)(@codemirror/view@6.16.0): resolution: {integrity: sha512-MCux+QCR40CboJu/TFwnqK7gYQ3fvtvHX8F/mk85DRH7vMoG3VDjJhqneAITX5IzohWKeP36hzcV+oHC2LYJqA==} peerDependencies: '@codemirror/autocomplete': ^6.7.1 @@ -1893,7 +1919,7 @@ packages: '@codemirror/state': ^6.2.0 '@codemirror/view': ^6.12.0 dependencies: - '@codemirror/autocomplete': 6.8.1(@codemirror/language@6.8.0)(@codemirror/state@6.2.1)(@codemirror/view@6.16.0)(@lezer/common@1.0.4) + '@codemirror/autocomplete': 6.9.1(@codemirror/language@6.9.0)(@codemirror/state@6.2.1)(@codemirror/view@6.19.0)(@lezer/common@1.0.4) '@codemirror/commands': 6.2.4 '@codemirror/language': 6.8.0 '@codemirror/lint': 6.4.0 @@ -1939,7 +1965,7 @@ packages: /@polka/url@1.0.0-next.21: resolution: {integrity: sha512-a5Sab1C4/icpTZVzZc5Ghpz88yQtGOyNqYXcZgOssB2uuAr+wF/MvN6bgtW32q7HHrvBki+BsZ0OuNv6EV3K9g==} - /@replit/codemirror-lang-svelte@6.0.0(@codemirror/autocomplete@6.8.1)(@codemirror/lang-css@6.2.0)(@codemirror/lang-html@6.4.6)(@codemirror/lang-javascript@6.1.9)(@codemirror/language@6.8.0)(@codemirror/state@6.2.1)(@codemirror/view@6.16.0)(@lezer/common@1.0.4)(@lezer/highlight@1.1.6)(@lezer/javascript@1.4.7)(@lezer/lr@1.3.10): + /@replit/codemirror-lang-svelte@6.0.0(@codemirror/autocomplete@6.9.1)(@codemirror/lang-css@6.2.0)(@codemirror/lang-html@6.4.6)(@codemirror/lang-javascript@6.1.9)(@codemirror/language@6.8.0)(@codemirror/state@6.2.1)(@codemirror/view@6.16.0)(@lezer/common@1.0.4)(@lezer/highlight@1.1.6)(@lezer/javascript@1.4.7)(@lezer/lr@1.3.10): resolution: {integrity: sha512-U2OqqgMM6jKelL0GNWbAmqlu1S078zZNoBqlJBW+retTc5M4Mha6/Y2cf4SVg6ddgloJvmcSpt4hHrVoM4ePRA==} peerDependencies: '@codemirror/autocomplete': ^6.0.0 @@ -1954,8 +1980,8 @@ packages: '@lezer/javascript': ^1.2.0 '@lezer/lr': ^1.0.0 dependencies: - '@codemirror/autocomplete': 6.8.1(@codemirror/language@6.8.0)(@codemirror/state@6.2.1)(@codemirror/view@6.16.0)(@lezer/common@1.0.4) - '@codemirror/lang-css': 6.2.0(@codemirror/view@6.16.0) + '@codemirror/autocomplete': 6.9.1(@codemirror/language@6.9.0)(@codemirror/state@6.2.1)(@codemirror/view@6.19.0)(@lezer/common@1.0.4) + '@codemirror/lang-css': 6.2.0(@codemirror/view@6.19.0) '@codemirror/lang-html': 6.4.6 '@codemirror/lang-javascript': 6.1.9 '@codemirror/language': 6.8.0 @@ -2351,9 +2377,9 @@ packages: peerDependencies: svelte: ^3.54.0 || ^4.0.0-next.0 || ^4.0.0 dependencies: - '@codemirror/autocomplete': 6.8.1(@codemirror/language@6.8.0)(@codemirror/state@6.2.1)(@codemirror/view@6.16.0)(@lezer/common@1.0.4) + '@codemirror/autocomplete': 6.9.1(@codemirror/language@6.9.0)(@codemirror/state@6.2.1)(@codemirror/view@6.19.0)(@lezer/common@1.0.4) '@codemirror/commands': 6.2.4 - '@codemirror/lang-css': 6.2.0(@codemirror/view@6.16.0) + '@codemirror/lang-css': 6.2.0(@codemirror/view@6.19.0) '@codemirror/lang-javascript': 6.1.9 '@codemirror/lang-json': 6.0.1 '@codemirror/lang-markdown': 6.2.0 @@ -2363,8 +2389,8 @@ packages: '@codemirror/view': 6.16.0 '@jridgewell/sourcemap-codec': 1.4.15 '@lezer/highlight': 1.1.6 - '@neocodemirror/svelte': 0.0.15(@codemirror/autocomplete@6.8.1)(@codemirror/commands@6.2.4)(@codemirror/language@6.8.0)(@codemirror/lint@6.4.0)(@codemirror/search@6.5.3)(@codemirror/state@6.2.1)(@codemirror/view@6.16.0) - '@replit/codemirror-lang-svelte': 6.0.0(@codemirror/autocomplete@6.8.1)(@codemirror/lang-css@6.2.0)(@codemirror/lang-html@6.4.6)(@codemirror/lang-javascript@6.1.9)(@codemirror/language@6.8.0)(@codemirror/state@6.2.1)(@codemirror/view@6.16.0)(@lezer/common@1.0.4)(@lezer/highlight@1.1.6)(@lezer/javascript@1.4.7)(@lezer/lr@1.3.10) + '@neocodemirror/svelte': 0.0.15(@codemirror/autocomplete@6.9.1)(@codemirror/commands@6.2.4)(@codemirror/language@6.8.0)(@codemirror/lint@6.4.0)(@codemirror/search@6.5.3)(@codemirror/state@6.2.1)(@codemirror/view@6.16.0) + '@replit/codemirror-lang-svelte': 6.0.0(@codemirror/autocomplete@6.9.1)(@codemirror/lang-css@6.2.0)(@codemirror/lang-html@6.4.6)(@codemirror/lang-javascript@6.1.9)(@codemirror/language@6.8.0)(@codemirror/state@6.2.1)(@codemirror/view@6.16.0)(@lezer/common@1.0.4)(@lezer/highlight@1.1.6)(@lezer/javascript@1.4.7)(@lezer/lr@1.3.10) '@replit/codemirror-vim': 6.0.14(@codemirror/commands@6.2.4)(@codemirror/language@6.8.0)(@codemirror/search@6.5.3)(@codemirror/state@6.2.1)(@codemirror/view@6.16.0) '@rich_harris/svelte-split-pane': 1.1.1(svelte@packages+svelte) '@rollup/browser': 3.26.2 @@ -2398,8 +2424,8 @@ packages: svelte-local-storage-store: 0.4.0(svelte@packages+svelte) dev: false - /@sveltejs/site-kit@6.0.0-next.46(@sveltejs/kit@1.25.0)(svelte@packages+svelte): - resolution: {integrity: sha512-VgFKJ6G3gXqlbnjVeZTD6MPWidhZuu93D2WdfsOd4DLL6eFKaCbF60qZXtmWF2hLj7+WDk8+NAwj3V+UZ84k8A==} + /@sveltejs/site-kit@6.0.0-next.47(@sveltejs/kit@1.25.0)(svelte@packages+svelte): + resolution: {integrity: sha512-vHKtz71e4bKH0gja//rSd/1rR8qHNCtdtXzjJ2nSdeACaZ5Daql7Q4JJ+0D9OM3Q9t/uj3XAFUPAmEaFENn5kA==} peerDependencies: '@sveltejs/kit': ^1.20.0 svelte: ^4.0.0 @@ -3410,7 +3436,7 @@ packages: /codemirror@6.0.1(@lezer/common@1.0.4): resolution: {integrity: sha512-J8j+nZ+CdWmIeFIGXEFbFPtpiYacFMDR8GlHK3IyHQJMCaVRfGx9NT+Hxivv1ckLWPvNdZqndbr/7lVhrf/Svg==} dependencies: - '@codemirror/autocomplete': 6.8.1(@codemirror/language@6.8.0)(@codemirror/state@6.2.1)(@codemirror/view@6.16.0)(@lezer/common@1.0.4) + '@codemirror/autocomplete': 6.9.1(@codemirror/language@6.8.0)(@codemirror/state@6.2.1)(@codemirror/view@6.16.0)(@lezer/common@1.0.4) '@codemirror/commands': 6.2.4 '@codemirror/language': 6.8.0 '@codemirror/lint': 6.4.0 diff --git a/sites/svelte.dev/package.json b/sites/svelte.dev/package.json index fa02b14b30f3..d245e11dd6d7 100644 --- a/sites/svelte.dev/package.json +++ b/sites/svelte.dev/package.json @@ -30,7 +30,7 @@ "@resvg/resvg-js": "^2.4.1", "@sveltejs/adapter-vercel": "^3.0.3", "@sveltejs/kit": "^1.24.1", - "@sveltejs/site-kit": "6.0.0-next.46", + "@sveltejs/site-kit": "6.0.0-next.47", "@sveltejs/vite-plugin-svelte": "^2.4.6", "@types/cookie": "^0.5.2", "@types/node": "^20.5.9", diff --git a/sites/svelte.dev/src/routes/+layout.svelte b/sites/svelte.dev/src/routes/+layout.svelte index 9906d6a1b05a..cd3de32c8f1c 100644 --- a/sites/svelte.dev/src/routes/+layout.svelte +++ b/sites/svelte.dev/src/routes/+layout.svelte @@ -32,7 +32,11 @@
- + + +
@@ -84,4 +92,12 @@ height: 100%; width: 100%; } + + .banner-bottom { + text-align: center; + background: var(--sk-theme-1-variant); + color: white; + text-decoration: underline; + padding: 8px; + } From 666d70ac2bfcf444b540e6311076047becd2a53b Mon Sep 17 00:00:00 2001 From: Ben McCann <322311+benmccann@users.noreply.github.com> Date: Wed, 20 Sep 2023 10:23:27 -0700 Subject: [PATCH 041/226] chore: update PR template with note about rewrite (#9231) --- .github/PULL_REQUEST_TEMPLATE.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index 83e0b253b364..49d60aecaab2 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -1,3 +1,6 @@ +## Svelte compiler rewrite + +Please note that [the Svelte codebase is currently being rewritten](https://svelte.dev/blog/runes). Thus, it's best to hold off on new features or refactorings for the time being. ### Before submitting the PR, please make sure you do the following From fa89421301f949c83d9e5e34a1f6e215137cdf4c Mon Sep 17 00:00:00 2001 From: Irshad Ali Date: Thu, 21 Sep 2023 14:35:41 +0530 Subject: [PATCH 042/226] fix(repl): runes bottom banner overlapping fixed (#9238) --------- Co-authored-by: Simon H <5968653+dummdidumm@users.noreply.github.com> Co-authored-by: Simon Holthausen --- pnpm-lock.yaml | 8 ++++---- sites/svelte.dev/package.json | 2 +- .../svelte.dev/src/routes/(authed)/repl/[id]/+page.svelte | 4 ++-- sites/svelte.dev/src/routes/blog/+page.svelte | 2 +- sites/svelte.dev/src/routes/docs/+layout.svelte | 2 +- sites/svelte.dev/src/routes/examples/[slug]/+page.svelte | 2 +- sites/svelte.dev/src/routes/tutorial/[slug]/+page.svelte | 2 +- 7 files changed, 11 insertions(+), 11 deletions(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 8407e35ddcd8..9cc6d0c937af 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -188,8 +188,8 @@ importers: specifier: ^1.24.1 version: 1.25.0(svelte@packages+svelte)(vite@4.4.9) '@sveltejs/site-kit': - specifier: 6.0.0-next.47 - version: 6.0.0-next.47(@sveltejs/kit@1.25.0)(svelte@packages+svelte) + specifier: 6.0.0-next.50 + version: 6.0.0-next.50(@sveltejs/kit@1.25.0)(svelte@packages+svelte) '@sveltejs/vite-plugin-svelte': specifier: ^2.4.6 version: 2.4.6(svelte@packages+svelte)(vite@4.4.9) @@ -2424,8 +2424,8 @@ packages: svelte-local-storage-store: 0.4.0(svelte@packages+svelte) dev: false - /@sveltejs/site-kit@6.0.0-next.47(@sveltejs/kit@1.25.0)(svelte@packages+svelte): - resolution: {integrity: sha512-vHKtz71e4bKH0gja//rSd/1rR8qHNCtdtXzjJ2nSdeACaZ5Daql7Q4JJ+0D9OM3Q9t/uj3XAFUPAmEaFENn5kA==} + /@sveltejs/site-kit@6.0.0-next.50(@sveltejs/kit@1.25.0)(svelte@packages+svelte): + resolution: {integrity: sha512-kgJVREVGuhhNO1YfQwJelFsBqfJiPhP7J4ytGUg05FaYlNQn3jb+BMUo027fSRpLgAjCqoo0IzIwX6CSSqqyJg==} peerDependencies: '@sveltejs/kit': ^1.20.0 svelte: ^4.0.0 diff --git a/sites/svelte.dev/package.json b/sites/svelte.dev/package.json index d245e11dd6d7..2a5e1fe0501a 100644 --- a/sites/svelte.dev/package.json +++ b/sites/svelte.dev/package.json @@ -30,7 +30,7 @@ "@resvg/resvg-js": "^2.4.1", "@sveltejs/adapter-vercel": "^3.0.3", "@sveltejs/kit": "^1.24.1", - "@sveltejs/site-kit": "6.0.0-next.47", + "@sveltejs/site-kit": "6.0.0-next.50", "@sveltejs/vite-plugin-svelte": "^2.4.6", "@types/cookie": "^0.5.2", "@types/node": "^20.5.9", diff --git a/sites/svelte.dev/src/routes/(authed)/repl/[id]/+page.svelte b/sites/svelte.dev/src/routes/(authed)/repl/[id]/+page.svelte index 61d559b4526a..c867ff332ffa 100644 --- a/sites/svelte.dev/src/routes/(authed)/repl/[id]/+page.svelte +++ b/sites/svelte.dev/src/routes/(authed)/repl/[id]/+page.svelte @@ -104,8 +104,8 @@ diff --git a/documentation/examples/21-miscellaneous/02-immutable-data/MutableTodo.svelte b/documentation/examples/21-miscellaneous/02-immutable-data/MutableTodo.svelte index f92468ab79f7..fb960ead91bd 100644 --- a/documentation/examples/21-miscellaneous/02-immutable-data/MutableTodo.svelte +++ b/documentation/examples/21-miscellaneous/02-immutable-data/MutableTodo.svelte @@ -21,8 +21,8 @@ diff --git a/documentation/tutorial/02-reactivity/01-reactive-assignments/app-a/App.svelte b/documentation/tutorial/02-reactivity/01-reactive-assignments/app-a/App.svelte index 8b1569bffb29..76483b567a9c 100644 --- a/documentation/tutorial/02-reactivity/01-reactive-assignments/app-a/App.svelte +++ b/documentation/tutorial/02-reactivity/01-reactive-assignments/app-a/App.svelte @@ -13,6 +13,6 @@ diff --git a/documentation/tutorial/02-reactivity/01-reactive-assignments/app-b/App.svelte b/documentation/tutorial/02-reactivity/01-reactive-assignments/app-b/App.svelte index d51ca2e06829..17e7c07312c4 100644 --- a/documentation/tutorial/02-reactivity/01-reactive-assignments/app-b/App.svelte +++ b/documentation/tutorial/02-reactivity/01-reactive-assignments/app-b/App.svelte @@ -13,6 +13,6 @@ diff --git a/documentation/tutorial/04-logic/05-keyed-each-blocks/app-a/Thing.svelte b/documentation/tutorial/04-logic/05-keyed-each-blocks/app-a/Thing.svelte index eb3a6f076dc7..e1b0bd43e742 100644 --- a/documentation/tutorial/04-logic/05-keyed-each-blocks/app-a/Thing.svelte +++ b/documentation/tutorial/04-logic/05-keyed-each-blocks/app-a/Thing.svelte @@ -34,7 +34,7 @@ padding: 0.2em 1em 0.3em; text-align: center; border-radius: 0.2em; - color:#333333; + color: #333333; background-color: #ffdfd3; } diff --git a/documentation/tutorial/04-logic/05-keyed-each-blocks/app-b/Thing.svelte b/documentation/tutorial/04-logic/05-keyed-each-blocks/app-b/Thing.svelte index eb3a6f076dc7..e1b0bd43e742 100644 --- a/documentation/tutorial/04-logic/05-keyed-each-blocks/app-b/Thing.svelte +++ b/documentation/tutorial/04-logic/05-keyed-each-blocks/app-b/Thing.svelte @@ -34,7 +34,7 @@ padding: 0.2em 1em 0.3em; text-align: center; border-radius: 0.2em; - color:#333333; + color: #333333; background-color: #ffdfd3; } diff --git a/documentation/tutorial/07-lifecycle/03-update/app-a/App.svelte b/documentation/tutorial/07-lifecycle/03-update/app-a/App.svelte index 1677825de4ab..235b53889f29 100644 --- a/documentation/tutorial/07-lifecycle/03-update/app-a/App.svelte +++ b/documentation/tutorial/07-lifecycle/03-update/app-a/App.svelte @@ -31,22 +31,28 @@ const reply = eliza.transform(text); - setTimeout(() => { - comments = comments.concat({ - author: 'eliza', - text: '...', - placeholder: true - }); - - setTimeout(() => { - comments = comments - .filter((comment) => !comment.placeholder) - .concat({ - author: 'eliza', - text: reply - }); - }, 500 + Math.random() * 500); - }, 200 + Math.random() * 200); + setTimeout( + () => { + comments = comments.concat({ + author: 'eliza', + text: '...', + placeholder: true + }); + + setTimeout( + () => { + comments = comments + .filter((comment) => !comment.placeholder) + .concat({ + author: 'eliza', + text: reply + }); + }, + 500 + Math.random() * 500 + ); + }, + 200 + Math.random() * 200 + ); } } diff --git a/documentation/tutorial/07-lifecycle/03-update/app-b/App.svelte b/documentation/tutorial/07-lifecycle/03-update/app-b/App.svelte index 644810a35eb5..7afb5eb42776 100644 --- a/documentation/tutorial/07-lifecycle/03-update/app-b/App.svelte +++ b/documentation/tutorial/07-lifecycle/03-update/app-b/App.svelte @@ -31,22 +31,28 @@ const reply = eliza.transform(text); - setTimeout(() => { - comments = comments.concat({ - author: 'eliza', - text: '...', - placeholder: true - }); - - setTimeout(() => { - comments = comments - .filter((comment) => !comment.placeholder) - .concat({ - author: 'eliza', - text: reply - }); - }, 500 + Math.random() * 500); - }, 200 + Math.random() * 200); + setTimeout( + () => { + comments = comments.concat({ + author: 'eliza', + text: '...', + placeholder: true + }); + + setTimeout( + () => { + comments = comments + .filter((comment) => !comment.placeholder) + .concat({ + author: 'eliza', + text: reply + }); + }, + 500 + Math.random() * 500 + ); + }, + 200 + Math.random() * 200 + ); } } diff --git a/documentation/tutorial/14-composition/05-slot-props/app-a/App.svelte b/documentation/tutorial/14-composition/05-slot-props/app-a/App.svelte index 9985963d8370..dcf0dacae517 100644 --- a/documentation/tutorial/14-composition/05-slot-props/app-a/App.svelte +++ b/documentation/tutorial/14-composition/05-slot-props/app-a/App.svelte @@ -17,7 +17,7 @@ padding: 1em; margin: 0 0 1em 0; background-color: #eee; - color: black; + color: black; } .active { diff --git a/documentation/tutorial/14-composition/05-slot-props/app-b/App.svelte b/documentation/tutorial/14-composition/05-slot-props/app-b/App.svelte index 4364e013fad0..024de304dcfc 100644 --- a/documentation/tutorial/14-composition/05-slot-props/app-b/App.svelte +++ b/documentation/tutorial/14-composition/05-slot-props/app-b/App.svelte @@ -37,7 +37,7 @@ padding: 1em; margin: 0 0 1em 0; background-color: #eee; - color: black; + color: black; } .active { diff --git a/package.json b/package.json index 4d22d9642a55..708175055c06 100644 --- a/package.json +++ b/package.json @@ -4,31 +4,42 @@ "description": "monorepo for svelte and friends", "private": true, "type": "module", + "license": "MIT", + "packageManager": "pnpm@8.6.12", + "engines": { + "pnpm": "^8.0.0" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/sveltejs/svelte.git" + }, "scripts": { - "test": "pnpm test -r --filter=./packages/*", + "start": "cross-env NODE_ENV=development concurrently \"npm run watch\" \"npm run dev --prefix playgrounds/demo\"", "build": "pnpm -r --filter=./packages/* build", "build:sites": "pnpm -r --filter=./sites/* build", + "preview-site": "npm run build --prefix sites/svelte-5-preview", "check": "cd packages/svelte && pnpm build && cd ../../ && pnpm -r check", - "lint": "cd packages/svelte && pnpm build && cd ../../ && pnpm -r lint", - "format": "pnpm -r format", + "format": "prettier --write --plugin prettier-plugin-svelte .", + "lint": "prettier --check --plugin prettier-plugin-svelte . && eslint ./", + "test": "vitest run --coverage", + "test-output": "vitest run --reporter=json --outputFile=sites/svelte-5-preview/src/routes/status/results.json", "changeset:version": "changeset version && pnpm -r generate:version && git add --all", "changeset:publish": "changeset publish" }, - "repository": { - "type": "git", - "url": "git+https://github.com/sveltejs/svelte.git" - }, - "license": "MIT", "devDependencies": { - "@changesets/cli": "^2.26.1", - "@svitejs/changesets-changelog-github-compact": "^1.1.0", - "@typescript-eslint/eslint-plugin": "^5.60.0", - "eslint": "^8.44.0", - "eslint-plugin-svelte": "^2.32.2", - "eslint-plugin-unicorn": "^47.0.0", + "@sveltejs/eslint-config": "^6.0.4", + "@types/node": "^18.18.8", + "@typescript-eslint/eslint-plugin": "^5.22.0", + "@vitest/coverage-v8": "^0.34.6", + "concurrently": "^8.2.0", + "cross-env": "^7.0.3", + "eslint": "^8.49.0", + "eslint-plugin-lube": "^0.1.7", + "jsdom": "22.0.0", "playwright": "^1.35.1", - "prettier": "^2.8.8", - "prettier-plugin-svelte": "^2.10.1" - }, - "packageManager": "pnpm@8.6.3" + "prettier": "^3.0.1", + "prettier-plugin-svelte": "^3.0.3", + "typescript": "^5.2.2", + "vitest": "^0.34.6" + } } diff --git a/packages/svelte/.eslintignore b/packages/svelte/.eslintignore deleted file mode 100644 index 67a89ff12c6d..000000000000 --- a/packages/svelte/.eslintignore +++ /dev/null @@ -1,17 +0,0 @@ -**/_actual.js -**/expected.js -_output -test/*/samples/*/output.js - -# automatically generated -internal_exports.js - -# output files -animate/*.js -esing/*.js -internal/*.js -motion/*.js -store/*.js -transition/*.js -index.js -compiler.js diff --git a/packages/svelte/.eslintrc.cjs b/packages/svelte/.eslintrc.cjs deleted file mode 100644 index e504664b8a61..000000000000 --- a/packages/svelte/.eslintrc.cjs +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - root: true, - extends: ['@sveltejs'], - rules: { - '@typescript-eslint/no-non-null-assertion': 'off' - } -}; diff --git a/packages/svelte/.gitignore b/packages/svelte/.gitignore index 2f5d67e7ded7..5395fb32cb19 100644 --- a/packages/svelte/.gitignore +++ b/packages/svelte/.gitignore @@ -1,18 +1,12 @@ -*.map -/src/compiler/compile/internal_exports.js -/compiler.cjs -/scratch/ -/test/*/samples/_ -/test/runtime/shards -_actual*.* -_output /types +/compiler.cjs action.d.ts animate.d.ts compiler.d.ts easing.d.ts index.d.ts +legacy.d.ts motion.d.ts store.d.ts transition.d.ts diff --git a/packages/svelte/.prettierignore b/packages/svelte/.prettierignore deleted file mode 100644 index fef52b1e8f7e..000000000000 --- a/packages/svelte/.prettierignore +++ /dev/null @@ -1,22 +0,0 @@ -/* -!/elements -!/scripts -!/src -src/compiler/compile/internal_exports.js -src/shared/version.js -!/test -!documentation -!sites -sites/svelte.dev/src/lib/generated/*.js -sites/svelte.dev/.svelte-kit -sites/svelte.dev/.vercel -/test/**/*.svelte -/test/**/_expected* -/test/**/_actual* -/test/**/expected* -/test/**/_output -/test/**/shards/*.test.js -/test/hydration/samples/raw-repair/_after.html -/types -!rollup.config.js -!vitest.config.js diff --git a/packages/svelte/CHANGELOG.md b/packages/svelte/CHANGELOG.md deleted file mode 100644 index 07edffc2b741..000000000000 --- a/packages/svelte/CHANGELOG.md +++ /dev/null @@ -1,2926 +0,0 @@ -# svelte - -## 4.2.3 - -### Patch Changes - -- fix: improve a11y-click-events-have-key-events message ([#9358](https://github.com/sveltejs/svelte/pull/9358)) - -- fix: more robust hydration of html tag ([#9184](https://github.com/sveltejs/svelte/pull/9184)) - -## 4.2.2 - -### Patch Changes - -- fix: support camelCase properties on custom elements ([#9328](https://github.com/sveltejs/svelte/pull/9328)) - -- fix: add missing plaintext-only value to contenteditable type ([#9242](https://github.com/sveltejs/svelte/pull/9242)) - -- chore: upgrade magic-string to 0.30.4 ([#9292](https://github.com/sveltejs/svelte/pull/9292)) - -- fix: ignore trailing comments when comparing nodes ([#9197](https://github.com/sveltejs/svelte/pull/9197)) - -## 4.2.1 - -### Patch Changes - -- fix: update style directive when style attribute is present and is updated via an object prop ([#9187](https://github.com/sveltejs/svelte/pull/9187)) - -- fix: css sourcemap generation with unicode filenames ([#9120](https://github.com/sveltejs/svelte/pull/9120)) - -- fix: do not add module declared variables as dependencies ([#9122](https://github.com/sveltejs/svelte/pull/9122)) - -- fix: handle `svelte:element` with dynamic this and spread attributes ([#9112](https://github.com/sveltejs/svelte/pull/9112)) - -- fix: silence false positive reactive component warning ([#9094](https://github.com/sveltejs/svelte/pull/9094)) - -- fix: head duplication when binding is present ([#9124](https://github.com/sveltejs/svelte/pull/9124)) - -- fix: take custom attribute name into account when reflecting property ([#9140](https://github.com/sveltejs/svelte/pull/9140)) - -- fix: add `indeterminate` to the list of HTMLAttributes ([#9180](https://github.com/sveltejs/svelte/pull/9180)) - -- fix: recognize option value on spread attribute ([#9125](https://github.com/sveltejs/svelte/pull/9125)) - -## 4.2.0 - -### Minor Changes - -- feat: move `svelteHTML` from language-tools into core to load the correct `svelte/element` types ([#9070](https://github.com/sveltejs/svelte/pull/9070)) - -## 4.1.2 - -### Patch Changes - -- fix: allow child element with slot attribute within svelte:element ([#9038](https://github.com/sveltejs/svelte/pull/9038)) - -- fix: Add data-\* to svg attributes ([#9036](https://github.com/sveltejs/svelte/pull/9036)) - -## 4.1.1 - -### Patch Changes - -- fix: `svelte:component` spread props change not picked up ([#9006](https://github.com/sveltejs/svelte/pull/9006)) - -## 4.1.0 - -### Minor Changes - -- feat: add ability to extend custom element class ([#8991](https://github.com/sveltejs/svelte/pull/8991)) - -### Patch Changes - -- fix: ensure `svelte:component` evaluates props once ([#8946](https://github.com/sveltejs/svelte/pull/8946)) - -- fix: remove `let:variable` slot bindings from select binding dependencies ([#8969](https://github.com/sveltejs/svelte/pull/8969)) - -- fix: handle destructured primitive literals ([#8871](https://github.com/sveltejs/svelte/pull/8871)) - -- perf: optimize imports that are not mutated or reassigned ([#8948](https://github.com/sveltejs/svelte/pull/8948)) - -- fix: don't add accessor twice ([#8996](https://github.com/sveltejs/svelte/pull/8996)) - -## 4.0.5 - -### Patch Changes - -- fix: generate type definition with nullable types ([#8924](https://github.com/sveltejs/svelte/pull/8924)) - -## 4.0.4 - -### Patch Changes - -- fix: claim svg tags in raw mustache tags correctly ([#8910](https://github.com/sveltejs/svelte/pull/8910)) - -- fix: repair invalid raw html content during hydration ([#8912](https://github.com/sveltejs/svelte/pull/8912)) - -## 4.0.3 - -### Patch Changes - -- fix: handle falsy srcset values ([#8901](https://github.com/sveltejs/svelte/pull/8901)) - -## 4.0.2 - -### Patch Changes - -- fix: reflect all custom element prop updates back to attribute ([#8898](https://github.com/sveltejs/svelte/pull/8898)) - -- fix: shrink custom element baseline a bit ([#8858](https://github.com/sveltejs/svelte/pull/8858)) - -- fix: use non-destructive hydration for all `@html` tags ([#8880](https://github.com/sveltejs/svelte/pull/8880)) - -- fix: align `disclose-version` exports specification ([#8874](https://github.com/sveltejs/svelte/pull/8874)) - -- fix: check srcset when hydrating to prevent needless requests ([#8868](https://github.com/sveltejs/svelte/pull/8868)) - -## 4.0.1 - -### Patch Changes - -- fix: ensure identifiers in destructuring contexts don't clash with existing ones ([#8840](https://github.com/sveltejs/svelte/pull/8840)) - -- fix: ensure `createEventDispatcher` and `ActionReturn` work with types from generic function parameters ([#8872](https://github.com/sveltejs/svelte/pull/8872)) - -- fix: apply transition to `` with local transition ([#8865](https://github.com/sveltejs/svelte/pull/8865)) - -- fix: relax a11y "no redundant role" rule for li, ul, ol ([#8867](https://github.com/sveltejs/svelte/pull/8867)) - -- fix: remove tsconfig.json from published package ([#8859](https://github.com/sveltejs/svelte/pull/8859)) - -## 4.0.0 - -### Major Changes - -- breaking: Minimum supported Node version is now Node 16 ([#8566](https://github.com/sveltejs/svelte/pull/8566)) - -- breaking: Minimum supported webpack version is now webpack 5 ([#8515](https://github.com/sveltejs/svelte/pull/8515)) - -- breaking: Bundlers must specify the `browser` condition when building a frontend bundle for the browser ([#8516](https://github.com/sveltejs/svelte/pull/8516)) - -- breaking: Minimum supported vite-plugin-svelte version is now 2.4.1. SvelteKit users can upgrade to 1.20.0 or newer to ensure a compatible version ([#8516](https://github.com/sveltejs/svelte/pull/8516)) - -- breaking: Minimum supported `rollup-plugin-svelte` version is now 7.1.5 ([198dbcf](https://github.com/sveltejs/svelte/commit/198dbcf)) - -- breaking: Minimum supported `svelte-loader` is now 3.1.8 ([198dbcf](https://github.com/sveltejs/svelte/commit/198dbcf)) - -- breaking: Minimum supported TypeScript version is now TypeScript 5 (it will likely work with lower versions, but we make no guarantees about that) ([#8488](https://github.com/sveltejs/svelte/pull/8488)) - -- breaking: Remove `svelte/register` hook, CJS runtime version and CJS compiler output ([#8613](https://github.com/sveltejs/svelte/pull/8613)) - -- breaking: Stricter types for `createEventDispatcher` (see PR for migration instructions) ([#7224](https://github.com/sveltejs/svelte/pull/7224)) - -- breaking: Stricter types for `Action` and `ActionReturn` (see PR for migration instructions) ([#7442](https://github.com/sveltejs/svelte/pull/7442)) - -- breaking: Stricter types for `onMount` - now throws a type error when returning a function asynchronously to catch potential mistakes around callback functions - (see PR for migration instructions) ([#8136](https://github.com/sveltejs/svelte/pull/8136)) - -- breaking: Overhaul and drastically improve creating custom elements with Svelte (see PR for list of changes and migration instructions) ([#8457](https://github.com/sveltejs/svelte/pull/8457)) - -- breaking: Deprecate `SvelteComponentTyped` in favor of `SvelteComponent` ([#8512](https://github.com/sveltejs/svelte/pull/8512)) - -- breaking: Make transitions local by default to prevent confusion around page navigations ([#6686](https://github.com/sveltejs/svelte/issues/6686)) - -- breaking: Error on falsy values instead of stores passed to `derived` ([#7947](https://github.com/sveltejs/svelte/pull/7947)) - -- breaking: Custom store implementers now need to pass an `update` function additionally to the `set` function ([#6750](https://github.com/sveltejs/svelte/pull/6750)) - -- breaking: Do not expose default slot bindings to named slots and vice versa ([#6049](https://github.com/sveltejs/svelte/pull/6049)) - -- breaking: Change order in which preprocessors are applied ([#8618](https://github.com/sveltejs/svelte/pull/8618)) - -- breaking: The runtime now makes use of `classList.toggle(name, boolean)` which does not work in very old browsers ([#8629](https://github.com/sveltejs/svelte/pull/8629)) - -- breaking: apply `inert` to outroing elements ([#8628](https://github.com/sveltejs/svelte/pull/8628)) - -- breaking: use `CustomEvent` constructor instead of deprecated `createEvent` method ([#8775](https://github.com/sveltejs/svelte/pull/8775)) - -### Minor Changes - -- Add a way to modify attributes for script/style preprocessors ([#8618](https://github.com/sveltejs/svelte/pull/8618)) - -- Improve hydration speed by adding `data-svelte-h` attribute to detect unchanged HTML elements ([#7426](https://github.com/sveltejs/svelte/pull/7426)) - -- Add `a11y no-noninteractive-element-interactions` rule ([#8391](https://github.com/sveltejs/svelte/pull/8391)) - -- Add `a11y-no-static-element-interactions`rule ([#8251](https://github.com/sveltejs/svelte/pull/8251)) - -- Allow `#each` to iterate over iterables like `Set`, `Map` etc ([#7425](https://github.com/sveltejs/svelte/issues/7425)) - -- Improve duplicate key error for keyed `each` blocks ([#8411](https://github.com/sveltejs/svelte/pull/8411)) - -- Warn about `:` in attributes and props to prevent ambiguity with Svelte directives ([#6823](https://github.com/sveltejs/svelte/issues/6823)) - -- feat: add version info to `window`. You can opt out by setting `discloseVersion` to `false` in the compiler options ([#8761](https://github.com/sveltejs/svelte/pull/8761)) - -- feat: smaller minified output for destructor chunks ([#8763](https://github.com/sveltejs/svelte/pull/8763)) - -### Patch Changes - -- Bind `null` option and input values consistently ([#8312](https://github.com/sveltejs/svelte/issues/8312)) - -- Allow `$store` to be used with changing values including nullish values ([#7555](https://github.com/sveltejs/svelte/issues/7555)) - -- Initialize stylesheet with `/* empty */` to enable setting CSP directive that also works in Safari ([#7800](https://github.com/sveltejs/svelte/pull/7800)) - -- Treat slots as if they don't exist when using CSS adjacent and general sibling combinators ([#8284](https://github.com/sveltejs/svelte/issues/8284)) - -- Fix transitions so that they don't require a `style-src 'unsafe-inline'` Content Security Policy (CSP) ([#6662](https://github.com/sveltejs/svelte/issues/6662)). - -- Explicitly disallow `var` declarations extending the reactive statement scope ([#6800](https://github.com/sveltejs/svelte/pull/6800)) - -- Improve error message when trying to use `animate:` directives on inline components ([#8641](https://github.com/sveltejs/svelte/issues/8641)) - -- fix: export ComponentType from `svelte` entrypoint ([#8578](https://github.com/sveltejs/svelte/pull/8578)) - -- fix: never use html optimization for mustache tags in hydration mode ([#8744](https://github.com/sveltejs/svelte/pull/8744)) - -- fix: derived store types ([#8578](https://github.com/sveltejs/svelte/pull/8578)) - -- Generate type declarations with dts-buddy ([#8578](https://github.com/sveltejs/svelte/pull/8578)) - -- fix: ensure types are loaded with all TS settings ([#8721](https://github.com/sveltejs/svelte/pull/8721)) - -- fix: account for preprocessor source maps when calculating meta info ([#8778](https://github.com/sveltejs/svelte/pull/8778)) - -- chore: deindent cjs output for compiler ([#8785](https://github.com/sveltejs/svelte/pull/8785)) - -- warn on boolean compilerOptions.css ([#8710](https://github.com/sveltejs/svelte/pull/8710)) - -- fix: export correct SvelteComponent type ([#8721](https://github.com/sveltejs/svelte/pull/8721)) - -## 4.0.0-next.3 - -### Patch Changes - -- feat: smaller minified output for destructor chunks ([#8763](https://github.com/sveltejs/svelte/pull/8763)) - -- breaking: use `CustomEvent` constructor instead of deprecated `createEvent` method ([#8775](https://github.com/sveltejs/svelte/pull/8775)) - -- fix: account for preprocessor source maps when calculating meta info ([#8778](https://github.com/sveltejs/svelte/pull/8778)) - -- chore: deindent cjs output for compiler ([#8785](https://github.com/sveltejs/svelte/pull/8785)) - -- feat: add version info to `window`. You can opt out by setting `discloseVersion` to `false` in the compiler options ([#8761](https://github.com/sveltejs/svelte/pull/8761)) - -## 4.0.0-next.2 - -### Patch Changes - -- fix: never use html optimization for mustache tags in hydration mode ([#8744](https://github.com/sveltejs/svelte/pull/8744)) - -- fix: ensure types are loaded with all TS settings ([#8721](https://github.com/sveltejs/svelte/pull/8721)) - -- warn on boolean compilerOptions.css ([#8710](https://github.com/sveltejs/svelte/pull/8710)) - -- fix: export correct SvelteComponent type ([#8721](https://github.com/sveltejs/svelte/pull/8721)) - -## 4.0.0-next.1 - -### Patch Changes - -- fix: export ComponentType from `svelte` entrypoint ([#8694](https://github.com/sveltejs/svelte/pull/8694)) - -- fix: derived store types ([#8700](https://github.com/sveltejs/svelte/pull/8700)) - -- Generate type declarations with dts-buddy ([#8702](https://github.com/sveltejs/svelte/pull/8702)) - -## 4.0.0-next.0 - -### Major Changes - -- breaking: Minimum supported Node version is now Node 16 ([#8566](https://github.com/sveltejs/svelte/pull/8566)) -- breaking: Minimum supported webpack version is now webpack 5 ([#8515](https://github.com/sveltejs/svelte/pull/8515)) -- breaking: Bundlers must specify the `browser` condition when building a frontend bundle for the browser ([#8516](https://github.com/sveltejs/svelte/pull/8516)) -- breaking: Minimum supported vite-plugin-svelte version is now 2.4.1. SvelteKit users can upgrade to 1.20.0 or newer to ensure a compatible version ([#8516](https://github.com/sveltejs/svelte/pull/8516)) -- breaking: Minimum supported `rollup-plugin-svelte` version is now 7.1.5 ([198dbcf](https://github.com/sveltejs/svelte/commit/198dbcf)) -- breaking: Minimum supported `svelte-loader` is now 3.1.8 ([198dbcf](https://github.com/sveltejs/svelte/commit/198dbcf)) -- breaking: Minimum supported TypeScript version is now TypeScript 5 (it will likely work with lower versions, but we make no guarantees about that) ([#8488](https://github.com/sveltejs/svelte/pull/8488)) -- breaking: Remove `svelte/register` hook, CJS runtime version and CJS compiler output ([#8613](https://github.com/sveltejs/svelte/pull/8613)) -- breaking: Stricter types for `createEventDispatcher` (see PR for migration instructions) ([#7224](https://github.com/sveltejs/svelte/pull/7224)) -- breaking: Stricter types for `Action` and `ActionReturn` (see PR for migration instructions) ([#7442](https://github.com/sveltejs/svelte/pull/7442)) -- breaking: Stricter types for `onMount` - now throws a type error when returning a function asynchronously to catch potential mistakes around callback functions (see PR for migration instructions) ([#8136](https://github.com/sveltejs/svelte/pull/8136)) -- breaking: Overhaul and drastically improve creating custom elements with Svelte (see PR for list of changes and migration instructions) ([#8457](https://github.com/sveltejs/svelte/pull/8457)) -- breaking: Deprecate `SvelteComponentTyped` in favor of `SvelteComponent` ([#8512](https://github.com/sveltejs/svelte/pull/8512)) -- breaking: Make transitions local by default to prevent confusion around page navigations ([#6686](https://github.com/sveltejs/svelte/issues/6686)) -- breaking: Error on falsy values instead of stores passed to `derived` ([#7947](https://github.com/sveltejs/svelte/pull/7947)) -- breaking: Custom store implementers now need to pass an `update` function additionally to the `set` function ([#6750](https://github.com/sveltejs/svelte/pull/6750)) -- breaking: Do not expose default slot bindings to named slots and vice versa ([#6049](https://github.com/sveltejs/svelte/pull/6049)) -- breaking: Change order in which preprocessors are applied ([#8618](https://github.com/sveltejs/svelte/pull/8618)) -- breaking: The runtime now makes use of `classList.toggle(name, boolean)` which does not work in very old browsers ([#8629](https://github.com/sveltejs/svelte/pull/8629)) -- breaking: apply `inert` to outroing elements ([#8627](https://github.com/sveltejs/svelte/pull/8627)) - -### Minor Changes - -- Add a way to modify attributes for script/style preprocessors ([#8618](https://github.com/sveltejs/svelte/pull/8618)) -- Improve hydration speed by adding `data-svelte-h` attribute to detect unchanged HTML elements ([#7426](https://github.com/sveltejs/svelte/pull/7426)) -- Add `a11y no-noninteractive-element-interactions` rule ([#8391](https://github.com/sveltejs/svelte/pull/8391)) -- Add `a11y-no-static-element-interactions`rule ([#8251](https://github.com/sveltejs/svelte/pull/8251)) -- Allow `#each` to iterate over iterables like `Set`, `Map` etc ([#7425](https://github.com/sveltejs/svelte/issues/7425)) -- Improve duplicate key error for keyed `each` blocks ([#8411](https://github.com/sveltejs/svelte/pull/8411)) -- Warn about `:` in attributes and props to prevent ambiguity with Svelte directives ([#6823](https://github.com/sveltejs/svelte/issues/6823)) - -### Patch Changes - -- Bind `null` option and input values consistently ([#8312](https://github.com/sveltejs/svelte/issues/8312)) -- Allow `$store` to be used with changing values including nullish values ([#7555](https://github.com/sveltejs/svelte/issues/7555)) -- Initialize stylesheet with `/* empty */` to enable setting CSP directive that also works in Safari ([#7800](https://github.com/sveltejs/svelte/pull/7800)) -- Treat slots as if they don't exist when using CSS adjacent and general sibling combinators ([#8284](https://github.com/sveltejs/svelte/issues/8284)) -- Fix transitions so that they don't require a `style-src 'unsafe-inline'` Content Security Policy (CSP) ([#6662](https://github.com/sveltejs/svelte/issues/6662)). -- Explicitly disallow `var` declarations extending the reactive statement scope ([#6800](https://github.com/sveltejs/svelte/pull/6800)) -- Improve error message when trying to use `animate:` directives on inline components ([#8641](https://github.com/sveltejs/svelte/issues/8641)) - -## 3.59.2 - -- Fix escaping `', - test({ assert, target }) { - const textarea = target.querySelector('textarea'); - assert.ok(textarea.readOnly === false); - } -}; diff --git a/packages/svelte/test/runtime/samples/attribute-boolean-hidden/_config.js b/packages/svelte/test/runtime/samples/attribute-boolean-hidden/_config.js deleted file mode 100644 index 5a6d28c08a5c..000000000000 --- a/packages/svelte/test/runtime/samples/attribute-boolean-hidden/_config.js +++ /dev/null @@ -1,10 +0,0 @@ -export default { - get props() { - return { hidden: true }; - }, - html: '