From 5b4b560b3f5be3a3b3bad97008efd538bbc93185 Mon Sep 17 00:00:00 2001 From: Ralf Kistner Date: Thu, 4 Apr 2024 14:39:45 +0200 Subject: [PATCH] Revert adding diagnostics-app. --- demos/diagnostics-app/.gitignore | 47 ----- demos/diagnostics-app/CHANGELOG.md | 11 -- demos/diagnostics-app/README.md | 1 - demos/diagnostics-app/package.json | 37 ---- demos/diagnostics-app/public/favicon.ico | Bin 1208 -> 0 bytes .../public/icons/icon-192x192.png | Bin 14625 -> 0 bytes .../public/icons/icon-256x256.png | Bin 23587 -> 0 bytes .../public/icons/icon-384x384.png | Bin 34785 -> 0 bytes .../public/icons/icon-512x512.png | Bin 41753 -> 0 bytes demos/diagnostics-app/public/icons/icon.png | Bin 33017 -> 0 bytes .../diagnostics-app/public/powersync-logo.svg | 1 - demos/diagnostics-app/src/app/globals.css | 12 -- demos/diagnostics-app/src/app/index.tsx | 18 -- demos/diagnostics-app/src/app/login.tsx | 19 -- demos/diagnostics-app/src/app/page.tsx | 46 ----- demos/diagnostics-app/src/app/router.tsx | 37 ---- .../diagnostics-app/src/app/views/layout.tsx | 132 -------------- .../src/app/views/sql-console/page.tsx | 108 ----------- .../components/navigation/NavigationPage.tsx | 24 --- .../navigation/NavigationPanelContext.tsx | 21 --- .../components/providers/SystemProvider.tsx | 36 ---- .../providers/ThemeProviderContainer.tsx | 20 --- .../components/widgets/LoginDetailsWidget.tsx | 167 ----------------- demos/diagnostics-app/src/index.html | 11 -- .../src/library/powersync/AppSchema.ts | 18 -- .../src/library/powersync/TokenConnector.ts | 169 ------------------ demos/diagnostics-app/tsconfig.json | 26 --- demos/diagnostics-app/vite.config.mts | 74 -------- pnpm-lock.yaml | 92 +--------- 29 files changed, 4 insertions(+), 1123 deletions(-) delete mode 100644 demos/diagnostics-app/.gitignore delete mode 100644 demos/diagnostics-app/CHANGELOG.md delete mode 100644 demos/diagnostics-app/README.md delete mode 100644 demos/diagnostics-app/package.json delete mode 100644 demos/diagnostics-app/public/favicon.ico delete mode 100644 demos/diagnostics-app/public/icons/icon-192x192.png delete mode 100644 demos/diagnostics-app/public/icons/icon-256x256.png delete mode 100644 demos/diagnostics-app/public/icons/icon-384x384.png delete mode 100644 demos/diagnostics-app/public/icons/icon-512x512.png delete mode 100644 demos/diagnostics-app/public/icons/icon.png delete mode 100644 demos/diagnostics-app/public/powersync-logo.svg delete mode 100644 demos/diagnostics-app/src/app/globals.css delete mode 100644 demos/diagnostics-app/src/app/index.tsx delete mode 100644 demos/diagnostics-app/src/app/login.tsx delete mode 100644 demos/diagnostics-app/src/app/page.tsx delete mode 100644 demos/diagnostics-app/src/app/router.tsx delete mode 100644 demos/diagnostics-app/src/app/views/layout.tsx delete mode 100644 demos/diagnostics-app/src/app/views/sql-console/page.tsx delete mode 100644 demos/diagnostics-app/src/components/navigation/NavigationPage.tsx delete mode 100644 demos/diagnostics-app/src/components/navigation/NavigationPanelContext.tsx delete mode 100644 demos/diagnostics-app/src/components/providers/SystemProvider.tsx delete mode 100644 demos/diagnostics-app/src/components/providers/ThemeProviderContainer.tsx delete mode 100644 demos/diagnostics-app/src/components/widgets/LoginDetailsWidget.tsx delete mode 100644 demos/diagnostics-app/src/index.html delete mode 100644 demos/diagnostics-app/src/library/powersync/AppSchema.ts delete mode 100644 demos/diagnostics-app/src/library/powersync/TokenConnector.ts delete mode 100644 demos/diagnostics-app/tsconfig.json delete mode 100644 demos/diagnostics-app/vite.config.mts diff --git a/demos/diagnostics-app/.gitignore b/demos/diagnostics-app/.gitignore deleted file mode 100644 index 0cc2f139..00000000 --- a/demos/diagnostics-app/.gitignore +++ /dev/null @@ -1,47 +0,0 @@ -# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. - -# dependencies -/node_modules -/.pnp -.pnp.js -.yarn/install-state.gz - -# testing -/coverage - -# next.js -/.next/ -/out/ - -# production -/build -# misc -.DS_Store -*.pem - -# debug -npm-debug.log* -yarn-debug.log* -yarn-error.log* - -# local env files -.env*.local - -# vercel -.vercel - -# typescript -*.tsbuildinfo -next-env.d.ts - -# ide -.idea -.fleet -.vscode - -# PWA -**/public/workbox-*.js -**/public/sw.js -**/public/swe-worker-* -**/public/worker-*.js -**/public/fallback-*.js diff --git a/demos/diagnostics-app/CHANGELOG.md b/demos/diagnostics-app/CHANGELOG.md deleted file mode 100644 index 16c77018..00000000 --- a/demos/diagnostics-app/CHANGELOG.md +++ /dev/null @@ -1,11 +0,0 @@ -# diagnostics-app - -## 0.1.1 - -### Patch Changes - -- Updated dependencies [9bf5a76] - - @journeyapps/powersync-react@1.1.0 - - @journeyapps/powersync-sdk-web@0.3.3 - -## 0.0.1 diff --git a/demos/diagnostics-app/README.md b/demos/diagnostics-app/README.md deleted file mode 100644 index 7013485d..00000000 --- a/demos/diagnostics-app/README.md +++ /dev/null @@ -1 +0,0 @@ -# Diagnostics app diff --git a/demos/diagnostics-app/package.json b/demos/diagnostics-app/package.json deleted file mode 100644 index 0ff986ce..00000000 --- a/demos/diagnostics-app/package.json +++ /dev/null @@ -1,37 +0,0 @@ -{ - "name": "@journeyapps/powersync-diagnostics-app", - "version": "0.1.1", - "private": true, - "scripts": { - "dev": "vite", - "build": "tsc -b && vite build", - "preview": "vite preview", - "start": "pnpm build && pnpm preview" - }, - "dependencies": { - "@journeyapps/powersync-react": "workspace:*", - "@journeyapps/powersync-sdk-web": "workspace:*", - "@journeyapps/wa-sqlite": "~0.1.1", - "@mui/material": "^5.15.12", - "@mui/x-data-grid": "^6.19.6", - "js-logger": "^1.6.1", - "lodash": "^4.17.21", - "react": "^18.2.0", - "react-dom": "^18.2.0", - "react-router-dom": "^6.22.3" - }, - "devDependencies": { - "@types/lodash": "^4.14.202", - "@types/node": "^20.11.25", - "@types/react": "^18.2.64", - "@types/react-dom": "^18.2.21", - "@vitejs/plugin-react": "^4.2.1", - "autoprefixer": "^10.4.18", - "babel-loader": "^9.1.3", - "typescript": "^5.4.2", - "vite": "^5.1.5", - "vite-plugin-pwa": "^0.19.2", - "vite-plugin-top-level-await": "^1.4.1", - "vite-plugin-wasm": "^3.3.0" - } -} diff --git a/demos/diagnostics-app/public/favicon.ico b/demos/diagnostics-app/public/favicon.ico deleted file mode 100644 index 96be8f92343e0d65781e02fa5bc819c50a5c9956..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1208 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

ANhCw4j`@anywl}1+ZZ$d}$k0 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

P6XH5>ho5!JSW` zfByYy_~RjvNzeKKqtxvch}u8jm2^SsXrC0$k4$N1+VJmVCgvo$6y68-MW}5xTA5bsBp(spB}LzxT@fq zM*RnH$1DdhZD)dmT~@lDlbJT+OsoK=PGk&sLROOp>`s&<7{g8s85j#H&M9o*j>&r@ zD~u)~bq;rQPV@loSVABH-0?La7d`aDjM7H1CXK+3;ZD?ZN#Tz4To0nY=?Y+D_zrNs z#PB0^QSkfBOdEbg-A)j$zgxN~-`7d7u^7(5kT_>av;e9Y_31G%d>vG>#raZaco6Yj zB*B`f?0iU^jt14eSCB|sRg5(_KT?9MOK2ZN{ZGLGbcSu%pC?M!8^E1=xwqzhL4%r%IC8R?#Q-Wr-h^(d))cHd#!2se+*|X$p+U7q?QnQR zAcN$xw`Qi`j>)R=0PftoIY1`#J*oe8L2KSK!y__a_z&QYYZ}x+e;$cJIx&23(ue=S z)RYIW*xfKZ!d0^=@%wCWzUv`z4{-k7l>=l1=Z86$3!Lu~?qn*#l{mu#!~c|X0M`*; z$|SjHFX)oelsb;1i2oqLy^C@HCu2dShA)ZSCNgM;5kK@gEF%5`X6IgGflM%a7|wSw z78K233&#nrQQnY&1owgAf0`_iF8Vqc91&`?Cf$=G8om)k$~4@0!0g-|ERZd;69ji$ zj0JT)C(D)LKiH0VpFyB7FbF%L9{`vR+ z3Sa;`B=dJ&!5v*fs%txkr#te-M3WQgJ>okt?5BU5CIe-Y_V5zgu z^thl;d3Z#ifj=<(dx!&h= diff --git a/demos/diagnostics-app/public/icons/icon-256x256.png b/demos/diagnostics-app/public/icons/icon-256x256.png deleted file mode 100644 index 4798983e27e011f16f8b34d21f15d259f13a7312..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 23587 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

g%8qls$p5HR)$|G$K7 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%0AR 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 B)BOMd diff --git a/demos/diagnostics-app/public/icons/icon.png b/demos/diagnostics-app/public/icons/icon.png deleted file mode 100644 index eab59883582e4fce4fcebac03b0771986b6e2dd9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 33017 zcmeEt^;gr;|Nl0+LApz1fP^&C-HoC&0tylm(zQu9!W1M&Bdv5#hQyE%kkJeQ>F)mS z{du3y|M30cbGDt=&g*s0y|4T1c-%N615GkwCSm{pK&GvwW&!|!uzx`SLVWDyBw+Fi z002h0sHz%itEzH%dcS+^;^qVZfIo(Ql-EKkvHY~PYz#AF-QoC4S^V@RC9T&aKTUy3 zIjx1SNb8BJ^LT1;i!^Z!9)TiVCArW@+tU`}4;X^j%7pa71lUD)@fcTM#7bC4`*}++ z!9}HdX_lY^q~fK9C>!M)_H&hj7c-Ld}+|uUn(_!V_ZxHoZN{*sLG8%hMol1@P zxQDy_ayK~1whuG(YRE*qe-+`oRlh*A<|+yt0?f(~~f9l`nXBWnp)?^ESA2afyO|%R8Q8vU35;7yMVcnreXi|9s$` zW$D;EM4nnNeXuM<|K|r(0cQtbZxX!M)>kK3Cm|=|eo`lw;06G20JPPV%>rh3a{b|^ zQK$Wiy!$|dhUf0#f7<;2G|_qO11Y>Ft1$o;=~SK%JMyr@7kg1fBTtpod+|O%f+2Hl z1m(VF#v0yX;SUFx{nr;e9_EZHBDh-z+gn@LgC!ZF?f>ule-!xtmjZa|J2VVk9bfg0 z3}~m#V9a9esPNrl?E7W{L{Oj9vp{D!_;KCy9-VN8Ia$1d- zUv-cT#Hz<5K%&Wtpu0-+bA*zyU#

*Ol8h>X50H09dUWV>OCQAZw7qPm~NPq6c6o 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

3ld^-iq&PXHcu z9l>;$W=p{GDx;&@h_G(4X%!zx70&6%<{p|COxUp{ac~*DcafwngOgb{c3w>4>mW9W zcXCzvK0Ti1_90RZPBzxkx6X|?1N#%{?fMn(O{}H<%{f%qk-7ApwrZ8(wb6(>vb8mw z8**M@=Zh^G;?SBc7&(>%;S2m?ZLH4=`Z+>GB6jbj)Me9MyL`^a_V|l)b@t)8Y%?cm zcmeTT`Vt<-X+ZqG_4KsMu0#!?qNQ2H;^_W8+kbVXv!9O7la8gEo*_~6x|pP4n2-KN zs8ZVd>hVXpl?`MlH#?(|x|XOmQv?-Q%=DAqURaCAv#M@%-TLab{pjFY1xuuN^Xe9k zT<5u?CV(JCAu_w6nc6dkpCV~io8*D$sMx6O+*s=$N*IYT^42E08?p}mbfQi(BrdCx z_)U;@y!U%4`Ws~IXE420M_~xIuwImXi`PF=sAs(P(R2iTEApyjj*8#fV)KqTC0;bD zij#<G%f=j*jF{hxaZO>1p?gPhUU&JOvZNaE1bl4n&P*z&F)iRtsp$$gpM@fh*Gv%~ z5s3nR<J&dUPrfuFleyvs0`Ksbe3$H^*;VK-;$lR!(onsysG7XI$cVQ!+l*7s_6=-p zYU6!%ya*|QVdip=aPdP!GS?$7<=*D`m#w#S#{8*$#)+~=ESBYz`E!xdt<|^J)ayqW zx2}RenPmx%j~R+$&(f_h6q;ppxb2GF^BQYZjGc`m-`lCj$7l}2Xn&r`Qdn~cKpAh( z$7Pf(VO@yVY1Y41&e|`-6j|h_0P9Z>fxhI7mBGv}_SUiS0SQa!&*Z0{Y0y?@pKpZe zR%(G^rF(t9d^wV{e+c}+9=jO`tPKlOL@ohnG@0#K-$|mxW%+(2@c&jBfZX1k;;KS6 zlah^bQnY|~A3ylwjeH~(jvqgrJl65g4^ka(E%8W2jj;yUz>)kb>?PouzBivhe)Ma3 zdRf=OEQR5_VK2O<2uN)>6e(;t&|Km})vR~FCAJEF(2=jn>l=m6KG+U><Plwb7JONR z0Bei+V{wu}C&`CGONa3~7|ho;I*O-6A53<qO;pw{R|wBD-cxa8Em<tVCw8{}_3Ikz z>mX$A3yy9mACJ~5MB5_QE_vV>&&~JKGz{E~uk)vrQ{-=Vj^_A3r!K#nFVVT@J9v!x z<TzU7s%x2A*b=m~;wGi(YUiOI{X2uzq(c{uFP!=_A}>P-L_nfP?d=dHpV$;RaI8su z?z)qHhC8jltUT;Fy1{y~&+Ru-)UJW^?=nIU>2vjE=$mfeOI`la{U>te4G92kyOC~N z!;rXzmIxXZjgezlh@2wl(amb3Fh>r?=#Jl$opye%G~y1a*CA_N(eMQk3O)z4w+3~r z+R|jm_O*enjsKm=y%65<O|3DnT7QipIf_4+n_V{V`FH8yLiVt5nPN*`fELtWC^zBE z<Dl`5*}X1(zs-_RflOG3OqnlDDX)8sDot$;u)TN^@wjNvztjC|Dyr9vaPv*?A6XO3 zdZ#Q=a_lweZOnsC0z#l!yf-N--F?o*ch2uB{PmtI<K1wZ+2%tSFSN*qEvV(QWJb0D z0``LroKBOs6PWtkcdk}?0)%6eN{eIrtD1F$IOAua`whu&CI;_M9xYGmPm`QYVKrR8 zSnG3b<UFqB`iT3@FzbE_sGb8&_icd($ovpoj^3PbB9Zl_KO};`qm*b}SlSstWtvvK z&o*eFDd%ivo?1#js5m9Q0mm5EF2zQsNJgK!4%^6L*@)h?D#<mXgInQ>pNh}=%6;Ov zbomh6!lmP5%;s$ML%x%IELTXeTslUMEX25rppQgcvlV}h-u#fdNkT*?Pf=@HuAHhm zbVty*LX7cs%FOc=mS*?Z&1?m15}sF`vFx8sq683bF(VDPat|fjY<a{CBy<?qVmPha z^(=W|_1DZrSeb<L56@%my4G9VlSNirseBsc>B-)$B`+UX9Al>Mzn8Ore~F>18j)C2 zXuQtv4i(jf9U@*A^h^eh44unpq|f`c<2f>nyM`|mgNuN|31{Ii6{uRYFh+wKhR@rW zym%?3wJh^9&RKe5AKXsUDv3c|D(0W~F)sxE@>}eAtkaSY7EB5V80GOE71C<yo^%CR zk@P&MAc3p70$y28WWUpdBv4T>@o~7l{Q&tIH@nWuqay}$0XOIRYFyT`cAZdu5_;B_ z4fc;c5;>so-gSreOfm`0vo}0l{Hf~^KhBFcdb(&ky44x(rQv$j$@L|yb|8ed0#dIY zm;hf6%RgwU^&&UI@N&w%&3BN(Hvs<A&f@%Ii8npM$TMFX_=^~<9wWHv84e_vqkT;e zu_SrXWeM~$5P(@|eFeA%ZHFF$7`;-2a5X<Zcw|BuQV*ZFc72G2rSH_wZ5{Zz5BcnR zuJhlnpc)yHMM<RNAlNf~MM;`Y!KBD{kX<7WjlhP{upq7O&;&8Tv3uH=zxSWDsz%}% zUnLy*rY40$dv1H1bkK9sxUy&Xpir|+F%MUF#n-MGSCH6`@k)Y8OuwW*TkvzhmU$t| z!gbu)H$s38GLuD1U}Gd2cmTD5|1TCmHN-V20;}c>Ufs_TnYfx`gfW`8$bHDrvoCWs zNqG}{iAM|q^NpV*H%&^`<3$Nd=nrIh-^q`awn3s5b+DeqILC1thg>C48prf%uX2ud z`*QENB4py+m+?cL;>_2$AqSW3gj$5K1(|Xv@Ea@2mloyl$8t+~rMb$u<!hh@KS+%S ztX!*Dw|suNAjfLf&4|Op2;{K3U}JZPw!BwV&}E9h`4I1}{|-?n3zP*BGVpQOVR^2e zNVQGUq~5AAE;n;0E?<ZIYLRByC-imPEaQ1l>gxdFwYPSbWlJ(z$qJ|@+1Poe4c|mx zH5r_>)~;*krLOA@e02d_n{<Du4=%ap7aYf<x7){}Bay-fL#~!fTMp&`0xmuCmXaWW zg}!Zh4b(9Kl>*Q6dLE*Gm)6Kz9%~#U#NB;RbR~_Jrd3zbCD|IVi-w0)w-|C`Lf!i% z3qlOLh4e$2v52y{93O9&D%QOzixS;W9{C?E2SsqEGj{f=e_@_RUK1@%t+!4nL_4^p zk<{DH_|{T>+Ki$Dz8gR-z8k3jx?@s&Y@~2RGN?&(PVG5vqgM~gN$zYyFcx-*gpusV zjf=;Zb8J;X9;o*GzxKZREy^xxcY;m{=@LOuq@;#ML6BBJ0jW_0q)VD9K|)HA5Ew#H zkw&^_00F5%B_#)mL8-wZh8oVi-*^6rb6w~8^@;sld+oK?z3vq|?u0Zznp&^Ddd96c z906Yp2q|^E%TKQ_X!`>luW0Vpe4$w{<DBL%K?<V|LNPNha|xLv>m+-kV~23sw-GLT zsG^G%NjI2QZHkQb<4#<kQge#?qCkYifZb-=bh(4k4^y{}8V<!<?!|W8qrxtyg(V8Z zn}a*}=@5fnL+qU*--;#54M#fe`nax9A{Vp_db2{8c7_&zu{-NkFa=gJkjaqQ92NQ{ zc0RD<(s|IiL5p+7*<C}X=pBcOY$Gr6@lL>L&)Fp_uDqgTgPf4<fykK_DIRKuYoOAK zR1s@{++ftZo-+ZRIZ^8Z-EWE%83lt!=a)#USzV+j5m)E;qGU6AvoTjYXxKp8hW1N5 z>1mRqmftwqI8wL7uL<-DP-#VT>0kK(xP^bg5=9`*_>@I*mM$S)@t?im#(mzqJR3-F zbdo{$w)0RJ^5n{pt&Gy1q556C^SuX#3~lsj+%#JZ464^4!|KP(gO%c1(F=*KhY?a2 zJsuVvD;|A3R&3#agn&v99>QHcv{M?hInpkVrtK&`V3>QYbb1z#%a+Vg&|b_?`*{_2 z0rC)kTkovhxu2Tr6hZl>LIX6Q<q*H<cQ3J4@${8r!J>Eb-K$0bt&Z>nM_y$1UFqJW zYr}l=3d>P}7g$un*S&t6RHds~-4et<&B(qz@bxN$bAy2)JNL7J`Yk-;K*0Wy)Ve!? zr}~0jI?pllW<Cj$tvUZ0mJ%8}sYfl4m@j7MN73qK-fDYCT9qA))nRtKJ=*jn&K)A5 z_F^{}IHJTW8p8i7%uYS+cUMs!Q?Y^8V4|Kc%z)vL_j{J4F5`vYi%fTN>VZ6ubDif& z*`?<?+XdHUwmTk*j4`p%v?lzscYJ=i3I;r?*O`PEZGZ?#|AKDk;)K&=a1A|NB3!~J z&Fyb2#te%Zq(|S#%&|D4=}}GdwES=`g*lAZ;KC*SwV^lqgdwKESI#@%EVUQ2%4rV_ za!#or;q9$|7LR4U?&u_cPKe(8{QiB$2Jn63eyMje2I`FHqCt9-7s@N;Mc>_h|48!E zEhD{eDjnqoZ~j3n56!a*cUlauyx)`^G(d?KGf@``^EdB0v26~f!r=O=gLWM5P623< z;2(j#_M!?DW8<`(t4g$NKsk=;mwO78s3U61E)2fNoIJrD#hxQS#Zn-Tsi6z_HT!SX zZRd^@UIG6)*RwwQ)<4dVSotCki|>#0FLj?qTx8EG>K6?zz~G$`kE{UX_#N2n@%Zd= zh)U$gC#Nx^-D#?{HMr&H(YxE77CM*>jTV|!1(c`spPJ`AO_z~;4x+^$uh6XegU%l` z6S`fK!nTO(QcwQ8m0Gz5ML?6K&y#9*<tHbxn~SzgS`0!OPdcB89;2fN1ircLd`r6M zNih!9SoMC_eFkhN=*8)N3P8Mn{~X#uy6t(Yq_d;87JwK?1L3G%B(@?->hj$i70JrX zy2STItxL1ggte-T)!QSfMcVf=ru08vJ#7z5ON@EvAUYtUaxXEc0{eznxY$)*qcMDn zEe&p^GsU9)Ewu`EK~gx>I^WwH+N_0PYG*<N&{|JA+q(rU4iDXKr-iM;@fYqzGF(4U z#zn-gz*rF?1ra*0UrKYam==6qqQZ5Tze7l-iF21xh75+QnD;F;4y10gF=i=H)_g>a zmh>R%{hr>DM&rnHh+trXn~NS5oX~-sBzm4FrA?;tHp$^`tGX8Obo?`pxVXfPLZn}G z&yhGj+K4E6`LfoasEvu9El1uuKEty>_nP)X=8g^Do97*OtLWh=-cowswRE}f6)bK* z+#Zw9vS?@rNNs$SpCU9XlZ~1F1&ie&RZnODly?Eu%0}xoCuRNa?>iPX{nAD6C>la7 zQG%$Cw1NO`j}KUf00yGRy(-S|R%>tV&G(bNEurMWk|#%0La6>F_X*>k!O_p&r~R3P zb7MT+MXLMp_Z?}4icXzwBSWJsbsnt0eI9eK;AWk7{G}s%AQkh9-g%}RV9y8FeZ9Q2 zpY6no#BcqXYE{slIqt4tmzz)rzzs(Rn6DJ^nkB1nhRumZo|ykryogTvc`Kvj!Haj7 zQ+HSwMn!GbS1v)k&<?=dVyy@7%vwHVZd+AMeNQM^DY-ZL?J3mdUKQ7>lu`9?vC7?c z2e2*EFion^4HulChNX_6GG<Pom6H>+WBO_Kq*gEUGAb10-#<CYOSMgo5pd(D5A^K$ zDbiFoQb&|FhlVc{hY9DV;e^USOP%ackt?o$84{Mkm@~Q`v;MEub66^AaE1|@cVfj& zi~u5Wn$?LhI$O_L5Vq8gD_XNHCh?(urFq;NZpvO+(e<9L8q`W>_ljJ?g?g3ml0npx z_?+}l`>&2}jG9F%%blfFtW!{PsX+h*0QpMU;pVzqUnYS)*asw}>GR<|&Gs0z{P=SK zrZCv9mIJ_gVLNU8Pg@9E#$O?%9@jPl)NI#fOeTlCa4y_5Q0q|gZ3{%7a05WDrn&yu ztm3km*$2Sk`(_QbFDXbJhG0!w&$jLRy}wkaw-|rCu3J^lSVoTBTVT@YY{GdQRO<QH zMo={AF?Sy>M<r$Yoxk>PJu{+9sx6dm0uB{Nj^4`x_Ugz$S?3uqOcTrFmkyswUjHC0 zv#9}<FWx3>(MgM4|5IayWen?#fERXmOLT@?`(^qgFTLLc&n4Cl`!b2G*nhvn;>1N` zm$B?9jOmb``j{!zRzH5$_TVC6X6beC$`r@w;QZA`x<%}R2u62uHsjot8s6@2mq;rP zO0&CT`}z^Q)OHdQgIcA(MmWAlrMmvOYvl`j*C>`%w#)vAjKZ46GCA?(kTvjPODC<) z?Qd*_!p#D%-UcL0Px3+`skUTI#!qusB8RsAZ4WB@(x%?BCpzTiF3!bC`@-O_LBt&c zY!5NU;eLqZAm#nAM9;p{!*x|{Hd)-4?w*3o9RvQ?&)wD2NW8q3a<U4%?`XS!#Sn(* z_1CENH}^P*uPZi>-wliRykp`8i1w<>Ao)nAU#MJ3%u?FSs0+=1wJ6A<r6^3J&S-RC zVink3G7;Aumc%VFvK3~swx+o<kP%RWeL+o$j=HFPW%8Ks`sfaS;~u2%q4bvZVEZ#k z?KWY1w0C^`$VFidTO9+4;8V##A3G;eu|ax}uu}Ju{@OsrCDLy*PX5kYc&?*{4Wpor zC)0w|?kAc?X&P0pq8aXSNRNuXQ+R#uzk>s>qN{aNF{4U{SHy2_-Yk9SRV{hYkj2wm z-8fg&NYh~W%KRWt+koK`N32+qWTV%Q_ht7@dCMvrX(}Ijl}aWWG-?tK`;|)b^6U$8 zBHXu!=SDZ=IS*T=hJy)cLNsPExNHw4yJ3xJ#Jb#R!SEadxV0wLdJu(IvG@7_yxH+m zdCSA2Z7F_VO>TawjcS4a`7~N9*)-bdz`|xW(&};{Lf<uU>ZlS4Ke9hy@`+VqBmB}? zB*npvY}dYYDPkH{-V(NK*^GdMx1^U{kYuo7$J3^ih^{PYp{9a`^Tsr}sD3&=p_e2; zjW{lZ^8V9)Z-&j23Nf2|tYWwj_z;g~>463EtHK58Mb_Af?0cz~g*r)>JV9aCJBSXQ za5s2oo=!hytUeh<M-L3P?jH=QCUKE8bf2I@J$~u%6(7zmGJ3cNsq6lUYTi-8e`j*y z3GeC@ID0;VRev&`r22H6`QUZ8|7!D|aMVQp7z;ds6rWx}DrvDmPgQkcE%nM^;aPYQ zQ@lK>BKGG4z_;pX7h)-(jKqi6f8(oTJ_qevfT;Z%T+;|V=&nXix%b7aHO+e?8YN1; z1Z^rv6gNUr-STxGV@}15HYf9fxrxuLu^FB5$L?nshnz(0=j`!sC00%cRkCe+iwAst zkFX!H^lP%+CRh9S`r2_WBPdMo#_!veB-^`qc^IwOPy}TSh)w{b5^BxvzBn9@u^uK^ zG=`0=zX*QY^#(HJy7R&X$oRAJaQ5HqcAeDqO*aHB5uQ<;#?#On*jSV=7nm^3CH6C6 z{(kk3A86)bat!_6Uxb}os&E!lHQnhfkMnVrIo$!BA01ECgBK>*uWoH_oL(SlATsa! zbYMf^No0YQzt`*<81-&$!Aa`pg=?ebKjs8S2o_(mK?FX$S+H|bJxTl4QB=c+^33_5 zLfKZgDkpzjCzd;y$K98XyJ4=d_*ss3eqnbioqH$Uv#u5qLJlSVI1tQMHGBrNT1v#W z9l)y(H^tFC!x6*Kh*p5rU<jo>b>B@UWQv+`VTU6%Mf*DZQMon>!TSh;I>@B+iAWZO z{HT(de<vj~+NEn6F(XG155ak@YqU3MI}FD}Y7ReXLwUhQ_|xHBVZmV)dxf#{%SSX6 zpG@#Sp)Yx`0Vq3~UJJhfj3@gsd0Hhn@63v#&s8FhgD0_;j8jJgMEkt{wMH*Nx+hPn zYCfbyJVE^R-@>{yGU+*QoZg*|({piqYiizn=zem#;Hk<3!Qw;FZnVSgF0idu5PQV@ zY0;TnfCb1xkx*^uRVmy3r0e~2RYf7z<WAe71vD4ZgHGu86dSq9zv9&uS_$Bge8l1! zXi;UIeF@y{)un!G5zfSVdhdYc34_nXF;LjHMb`^2Z~NRP%O3Eef~3DB2=X527~3>g zg8Kx#?ef2~AD(uD)R~)VY!NY?WdZxP_9>N>O_}VEYwXG?fF?BK3fpJ{Zk8|wITqKc zXWOSQx<tG>561%+Zay;q7cxM95Fw5ifQsT(V<ZDp{)|LXS1>;9C#2+k@7?Xu5c4EE zx6f5ffQTy68#l2FPd0-*RE~#qJaSb=S|;G$xWi%fesq%qoy3r<D^#-W&!as5z6rW0 zU|4Rv)Matnt<$OX%atU3%H_~t$DROHwYMhNu^6_0JylxYH@GJyM0wji;Jfq()v<v( z0W`$C%rM7G=Fd&O;9R&+g_|hd)F8yCL#hJ}SP6d_|9I$(UyXjU>{rvTpTEX@<GSE$ z$zYuxX2DMDC1d0wIpIv^%UcmFdjLGguhpqB2=O6=GS`3n8zS&_E8`}zu23_LKA^t{ z98Ld1Wk8dIj7^7}11X6msZ;5f21a<u!TUl90(;+xUmf%dM<p3gD~SS`&ls^k_m9#@ zr-<B!okr;7vy<@2Ema1{SG)*%wFURB`jk-gQlMjjm~oVnHd9B}5AaxOFHj+t9G#Cy zJ$3L*qjMM0TdD6+7bfrH&tNNf@U^hb8XLRXx!$RqpS|<|j0(Xlh9+lw>={s_u=7kY z>!jS53yS+HJ+H49J5|&mb6L_902*B&=q}fYew&k)?yr5`@Wq8<-!$v;#u!JF+Iu7{ z(pWZ}Wp;mACviZxLGlekAXS)7V7JC4(ilhL>iMBJN)m86Zx;mU2f{U<=;}s&r(~*! z+C5wx5saMAkb~ED`497ZSY%gN7OA^4bI)})y~Vni7v3INN9o$GUN&jLI9{CnDF<8` zBk1<LflrdQo$XWn9`<Z%`W_AQA22JiDG_d=!&tS(i1}WjJ)@gk=-0qaZ=8=7x<q6{ z1JPN+@^Vh*)uq5+Jk2Tr1wyseq6%byrSu9THbpQhz?yeaI|nbdHmvHAegCmV%jD63 z{QAv}iok3~5yDY%6)8Ko#>rC+=+1l^Q9&Z8s8px4ddJDOZph{FK%$l%*_Vpml@+{w zE5{f<9R1VvAg(LNUC0}k1Tp6a`vrRMd0JY3jbI&$PSHTeuokf8zE$-RJ<sZPnGGGg z(rFKM^v3xQs|$RVa(Gdmv2hxa)f%jdEA7J;629mJ+2}lUtqUDE1aQMD<V{T-%YS<! zKi*jOJ0arQwt|A$dXE@!|L((&yjG~_b$L?xk7Cr%Zup;$;UkZXVpMO|U(>*picD~c zHclOD+H<fA>^b-s5|Z82g2fzAXa0-2{M)hFBG*Yh8-qnkdL?Pf4sV%vsu#FQc{l@p z<ty$qgcbcbC)&W<`GFIab6}DmoPM)uoS2{MDBiLic;fYwOZ6fFfEPd?si)DcX<q;Q z)d;Ml65w^uclv^dR$pDu;lH@Pv+)PbljioLT-K@wt|JkH=z%q#0y#SmG~?Z?8>jXH z1RE!!RA&%E@@wUPX7BVvp<H;$*(=;GFsJlVD%Q8ow^z7slOv`lK#pFA$!qU?ztv?L zk#)To({%~LUMZw0G$f$SjZjvwJyJQQ>vclrRN#N~X?JWSbU41Ke#k;`iuRaM<bCUn zbFOzJ9R54pO7qUg2&i2aoM^)>YFtF#qAt_GeBIg2aQl(1I^RyomIXBI`hbhq{(10U zrL`$aw{u8ITUR2ax_c_0i`lt&^f2S*UI=CLFm$beZXaR<!UPeHUq_MMdk*i4-(~ju z`&-cB&u?2Ukqym-BG@F<X)s8aR%@TY5LsGCRcvs0ofjuylp=6*wTk3nZJWyL({LI2 zDzwOaM(QZRrC1yA%N#Q$6kZ~Gig7;7kfj&d3T{6CnM?{i2IW18`WZKDdD^l)AU*YM z94$Gk@)PEiR9O7xro5U36FM-Z?ZhdidKxspb)TQCDWHsJQJPL?xmmz)Xoiy-<`X<J za9Z{cU4*kZrUko>zPSIadZz5lr&riQ|L^ks`o5mCY3>XQub+o!VG9+zE_k~C9&2Q1 zZrtI3>sla!adaAPOjr((pU_QB5`BvY1^X>9#T+#NM5}v+i7pXIkE*Ac=7E_zYjOp5 zy1Vp>)#(W=lLeaOhjS=Q0)BDR!=7ahoV?Y7T_|f+E5qiWy`Vvqzpw_}OWS{4Jm=q% z3UZ&BmP`*Cu|Dt<c6=EK!MUzUkc4@-J@FTQ4V^u}e*XO#oM44$%<hR<o742NO%bko zX5C5-HGccLRf^qN)-HS5&Lty+a%=F+<@`FE7FdWCZJXJpJ8O-|kW5PmELC}I=XBMj zMp}|$HUut*na5R+?ny}foFkWvpcYvn<Cf0|kRp!htEpD7t5x^z>|Y8=3B@Mz#iuMx z_|sPj{40Z1Xcj#OonPscv+zeJv8WCoWjGtO=niJICZjN~q$u~#Ddt5#^5b##Pm{ct zI?C6A5cXWi`c;aw<cN<c&C0Z;SbER>(P=BFA4dOl03b(m3=rhz2q>oAx<25Qm?f+M z&IU`RQBu>c49x3OyiA|b*FVNDexH4fmq7Q~G#L%?ttinxP2+p|`1+xdTnOSU%mttZ zP}_5a7G5LTI^$hRH<yuh!W%==|FVZ!V}5S6^9;Ck*QuVDdH8DKI@e0S^vLcExQl-H zs3E}TW_Ney!{wRUm?fV_0d=%mO76Vp+vJ_6n*qPT=bsAR{_H)J>>3?znMM0s-#J+@ z^DTFvqfiybgUm8QvRmZD!<7z<uXt8u;xU8g2(vDXRaS-R4854|g;8$ur5O#xkW210 zp)i??HXP)Jjs_@)b^siTt4^NiXEV|fSbrhRnyl3Z2ujtw0{h8<-}EMuJ_Pqq=fk2p zNUMR?yyrZ|SC+MWaUAt;CwXVTbUr>g;6+sI(Bk90Ws9QHjt=@-TqdVW0xwom6=}g0 z`3mL_Sb>QbRgMB)@fCchJZ00;To==wd8diH5aWw{=|HeN>>$~NKBY&q390x=75>KU z$57l0|F9)2j>~m^>UjZy`K)q`o9+0f9%>Q@jvFEyQG(4g`8kB^^|yUj&no+Z5D_wf zoPt!Xp|PmW%;yv3bn)o%q4>h^(y&RRS1aC|{yqcEi_`gQLJ3No9y(vucGIj1ZhWgg zt^q0xClmU2R!Y(qZ@R`WKM=*??e;J)ty;Y-au2U;jfK;u{P7JPg)y2bK#B;UyvYa8 z5tmY;uN}oc95}$8L6JK&rz*2=q8m+a4skR_prr%wA?PK#wBe3{tiQ{5{;51cuxmjb z(vxXY>1TT31^+F25pCdm8^Kx|(FcIh9Hnpgu(NYN^T@;H;9%axulX{8ku!rL+&Klq z<;z;<LHIyuP0u3E9y-uS)WKC9rn1QcH8VF77txX>s`l|^W`NW`g(iUa^xO5K3AfP< zcYbSm;uPX_artHJssoF7u-47=9#%uJ6RPNg5tzE5H>bW4q7Y{urYzex_@>Tx4&*yX zyE*Lz4lv<1U@_w%us%tfNMNG$(o-ae9_UAFS_{iVjT29=Ez*d^;n{7XK=?<XyW?Lv zf6LG&p)^4rzdO`sb@u}$UhvfyR`WwV1Xuu#$?Z7NC28nDE2AOvsVpKc4VegOVhf+| z{H`hLssh!o22<GiylNcEscYm2E(^~(L~W$wWC?QhFMM}9l5(l(x@6n3-!w&qJ5Nd_ zk?C|4q0Hy*=cg$3DRr|p|A({fi66sz4)#a1&;xLtn$Q*pfKi$1ipi~?PTu?8?Jt$e zN)wIfI!hb719KZu)nK&gbj;&7CQPTY+bzA=WI&Zp6slt^Yq8FeQEwQ9@nO^(C;@&t zAv_zSBxr2O|L*HnUJSFwdj%J0uJ*%k^+XhWH+sF|y^?eQ$Fl&~`XcypQ-t03qqKY< z3;O<c*);+W1PouFY9SF9!)VteIJF}8Ll^GvL`UP!t4DOtF{(cvA%Z{szHTf?PEw!D zzDhRI99^V26@pX@tWQkFAgUm?W<>uj*5{Jt0HN8Y+q6YC`R7c(T=3Vy1vdyL?BQDl z4l{j*Jc(08?GBM;X()FMv&G$?L5SUr(-&-6N1V-LP_y@m?D7axVYS~u8?6OIq&DhH z>4#dm4f<fu*+UH?ox&VCKJt3KTV(tVTfj@!Qx2OQPHZ5o+Z?G5M&wF}Ib4umd8U`O z)9?+N+w)bu=@)(L$j1vk2L~26(@7{9q`Bz?2;%#E?q84gC+B~jLqBo!bj6D92QdAi zr-7|7ZT}{ag(@GNtOhL)7rBn+oM&fO3i|{t7%5kO6lrur3LtsyaOwewh_F@Gq}99E ze;o9H>7SQa1|_P)6?dO5Y_xs8b9_tg#nZVVjB&b*tWV?E)xT@)Z`1bOIv>P(KRHHv z?RsF;O1{Vq$VXx-&wz@yG?P8+=8%%dJvUPRz_3u8G+I^59lbc3BAjMAHKjuwg!sjY zELy2{BvB|F0)WbYDkBv2S-wZL^-QVF7<?Yq9Aa7UqbE&+<iq}K$aH}byR()5A((@x zjh13b&#I(VII1Q!wG(VlV8(|HBUF#E@bbv$;}**G)7B1T`~#ZdoaTm|_hC9Z1ejl8 z{$UO)JzIARvt90PDTb`rF$(H$^zZ-0M3Iah^h-)X!o!csV1R#ehrAeEVTaYLqbONL zva#3WDc$W>(~bOe%snR<t7VXo0_U_&RuJM5b&7QO-8W@LD|3nJ0fK$8I{q_Kk%VO> zUs$!Ng!-!*`d&(GPd-!BZ<qa@MT`0D!$Zfrg07J=4WPSE_C7C2B1N4=4uA<ABo~rk zOHB}BJa(Bm*bh|IwoxUJ>m})?;;y!Xj!j}TB2_KE>_2{AMdGcE#|AC{4RaI;|C%;s z{@WTlQ^SZz>%cg0UUjq#6J%0N^zH9}d3ENDip(3pgmRAWR|l?{15z=Y8xOF*3Ko(U z`0V~Z=ppjp7~<)-TOEGYa@%oCPc+pMOE+ksBX%0VEKMSzGxR4u0{xDMIOpc?iO@s) zIZUZx|FEMyzN@EUG2CQ+1@7e?Z9;jOeHo3|wxQlf3xJ6xTk~ozBCFwSf}-xQgN#05 z2+umB9ntxAgW4-WpjjyZ9(lkIC#sitA&@Kn>*WWk%n&f)?RknYu7;ORyn-r8MBe;~ zOiXYejkqmQKAQa|GFXflE0v@3$DuQS;fRbrX*oNbldt$66#F4nsRUN$-H1Ea#D8eL z(z@>mMOYK%f4r&BuHe7xiP*MsBF8ScG=Wl&_X_rn+mSjTNyu~Z#ehO}SHHqab0w>{ zifs|}x$A5!H>Oo_uCTxgQh)fCB~p;pZ}Ut(ML2aV8RtAjv)Ip1xA|sm;YjV#a-C+> z_3?pERu2FseB|;lMtrPk-5xL@IA0gH0Q`a3>4&K02KMaz(omA2y#mraF{JB2I@4{~ z*tF=HR3oL0Z#V1WL!i$z36vyC<=TzF*2=nSH(bt|BV%+-jpvvw_G<z2`0R%aMm_!l zaybOJzB<cy`q~Dw2bnrruHt@j;%t9FB|CHISyTx>X16Ek^H%&%aemuAM$Ka<kRm4$ zO`;Nggm^wd-oxq(h+vBq!>=x!Pd>vn&(&r*bbLwdvBxeaB6V3jX{l#Bi2V5PjDW)Z z7p-}Hxd4f1>*Pg{LslKf-H9szfRy8JP5MW9<Hdn9+0W{n8P#~!$erfcH&|lp>gm!N z{eF@ZtpsQ`s+&vb5l;F+s;~vGohhP1e&>VusJFagGndEd#~m-K<J_peztHvOSq~qb zkJDNR<*x<6DibMoC#b$l0o`FL(0tWZ6g7e9yp3fEzA_htiSxMgsA}QIl-VtIG#sl| zM>lCAb4X~4$LnGn*5)QRv{Qt$27_EW=w;B<Ud{Lmq~DL-P>K5cQUIBdwr^7)oS0+z zj8-*gw7Lfk_c?5_r$vsTd4KI>T;7RE$&Y^VIzxYNK~mj=N&MUl3e)U;&dBGKjbCD3 z{85Xn@BFpj$%=y(b)i)pE)l1kK{ZxAFDR^N9c+YNe{DX4w14;OuMrbPiUA^d|B7(> zroaj0mKJt;;@uBCpV*JGRmxisBG+5KCt?QrtyZ!<sJBF;?8>T|($WS^AGK0y&1d{2 z>Ku`RY>i5h1e8jMVSi1a6=Pvz8-wtQYAr$LY;f8VO9-LClii!DBs*nW9Si7Ulp;1& z@4HF=u}QwobsE1gLYcGZG-3~Dsy=KI9;K9ed9J$ANpY0|v6^z9`aD8|M<im8oOvO- zG;zzDKC+Qc*;)a-uN79PM_63KjX<W%VFsc;R&N<+qol&*R7=!qjNe(VU7VB=n{QZD z;$xnJ?b2)X$bAg7?4URHVDDzjH_GLm;;W_+r191S+WpBOMGMC;2g=c^eqoR#Pxpbd zo2-cPP$68!RoySQk1u9C=S2C!Op|3$qB&!U;)TO9&)895dH&=*je>TvlWehZvgKJw z=f|5aMMg4IfZ<CseuWd634d1QzlzhtKMS4|yM>oqebU7#Da6(e{obtHW!<FnVc%k4 zae8a+@0(3;1rP)@sv~x#Fg^Oy#@E2(BIJk1S8<oI2}wHjm_Pa1kB3VS8|IG`19H^! z?mxx*=P?4Xe+ZG?`LIC4-_cV)^W)`4zjRvJGIfGPdii;<f@-HWiF%HPo7)>40ki?g zE(Wv<dsK_+p^IZ(Wf)c+*S&0_`GNKHg-(vq)x-Wwo0ZN34{EAd^TG49O-$>Mq-Zc# zft|aMzTNiXN6^rj2_RRqIKC+i!tW8=^+0)6^ny2DDlLTaGkQ@TDF}A`xu52>8K5Z8 z78w=uhB0PovNX!Qw97HRFBInhb}1b(@cup7Dc9Ev$p&w@F?|md+VJlE(2YWXE`ytQ zPScb_?P~KfiC9pm_*?+|gZfsP7*U2Qm|>C5DotCw<I@^=`6#n=<3zyP%3~3QpZWAx zbU(2-MkjCoP5cxfHpqvEirpdUMAJEX;Ktt}%0>(}ax3SCr)Rp&8>E23LE1UCk=00+ zslXT)a1U#N=DF)W`>TnOQj)ol9KBqPdx!G>4k*h38EUdL@6=dAoPd8vKOU7z;3dPx zv{@U-57olyJih+BsHL`QOyzXl3~Uz#_yA~N#p|ozl%p&uY{{zO0pALJjAc8oyy;xc zQf8x#1Ji$!4SV2HjeMp{vcii%H)#u}1&@6%AnijIe&CI;dclo8BUqOel?;IL)bcY+ zi4=XLA@i(q-^pG<x!2uR?Bc%--n?LW1^1s^2U+lswrcI=)xy}@dj3VGlT#u4Qj=Hk z+1P~R11(*ASVPP8fcXatK!P$<Y$^SYF&NP~l^Dq0)eo^AZl?4Xey$8~2(i>;Pd84z zBiVV<V0E$p!N85dCV&T)H1HMS`Snz#ap;g8bzj!vxNwQ%&WVc4`H2xkjc+b|e$*EQ z?|n4x?3`^Dq_w1Ro=OcNrC%a8May^6Y%B7qtdAb-JcNx@&Hq%pvF;ndSQDyfxkfcV z9<3Iyr$X@|F|QLZ4r>#b9jX?y8ke?X9iY*g4IBsL`xdY6d*IJqX!RKN4qjpnCH{aN zp;X_L$~{z>+$6E*@*VIRl=3}cv@)i;Igdn$-#$pqtkKV|&uc$rn$E1bIn1Hw6iajM zZ`AJVE|r2OGx#a5V0ceMUepDNX*Rx?V3zN42d=P6F0zBO2Q5(sTGJ(pJFyvh+Tdf+ zQB8Q{TH(A_;cyw{!l<VcS+KTfoX-OhD1l8%?M%85M$ew*QgY3)qk(Y_!t$2U?OV|` zDxv%SA96#{^cDP%@^vwX;-_Ksl*bC=`BHQp?n7R?4d~`l`ozf8S|Vh8o2n;w51fG+ z&)B<c*M<RA8aqnngbJ0qjdpMVXvz9qb;5Cb^k0LiV2z5&k;cQyxeL7Lzlp0$Z$=cD zXEh(HThepa;6$md@{jNiPXYvS4P1p~^R+72gsRRgeM{z&-@XO=Pakg6TszxnJ&qcq z(ehIGJ2<tu`Vi*pPyQ74jNpi8ijjS<Q`sL>A#d_3Eg;{__;%9Hu8u-iGCu+CMY^a_ zKHJkQTjk(p=C6V#$ggZ<0}fT89x}jhJrVOT-}pLNbO|LTNN7VwdfLEA{9AO&;c!b| z@*l2(vP$@$<wN3E&Shz4HPWVWBb9F9Ds$}WwFj7mx&FpZZJy<t)2JT$Lmg4UBC)<N zWIh_-oh+eHIiQcW0ftvV@EMYI!^JAY;J?w{>}vG|54*OalFlOO3#8D1V>30AsIL=V z`|j#ZdH#OiN4q2b3jbp}jd;NHKI<d%Rcnuk-{v4hA3u{;;D~(rNlfLJ^1Low?CPIl z)WK_)DbRtV!Q9G$94;37cH!K=vH8jyq^y?0^hCZPX?%K#0oZ!~;KGy0zlTDi?n_hG zmB{LS3gv`}U>&Q&5if-{+?4nnc4iix;te5UjHYK!3g`xvWcs|0`dW&*z?QXnJ$Aut z^nV{jaG5mYTx@bQ&ZXv7v94<@f#lg(k1~IRo~!NRg>~-$;E39@KB9(Ui(x7tlg7D^ zUkEa~7uBJv_IRN=rzv=u9(xC!k1Vo5>3Xk<jbaP;V}{4z)3P*vv{gEX!6$bvH9iI- zH1YJYteuViBSDD76X11#pJH>X;DNEai>o)Y+Rq57NEo2M#AHwt^x%6U;5T(QcUC7K zd-MD@3wf)&WILf4+8k)P^VCAETcyK)jU@23cJG$6+n<Yc?9EC+_URb*eA_(BS8p&& z-Z{Y>0sP-Taz@dvME^a!E*i8@(F%42zx_pGrZQ~YN*h`X(5CS*BD+_3KH@4dw&%OV z>Aub2dBkJiKYbeK5<5P|ayOc}r<+$+DRcS5Oxgl(Hwa`Y99d!*P4scgsx;c#zIlV} z($pIBlJS&Q@-BCS$QiA|#pcfQjfNANh-G(*Eczz4lukJDpFkfsxegw{BTCLYS7U3Z zN&d_n{;y(`$|9?bl#xcP^WdW@mh-_4yksEd4rJ`Nhtyc)A-bVAZ?k(DCU_ZLl3Hg7 zgq<)W9*zc#NM}CRvgDUQ@s4<IzQvcm8@0iW{iQ0AumU$EF>5QzbwU2#Z+BIH(6aWx zFvWl7=fhK{oaQgH0*nX!{A@xNUK$=P)Jb7EeL;J^hG^m@C*E`&JrdA#^b7vmQLIV0 zKzA<tu+GutcQt~&Sp(T-@oC@kqn$&?lH9SbC6sF2nFtre5@7k5Xd`f))3OYn!}Lb< zTyW*Ae8-pau*LvL|7|Q?pvZ=dd%o`S=&P%GmB$|DSmx5IjM0P2A8x3;)^Pe{QPAa) zU!PVzj4o!J1b0?nEd(|}&9n$q(a1H>gDkJJLegzqUJA$^%F}%U+p0l#?hkJG`<~IY zlWF`dx#mYaX&OHqQIJ9OTRxWUy)MhaP%FHd2nh{yp2T8Gn)=nRPLwIJh<tP;jNVsI zP|}0Jwj{CRAA;S^)x7HxFJQ;bqvvf14W_7&@*6~t6Zn#LQ_v<+0gozR_6mM#<DKg! zV)tB_8of-btX1qdiara%dqVF3s?la{zTZ{nU%oR<CGDezhFe}`xyC0ks`gTSzued- zoqd9k6bO47th3%V-Y9GzO1t^yuSOW(pZ-0bLya|3t0C*%dsTIj#PdYWo|6vG^UwQ> znWciQ5m?pI*lijrO!s>cgjv1ABCfOVacnOXKAHarMT$<7Z_pLX!WR<d-1q3@ZuqO_ zy>A3zzzDG66@1s5&%>8zOaKqpLn?NVO2c@AA}91J<(A33WTZ)GOi7?XUT!%2)O0ty z(&*WKC6W^B8ad^&?+W|KcuIwD3PHEA@^tMBjkwIk`cnFvT=5?d=!Kv%E?MGW#3cKt z@S(FG&yjUsp{lrM5to^~<BaRWn^?_A>{U8yp!k6bJw<4We4+UVzR%Al^w3xm@FyMV z+K$72cNg_}K}+$usTJ3!qWFx<@d?f+xGyd8$3p6IgJ4TZ^%jmc*8A)z^^a`T-`9Tz zz9?JoECBnKhN)e$B634*%JS6yrP9p{(=GdC?syCTDaFvN!iQe-eK0ocW)EHdRL4st zbXTx01Ym&lqu!_I0{)AdLr_PxGS}obPUQ7S(XD)>HNzB0EiEG0`Q6Pn;$QtW?`Q_I ze-hSx?KacO?R{0w>_U0hn0L&mam}j-rgytjo|boZx`5P{9cK?m{;oINZ8U)DFTM@f zB=*)zZ#}?kAaqceqeXQhJJdkD3+#cjby!M9=`OAHP4ZNc3hne=BOOdY7`ixsyy{(T z)7vJ1p!?v|pmHVEpc36B<<^G5i}k^Dqi?HTANx}!E%La}(x{Wq_wsB)hnCoY99Fvf zpd;k|7o6zsTtuC&1Dh6*g&OjPEsVeY#WDe?lh6beGqyE1$Q)=P7P>IaR6gR#6I!Ba z^38>>GTJ;F@TY!M6tIDl#ICA9J~bT)?^+i9SfXs(EV|#51aLUPGxB=E0u1?ujJ*(g z6;d>VVaf^)Sl{jl5MSq9c!Xot8SrxJu{-u6_DHYaF8v*6)=82b0WkqJ;Dpck7Zi}+ zH@~Z+_Z|;a#xX#{p58myzfnyhkWa+ZU-v?q1kE7c_k1l0$=qbF&bavg+eU!d`{bO{ z$DI^wXl_@-e2r!K{+Si%Rmnnpl=$c6>2bp@?SG8TFKD);yK1?I*s$4jVR$pX-KeOh zqinU%{RZS1E8X`Bn13QwcZA57ZP^}R4x+FjY)uDww$nfFID`$+EhN@-4PC_Ytg@Y| z$LNWaFb18Pi2|l*6wZckHx`ZDhX**crJgZno2GqU3Zb}RW3Zp;$}o>IIFTTyU6>1f z3H|p)=$qP5P;%g}OSiDFDRd%sPbIr9JW$x^ll!$za}L)?*StyF+z?7HR+x_Kc(^X? zSyTTjhKilMym(pXcej&lM|V-wN*08tg&+i1h<trBy|CcR2Va{c_lct{x)_x8aL?<X zDtu(y#$*vc;*cM;l}0&D5!nFBY<lAYwNC}q?J3al4puhk*QG>KZC8IR;b<xW9sBhM z@1?1Y3yMUKW7?+sZO7UvN{~nGK}TBoC#hq;g5i4U+FIAyMHwX?{;_lMLFx8%G_r(W z&y+r29qw(2(0cZud+G*rykSm>#p$>+KE8$%@)H`W=C$!PjS~q;M;2={WYy8*__~*4 z_5<qya@3rNRJVBPL{r*ok`yX}uScs(|BT|Cw+xr*t=x#vM7uKdxBGc`9?)}hlY>uT zU90fX-KCtPC^==1T>dHam*&toL#io@WL67L1%;MTBSfjyPE_pFT&CHezGup)mwXHx z-OwILTw?);Vtb~Vgf>oT>G7OCxFomy!qdUC+ryvF-x7TeSz!yGH$Mrh*mA6Idb>KZ z>|IgGSK6Sramzd*9Ys)BlNH~>`fMjOL&=?3-`iNf*vu5y5##Z7>+>6UUTh8BX68eR zunp+$O9TAf9hUM`;Z&8U{ktnp&+EvU^*GUYxivJ+Q;&Qw5tW(}rImRLznTsLGzg{t zfm_dw(|hGCSx0T!X-eHGC8Nh>t*NXyW3s#79uQZ$bkG5){%}n&P4(_c6eI(Xarb=Z zSQV>>SN3l7E3gH~?P?&dd+f^ioB20xK!_DLU9Hmz$C!^H6cYtsb9T<HY4)e}Ji(VA zvwi(|?a;{FFbl*EEXLVc9kqS)kcu`>u49~yMASVW+V6#*(PItp2Xr$Q*+!Cpj}{=d zLmHXs(e8a5*w#V5d@Tfi&Bx4to94GH^a*sh<2S2AMOz)H9Jp~LAfc`}5f?T4tnl6g z`;F7r@B(Gsu@Z<iYn3Lf6!yS#r$-wll@2ueP!QKPN&M1TjnriA3oG8rC*K3zy>iBO zpu+iGuNi(ID<m^Jj<qVhA*~$v&Zqyl6YwcF*tbwkWx3-TCn^M{oldnwz)6{FL=X0_ zFAn*n;g8>e{kcSBqwsqlD;JIZLZjH9{+^AMQc0~|QtXgHdZ4<D$!AyVM=VlJ0E0gG zo1LBdy3C{c)h^wMh>!NgX%BtBNxdG}J<r^+Mo>3DCM_oAgM5$bKilQq22kPiMyk&* zS{t+(po41W-Z<U0y_AlvgY?XYQ<6Vc)?HW8ToQcb2->?*5}ZN@r+20|lv?VvemW}! z&j8e?-=sgbptg~s$#wfx8L6z0iqb!d-gyf~B!y59y||n$Xvq?-51T3fB`g?;H&sX1 zL^kTm_OaPMY|-6uH*`5a<Am}kQ1;wb1vRylmV`mYnhFfljnAk4Bz5#jVa@5@wB3ss zk~0C!ICI{O59U+ohA!5MuwLJ%QW%w_k`o1|{h1w*Ek}UI;#B$Jx6BWvbQN2|tQNie zEI$1DCku99MDoBlqcyY8=0AI@A7@{wY6e`!L%SIZ=qIQm`iRxWHq&i}oL#vJ{9Ivx z2kbn-rCD7>jg&>^>kf`ZdZzBng8V|>e)lhc6}6Sc$$;|Pnfu(Zz27VLeInBKSI@@% zkIuB%PKEhin-RbBoBo!$KUxvSobK~NQ3x`CR`FIQN}+g>U2K@GRJsW2Amb8Hgj%p_ zEm3Pv9s4j)i1j*kq^iIA<5<yEjdE&`8C8P3sk}?*^e>-VypoP=(8B%#x(XHK;_U5; zWdD}xR$Vj5D)gi!Dl2?lS{=*g4MU7pkwQ?+D4Ah<j3F2U-nmdk8rAs7)W3HP__R1q z7@uWUTdsZ?b=h{CUAou)wEY@=ruwJDYHUL6?zdHc={Eo3M7`${y4a`n0h={$%=H)T zw$n0_FR*>iO;uVll6jDi<G)IrIuU^M15?&E?VjO3&*9J26=ad#mVG)u{1Z5lWy()< ztCa|L!EvCdjN|L@n-g)4#&=S&g<pbRZG!_Ryb%CLe_Xwee;KSAn{3g^vow%96sRgM zLFA3jEviRhR(JkHVQG^2OJqm2L&*mge%{v~iFUJQELQI-cCdqs1#2+tYPT5m%=uc= zs$G|~_I2p;`e4d6PpG_LZ~=lbKq??)G2)<co6TO9V|_gj3}ejxp<&2$YU3RIPDr;9 zEDyenD$H*bKl{@4i*XUOY=Tb~5E)}$N-Q+Q571STWPqP<Q^QHJ!!4YU+4kOur}B>$ zDbbyBUih?hy_%V~3of9ZIWi2RHr{D_qs`TveR#SDDuFw^MA|+`r~15~UIfBX{`^Fx z<Ryut4NvnWgtpX@@H|9x-4*v~LWmsfxD4xND-TmE;?gw%cxf|EkHr8EX!?Nk%i|4` zKd?8bG6Nfq_slJjd~&uyiGQms7I1HbjHYp+Cu>cQUQiLRfEF)6P0+0SS5Jx}R!+rn z+l65m&?kxSdGpv<DFbjPldqv^N=@a*e0QI)rh#^ni*f(4c*cn?@Ds%BuUhpM3*i-c z#BNN}A^b@VFRrihSw*!FilhYf4gTw;Osv-0Rr&yovJY$IM5_9J73q`<NPHpcBgnJ2 zS73yf|2*e1t#R%c^8>b4>KXslj$<9~0FGhoXRE$9NX^eBRue-GCMn0d99bu#lNuOK zfT#P)HpQ39CVP&|GEqbKd`pZNv#qE?aGaWCL@3rlV^n@OZ@!Dmyap4W*T>e|Gh3Z- z&~aas>~P}oZMQ)b%*Eoj5qAw`0+6UwY>RUG`HP*8SqR$sH)8#c;ORqnK&F5GxiItt z|KWZ_56_?Zj2kv!4LthJbX=6o`vdj_MdC)OuE)tj8}bY5H0D|VHQ*}-!>zx<!;p&} z47jYUwV2B1lSc$_(_5u?qj_F4msZ2VqFmUQnegJ!`D=EB>iudLpq7Wi_oYMDb*f<p z49u?YkmF)Iz_=c3()eY%W2?*)hvYvn7QQuO=Z(Xx&|Q;qDUjv`Ip$N*(lcOXKt**W z;%p;!<MdGVe}w+wscYzNK1&=>_p9fk05y9ygaYkLP{Hpeg%r44`{tu{r;!j9>qI)B zHM2Z(J6b3Ny<zqH8+T?K_MQ`v_~U+Cq?0w5(S-xxqTr29_NN@<b=ze53fPXF()KpV zaGU3oc%_?r)J|-$0QGFTT3LDuC*te|UI%IhK471ZFadms?c3VS53rz*1LRfJ-cvBb zkM1q;ULwZpo8ikkNt>_^W-FCMy^b*BE%xT`MQ=a|AD2Q2pG8dua!Ts{Rp6@|{3PKf z11`a37Me(a_s2?_uS%Z|bH=U53y*PQUvx@!>SiMFHO1<#$l|A}p>`<Uo$4^W6VwL~ zR#2hXLH&UcN9qSI%1q}|QU4+9-^=urP0KU3_Bh4CyzrVuhr#WS$0MbO2Arvv=A@e) zK8@nMoJ-_)N6%>k+IlADzob1gqW%R_z(lHZVJ?>rw?~uDO`TgU=a-?Jef6FG(}c*7 zkCVeyhYeannsfBi)LB%=z}1P;3T42PH``*80IS4A?7;&6y61OMk7a2Lo*Fb|RN&%U z3@hmPXlp&ACr&hv?_ArXnY6)MZluMgWEHH($xb;H)978BR+(*6_gTV;;mx2aLMUCv zQvtr`yH<;8Hrv^at`>Mk_URbn=JBH^{F-xpp!4`xE>jQX{}p?g8M%?(eRFxKuOvoH z#mQ$PgwllKz`|gJUsfGnKjXMik?fF5`zJL{RihIEY?LHq4qY)9k&-AdR!*Z=Hbt)N z(0N^?iGwl|O7*Afm))UOixJcXTl;e}awmC=xtV7AGb=6SVyqNA?n2|veY`D5tl{x* z)lQTkFL)7DwXHcy`DA-rLSOt9(N~c!ok~V5uTn4oS7DL$st`DJTH3ZxKh4_jNVoA0 ztQKfkO7xVXFC+Dtjw&jNuCPJ?7s^54d!nc$KwSK1tw7Buj#S|*6-Bp?hb!?V6iKX4 z%n!D6s}>hVWJ1CdMX99?{pkmMc1=v+b0&NQ`_xh4PSt<XH!zTBjpFQ#iJw3&-=UI3 zL@c{P8qscXlkVAXqyOIJUeVEdYC?o{E6$%(sb-WXcj<P&UC3kgTaSZPgjxLe$XEP= z#?Fc{oQ8!?wYsQ;vWj(tJ_Bp)QYB<yVDh^Fs|Gv<5x~L@id3ts3(#kQe?0h~p+9_e zm(;og(d25pNYU}^W6KUV+c}}CW|%V6<&W?^keImmY6TrWgeL$Ue*z9ox=bWA_eJ9^ z;sfWuu<x@;121sAo;0HYx%A_O(4E*Tk_@LZ$bRH&)@jlGmoop|WeTc3%Az(`^(oS4 zL5bq;Lz{b+=fAi`W@Z8s67EP|0fu*{Xj5}t;?vzW15&Z)iV6$(1Hb9$j@tLspZ~x# ztl~dKBgM7NKFz}*PIrDgb}PzAy}jh1<9~0@yDt1HQVZayxtA5NU;z0PX2<EQbsOc9 zLH+u;fjDss%TM#H#NJ^k1H&c9uT}Ja-|L%;mqLP3udz3=9$1N(QmUi4&y>gs;CMY_ xK{Kfg`MESo=O1R>;$rasum7iK;KRRDUCeEsE#r~i3;^{qzHMPpbqo6Z{{TE5^#=d| diff --git a/demos/diagnostics-app/public/powersync-logo.svg b/demos/diagnostics-app/public/powersync-logo.svg deleted file mode 100644 index 32c83dd1..00000000 --- a/demos/diagnostics-app/public/powersync-logo.svg +++ /dev/null @@ -1 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?><svg id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 1920 240"><defs><style>.cls-1{fill:url(#linear-gradient);}.cls-1,.cls-2{stroke-width:0px;}.cls-2{fill:#fff;}</style><linearGradient id="linear-gradient" x1="1386.14" y1="1275.02" x2="1164.05" y2="1146.8" gradientTransform="translate(1395.09 1395.09) rotate(-90) scale(1 -1)" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#00d5ff"/><stop offset=".11" stop-color="#1facff"/><stop offset=".28" stop-color="#4978ff"/><stop offset=".44" stop-color="#6c4dff"/><stop offset=".6" stop-color="#872bff"/><stop offset=".75" stop-color="#9a13ff"/><stop offset=".89" stop-color="#a505ff"/><stop offset="1" stop-color="#a0f"/></linearGradient></defs><path class="cls-1" d="m184.74,107.91l20.38,11.76-21.5,12.42-20.38-11.76,21.5-12.42ZM20,66.74v94.79s82.1,47.39,82.1,47.39l51.52-29.75-20.38-11.76-31.14,17.98-61.71-35.62v-71.26s61.7-35.63,61.7-35.63l30.94,17.86,30.77,17.76,20.38,11.76,82.31,47.51-20.66,11.93,20.38,11.76,30.85-17.82v-35.63s-20.39-11.76-20.39-11.76v23.86s-61.93-35.75-61.93-35.75l-20.38-11.76-10.18-5.88-40.96-23.64h0s-41.14-23.74-41.14-23.74L20,66.74Zm71.62,53.11l92.56,53.43h0s43.63,25.19,43.63,25.19l38.46,22.2,82.09-47.4v-94.79s-82.1-47.39-82.1-47.39l-51.52,29.75,20.38,11.76,31.14-17.98,61.71,35.62v71.26s-61.7,35.63-61.7,35.63l-28.27-16.32h0s-33.44-19.3-33.44-19.3l-20.38-11.76-82.37-47.55,20.66-11.93-20.38-11.76-30.85,17.82v35.63s20.39,11.76,20.39,11.76v-23.86Z"/><path class="cls-2" d="m491.05,42.72h58.51c14.27,0,26.13,4.64,35.55,13.91,9.42,9.27,14.13,20.83,14.13,34.66s-4.71,25.39-14.13,34.67-21.27,13.91-35.55,13.91h-41.95v57.41h-16.56V42.72Zm58.51,15.46h-41.95v66.24h41.95c10.01,0,18.03-3.01,24.07-9.05,6.04-6.04,9.06-14.06,9.06-24.07s-3.02-18.03-9.06-24.07c-6.04-6.03-14.06-9.05-24.07-9.05Z"/><path class="cls-2" d="m759.87,63.69c15.46,15.46,23.18,34.22,23.18,56.31s-7.73,40.85-23.18,56.3c-15.45,15.45-34.22,23.18-56.3,23.18s-40.85-7.73-56.31-23.18c-15.45-15.45-23.18-34.22-23.18-56.3s7.73-40.85,23.18-56.31c15.46-15.45,34.22-23.18,56.31-23.18s40.85,7.73,56.3,23.18Zm-101.01,10.71c-12.15,12.3-18.22,27.49-18.22,45.6s6.07,33.3,18.22,45.59c12.14,12.29,27.05,18.44,44.71,18.44s32.56-6.15,44.71-18.44c12.14-12.29,18.21-27.49,18.21-45.59s-6.07-33.3-18.21-45.6c-12.15-12.28-27.05-18.44-44.71-18.44s-32.57,6.15-44.71,18.44Z"/><path class="cls-2" d="m940.37,197.27l-40.85-129.17-40.85,129.17h-16.56l-50.78-154.55h17.66l40.84,129.17,41.96-129.17h15.45l41.95,129.17,40.85-129.17h17.66l-50.78,154.55h-16.56Z"/><path class="cls-2" d="m1169.72,42.72h61.82c13.69,0,25.02,4.41,34,13.25,8.98,8.83,13.47,19.87,13.47,33.12,0,6.62-1.11,12.66-3.31,18.11-2.21,5.44-4.86,9.71-7.95,12.81-3.09,3.09-6.22,5.7-9.39,7.83-3.17,2.14-5.85,3.57-8.06,4.31l-3.31,1.11,36.43,64.03h-18.76l-34.22-61.82h-44.16v61.82h-16.56V42.72Zm61.82,15.46h-45.26v61.82h45.26c9.42,0,16.93-2.8,22.52-8.39s8.39-13.1,8.39-22.52-2.8-16.93-8.39-22.53c-5.59-5.59-13.1-8.39-22.52-8.39Z"/><path class="cls-2" d="m1701.76,42.72h33.11v154.55h-28.7l-76.17-98.25v98.25h-33.12V42.72h28.71l76.17,98.25V42.72Z"/><path class="cls-2" d="m1468.16,42.72l38.24,66.24,38.24-66.24h35.68l-57.36,99.36v55.2h-33.12v-55.2l-57.36-99.36h35.68Z"/><path class="cls-2" d="m1420.5,126.84c-5.23-6.62-11.59-11.37-19.1-14.24-7.5-2.87-14.98-5.37-22.41-7.51-7.43-2.13-13.76-4.78-18.99-7.95-5.22-3.16-7.83-7.32-7.83-12.48,0-4.56,1.9-8.46,5.74-11.7,3.83-3.24,8.9-4.86,15.24-4.86,5.29,0,10.41,1.22,15.34,3.65,4.93,2.43,8.17,4.38,9.71,5.85,1.55,1.47,2.75,2.73,3.64,3.75l13.02-22.55,1.98-3.43c-.93-.78-1.94-1.6-3.19-2.5-2.87-2.06-6.18-4.08-9.94-6.07-3.76-1.98-8.58-3.71-14.46-5.19-5.89-1.47-12-2.21-18.33-2.21-16.05,0-29.07,4.42-39.08,13.25-10.01,8.83-15.02,19.51-15.02,32.01,0,10.16,2.61,18.55,7.84,25.17,5.22,6.62,11.55,11.37,18.99,14.24,7.43,2.87,14.9,5.37,22.41,7.5,7.5,2.14,13.87,4.79,19.1,7.95,5.22,3.17,7.83,7.32,7.83,12.48,0,5.74-2.25,10.49-6.73,14.24-4.49,3.76-10.71,5.64-18.66,5.64-6.92,0-13.55-1.55-19.87-4.64-6.33-3.09-10.42-5.55-12.25-7.39-1.84-1.84-3.28-3.35-4.31-4.53h0l-13,22.52-1.64,2.83c1.22,1.1,2.66,2.28,4.37,3.57,3.31,2.5,7.14,4.97,11.48,7.4,4.34,2.43,9.86,4.53,16.56,6.29,6.7,1.77,13.65,2.65,20.86,2.65,18.26,0,32.57-4.53,42.95-13.58,10.37-9.06,15.57-20.72,15.57-35,0-10.16-2.62-18.55-7.84-25.17Z"/><polygon class="cls-2" points="1032.55 42.72 1032.55 197.27 1140.74 197.27 1140.74 181.82 1049.11 181.82 1049.11 124.41 1120.87 124.41 1120.87 108.96 1049.11 108.96 1049.11 58.18 1129.6 58.18 1138.52 42.72 1032.55 42.72"/><path class="cls-2" d="m1884.74,148.7l-1.77,2.2c-1.18,1.62-3.06,3.5-5.63,5.63-2.58,2.14-5.56,4.28-8.94,6.41-3.39,2.13-7.65,3.97-12.81,5.52-5.16,1.55-10.53,2.32-16.12,2.32-14.43,0-26.5-4.86-36.21-14.57-9.71-9.71-14.57-21.78-14.57-36.21s4.86-26.5,14.57-36.21c9.71-9.71,21.78-14.57,36.21-14.57,5.29,0,10.45.81,15.45,2.43,5,1.62,9.05,3.39,12.15,5.3,3.09,1.92,5.96,4.13,8.61,6.62,2.65,2.5,4.34,4.27,5.08,5.3.73,1.03,1.32,1.83,1.76,2.42l1.79-3.1,13.98-24.22c-1.39-1.38-3.06-2.9-5.06-4.57-3.61-3.01-7.77-6.03-12.48-9.05-4.71-3.01-10.74-5.59-18.11-7.73-7.36-2.13-15.09-3.2-23.18-3.2-23.56,0-43.43,7.88-59.62,23.63-16.19,15.75-24.29,34.74-24.29,56.96s8.1,41.21,24.29,56.96c16.19,15.75,36.06,23.63,59.62,23.63,8.09,0,15.9-1.1,23.4-3.31,7.51-2.21,13.58-4.67,18.22-7.4,4.64-2.73,8.97-5.85,13.02-9.39,2.55-2.23,4.47-3.98,5.88-5.36l-15.26-26.43h0Z"/></svg> \ No newline at end of file diff --git a/demos/diagnostics-app/src/app/globals.css b/demos/diagnostics-app/src/app/globals.css deleted file mode 100644 index 5ceb2604..00000000 --- a/demos/diagnostics-app/src/app/globals.css +++ /dev/null @@ -1,12 +0,0 @@ -:root { - --foreground-rgb: 255, 255, 255; - --background-start-rgb: 0, 0, 0; - --background-end-rgb: 0, 0, 0; -} - -body { - color: rgb(var(--foreground-rgb)); - min-height: 100vh; - margin: 0; - background: linear-gradient(to bottom, transparent, rgb(var(--background-end-rgb))) rgb(var(--background-start-rgb)); -} diff --git a/demos/diagnostics-app/src/app/index.tsx b/demos/diagnostics-app/src/app/index.tsx deleted file mode 100644 index 49a9ccd4..00000000 --- a/demos/diagnostics-app/src/app/index.tsx +++ /dev/null @@ -1,18 +0,0 @@ -import { createRoot } from 'react-dom/client'; -import { RouterProvider } from 'react-router-dom'; -import { SystemProvider } from '../components/providers/SystemProvider'; -import { ThemeProviderContainer } from '../components/providers/ThemeProviderContainer'; -import { router } from './router'; - -const root = createRoot(document.getElementById('app')!); -root.render(<App />); - -export function App() { - return ( - <ThemeProviderContainer> - <SystemProvider> - <RouterProvider router={router} /> - </SystemProvider> - </ThemeProviderContainer> - ); -} diff --git a/demos/diagnostics-app/src/app/login.tsx b/demos/diagnostics-app/src/app/login.tsx deleted file mode 100644 index 638fea35..00000000 --- a/demos/diagnostics-app/src/app/login.tsx +++ /dev/null @@ -1,19 +0,0 @@ -import React from 'react'; -import { LoginDetailsWidget } from '@/components/widgets/LoginDetailsWidget'; -import { useNavigate } from 'react-router-dom'; -import { DEFAULT_ENTRY_ROUTE } from '@/app/router'; -import { connector } from '@/components/providers/SystemProvider'; - -export default function LoginPage() { - const navigate = useNavigate(); - - return ( - <LoginDetailsWidget - onSubmit={async (values) => { - await connector.signIn(values); - - navigate(DEFAULT_ENTRY_ROUTE); - }} - /> - ); -} diff --git a/demos/diagnostics-app/src/app/page.tsx b/demos/diagnostics-app/src/app/page.tsx deleted file mode 100644 index 59c3d3b2..00000000 --- a/demos/diagnostics-app/src/app/page.tsx +++ /dev/null @@ -1,46 +0,0 @@ -import React from 'react'; -import { CircularProgress, Grid, styled } from '@mui/material'; -import { useNavigate } from 'react-router-dom'; -import { DEFAULT_ENTRY_ROUTE, LOGIN_ROUTE } from './router'; -import { connector } from '@/components/providers/SystemProvider'; - -export type LoginFormParams = { - email: string; - password: string; -}; - -/** - * This page shows a loading spinner we detect a session - * and redirect either to the app or auth flow. - */ -export default function EntryPage() { - const navigate = useNavigate(); - - React.useEffect(() => { - if (connector.hasCredentials()) { - navigate(DEFAULT_ENTRY_ROUTE); - } else { - navigate(LOGIN_ROUTE); - } - }, []); - - return ( - <S.MainGrid container> - <S.CenteredGrid item xs={12} md={6} lg={5}> - <CircularProgress /> - </S.CenteredGrid> - </S.MainGrid> - ); -} - -namespace S { - export const CenteredGrid = styled(Grid)` - display: flex; - justify-content: center; - align-items: center; - `; - - export const MainGrid = styled(CenteredGrid)` - min-height: 100vh; - `; -} diff --git a/demos/diagnostics-app/src/app/router.tsx b/demos/diagnostics-app/src/app/router.tsx deleted file mode 100644 index 0cacc549..00000000 --- a/demos/diagnostics-app/src/app/router.tsx +++ /dev/null @@ -1,37 +0,0 @@ -import { Outlet, createBrowserRouter } from 'react-router-dom'; -import LoginPage from './login'; -import EntryPage from './page'; -import ViewsLayout from './views/layout'; -import SQLConsolePage from './views/sql-console/page'; - -export const LOGIN_ROUTE = '/login'; -export const SQL_CONSOLE_ROUTE = '/sql-console'; - -/** - * Navigate to this route after authentication - */ -export const DEFAULT_ENTRY_ROUTE = SQL_CONSOLE_ROUTE; - -export const router = createBrowserRouter([ - { - path: '/', - element: <EntryPage /> - }, - { - path: LOGIN_ROUTE, - element: <LoginPage /> - }, - { - element: ( - <ViewsLayout> - <Outlet /> - </ViewsLayout> - ), - children: [ - { - path: SQL_CONSOLE_ROUTE, - element: <SQLConsolePage /> - } - ] - } -]); diff --git a/demos/diagnostics-app/src/app/views/layout.tsx b/demos/diagnostics-app/src/app/views/layout.tsx deleted file mode 100644 index bf74eb79..00000000 --- a/demos/diagnostics-app/src/app/views/layout.tsx +++ /dev/null @@ -1,132 +0,0 @@ -import ChecklistRtlIcon from '@mui/icons-material/ChecklistRtl'; -import ExitToAppIcon from '@mui/icons-material/ExitToApp'; -import MenuIcon from '@mui/icons-material/Menu'; -import NorthIcon from '@mui/icons-material/North'; -import SignalWifiOffIcon from '@mui/icons-material/SignalWifiOff'; -import SouthIcon from '@mui/icons-material/South'; -import TerminalIcon from '@mui/icons-material/Terminal'; -import WifiIcon from '@mui/icons-material/Wifi'; -import { - AppBar, - Box, - Divider, - Drawer, - IconButton, - List, - ListItem, - ListItemButton, - ListItemIcon, - ListItemText, - Toolbar, - Typography, - styled -} from '@mui/material'; -import React from 'react'; - -import { useNavigationPanel } from '@/components/navigation/NavigationPanelContext'; -import { usePowerSync } from '@journeyapps/powersync-react'; -import { useNavigate } from 'react-router-dom'; -import { LOGIN_ROUTE, SQL_CONSOLE_ROUTE } from '@/app/router'; - -export default function ViewsLayout({ children }: { children: React.ReactNode }) { - const powerSync = usePowerSync(); - const navigate = useNavigate(); - - const [syncStatus, setSyncStatus] = React.useState(powerSync.currentStatus); - const [openDrawer, setOpenDrawer] = React.useState(false); - const { title } = useNavigationPanel(); - - const NAVIGATION_ITEMS = React.useMemo( - () => [ - { - path: SQL_CONSOLE_ROUTE, - title: 'SQL Console', - icon: () => <TerminalIcon /> - }, - { - path: LOGIN_ROUTE, - title: 'Sign Out', - beforeNavigate: async () => { - await powerSync.disconnectAndClear(); - }, - icon: () => <ExitToAppIcon /> - } - ], - [powerSync] - ); - - React.useEffect(() => { - const l = powerSync.registerListener({ - statusChanged: (status) => { - setSyncStatus(status); - } - }); - return () => l?.(); - }, [powerSync]); - - return ( - <S.MainBox> - <S.TopBar position="static"> - <Toolbar> - <IconButton - size="large" - edge="start" - color="inherit" - aria-label="menu" - sx={{ mr: 2 }} - onClick={() => setOpenDrawer(!openDrawer)} - > - <MenuIcon /> - </IconButton> - <Box sx={{ flexGrow: 1 }}> - <Typography>{title}</Typography> - </Box> - <NorthIcon - sx={{ marginRight: '-10px' }} - color={syncStatus?.dataFlowStatus.uploading ? 'primary' : 'inherit'} - /> - <SouthIcon color={syncStatus?.dataFlowStatus.downloading ? 'primary' : 'inherit'} /> - {syncStatus?.connected ? <WifiIcon /> : <SignalWifiOffIcon />} - </Toolbar> - </S.TopBar> - <Drawer anchor={'left'} open={openDrawer} onClose={() => setOpenDrawer(false)}> - <S.PowerSyncLogo alt="PowerSync Logo" width={250} height={100} src="/powersync-logo.svg" /> - <Divider /> - <List> - {NAVIGATION_ITEMS.map((item) => ( - <ListItem key={item.path}> - <ListItemButton - onClick={async () => { - await item.beforeNavigate?.(); - navigate(item.path); - setOpenDrawer(false); - }} - > - <ListItemIcon>{item.icon()}</ListItemIcon> - <ListItemText primary={item.title} /> - </ListItemButton> - </ListItem> - ))} - </List> - </Drawer> - <S.MainBox>{children}</S.MainBox> - </S.MainBox> - ); -} - -namespace S { - export const MainBox = styled(Box)` - flex-grow: 1; - `; - - export const TopBar = styled(AppBar)` - margin-bottom: 20px; - `; - - export const PowerSyncLogo = styled('img')` - max-width: 250px; - max-height: 250px; - object-fit: contain; - padding: 20px; - `; -} diff --git a/demos/diagnostics-app/src/app/views/sql-console/page.tsx b/demos/diagnostics-app/src/app/views/sql-console/page.tsx deleted file mode 100644 index 011966f2..00000000 --- a/demos/diagnostics-app/src/app/views/sql-console/page.tsx +++ /dev/null @@ -1,108 +0,0 @@ -import React from 'react'; -import { usePowerSyncWatchedQuery } from '@journeyapps/powersync-react'; -import { Box, Button, Grid, TextField, styled } from '@mui/material'; -import { DataGrid } from '@mui/x-data-grid'; -import { NavigationPage } from '@/components/navigation/NavigationPage'; - -export type LoginFormParams = { - email: string; - password: string; -}; - -const DEFAULT_QUERY = ` -WITH oplog_stats AS (SELECT bucket, sum(length(data) + length(row_type) + length(row_id) + length(bucket) + length(key) + 50) as data_size, count() as operation_count FROM ps_oplog GROUP BY bucket) -SELECT local.id as name, stats.data_size, stats.operation_count, local.download_size, local.total_operations, local.downloading FROM local_bucket_data local JOIN oplog_stats stats ON stats.bucket = local.id`; - -export default function SQLConsolePage() { - const inputRef = React.useRef<HTMLInputElement>(); - const [query, setQuery] = React.useState(DEFAULT_QUERY); - const querySQLResult = usePowerSyncWatchedQuery(query); - - const queryDataGridResult = React.useMemo(() => { - const firstItem = querySQLResult?.[0]; - - return { - columns: firstItem - ? Object.keys(firstItem).map((field) => ({ - field, - flex: 1 - })) - : [], - rows: querySQLResult - }; - }, [querySQLResult]); - - return ( - <NavigationPage title="SQL Console"> - <S.MainContainer> - <S.CenteredGrid container> - <S.CenteredGrid item xs={12} md={10}> - <TextField - inputRef={inputRef} - fullWidth - label="Query" - defaultValue={DEFAULT_QUERY} - onKeyDown={(e) => { - const inputValue = inputRef.current?.value; - if (e.key == 'Enter' && inputValue) { - setQuery(inputValue); - } - }} - /> - </S.CenteredGrid> - <S.CenteredGrid item xs={12} md={2}> - <Button - sx={{ margin: '10px' }} - variant="contained" - onClick={() => { - const queryInput = inputRef?.current?.value; - if (queryInput) { - setQuery(queryInput); - } - }} - > - Execute Query - </Button> - </S.CenteredGrid> - </S.CenteredGrid> - - {queryDataGridResult ? ( - <S.QueryResultContainer> - {queryDataGridResult.columns ? ( - <DataGrid - autoHeight={true} - rows={queryDataGridResult.rows?.map((r, index) => ({ ...r, id: r.id ?? index })) ?? []} - columns={queryDataGridResult.columns} - initialState={{ - pagination: { - paginationModel: { - pageSize: 20 - } - } - }} - pageSizeOptions={[20]} - disableRowSelectionOnClick - /> - ) : null} - </S.QueryResultContainer> - ) : null} - </S.MainContainer> - </NavigationPage> - ); -} - -namespace S { - export const MainContainer = styled(Box)` - padding: 20px; - `; - - export const QueryResultContainer = styled(Box)` - margin-top: 40px; - `; - - export const CenteredGrid = styled(Grid)` - display: flex; - justify-content: center; - align-items: center; - `; -} diff --git a/demos/diagnostics-app/src/components/navigation/NavigationPage.tsx b/demos/diagnostics-app/src/components/navigation/NavigationPage.tsx deleted file mode 100644 index ac0cc307..00000000 --- a/demos/diagnostics-app/src/components/navigation/NavigationPage.tsx +++ /dev/null @@ -1,24 +0,0 @@ -import React from 'react'; -import { useNavigationPanel } from './NavigationPanelContext'; -import { Box, styled } from '@mui/material'; - -/** - * Wraps a component with automatic navigation panel title management - */ -export const NavigationPage: React.FC<React.PropsWithChildren<{ title: string }>> = ({ title, children }) => { - const navigationPanel = useNavigationPanel(); - - React.useEffect(() => { - navigationPanel.setTitle(title); - - return () => navigationPanel.setTitle(''); - }, [title, navigationPanel]); - - return <S.Container>{children}</S.Container>; -}; - -namespace S { - export const Container = styled(Box)` - margin: 10px; - `; -} diff --git a/demos/diagnostics-app/src/components/navigation/NavigationPanelContext.tsx b/demos/diagnostics-app/src/components/navigation/NavigationPanelContext.tsx deleted file mode 100644 index 4745475d..00000000 --- a/demos/diagnostics-app/src/components/navigation/NavigationPanelContext.tsx +++ /dev/null @@ -1,21 +0,0 @@ -import React from 'react'; - -export type NavigationPanelController = { - setTitle: (title: string) => void; - title: string; -}; - -export const NavigationPanelContext = React.createContext<NavigationPanelController>({ - setTitle: () => { - throw new Error(`No NavigationPanelContext has been provided`); - }, - title: '' -}); - -export const NavigationPanelContextProvider = ({ children }: { children: React.ReactNode }) => { - const [title, setTitle] = React.useState(''); - - return <NavigationPanelContext.Provider value={{ title, setTitle }}>{children}</NavigationPanelContext.Provider>; -}; - -export const useNavigationPanel = () => React.useContext(NavigationPanelContext); diff --git a/demos/diagnostics-app/src/components/providers/SystemProvider.tsx b/demos/diagnostics-app/src/components/providers/SystemProvider.tsx deleted file mode 100644 index 172fb919..00000000 --- a/demos/diagnostics-app/src/components/providers/SystemProvider.tsx +++ /dev/null @@ -1,36 +0,0 @@ -import { NavigationPanelContextProvider } from '@/components/navigation/NavigationPanelContext'; -import { AppSchema } from '@/library/powersync/AppSchema'; -import { TokenConnector } from '@/library/powersync/TokenConnector'; -import { PowerSyncContext } from '@journeyapps/powersync-react'; -import { WASQLitePowerSyncDatabaseOpenFactory } from '@journeyapps/powersync-sdk-web'; -import { CircularProgress } from '@mui/material'; -import Logger from 'js-logger'; -import React, { Suspense } from 'react'; - -Logger.useDefaults(); -Logger.setLevel(Logger.DEBUG); - -export const db = new WASQLitePowerSyncDatabaseOpenFactory({ - dbFilename: 'example.db', - schema: AppSchema -}).getInstance(); -export const connector = new TokenConnector(); - -if (connector.hasCredentials()) { - db.connect(connector); - connector.loadCheckpoint(); -} - -(window as any).db = db; - -export const SystemProvider = ({ children }: { children: React.ReactNode }) => { - return ( - <Suspense fallback={<CircularProgress />}> - <PowerSyncContext.Provider value={db}> - <NavigationPanelContextProvider>{children}</NavigationPanelContextProvider> - </PowerSyncContext.Provider> - </Suspense> - ); -}; - -export default SystemProvider; diff --git a/demos/diagnostics-app/src/components/providers/ThemeProviderContainer.tsx b/demos/diagnostics-app/src/components/providers/ThemeProviderContainer.tsx deleted file mode 100644 index 9b9c1d61..00000000 --- a/demos/diagnostics-app/src/components/providers/ThemeProviderContainer.tsx +++ /dev/null @@ -1,20 +0,0 @@ -import React from 'react'; -import { createTheme, ThemeProvider } from '@mui/material/styles'; - -export const ThemeProviderContainer: React.FC<React.PropsWithChildren<{}>> = ({ children }) => { - const theme = React.useMemo(() => { - return createTheme({ - palette: { - mode: 'dark', - primary: { - main: '#c44eff' - } - }, - typography: { - fontFamily: 'Rubik, sans-serif' - } - }); - }, []); - - return <ThemeProvider theme={theme}>{children}</ThemeProvider>; -}; diff --git a/demos/diagnostics-app/src/components/widgets/LoginDetailsWidget.tsx b/demos/diagnostics-app/src/components/widgets/LoginDetailsWidget.tsx deleted file mode 100644 index f5a3b5af..00000000 --- a/demos/diagnostics-app/src/components/widgets/LoginDetailsWidget.tsx +++ /dev/null @@ -1,167 +0,0 @@ -import React from 'react'; -import { Box, Button, ButtonGroup, FormGroup, Paper, TextField, Typography, styled } from '@mui/material'; -import { Formik, FormikErrors } from 'formik'; - -export type LoginDetailsFormValues = { - token: string; - endpoint: string; -}; - -export type LoginAction = { - title: string; - onClick: (values: LoginDetailsFormValues) => any; -}; - -export type LoginDetailsWidgetProps = { - onSubmit: (values: LoginDetailsFormValues) => any; -}; - -export const LoginDetailsWidget: React.FC<LoginDetailsWidgetProps> = (props) => { - return ( - <S.MainContainer> - <S.LoginContainer elevation={1}> - <S.LoginHeader variant="h4">Diagnostics Config</S.LoginHeader> - <S.LogoBox> - <S.Logo alt="PowerSync Logo" width={400} height={100} src="/powersync-logo.svg" /> - </S.LogoBox> - <Formik<LoginDetailsFormValues> - initialValues={{ token: '', endpoint: '' }} - validateOnChange={false} - validateOnBlur={false} - validate={(values) => { - const errors: FormikErrors<LoginDetailsFormValues> = {}; - if (!values.token) { - errors.token = 'Required'; - } - - return errors; - }} - onSubmit={async (values, { setSubmitting, setFieldError }) => { - try { - const endpoint = values.endpoint || getTokenEndpoint(values.token); - if (endpoint == null) { - throw new Error('endpoint is required'); - } - await props.onSubmit({ - token: values.token, - endpoint - }); - } catch (ex: any) { - console.error(ex); - setSubmitting(false); - setFieldError('endpoint', ex.message); - } - }} - > - {({ values, errors, handleChange, handleBlur, isSubmitting, handleSubmit }) => ( - <form onSubmit={handleSubmit}> - <FormGroup> - <S.TextInput - id="token-input" - label="PowerSync Token" - name="token" - type="text" - autoComplete="disabled" - onChange={handleChange} - onBlur={handleBlur} - value={values.token} - error={!!errors.token} - helperText={errors.token} - InputLabelProps={{ shrink: true }} - /> - <S.TextInput - id="endpoint-input" - label="PowerSync Endpoint" - name="endpoint" - type="url" - autoComplete="url" - onChange={handleChange} - onBlur={handleBlur} - value={values.endpoint} - placeholder={getTokenEndpoint(values.token) ?? ''} - error={!!errors.endpoint} - helperText={errors.endpoint} - InputLabelProps={{ shrink: true }} - /> - </FormGroup> - <S.ActionButtonGroup> - <Button variant="outlined" type="submit" disabled={isSubmitting}> - Proceed - </Button> - </S.ActionButtonGroup> - </form> - )} - </Formik> - </S.LoginContainer> - </S.MainContainer> - ); -}; - -namespace S { - export const MainContainer = styled(Box)` - display: flex; - flex-direction: column; - justify-content: center; - align-items: center; - min-height: 100vh; - `; - - export const LoginContainer = styled(Paper)` - width: 100%; - padding: 20px; - display: flex; - flex-grow: 1; - flex-direction: column; - justify-content: center; - - ${(props) => props.theme.breakpoints.up('sm')} { - flex-grow: 0; - max-width: 600px; - } - `; - - export const LoginHeader = styled(Typography)` - margin-bottom: 20px; - `; - - export const LogoBox = styled(Box)` - display: flex; - flex-direction: column; - justify-content: center; - align-items: center; - margin: 40px; - `; - - export const Logo = styled('img')` - width: auto; - height: auto; - max-width: ${(props) => props.width}px; - max-height: ${(props) => props.height}px; - margin-bottom: 10px; - `; - - export const ActionButtonGroup = styled(ButtonGroup)` - margin-top: 20px; - width: 100%; - display: flex; - justify-content: end; - `; - - export const TextInput = styled(TextField)` - margin-bottom: 20px; - `; -} - -function getTokenEndpoint(token: string) { - try { - const [head, body, signature] = token.split('.'); - const payload = JSON.parse(atob(body)); - const aud = payload.aud as string | undefined; - if (aud?.endsWith('.journeyapps.com')) { - return aud; - } - return null; - } catch (e) { - return null; - } -} diff --git a/demos/diagnostics-app/src/index.html b/demos/diagnostics-app/src/index.html deleted file mode 100644 index de7a97c2..00000000 --- a/demos/diagnostics-app/src/index.html +++ /dev/null @@ -1,11 +0,0 @@ -<html lang="en"> - <head> - <meta name="theme-color" content="#c44eff" /> - <link rel="apple-touch-icon" href="/icons/icon.png" /> - <link rel="stylesheet" href="./app/globals.css" /> - <script type="module" src="./app/index.tsx"></script> - </head> - <body> - <div id="app"></div> - </body> -</html> diff --git a/demos/diagnostics-app/src/library/powersync/AppSchema.ts b/demos/diagnostics-app/src/library/powersync/AppSchema.ts deleted file mode 100644 index f6f61f73..00000000 --- a/demos/diagnostics-app/src/library/powersync/AppSchema.ts +++ /dev/null @@ -1,18 +0,0 @@ -import { column, Schema, TableV2 } from '@journeyapps/powersync-sdk-web'; - -export const local_bucket_data = new TableV2( - { - total_operations: column.integer, - last_op: column.text, - download_size: column.integer, - downloading: column.integer - }, - { localOnly: true } -); - -export const AppSchema = new Schema({ - local_bucket_data -}); - -export type Database = (typeof AppSchema)['types']; -export type LocalBucketData = Database['local_bucket_data']; diff --git a/demos/diagnostics-app/src/library/powersync/TokenConnector.ts b/demos/diagnostics-app/src/library/powersync/TokenConnector.ts deleted file mode 100644 index 116159f6..00000000 --- a/demos/diagnostics-app/src/library/powersync/TokenConnector.ts +++ /dev/null @@ -1,169 +0,0 @@ -import { db } from '@/components/providers/SystemProvider'; -import { - AbstractPowerSyncDatabase, - BaseObserver, - BucketState, - BucketStorageAdapter, - BucketStorageListener, - Checkpoint, - PowerSyncBackendConnector, - SyncDataBatch, - WebRemote, - WebStreamingSyncImplementation, - WebStreamingSyncImplementationOptions -} from '@journeyapps/powersync-sdk-web'; -import { LocalBucketData } from './AppSchema'; - -export interface Credentials { - token: string; - endpoint: string; -} - -export class TokenConnector implements PowerSyncBackendConnector { - async fetchCredentials() { - const value = localStorage.getItem('powersync_credentials'); - if (value == null) { - return null; - } - return JSON.parse(value); - } - - async uploadData(database: AbstractPowerSyncDatabase) { - // Discard any data - const tx = await database.getNextCrudTransaction(); - await tx?.complete(); - } - - async signIn(credentials: Credentials) { - localStorage.setItem('powersync_credentials', JSON.stringify(credentials)); - await db.connect(this); - } - - hasCredentials() { - return localStorage.getItem('powersync_credentials') != null; - } - - async loadCheckpoint(): Promise<Checkpoint> { - const remote = new WebRemote(this); - - let resolveCheckpoint: any = null; - let checkpointPromise: Promise<Checkpoint> = new Promise((resolve, reject) => { - resolveCheckpoint = resolve; - }); - - const adapter = new RecordingStorageAdapter(db); - adapter.registerListener({ - checkpointAvailable(checkpoint) { - resolveCheckpoint(checkpoint); - } - }); - - const syncOptions: WebStreamingSyncImplementationOptions = { - adapter, - remote, - uploadCrud: async () => { - // No-op - }, - identifier: 'diagnostics' - }; - const sync = new WebStreamingSyncImplementation(syncOptions); - try { - await sync.connect(); - - const checkpoint = await checkpointPromise; - console.log({ checkpoint }); - return checkpoint; - } finally { - // await sync.disconnect(); - } - } -} - -interface MockStorageListener extends BucketStorageListener { - checkpointAvailable(checkpoint: Checkpoint): void; -} - -class RecordingStorageAdapter extends BaseObserver<MockStorageListener> implements BucketStorageAdapter { - private db: AbstractPowerSyncDatabase; - - constructor(db: AbstractPowerSyncDatabase) { - super(); - this.db = db; - } - - async getBucketStates(): Promise<BucketState[]> { - const buckets = await this.db.getAll<LocalBucketData>('SELECT * FROM local_bucket_data'); - return buckets.map((bucket) => { - return { - bucket: bucket.id, - op_id: bucket.last_op ?? '0' - }; - }); - } - - startSession() {} - async removeBuckets(buckets: string[]) { - if (buckets.length == 0) { - return; - } - await this.db.execute('DELETE FROM local_bucket_data WHERE id IN (SELECT e.value FROM json_each(?) e)', [ - JSON.stringify(buckets) - ]); - } - async setTargetCheckpoint(checkpoint: Checkpoint) { - await this.db.writeTransaction(async (tx) => { - for (let bucket of checkpoint.buckets) { - console.log('save', bucket); - await tx.execute( - `INSERT OR REPLACE INTO local_bucket_data(id, total_operations, last_op, download_size, downloading) - VALUES ( - ?, - ?, - IFNULL((SELECT last_op FROM local_bucket_data WHERE id = ?), '0'), - IFNULL((SELECT download_size FROM local_bucket_data WHERE id = ?), 0), - IFNULL((SELECT downloading FROM local_bucket_data WHERE id = ?), TRUE) - )`, - [bucket.bucket, bucket.count, bucket.bucket, bucket.bucket, bucket.bucket] - ); - console.log('saved', bucket); - } - }); - this.iterateListeners((l) => { - l.checkpointAvailable?.(checkpoint); - }); - } - async syncLocalDatabase(checkpoint: Checkpoint) { - await this.db.execute('UPDATE local_bucket_data SET downloading = FALSE'); - return { checkpointValid: true, ready: true }; - } - async hasCompletedSync() { - return false; - } - async hasCrud() { - return false; - } - getMaxOpId() { - return '9223372036854775807'; - } - async init() {} - async saveSyncData(batch: SyncDataBatch) { - await this.db.writeTransaction(async (tx) => { - for (let bucket of batch.buckets) { - const size = JSON.stringify(bucket.data).length; - await tx.execute( - 'UPDATE local_bucket_data SET download_size = IFNULL(download_size, 0) + ?, last_op = ?, downloading = ? WHERE id = ?', - [size, bucket.next_after, bucket.has_more, bucket.bucket] - ); - } - }); - } - async dispose() {} - async updateLocalTarget(cb: any) { - return false; - } - async getCrudBatch(limit: any) { - return null; - } - async forceCompact() {} - async autoCompact() {} -} diff --git a/demos/diagnostics-app/tsconfig.json b/demos/diagnostics-app/tsconfig.json deleted file mode 100644 index 7f92a0bc..00000000 --- a/demos/diagnostics-app/tsconfig.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "compilerOptions": { - "target": "es6", - "lib": ["dom", "dom.iterable", "esnext"], - "allowJs": true, - "skipLibCheck": true, - "strict": true, - "noEmit": true, - "esModuleInterop": true, - "module": "esnext", - "moduleResolution": "bundler", - "resolveJsonModule": true, - "isolatedModules": true, - "jsx": "preserve", - "incremental": true, - "paths": { - "@/*": ["./src/*"] - } - }, - "exclude": ["node_modules"], - "references": [ - { - "path": "../../packages/powersync-sdk-web" - } - ] -} diff --git a/demos/diagnostics-app/vite.config.mts b/demos/diagnostics-app/vite.config.mts deleted file mode 100644 index e5d223f5..00000000 --- a/demos/diagnostics-app/vite.config.mts +++ /dev/null @@ -1,74 +0,0 @@ -import wasm from 'vite-plugin-wasm'; -import topLevelAwait from 'vite-plugin-top-level-await'; -import { fileURLToPath, URL } from 'url'; - -import { defineConfig } from 'vite'; -import react from '@vitejs/plugin-react'; -import { VitePWA } from 'vite-plugin-pwa'; - -// https://vitejs.dev/config/ -export default defineConfig({ - root: 'src', - build: { - outDir: '../dist', - rollupOptions: { - input: 'src/index.html' - }, - emptyOutDir: true - }, - resolve: { - alias: [{ find: '@', replacement: fileURLToPath(new URL('./src', import.meta.url)) }] - }, - publicDir: '../public', - envDir: '..', // Use this dir for env vars, not 'src'. - optimizeDeps: { - // Don't optimize these packages as they contain web workers and WASM files. - // https://github.com/vitejs/vite/issues/11672#issuecomment-1415820673 - exclude: ['@journeyapps/wa-sqlite', '@journeyapps/powersync-sdk-web'], - include: ['object-hash', 'uuid', 'event-iterator', 'js-logger', 'lodash', 'can-ndjson-stream'] - }, - plugins: [ - wasm(), - topLevelAwait(), - react(), - VitePWA({ - registerType: 'autoUpdate', - includeAssets: ['powersync-logo.svg', 'supabase-logo.png', 'favicon.ico'], - manifest: { - theme_color: '#c44eff', - background_color: '#c44eff', - display: 'standalone', - scope: '/', - start_url: '/', - name: 'PowerSync React Demo', - short_name: 'PowerSync React', - icons: [ - { - src: '/icons/icon-192x192.png', - sizes: '192x192', - type: 'image/png' - }, - { - src: '/icons/icon-256x256.png', - sizes: '256x256', - type: 'image/png' - }, - { - src: '/icons/icon-384x384.png', - sizes: '384x384', - type: 'image/png' - }, - { - src: '/icons/icon-512x512.png', - sizes: '512x512', - type: 'image/png' - } - ] - } - }) - ], - worker: { - format: 'es', - plugins: () => [wasm(), topLevelAwait()] - } -}); diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 350dd160..72db7516 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -91,76 +91,6 @@ importers: specifier: ~5.2.2 version: 5.2.2 - demos/diagnostics-app: - dependencies: - '@journeyapps/powersync-react': - specifier: workspace:* - version: link:../../packages/powersync-react - '@journeyapps/powersync-sdk-web': - specifier: workspace:* - version: link:../../packages/powersync-sdk-web - '@journeyapps/wa-sqlite': - specifier: ~0.1.1 - version: 0.1.1 - '@mui/material': - specifier: ^5.15.12 - version: 5.15.12(@emotion/react@11.11.4)(@emotion/styled@11.11.0)(@types/react@18.2.65)(react-dom@18.2.0)(react@18.2.0) - '@mui/x-data-grid': - specifier: ^6.19.6 - version: 6.19.6(@mui/material@5.15.12)(@mui/system@5.15.12)(@types/react@18.2.65)(react-dom@18.2.0)(react@18.2.0) - js-logger: - specifier: ^1.6.1 - version: 1.6.1 - lodash: - specifier: ^4.17.21 - version: 4.17.21 - react: - specifier: ^18.2.0 - version: 18.2.0 - react-dom: - specifier: ^18.2.0 - version: 18.2.0(react@18.2.0) - react-router-dom: - specifier: ^6.22.3 - version: 6.22.3(react-dom@18.2.0)(react@18.2.0) - devDependencies: - '@types/lodash': - specifier: ^4.14.202 - version: 4.17.0 - '@types/node': - specifier: ^20.11.25 - version: 20.11.26 - '@types/react': - specifier: ^18.2.64 - version: 18.2.65 - '@types/react-dom': - specifier: ^18.2.21 - version: 18.2.21 - '@vitejs/plugin-react': - specifier: ^4.2.1 - version: 4.2.1(vite@5.1.6) - autoprefixer: - specifier: ^10.4.18 - version: 10.4.18(postcss@8.4.35) - babel-loader: - specifier: ^9.1.3 - version: 9.1.3(@babel/core@7.24.0)(webpack@5.90.3) - typescript: - specifier: ^5.4.2 - version: 5.4.2 - vite: - specifier: ^5.1.5 - version: 5.1.6(@types/node@20.11.26) - vite-plugin-pwa: - specifier: ^0.19.2 - version: 0.19.2(vite@5.1.6)(workbox-build@7.0.0)(workbox-window@7.0.0) - vite-plugin-top-level-await: - specifier: ^1.4.1 - version: 1.4.1(rollup@2.79.1)(vite@5.1.6) - vite-plugin-wasm: - specifier: ^3.3.0 - version: 3.3.0(vite@5.1.6) - demos/example-nextjs: dependencies: '@emotion/react': @@ -14911,22 +14841,6 @@ packages: - supports-color dev: true - /@vitejs/plugin-react@4.2.1(vite@5.1.6): - resolution: {integrity: sha512-oojO9IDc4nCUUi8qIR11KoQm0XFFLIwsRBwHRR4d/88IWghn1y6ckz/bJ8GHDCsYEJee8mDzqtJxh15/cisJNQ==} - engines: {node: ^14.18.0 || >=16.0.0} - peerDependencies: - vite: ^4.2.0 || ^5.0.0 - dependencies: - '@babel/core': 7.24.0 - '@babel/plugin-transform-react-jsx-self': 7.23.3(@babel/core@7.24.0) - '@babel/plugin-transform-react-jsx-source': 7.23.3(@babel/core@7.24.0) - '@types/babel__core': 7.20.5 - react-refresh: 0.14.0 - vite: 5.1.6(@types/node@20.11.26) - transitivePeerDependencies: - - supports-color - dev: true - /@vitest/browser@1.3.1(vitest@1.3.1)(webdriverio@8.32.3): resolution: {integrity: sha512-pRof8G8nqRWwg3ouyIctyhfIVk5jXgF056uF//sqdi37+pVtDz9kBI/RMu0xlc8tgCyJ2aEMfbgJZPUydlEVaQ==} peerDependencies: @@ -22712,6 +22626,8 @@ packages: peerDependenciesMeta: webpack: optional: true + webpack-sources: + optional: true dependencies: webpack: 5.89.0(esbuild@0.19.11) webpack-sources: 3.2.3 @@ -31040,7 +30956,7 @@ packages: vite: '>=2.8' dependencies: '@rollup/plugin-virtual': 3.0.2(rollup@2.79.1) - '@swc/core': 1.4.2 + '@swc/core': 1.4.6 uuid: 9.0.1 vite: 5.1.5(@types/node@20.11.25) transitivePeerDependencies: @@ -31068,7 +30984,7 @@ packages: vite: '>=2.8' dependencies: '@rollup/plugin-virtual': 3.0.2(rollup@2.79.1) - '@swc/core': 1.4.2 + '@swc/core': 1.4.6 uuid: 9.0.1 vite: 5.1.1(@types/node@20.11.17) transitivePeerDependencies: