From 7235313941ed333186f761845dc7ea4afeb5fbc3 Mon Sep 17 00:00:00 2001 From: clibequilibrium <105135724+clibequilibrium@users.noreply.github.com> Date: Wed, 7 Oct 2026 21:10:23 -0400 Subject: [PATCH 1/3] CLI bin path drops its ./ prefix npm 11 on Windows rejects "./dist/index.js" as a bin target and silently strips the bin from the published package - npx frostbase would install a CLI with no command. "dist/index.js" is accepted by every npm version. The file's UTF-8 BOM, which made Prettier refuse to parse it, goes too. --- cli/package.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cli/package.json b/cli/package.json index ce5a763..4c6909e 100644 --- a/cli/package.json +++ b/cli/package.json @@ -1,4 +1,4 @@ -{ +{ "name": "@frostbase/cli", "version": "0.7.0", "description": "Scaffold and deploy a Frostbase backend on your own Cloudflare account.", @@ -23,7 +23,7 @@ "access": "public" }, "bin": { - "frostbase": "./dist/index.js" + "frostbase": "dist/index.js" }, "files": [ "dist", From f0bad7ac55f31cecbf1fe2d3354a80e9d1540c4c Mon Sep 17 00:00:00 2001 From: clibequilibrium <105135724+clibequilibrium@users.noreply.github.com> Date: Wed, 7 Oct 2026 21:18:09 -0400 Subject: [PATCH 2/3] Revert "Swap the two banner file names" The swap was a misreading: before the rename, og:image, twitter:image and the README all used github-header.png at 2172x724, and social-preview.png (1280x640) was only the file uploaded to GitHub's repository social-preview setting. This restores that. --- static/brand/github-header.png | Bin 37651 -> 58827 bytes static/brand/github-header.svg | 32 ++++++++++++++++---------------- static/brand/social-preview.png | Bin 58827 -> 37651 bytes static/brand/social-preview.svg | 32 ++++++++++++++++---------------- 4 files changed, 32 insertions(+), 32 deletions(-) diff --git a/static/brand/github-header.png b/static/brand/github-header.png index aa14c637165a90e550b52bfc0958b60dde2a663c..b6ef1563a62919077057aad7a7b75f8019591643 100644 GIT binary patch literal 58827 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 Dm|IXR diff --git a/static/brand/github-header.svg b/static/brand/github-header.svg index 2397d82..f856540 100644 --- a/static/brand/github-header.svg +++ b/static/brand/github-header.svg @@ -1,22 +1,22 @@ - - - + + + - Frostbase - The open-source backend built for Cloudflare - - - Auth - - Database - - Durable Objects - - Workers AI - - Self-hostable + Frostbase + The open-source backend built for Cloudflare + + + Auth + + Database + + Durable Objects + + Workers AI + + Self-hostable diff --git a/static/brand/social-preview.png b/static/brand/social-preview.png index b6ef1563a62919077057aad7a7b75f8019591643..aa14c637165a90e550b52bfc0958b60dde2a663c 100644 GIT binary patch literal 37651 zcmdqJXIN8Rw=TQ_C@2DA0i-JmDguHay;uO1ZlN~;>0NpYihxQ}kPf2sme6Z}V4)d$ zNq_*M_Z~VVIV(P8zt8^myZ8R_oj-@`N?BQR%{AtnV~%l;dyK_9O?73uldLBJ0HAyL z;QnI(I0k;D2&6dd<8#FI6u&P2>{ac<)l%gV+4oHvr)V zzyCMg0Tc@0`Ts^b0KyHP|7Q>XUOIq60c`x&kp6M-$6x^nHvsP|oXi*EqfjaH(5Hi^o9s! zz8DX^*c%PRSmJomNHiPtgX+-kNT$;s3sx0W7yxJtFNM2fdvC8j6K( zrPNsYmv#sHjqRtE5J2yzkt**_WLZ84q)>o-0Zvl|f}18y3cBS8F7y`wR0|4)KU(=z z$&rt*0#p!g001YLtKI;d?W@2!ptpiZNXA`FrF9Zt*=XTn1}FgFofI^efqe2Lu;41c z_idM!BQ(wD;0d`qZml^6@@jy$UU?1u z|7k{fUN-_e`GrLH6lt1#O7l<2|Kl3*ZX<2?JkDxxkd2(Q0M2VFr%kv8&MunVo@7V5 z2ntC7fEvUVL9c(&e#LL_IMkD)O8G zKuGz=TjCnCDF<)5b35FL`m|;P)b<9a4Wuf`gFFq63PK*VhGzdecuuXECpCCku~j&W zByXaexweSSW;rBncV2kPw`k$8`UFMeom0S+B_=X?_KUn`#A52p45y!iy#W^n3>fM% znh|pp54oI8T_+TouSCgg_Do}O0m9ydZOo&?g_UV8(w>17 za<6L-w?S$_wyaI=9OWSwb{Ka2%8A;rR zUV-kT($GVZLsCs8+rdJ97rn>7QOCUOloc9!-jW(U!J|}FccUWmRn?eJS-1CkhZE8F zUdy1ifzz!$$hZ2RA?eeJB^LD(mbZ z;)pum_VyaS*4aq#p=IiksmN}f245JQpk6vX%LPLSX1N>qjjGsGg?P`A>=vpRt~_C= zl^|dvn$^}yyIl=^{M5#lwk&2hb}!?Fjtp(&>k@9%EDX3~7SNbSBvMuHl>O{4>6mxY zXBxCo_cK1u*IJZLFsFdN~I&EVk)coB~=GwH`GbNQFsvUnb@cwR=5eyp)3b!sVd z8Cciwsivf))Y(28PFjwF9^L!u-ue^Q;-)U;{Y+}~o9#vK^^2j|-z?tvzzQ{H#gY4K z)8<^hmn0|O^29`hGTU7kh@82)IBVc|p$;fMS9rg*bpCyjILUn_j*Bmu9qJ_FL)^S0 z85g3F6r(zJ*e-fByw#ajVa%0zPNqX*HqK%z-RL;6E}`LaVlC-d+fhZDQ&&VqxvUxD zepTqiSt|zhc^z9xsepo@7&Y}eX#INWzCYefWU7@dx(8qB>2w^pePnE&1=#E)DF@#% zdi;k|plHm8n3kUmM_YHO<_rNhYfqcJT&W1&y(7!m(6mLJU*Jj=X@@a3tQIrM81utN zOxNMNG?XGZ`GCT+K;(#pp2%8?)vzmLn)@&1z6H9UC8DnAxHewC5gl6}l2VJ~BU-`z z$09EKzsgmV_%JWpdu3xJb7Y6&fHGT6gJJbDbsz2v!sdMtS|aaCtrXpgREb>AC0D<^ zfoxw<;7ccH?N;*fIkZ*3t(&0`VCb@bk*?~1{|ul+TS@aP;1G*D^BAq?yHtN%jV%Pv`Q z>u>t~_v)752-bW?iBA-b4}DXHhlbg5L(?HVJLG_DWqAbiKUh>x%?o5neLj5MHM$>}t~xUFgbwtXXw zl#MLUcSGfm?o52hF$TQ$CX~<7Gh?sJLP1wk^}^SwcBpi^MV>hE1+Fn`LfSTo5jJn3 z1*RYtLqy8n*N((vX$}T75;mA;94o8Xbq|@{#K+xYHNis2jOYu>qx~GCR~(7YMSLa% z9qc-EGeaz-n@q0>OO+np{$tff&mQIfb}^10Ag1A&*hj5T_yNNTANNfRl9(gn^cYUmDcAfT5!-~ zHL7;%|9N*wWGa^pQLuF1=5%}y-oqNkIkha%_wg;_x&Q3v?JgrR5iznD#W~`OM+*l6 zpcA403OFxUpJ*$B5==Nw02`u3VZk5v%y#y)ukXg+YIc26w; z&YgK0r|zN(Lr{7$CNYr6tSHx=CbdbWDsv)vNY`e z4t}j;H7%m0<0{?GMhDz5Ef+ISr2DM|X=J!S6{z;^&JAO)36ui^zLC={AV`wv}}+Kihb73R|mW99nJ4Syi~4!(n2A zbpm)&p>O(C9DOSMAu9>jR;PeK!BkLTL~-%L)GpV?-zGrp=)fw{zT z)MiK0^D@Tm?G_b@j~Y1ESLB1{>DdH2q#`>x4=v#Rg`%-~p>LoSO+`6-pz zXf`CSVgD0Fz81dH&RTY^h~TG!PpsMO9L8VgxVJIjFea%{wG+IV?=%2ACb9B?Uw`Sd z!LSgIxSlrYC|N{^<3v?#(z}RLG-oK=evV&+9WQ&LV;CKtgm756=;YSaEo#dvSUs&G z&|!7(98(=d3EX9KC%$Q;P>{L+(1*}`JI(`yYrW*rJXlwj>*bo4SsxE-PSNNx#aA)%ex(XYP}>~aZ4er=p8Dwiqm*Xt{c+ty-7(!&ef%(pEA*3yAOsR~ zw~u5K7j{V1b^9E~B;ep>{2O?7Og+(n=ELU95tNNJR?zD(ItlxX>n&Ofq$v0&;ms8V zIvUW(bPCW}3;PfwBb@qr57gw3hU3sS{V5K%Yh`#jqq^Yd3;fn)Ev;`jbmBNO$8Ins zaJbwXUFecpcs0r3RfYVhDmy>fth^|&k_P&J-D)O_azXpbB}pJq3c7fd_a_p@FbZ^c zO5h7EdZ%sNtERpOt3=!Mi9aMA*36~idi|g~WmVA~x1Cn+Uf4cv;!EHY=n#)Xpk+EG zck90QMLISpMt1d>H}eTK?7{Bh!v&k}i2>n44lz5red`Y@{n?@(WiNXgqj)x(bznXw zyXggvJ=!mLvTs-iAmS?T@VgtNOWO~u+%~gky?fqaUuR1qv3zL}?1;&8oAc3oPRbsb zIS2sW%bw~OEME`g*$^A3X9qOrzz~6q)@gv`on0hJtY)H_t#3VVVYWVt$+yR$DmD(< z5duwA3=?;-fi}BhY+bxsI6Rq>R@t16%CpSfuqz%9b|04E39UR)r#gV*enpRw+o9)^ zpykcB^^Rjh6+bo~%T{0N<0xA&4z9BE^S)6lcPk26rBpStADkoI5PRpwqp!1dWod#> z?VK}u1`G~5B^I;42Q`L&uJR9K7*jdv{?Nql$8L0lQshf{YQU}I>70hnOE9!(Y;K~d znhEk2o$9{F;ABH=Npm(+IlNU%StUZ!CEE58yF=v-t&>bh%@}<-b>zVSbG|xh7rJLO z+_V>~WBd@hyU^t)KvGjH!93VbGr!f`F-K5--4GmI&fdJwl5$@wZsepn-#8> zbe71cA2uxyFyvI6EpShaV2lbw6O*ft_A1#)Q&sY{gKrxRxE2HG0UDG3{j+yz0Y>2V z>Zd2@@^aZUzfJStIl_z(G*94gOU2~CY~qF2Vjf?C`YsrQ35j-?5I5)C?Jl6p{PqRO z;f^ZejIzM@CY9SN+3LxOr?`Y`1+axW6phF1kRRl_%eNFn%?u~Beb!`vIz4MQG!3=+ zmoS>vmbNDzL8)dHs>rVd?lhxRD!W_|%& zP=>_jRGSAo6wB6e(}UN{4!`e{*=)@)7=}U*v82lk(D{39VBEw5EGqyK?oC%5$O4RL z*6}ymXm|_|BkpLuk90KP2Tp~-i5_;Nl`2M>%}$=vU+67_ea7g6<790mJ7gsme>W>AvOPi402mAbiU+iGQBApsU;`d-17xx_q(m53zs$2+3JTW$B*qGK z`gI**@nYL(Os`aMjE9j?en#mFR0TV=+16a!VamYAnZ%a|Pdcik1n2~(K7+as4D3Gv zA?I75*aN6StqM4y$S7*P^+!faxRaCDEf2qm;#DwQcN|y*07lD_q5k?+mCd zS0k1Qh!^=l#`j?K3#z;Cds|zDDK^409BeiyV*>U8TXY8Xo~fzZq* zuSRWIGx?rBMs{~NXXT=e(6K;#C$y3WoAuyy%mv{WcYNbAp7y!^4DaZ5tb4K}DGf_z z7WkQ-Jl~5oUfSy@Fa}t@j=WYu%G?ywAzRCrX%8*gz3)lsDuo|lBOMIg-b_255#t=~ zg8+~(piBC_?a-p`!|idEQ|)TA=RWWDb;(&*a{mZbEU7r0Zu$Vk*n3~-QK`CHT);kOCz(k{R>xIC43`Joq;QXr} zE$Axz+PTLY2PF|WhN`%{#$SC$l`mML^3^>zqB|b7bYO#6kCUdjpehYpSwg&gMf%Sw zDke2g0@7lOjxxYG_(R=%B<88kSldgLuehe*^M~YQD)A3pPynt}Xz9faV|mu3Q=@e8%Tke9982Uh$9yXGoxGZ204f%aTLYd1LVU zk-XV*28s1Am2@<{`8p z?>VM^JW%-k+7YcBmcztJ1uJrQBBDji!^ptz2R~bYPVD23`@3!+bDi7yC(P!c13Yo& zMc?ravq^T+rLypvonde;cI6JysR8|z%h`g{Y5VO~(QQw%8QQ?P3z+kqW=X1@?ETJ6 z*f4^)sRA*^o<_=)ja$d{7q1(-ZB40rfs9c!tZK+(z5;#0v(P-am2$F!zCkQLl^{iyp>LSg!E;XS;iEwUT`&?x6oNe{$pF zf6#xvQoxAgAqN6ZyS`F|>nRazTrxDh&6$XvJOoKB^!bb9T~MNSUxt*^Jj9gBonwK* z?!i$P8mV&@$2sAJd;}8%2F2RmUPxwg?9dej+JBl}y@kUQEfxgi zIk(~hr{Xvgo^n!6D?+%z6vWfN8BkN%TjGg*k5_8d?W3&H{43W*I+A3ovb>!d>`~K` zVL}h%CqUG-^5sn+v$0#xhZBGmxa)XYx<|_7pY5f~gH*_pn$uq9P+N2|w4bQ&iGhkI zdUoDwYmfEhjoFnFsBcs3+x2j>aufrW*H~q2%|rqYGgMGsI%H~yq4Njsyb1q+w;s5Q zkH!1tjl1kx57&P&sQyzCSdRWy12zV(*rNpv=vA5b4t$j@Q2|@FUuX6~PBDRuB^*$U zeZ$^!qtRtulH&Uyo{vVKVt>o{21-~WJ!;lS5WP&%xR;N4XKvk7fxG6{!zJh9pJ;vW+z_@8>;Do-c=S#F_vGMMmj~%k<^WM zcl(m6@$XhM{@APJxbP$pst&Li2kg(>#S;&4q$Je@i5eKzY%=p&n>=x&3O-uJqZIkD za?rJ)++%#y6PN0@T_ALhUeiu;ao#-iKENWj%1Za0l|GlZ;~KGI15LU?w~a_ zbN?Y)h~;lCx_FMVG3T>S>G~0aL~*^?1$r54#fcaDKl$Y3Bq~lct3A+W_j}+9G6I)L z`!QTqSAcM)(0iAFLh(gM$k|Hy?Df+75$`q^6z!_M8|eu7UIhI?fCvi@D}x1~+t#WU zmvzTLroF=4Vq))-At#f@u(?{va7>mE>OalUQ^0HBnGQ4P&0pKiRlZ#~Zxm+-uklz< z=8acklH1HRk4__QZO2hGTE|L0rD#lSsoG^ps#yH`9VN2lA61C^wLFLolWqTWJa^FR zdtn@g?>ObqY0Ab;rq^Za0mUwxbfuY@CK9tU#k1O7-39S%HQp zF)QIaR7KQABfYNS#^p;seTHt^RkUh$VEPVQs!mSMbWsJusPY#SxDjc+m9G@CmtR); zUL()YrLZF38c|*B!>ptco|TvAXHvYAgKy1$a&v>J5z{caof5v2LO(zgP#m7KHyCD*nq@x0<=Zcm0sC2Us|R~qL& z`wH$Kh&RO5fh>L7QV}wa-M`(%VF)gNG{JBZ*2P6!Ka8vd{D}K=i0eT3M+*aokLNoY z%}+;7QU=z=ZAGvk#@ymZj(*G{&BivTD#aY4(6%e50A*FZ58=kuDk2_u|2`)77!OIw z#5&AETR$ZxPHCrJ3KqpY>TZ>GpewcBd_*fBf1_@btu5tAnl(!5JPfPjur-!@OV|4F z)9cX)C3R~YruE}guY(vVeJ;AjiugptcRMsXk$>$G!dYWz?Z{%%aSb#Go=mAkNC zpEi0uEZwNS@DSIWF+v74rVWC-S41J|6G#B^}$>NTuSycknwM!?8A>c zYEeSS^sN0NBVQL4eAG;lUrL>kwU36}eo3W0#wh@gqwSElrST8}!iy`CDH?D3c4P!2 zceWj5YG+;~yc~`>pTqHO-1JyrA3Y*}{opArkOQyI9Oq_ts?5rM?iL|9a?A^L{`?}X z;C1$BrST#7OH+_IJdcWeB?~zOp)k{klzGtFve;j8>K&-J=LtH8nBDNF(r{`h5Ty1di%{u zleDZ4NP8`~Xb^6?KLZj%E-H`eo`fiiULZzXH{^3lP4ds`3F23SZfqBwOEMlQ4yllM z@5sM>s^D1QRFzcbx@ZoUi$AL65tXsxoV;x(`h1S$;io93WXpx;W}uC$s8i>$a!L$o zP>g%NTuS%@L>>g50)f(>Lzq~8+3ApXehkbTg-(-$ZQIYjYh_NGpee4*+HZE%NhZFC zH!}9B#T}reE`5VQ1 zKYE72F<_#H);%x4syKm5dqq&%vakNV{L?XFU;c#Cy(Llevfj5{xa)Q51Ci2XYXFxU zr^Bi6u6QSHUXwMRbNap+nNWK?J5r790TiH2ssS4Y-E5&}V3Y z+T+Y8;~oioPd{(+RbipDsJu?S;yC1*l(SN$v7&xQlU$gOU@#)^)9bNC23nqIkgLS@ z?!4E|WURa0w<2?rk=bEC=TL|YKe#@;D#G*qPS28bsN`W(j}qlc`%w!I%H~p`cgVbH z_AB)BP>#cVEZ9pYIsX3rtYUPUbqBpmV#s)Q>Y`Z?^cT%`pulWf4SkU##yDMyRQWwfhbKEqe(qY6+*fnKUli$P%5GE5Acib>czdJI5&S3e+ zVEm}7;RygF&94KeNIOm>bctqO>SzC*p%C=khkNvPs3RhA7s*Q|*`|XS_n{8Aua18_+#UCFF zI%UdUzs)K;BwYG+V4qF$Vxmv?aGdRDa&my8@%CGI8W_KI)k+D&^!BFv!6*)2o&;^7ygadHNt_E>PnfKK@|wwv>< z?Xf@@{c({mk06tS9XmG5chb)lR`L%nThk>!PN?n~%v+ryqaS||W>bNrA+->23b9)G zXG-E;>AZ0rN)RDlAxFzBXyaY{Q9bPA2hTy5ob26!sVMoek2CL>qNey%7p(z_sodmV zElp}ZT_64nWo}&|=%QH1#ub`tVSX11n1K*IKKa3I2De)}V*_qor&{9|A7gO2 zE|YR()&R?I+v?p3CLw5^;?RTV+6*oLHyzx;a)qGo?cMjy$+_|Rc1;hy1)X^uS4$^Udw>P=I~m(kufvdo z72@OGb26!05!L~pMoN;`FzD6Vm2)OJqd&-@_Ces{(Fu^@@=yaWE$z->;jpj?(+ z)@*G2J0+&t;j|E*BgFXkFn#?Z#A?GrkJf)(YrO|UgW7O4&TRHM>ihIncjn7jW_TH)Kj^pA)!jgkYgGRt+ z8uevBl`>gvSI|Am@1;TmO*1!(VkJI2!-=yR?PMjNYAyBjp(~mqSzE%vn{h=95@T9dTBa2~6WdwRu4B4#&u@dXSL`bkL@!2hqwjkFll)zAX zXagsDU4VsG5UMe}Qt>3{p(;q-gGNBx(ehR#A_G5xJ4UMP9KW1O58QLBP{Y9JGIlD@ zd{P@)tE-gz;vn-}n+$GG4NEnBxtuZQu+~6F=9{QN3Yp9|9fG6d9<;viy6Qd0=Y%8_ zKu)xp$<3ws8cX3K4O5yUH5?me;vi0REU;@rh~-U-pRK|UCOPk7vM;CY{cOS3)b53@O)pI_7ESo-|0(mMY*0UVlSs_^_! za;PR9LZLk$18-#eZZySTo@&-${jmKmaEY*nM63%Bh$oB9{jWqD~ z+sxpqAC8-m135-&Fnq1ebaee*FHofvcG`0IV!UVOPD|^MLH5^YhqZilpF*C-&WeF) zSJs{QMIQA*mlyh>MSVdj_dRhvcu)3(D3+|7j=k`LXhj{r`j_8uYDL*CBh6D*wK`-a za4cl-!Y;Ly-zzd)%aA^{cobXt+#WTUUGHp9uKl5CWEGf?lsXtB*EXcju)floT6@R$ z`9ThIA4mB11!>2-WUQMdFhBeZfAcO9tfUZ?-1~4(x_7e364L@Q$mWqoiRg{PDXwIv znY}dmeV5Iz3{Z&`LD_DIDU_}%7;(7_Bcq>BH#qVZPKyq>=#W(fhIUd7smekll8K;o z4yI1gb#9CAJ#enje^2KIRCgZ4))uKtFXvZQoD6^6j_>s6<)9OPJ@!ok!!sU!=Pubk z+elZ8UB9_Q0NH%LsVdo0q$3a6IHQ&*$JXn&63d6aLA-NBd*96P_bHvKcT=SSzCtpT zqEtMv{$11Ix4It5tv6D(fuK&(dwYQEGU$#C+SW+x2vN=Vq;L`ki3H|!v$i~iuR9$X z9r=sHG~QSlIF&h+T6W~Mad?g-%HV}a(e$MoAYBn%w?E59fIJVsdW0hpJT}YH>SIBi zh|L;_J|lLN-ZThuS;@z(o{vd(WnP@v;(==z zbkn6(dO6?CdQ4X@9OkK#&FSSLVmEMa;R`F{cY&G>Y8%gqYDr5J+o&Jkn!CP;E1HR| z-<$K*V)bL4#ra`Y0nxe7guL?D@$dXdE&Z;wUFr(Pw@swT1J9RTM>!U=zYx*a4nHTO zsTOJj3;VNtLGn>$n@=b1b!P!s`yuynH78i7K4BG6czzM2MLtD7rMDkFq7+^LibS$s&Xt40LZIWacA`Q;6Y%P(y^d{1k-yr{WeD` zKiROBo8x!H%K<8|5g5-c27j<_{wVI28L}5*oAL2%G{}FhymQt8EeKe>0T}d~ytXE8 zT7ac?T3p2%smO2VX5Oc(KFOH-NG=)!U$s!A_u< z8u5Yt$(&Qr>UV)Z@5ey{gg&YkRZT_08EpO%Gzc<&a~pEjohSvCVE%byYDo~_Iaf$(#jfnm1A3YHMhmd^#t4y;?9gyS5?^>LT6(qm z3TVNkqd~?)N^-N6$HxN+mR#0agqxS&s~oe$PLI6odbC=HM^CRJoHXF|JHMvCoTnbT z{af^5g70Fw#m*vwdqby*4X3aW)({xHRXJk2G@V}{=oEJ0mKE&Q3MIYF7ZQ$1NYB=n zlEABxh=%&>?th;0@iAf+Fz!Xd8G#|v+MoqGg}Bmd+v@h~+S*DQI=5$(dA?8&-!OeP z%}eI|gg#D*2fe?0jFx#@i1a>4=hQC|xW2n9xts-!OiAqPlBlqXtjX)k=2PZyx41S~ z$Lqbk!LVCoezeQxSjSt>)N#W%F3*xg*j>U|sl+?pzT7#qTko`um>bG1c?M-}*-f-c zZ5S&#r!KSbhKP&cyak8)tog59$0#a*(0DnYV9iDg_;!L>O}z~W?5)?UHVxnH#h62q z19qjdto~I1$WV_${j0Z1!+aXft5(8|U2zr8J(I+hGq5-MiD)%(6O23zjOsl{YnAM3 zj|i^4(|IqrrYaXnRbqBy(&MPA-7#NSnIFhBQML(GjeL;V>h^EDjdjGH6(C&l@|k=W z)$bqo?zE`>ok$Mxl37s=sfC|J39vw9o5V|@`+F>bXFz6g;fs;SsF?Tk$IyJRW92czUE-j!Ezx7_=op0pdBEp@ zILVzs^MiOHed*XLz+MzMnpc)jAo9Nc#l{J{xcV_9j`RwFSsLO7>~8?!4)KK5`HZMV`H)F@d`k>)8Z7$#LKR4% zP+N#l-f{M5gdB=*SN(PW2A?{){&7xztn-ln`lU>%y%*!N#FV8U`6>4UvHF77)|35L35rUA585D!qOQhG2<5 zh@Lb-){y(J`|Lag4V|Uz*f&~$=R^CfKhEECyI` zAFe{7B%G03&pt&XFUSGABobz4lZ%QZWg*<$z&QnS$P7NP0QvHp9|e8KI*27Jl4!77N+Q;-V2j43ZKA|Nb|>h{zLX`S?OP0<24SCTUf+-@?`5 z)sww$_nVdU`TGr;6O2{G7uVZU#gSi`({vk(hh|X+h_{MwT^4QZqQT%)qUK-`)#t!* z=*o=wVfN|J_kO4z=P$o2JSL=ITLc372_tk#YTXqb?;| zW5u2$d+CU@n|Y4Rh~=tKb|2>^9J}v`@B)&n+^k9JTaV;iik^>f?QMZC4NY+d1E-#( zAL=is4bH_I*4{QsgH?{zS~3?tf2IWU@7mx$%sCG+I@et!M)EioD4d{aC@olT??5VH zJCv!N6N7Tv#|wI@%16eB3DsQX5bz+|LZwL7zG-d>^WLPqoYV$h*aTCbH0kJNG*6^N zon>mVC0MojN>p0=E<1i8fQ|Cu&y6#4KPoWBv4T2=8oMKQT}eD{mOEG{Byr!O#g82Y za?83Tcd<&nBVX?bjMCjK5NitSya(j;aActn72%HrUvyZ z6$wkW_DFlIsOwtTE4osgPOW20h4|s_qafSQ7VAitYF;unR5zLQfdk_r8%{Wn zsrNFz>Z^6IF~l+&dk}ToTcU}y~J_8ehjCP zC0IB{2EXOgV=XuQi>EBtVyYJ-HK1v0Qsw~M@XS_AOoLA$V*GEFZZ z@I%JKFC>3D&LSx~8lq$3uSmM3U>Is=#DB|0_U(+sY(fTRA&HB}sO6;syHiD_gA7*_ zuGw9&ofZWA$ zPXDb5QB6CmjZLoyb@)!KZ6qg)Q2X}xz(P)~I_oBqab;7SO=^m5UpRAcUZ15X`^fYX z$1~Q^o5uZ@oC|M9c-eFXaPjOnQTo*7K25fCyHL-H`0d()4VaZe7iurW4W$i2O_wm z2eWg1BQL#Hs?zb|?aeEPgg66-)X#P^Ev9~ejmPL@ZGwP-48whaMs2v3aIRtxaI+Ie zV{Mmez__e5sK0c8Ufw?gD&6kJM!HYxPvNXU{HOdw5q%9#ukKf3l#PBLbWlGSpkF}9 z>C)T36{G^25+DkoGtgq!eM7>S%3U}j81ByWy;G>{z4gFvt5A&O#bi6DECM>J-`;G< z6jYTHZ_S2>f*kAEmAW@tdAJPcAd6o^R||%cu5)HiU9=yio{P%t3p2f9QYZb>3Cl>) zyx9__xnHWJ`IK|4NlMY~gAxVUNo0IXp@esx#Yn(m$N4H$yVN%`zgL}6!|V+CjQaOY zpAavxADS(eFVIm1hGq->8roD0WIKfUrJ5VD+I-WzU;gtQbK}ubda{1`YW3zX6naRT zFjj7^dIDe<%?X9(RMe=pR zQE4+Y3V%IvN@CY+cpn0}F^S-W$4n=!kv^Z6p zRiNz3`{vtYzH6!mlkOl57bt}g%sfQ89W_fbW(>r0;Rf{S+@Am}u)sBeVA_k)Oy(vp zNG5Nm5JL{2Nh4N=5mM6}4e|V(1zAvjq*BwynZ93<8An%(Bd7uo*N{-w+cQBq5|v?8 zfjuX0CwDGbrJz6hKH-6w8WsrFt=DZ+RM32zV$}&~P#R==HKG98{Gv?;vsgINWkgXU z!WL||TWZcrV&ut=mH+(9j^g$ipt($Oe}iex)9{Je(9}URscLWxycy#!_)89fW92SK z@zjBga&ge^w+uI2)ZWefGU1sTjAEJ{<5F!iPq-k!ho7)=OMDL(nVHa$DYituquzhi zhXQ3wd8*&AhoDi!PZ-o?dQ7skui*zdXC`d@R-)n_@1q@K(fr2xJnX)^ic9Y;h_8c} zj@kCih;kL)zj+%ZppL9k_(4SEbZ{ow-74Ju{W_m~?Tfnmvl!{x!#JdbV!=C4lO)c3 zmf{wfOCQ>*ECd)HXRztIWwlf1Y?$>&f;{&kO@x`R@_3xnH^w z8MxBLrc!F~XtwjBT*b{kI?_ey1(tG0VdyI}b2e1s`^;ly*WGjqnE@pf>S!m*^y`7U z`+(FpeM5QtD{HslC}ynRhsP_yqFg|84dq)$6X{rK&Q7R=qAiemqR5d7T? zGQwH#_2IJLDoFmNG7EQX!l!x!L^{76aUYAVT?MsmP)!V&VmeTU1wI_o=uw zO?p6|VwSS8TCNFqpLud#BsDd@!viA(^;mey-S+@USTp9p>{NTqr0JPqm358=)7Hk2 z8eGM|`gDwjA>Y%mxw@l$E)44Gx6_yyn)=P>ScL%~{7{S7aCWz8GfKe)7CGZvg=yOX zZJ4N`psZ)JFf)t|&m%jxt6|7CdDMloLdj<~ZA(Amn7-HLQ65bVqTQ>YfBQgp8z|g8 z%_)$)DO3@wzjyyjtbasgXr(@bZcoyc!|QAe!LW0|$c=0}He13OAtkMsYoprKIp|Zs zt&P{3^;py=_gXb&Lg6E1*iHUJHJL(;ts1jX-H_AQj`0ux_@fqpf1tJv1eeB2JkGyD zUkvCAmS3VhG1*kC&EI-s{ylfrW9xW^@98M}3T=yxUT;fytWAG8Yb$Vb>Cq?X#k}e2 z*cN!7B79hwb1BA2SR4FT0&cP>qO9%Xfw9{;yQJI3n^;D`Qplphwya4-$3wlP1Z?A1 zXJ`fM0;#g)e6d6`*-at$*hSCgeLpAoz{4y}J}!1E7-~{N!0DMbKM?-mHZ&45oUO$r zO#3X|_XW(AQp@Awp##;Y{q^d{01Fm2EGAZ|L-Z=D4Bs~uyW3!Ev@yB&3u9&H3G8)- zWKsBU7sUJYp`hMT@nx5mxELn(nM7iZ(@`d~WpR%ft)JRnjAa0(zEzHi;wSE8#g|z> zk6|cSboY*oKk}nZ)dvB?x&DIGPYe&(@@`=Y3$HvW&oA6YcrE1a+~lfgD2;pG^9(lj zg`;QkGA{bs>-blvfTi=FqP~dv>V>a7S<1TV|L(d&{PK)Itw&tdTU6~=<=m%2H==M> zuxDn8Y%2f$$Kd^KYurXY$L#f1sA70OAZ`DJH>oeWZJP_(!ugq?v!f*EiZ|JJJ4 zVbB71B53|^1<_Cc7@k4JW57o+eT<5Z+cs=F?<18_tA$x^ez|$#)+*(h?VjfytpJu$ z+)@QA$^^?ZFMwO6X#9l?i)&j8dAc1`!O}W4>go`dr zN}T0NwH-Lsp-*es*C>2!RP%tVtP&>uiXJ1g^=l|uA&~oZYAVX29eoFd#ieFg0_L9L4l8Vz; zwXemi2Q4-OG360ja9N&1m{pXH?FSb1`m~go6iMr4fR81Co&##Eyi}t*JFLD8B+tg1SKlJRrKBByIzfrSjTMedAmI^V=XmM!}bK9p`plCdK(RsnJ zt186SV%WuS#vmAd60oZ%6&QAvdCHcO1EP%-lwR9A38zJWw_m^XECk-+YQ&?Kbiv)U zDcfyQ1^+mMGSN5=&Xp3HP67=x26SQct_@A@JJ_p1-K|F%=Y4j>d!7ybb6zjA{G!%l zyc>&gvfEJ<=5#JYn@2R;{ ziU|18CMLf{H%|!%!U?0V&D{?dRMdE`4=|yG?9Q!3O%)F@*XC*@sPWhy6WbK;k-dJH zY~3WH305_ZZpR6j;EM<1!;ic%*0i0u_4|(e?4gujq%CyIXTps~Xyii6&d0hKRJjT`t+>lFjBIimK zc<$!vw@i=Gm3Py-)X(1ss=@3h>p`*~W_R<H(u+0C} z!-g@3ELRAaNSpG@A26#-s;H4Fn88eW91mm+5JULw`wyvs_(Xat$f@C(=ZMDAvB2$B zt{#s1A@f^MSk%G$F`mCb?S*JiQv~`ph0JG02hwk=HTdedxjWov0+gJeS`f;<9|@-_ zDW8o@65H2*SwYdL6jV64GoXLT^4MBN?41nkmE%UO**eDEQlRGKYa~c6=JFgukzI02 zn5*r~EpWct3)-x88GfITgItW`KWWw7X!Ccuxt3B04jH4a>F15nskx8s%G5!fq^nAV zr&cW97GsNSrq$(X(IB$G#lBmC(F~7~J^#Q?zSyQ)`R8}9+$OVb>Ss2oIPPC<0jo_0 zclF{ouBvq}x{Hz?vk1`QgRcIpxMt$kkfa;$7eAoXwY}_g9i}V?*jt=iD_ru-0&e17 zBYL#I3P-!~f#XrW90i{oI3C9cpo#06c`DvK0s<(6C0HitL62s9p`7nO&H5G$SLS`T z1NlQdS{m4fn}qxFfSV>#nTe3P%`E-nV8m@zym$JHQQOpzsFG@=Rr%(}Nj5rQsiM5g z2}$#bt!8Yt=$@4}%juJUQBhQZAhMsKd?LzEk#T7Wr&>_xxBh|ad8t0YGVwU$t64*` zrT0qNa&U3(CUX$zQhEr8p5pZ3w+O8tf}A@AuzPO1@4l4ipN?O%9a6P}7lu8}ieLG5 z3J^jbO=jymim^sAX_d#`lLNxFg(8SXZ@epPZz-9wk5*i-KR4Ut0cQf#lVmC^Q`@yE z8XuYU_xbd_eOVAoc)Gxf?gTNpM}Pi={zEs!%6(w)!57v`<#`^kvjBW8{FX+6*i_5_~uBXC0~k{-;cg_hLp#05^B>*}ti{&Abo1F2CvJ4T3l+gKIyXz^A;v2~Em$+AapOIFzDA&1 znq`N1k6Xb+(M?;e+XlnjxKadYFi$<`ZN*J5F~u>w<^~F%9^yx}K39R9bx2Mc$?Hi# ziaS`}$DpA|Q4O+5`%H+A@VJ21uhet4G;4h&pmrsfd}KHsyP8D_PSjrf8dEAM@a*n5 z%Zjv*;{DP2T&ooSK^tX&rLPl8W4n`twT`g*YezEzabS-JI+R1OOE~?ao;dTDvuIAg z%UpnZ@|dneI+=W0RJn7zp5`p8gVvxm-491vAT&0jpN)Y~65bOb!bK4mbv(r>^{L$3 zM?3cbhSc)RD zliAkik;v6Xm4c6^n=qH@P&TGNH$pp<_X5hGx5L9!)(|8@@M?t1DGOL1Pqz&(V1K)? z;Au?7k&LZJ(!N#xCU8^!fqvHGD+ANYuQwTcOC-j$J;4|YgA!K+&h(Y~n z0FE`Yo0Jkb`wQ`K&HyetY$kA=wvCwGi!y0=cDG*JYrn@1)a+U1|I^-kMm5!SZKE3m z1-SvSp;Q$C5dj71RS*!RC@`J17u335W_vuaN`@(n1TNw~*x9 zc$epS&UoMRy|a?%Y&3R{r?3JgdNyl~$rJ70?p3iT!nMP=GhFCCIfz}5Ug-^TFValQ0|mT_Nyc2 zb@#iB5pSMVk2{t=A1@MDZ|JH0Qo=erZ^8x#lTpuWk8Mr+75k>OgC^gAUzQN8v)7k4 zoa(xJc@WcF2;7(`a0Jh%1UwP|ZZO}ox>**`#VSsJ zLI&tQE*(B2tN@Ip82qs|(tAf~x=qKY$*|GYcY5+)k%X2He)JV1S4vEqG`}u<9{9qi z90eNtB7ck>^KbG(vAbR7R=)dQZ!zx{xXHbj15SDu`ST$+h66rFhE6(NoLTm5PE7N& ziynBGBRrH9%2_%2KuwYs-1Ogt*3l^~Yspexnkg(jdv#;r$7M*&wF<}+VdL26nA=}o z*nQI#iFPvA%8W z3Yv8naH?gA1%6pQwLb)z%~CIph&mk3sne8${nUv0=C8kap>Q;%RIa=99AMLW-zV_R zNQvP{vzi((agP-xm64t5o45MyNJF$g;wfA6nQ*T4-hqLOid2*!Iv@;|v@u{N{}Y*p)p!z8e(!zAa>ApIXeo=Lb5MTpMZQg;www%G8turq z#E#n1=>EdN?Pjo`?RRzvAO_ZG;-MUtt!}Vca>w`8K;+i_4s0U0E7^xU@$#&I2ksvP z9J>h2_boeYmTZ-R4vV$)gLr~D4;WA*G$26>*UMjVe>Rrw;34DRI|48W4yM`ncPIvb zZ}WwpsJrmTC5keqNUCb>ou*H?6PJp1vP~8G98^i0RF-wSld>h+V#YVEEk5R?TKgw{ zyiXJ`KBH=w?!df00R3d(Smy$o{3hlw$zt8z&tMSJuxum_W>m5DF+-%BtJMuYC0=7T z98tVoX+C*UM3$@T7u4lS7aoAv_sf+1GifO0TMKdy8^MFrH5GW1( zh;mC{dhySoxw6hB+F-(=P3l&N(oQ2?{14cfiIX|Jdgnd9)f?jTU(o!EZa#;)aC03Nc7bD^aQbE6v|QmGNW05 z^M3$UiMfXz$?G>+TeYj3!p|$Mp9%uQ%v#4{0+&k-jPHN#3RI{LKhgDMl+)+uWoS%f z;wL>F+2`qx>~jR4!%vV7tDkv&S$RPLT_X7y`^CYYLDu2Ghpf|BM|gFIZ$WtC$WPyO zkMms@LYVG4B8eVCUeiw{j2pZ?K~4OUr{VUu;A`ur*{DpLO1~X$nx$XKjU0UzZ>%#L zlIiz3+=};jNSO24WzOYPX07aR_sU#c_R$gcNhWB-fT&;;iO#Sx@kO9e5onFfiDx`B zXZfH?cc!d)+Vt(rZOR6_$ZUL6*B)g<=;t&?xNyz-;Dx7_9I*qhr7SY9&!g@GG0cEf zeHDoV=Vj_RofJu8pXhy-IiFaDw!G-hWdm-e z`KW~>54|gm!xur*xb4UB_P5W&o*QMzwoe~+l*jKIOn_-iGw93_c!ZVWj&t0zFe|?D zlF!HuOvPyMb(Sl(xaU6I?WC*5yJ-RF6!Q7#^IJhkGghRBW#K=J8ElO!3nrr#@p|-f6iXIwE99n&;;m1K(sYtLsm1 zAp_&7TUK~X$bn&NVlPWq4%o}Ws+gZ8S_E~tEPJ(%6+5 z!FWaAiA4C<@cZxt3!@~HB3>2Vfgbqe=QCLvO?D$Gy(!`Z6CCZ4(W@zmy^@>Y*I7F9 z`nvLvTERJy^b;I@mKX;>EfK$mHEMaRMZ+~>Ze7)2wtrrCll|Q{@XH8 zIo-|j?st&lRVWzMPxpPv5_IccYA95#(t>nm2832awIb1DzP{C0z0VNd9;WJ6^)lxG z#E`SQW&raK-;nM^Gdr)_Yo+X#)rVatfOTw+_+ua8KOO@~-d548xpP^%@YD2oCSY@7 zbVfxZ&+=+-yp-+I2pwl3a1+Ej%9S^+7QgG_pjcEFM%soNbFZf`0#&+y3_NQbT)#l& zX==C}$%l05YUV^WYPWl3Yr7eg)C~Y`KPgPpXE1qaxTI{&aUP)C`1*WTU>t1xM}xiZ z6`M2cC@(bAH%Eqn)$|biL2cBcLp=LtE23NIh-OaEO);$n9-QC z81&jb%K*J?3f5sCZ;$fio0Uykh{2#X1V#j zONWQbv2n@g`7#(8`6G95<@PkK0`)s7a?S&j(g&{`%Ytaag#A7r(St3%xY9MM{aNSA z#~%p-4UOj+U&^>6Y%qdfIu@8NqE=p*zM&Jy?(%U;t#hgN(7u~=4#r*9$wnV`e45OP zDy`#VvT6QYXYkdZ4d=MB{1X@dT16ps#F8Q zG8fMOjbrJbDW(kujxd^k;$?mlah?Lu(V*%&Mf2x3cy)}$pX`S~>uaDtsG39@{F~kr zRC2$eFj;pb$KAX^Tp4rT?^i(JO&qBBjvKi0}K&ahLD>4GYEq^6vthzk%Zy~ zh>fjJ1Eic4#r%0_XvoZ4`!y`xGjm|lwi)U*ho|`Fz!cD%xvA=cwwbov zCxO1g_$scO=!S_!O~5>Us~?$T)M^-CqwQ4xGBY_p;v$ZJarYk}JN z8zOncY$F&B@{<15a3f$garq6`e;|jCLE?$J%BFvz8o`X-sUI8v!dU(m&}H)f3;2K5 z29jk8Q&)}$cNzTCkYm*c!Qp2CVaLDv;%1_@Ch{=D&82nun6NTXxAIq?w2Y&BTe~ZV zPo(VvZnA%aVLe@CwR=nx4uUt?0GEQlaIBV3uU1R@4cXFoGJpW-Nou91mA|LglSka| zBTJa2M5sP4&i)=dma0%C353Fw98EB$`7dnlg(Bt-n~@XaKaLn8sHSQ>d+Tx0!gY3i zcDvtBs1bL#xj5@)D+gL1L<_$P91WbGfH2+0K5gG?{Apq5i{@Ow9!R1accRFlV4*Cy z-2|zXvOWQBL^&#HM|IB+of^1>&n4>Z6?NtAD;tjL>QNT*4J!-!Ic@6Y9Gr-ijeQAn z#D3|1_x{SZd{hKd4`G6^LX?nR`xH#PAeX^%njHxXAm^$SY@4dj8n8321KcoD#I#K{ z$SyZqrggcr`^$@&ZcJP<66i+4lpSsrn!_MG-rT>zxwG0>y|1mVZ9X;EI4_&oJR?VB zz-u=iBbiXtAgIX!$|;(jN6;3rb0AR-KQPYKij6uEvBNDjE@$>GBs41Hf&*ffe{ce_ z6D@oZhB}xWJ3e-PhZUXfbK;FrEQ zD^E_ik9iYb`y(rUT$a3=SmqMy6zjzPR~gu=efud7x!snRj=3CQPpzH=YTF8t512V! z-$Zk>p^`f~tuV}GSZ{Z+Qp6ZvXmsC*-fiN8#-UXu$|!PR67Kt?np~i8i4GW3W|ksk z4-DjgToKO+-{tZeT&eRjwcx?_#!Hn2RGUn`*{vz$$WngoPZ{Z|T@e!0qW5%sm|XzhscAg z)w2D_ZP#jFJm>i`N)a<1wNj1WK^v6y4kYb@t%Comy>^EGOCP?_0gS~ztybRLmc0!U zZ;hO|3v`@kRnW%AYQolNywY|0zqc(!M>yK2HP4uWg=XqU-hrGTfsDE=z|x+l7r-WR z47TXUTWDjnXGTn;Lp4{9PUe4fF?io40Y~<)0;Ip1^c2-4&!?zWQjf=)fjlNj9}K7Y z;wNokSrb$Tl6HiTlv@MRC(18!2Fw}KsNTq{cBY!*&?5Dm>6gR1Ph&2GYAfjX*8C&! z=ju@rSVu#hLbj!RF!DJJ8V^aRrwI4gq5 zjA&UW;?b0FVm55r#pTHBH27D0?D&`9jR7gv97?Yv)7lAP>FHOstxOzp9@C3s(zr1T zx(~Mx{>B3QEd_HVo$Jx`85Qt-yB1ImNlr zmy&nXf2BD>7^dIz5&;P@@ShM17|!964OrdGkPJASso=&>6p%05)=)kN$?lj*%N*$r z&2HaxBx+n*1~=s$f`0uVoELKAiZL%@L(Edz_C18RTL&hWo5nzP@{IF{-$xCcVI zn*w6i-x)SN+cYdgLq1Bco4e16hg5WSif7_HGbux2UT2^m$G-0q%Fq_|RIV0ljQh(- zL<#+XgxJFl@>uDobwP{$XPffo`^ARNM1}!>J6~uJu@(k#kOhmlzqkOBu6A?s^a3S;)`^~}Vq)KU&AxTAMWGD%8vJH91M=sPfV4-6Hr%36uVZR!d$-4#XakLm}Qn)db*tDx=%A2=aD?1YvtHvDxV<+6(O#g>4r>2Ix&vLU#iz#`tugOGBu`#*1%_@H53F z6(;Cqjo}m4kfU|D_w%ttQwbT5Ku_&g(#fP*eo9S%GBF&vcaWc%o3WQ$a2vJ^=BH)O zgCP~QDb7ZlYFJZQtpf~xtc5vR+7vvf^Q&vK}bh(#bVg2(! z*$k|4Kfy$e`>-EBlZt{E!ZIj|w%ZwVmzQC$_MB7>aKO$j5$aO5ot1!Ujdm|?gaq~rM8N;@CvitmJ^vf zSmUq2nxwg#%4V`ygDFraexy^!xQ;9x&y^$dAdy3+L4ZG;HL@UT_U=vy_aSLXZ}x=z zLKa38=w93BnQ?B`CzfymTrz=PQ}a7N298+F2S6J5J_D5&jT{I~aQH1PH$luqF0cl{ zHbSNuA0ODl$HpIn=5d5(Z5f`N+!yHKH5StaIhL`DATS$P_%83|`{W#J@xSd#H6^!0 z*Z@Zg+(x!}QOlJh5TxcN))vrc>g>Y{b`ZkOpL!oiOVEL`Tqm}B=81-u@#Lm>@U`0A z8d<{O{VGO;1R2XANX$Qu3L7U9M6RG;ZUWo;%YW}WImyl$%V`gB(KA{$|-2>KKbA8-tnRCV&agOMi0J@6z zz9HcU=*SGF8-QF@O~XW)Bv6`~+dzdaWMQCg5n$b$ktw_Q`2&*J4m*q~qTSHLEPW;K zYY^Hvsit<8v2&xbIrq+-*2E+T$j4Bi7>p}>DLy6B_F!5~G43?51DUE*G{pA$%ThV@ zV%noE;Lm^85a9#Gdo!o_1(lp;VD}G9I}41~`xfdPQQD_YfF{g)ydG%WO5wICKC9?j z0oFV9Pr6lS;tkC(XWy5n{?d?)PhN^o{jMp{Zeedv?w*6kVr_zCr|O~tmxI+KEg~a(gepGJjL#> zVsBUUkr#q$9TeN6EN)$}8*ywoh&bc_kYNiYD6T_{z7kY-F1LyZ) zx8n=7it3P9nQ;3C2huaG1BSb-rhuuAzv(%-H_NX$ur;(Y6!Eh&u4#p^8a5ml)$q&N zVKg!tGE&3D)wB{sk_JcD7G*US7Y{P=Kj``VlqbBg&x#^kgq5~;a6L~~^l{-izdGOZ zuSQr%o}5w;8C>ZLYs;N>c0tO$`uQg@K5O-TP@5)_MSpelC-1wYy#=b$AvPt~0B zCTx+tY=FY*I!a$JGJ-IQ@Yh>=W7<-K7QwZA*(b)2-|p%lbT; zw-?$EJvRM4$v+7BWzBO!u3XW>O@a5dM#EE!MivR)<~=PTSV$XTf^Z>Y#vS2$|NdjG zF7$EeQ+vj19k;Gv1yI(~ySBFyvtoWs05^%(j$QIFeL(5i;9BVQCG(4PL{>p^CR%_=rM&`9w?K4=JI1sqd#`XE& z;LvwB`!=gj?0NTv$(zr4hcqe(=5<$}Xavh`9lUaYvdZECw*@g97}DqCsy5nQIE)`U zD*1<|Z}*SH`cGU3&A!dc=^>Z(T~37ti9nx{aq@mVtmMk&}ol2N_ z_HF}*)C;W<@$3D3MN#J`hP*p|)zG;`f&T0P^}%=xs-x{>DVpS-0NjMicx!HM(%gUw z(xLi@v(3cbr}mJ2|CgCEYVkg)n*GD_F7Ujx_Qg_jllG<*+V}5m6D(cDz?H^@FcA|Q z6PmOP&3x5f)FW378(JkQXCr`{RAaf{?rBQ`-O?Y;DszOG0S_}puZRwn$*jJes!WpI zn(yYNId<%YNd@`?bWZh|lT6JLcZ?+$?)OVBCQ+hZcv^3#+RAMjg`m8PN-(U0It+lP zP{#7xtiHI=OI0_9tKxsJxC*~lTnFrnwp0T;X-R46%X6JUBopC#Z}R!lT!5t1^6|T~ z$FqbT9N^z0lvWsk&ATF!a|AHQUX9s*p)EDF()2NEc&>vkCQ|St#Jj5J&p{O7l-Y!6 z)HSOyoT$T13+Yi#f49D>f1bJUVRkd#<7q53COkWZ+LTz(c*X5Y<3Z`gTk$N)^z$A( ziJ83P3pHgfz>`)b<#8IRvD&fY+zMmIi7tFOL1fS{%1tiMV7ajGvLE4{l|o2NMY?=k zbEWu9+X%5@>K{G0@PUxtXDWWPk%!8Y%9M4#{!>?Bl2g0fe(&|d?XLu3b6Z;ou_iMtLoRVX50pA>h5Zr(f#*kG~H4USmn%=cHGTGTin zcu&0IrCEuh?&?66-ZUff{jxsrKNug%T<;!XxiTgxZd_rI*r(u%9p5dZON)8Gzc0Ug zsN$*6b?cHd57Goa+>kTKy4@tIrDn*ag)jS9g0_1dIKfU%(M_%yWBTFQ-P2L$aLm6W z4mBT`De<0+rg=2u^MQn71^AkDI@b0@0&B*07uE4BMJiO5XqVTi{!hG-EN^Cll05I> zmrV_GdvLAF4p&C01*9#QoD-`_)iY_h!BG#>VoxPr#aZ#5anNi6>?X5_nRggAsOjlA92t7#b?f?+~WCT({*37 zKEL>Ny+`-N_-iHY3QCs3CCm|vfSb7?px|fiH8xNpaYz#rj!k)k38FS+oiMuSS4jR5 zaI9r}7~m*w{t#Y~GMca`#qKjL7x295VBBD(Vw)y-`|j@OsMdX9movrBt=md0HkT%` zCHw_OW`6SGfM;u5YN}>@(rt0jo>HNj%8d!A|0sK_XFWqNA7yjhNG)&n%_k9#h?7j{ zp*{>=LXrd>>K*L$xPvW=*UKsJ$QqZ_NZ}ZIlc+2aIZ&S|A@>ddQR0=xlWj=*AU}jOg_h5;Mo zBD`x$h%aHrmWcHXDxA4zfxVCIUaxa~Wo{P!_*!!UTQL16$5}IrPstJwe`z5eSWrq* z-t3bn?4v+hAgrTu2%=BFq<+3`*cYME5!2Vd``+pNx$?le%})|~=z@{E<6D4R6b91i z&O6ju68ZeDTRD|(<!TjzB&q?sC8`j(+Pp9l=~Lk9&^F zAShw61WGEjai8UwaKX_ZY)FRMoaL44YI{+Qb$J_UFAi+puHLMIgR7L;-)ywi6k~n+A zdg-a}^$}xMs?MN`XvrdY+-}Di9GD-*+O7g0@rcpS**?fm)GV$~v`>U)X`($nA4zk4 zu1z3)U}&)qFB|up2~S1kGX2ViH%5YR^ta227AA?_uf#}Zns@Hjj6vGHgfEtd{s&%eDw8shuh}65CcG}NYMsk@Fek3 z#Sn;wt7+(5Vt?`I^yCPm9uezkY`}F@vzRJ{R=Yv64E&y>YUz#Sul3|>-3qRxMhK5N zkG_bs-(FCA@NjD>tYqMqudhqD}%4BqsQL3gqgw9Jjom~impDt zjYRgr=a=(jxZ*e(Mdce!jPqQ*SGL~T;|5m!tpurCJ3nrAR~M2mo1G_o&vWRf z;ZRw{8>7fL&Xej_^yC~;%WUtw&!Yo$v|k536|_Vb0&cotx68g8<uIThP*y>Y7hFb=u1>{?K>)%(Sc* zSrY9B>*OC_?7Ro+|;RUvBH)y>JpJF))4^uYu2Zpw27HED~s$h<_*uq}6yV z^wf?I$~rWO0HvW~$!xOv9`(weBr52pL5Rg`--3b(~| zq@Yd0b*ouVEWY{Ve+|V%JIL+O;L|v2^!o9HfETow>q&l(&#{(Q&Q&zQ$zP0cnH-W0 zf}jsKt*@<317DTTkCVf&0@}v*)$-m5C_-Z|R^g{FB3VDa{$3A8V<<$7aq#RETtjQ1 z8Xpl@7En@;uv7e5;`q}PtLdO9-qQqekxd8O2A>&1nPbrJzM_3a0oKvXzxl@lv< zX zKkD#mS-p=CC*=#}M0!{~eqBTa4;;hC_5CzU7ncl~5Xep*6kUAQ*cYHCR*J!rEV%ei8`h`)+1FHbw3A2dkkGg!_8gAoRH9y_p z>ID*HAL<>V$H7-gvP(nYaQ;GZxUDRR|Mw{>TkSc-NI|GZ8eU z>nz4&MLe&a$_r@jzd?+A^IRn@86t-x-lT!a8q3IS%d0$B3uuFl-n$6le|Z`BOs@P6 z)qqE)QMX9LA%Vxzc_*r>iE3#VJZ}BuJSV1srJdHKn(Acp3_k~~+ShEa%AcqKS6y+? z|5nZCbMUTOl>W&-L82<*8{hSxt|*h#{F+B!UbqlT0XI9U_p8;NtA$6qP|#HP^rMuN zzl7vXDsi4LllSB~*0K}VscG1AZK*o;q{C@1AHzuVubV$^h~j0ad=ZfIw+m&8p+jGm z58snAC>Daoz6BRXwE}&gzE^;U=^E^tfn79^pZq1Q#!$~SR4v(%vpnKsYM!%C+Z3E8 z7=MCO8hh2Lh}J2eRxEbOrnlHN=2Z_PfI~J{sM^qZbq$zOzVeqT+%{cacP?=N%57;Z zg{EV^3G!vIYnzuaMoN{F#W1_?CUEiA(-@Awbjey)%@&hx~K%+f988%HTh|km`iZ+ARvt0lVFM zJ=M+i+HmK!W_v122TiSmAd9_e+f-EZvKgVtV(J6?_bmNlNB1P~TVE_rz+3A?DXgzB zx8Y$K%YAm|63~fwJQ#E*e5`l%?tk?SPC{=tHwez8Yaey>@YXj4Y{PQunPV;XIUJ&= zbJ3o%ao{=Rj_)RORjEfy@=czjH*QcFE>(=YTZD@Dfrox-W0&q<-b0`rpj4J42$|0> zSI`d6^5sYDx zlBr(M&Xjvq9)vAxlMw<+AGKdpm8~W@x@UnqZtTfl&^&rH#^oAN`hq3d`BVIhZMCg` z_2Y6H#k0?qX&$m`)&O?nt1Gb%?P(rEa!iB+^Hdf?Z|ap2mZSoI{WH$su&^KQF`x+^ z`#v@*+ba!wu!AxN?bu*~;1&t(erx%Rjsf!a_Dfe?ASt{G!E*EBH@9bAeQr`)4Y8R| z!G9Ks`+vYd&L|4swBXS{gYe4yUNG6!k1b#90ax!FsndJb2OGKlqS!|HfKr2(X^-#9 z4pp8uC@ruVGpKDGq6aXNmB~J%T%4$MCdkkO3pA0dK1Mzr_(WZp^>UZr07DuW25mA< zgeK2w39SU^b>Dd)rD%WFh)gzi?48>_*O1Gt$?k6K-Eq1Yu71)N91o<=Y9U_7;t{|n z=;rOB;J|}tYGXdNk7{t$uQf!WqC-tbAwS0B!O$!y*&xat+WN3a3AAsYf_t#4`|=|x z=u|}7n$tC*4(<;oJ89gE7iLWwHMQ6oNwh_ zPaev6+iz|Zr28qMCiYSjB*Hun_;kK?QTqkAjAS+U&skaAugP56rebdI2NfXO)7kuy z&)1pXhE6t~Z%75#vR4QF_s8_#T|tH58+t*FSuWzZ1YM1JqhNU4u(Uw4J9!0!jCAZ2 zfw+z|t0J7+TL0%EgyTUspa++6>Lt)^J5AcHh0xWHan;p@#n~=gNLtwIa0os zOAM!KuLE*^i=S;wTt~<$yg>I>-E~clA~?#>v(RCBTb{EAQNa+82rkHQX;8T|+kCaU zWWanGOo+_-E*p^l)kYB&*-{PMWWIXvE*-~*aBz7(`~_SY5bDq!%@_i4T%_*Tn~|Vl zR#8p%JcCSGp523&BiQ%FU~cLl1!`msNVXp{-WR(Z;mW zuv*vGyAjGR6`B~P{iO>-jEQJ?iEheAVxzdS%up85z^3O~b&9e~7hM*pI8?;pXgzge z@5F@FGYusL`)Y^Y0qC742PQ%igNz=aol~lNLElX=r?vqX?f{`@Iq2oJKcP<%dhylx zSc@iY+T(EW)ZCyUO>9M3d0FMu=#7dBU7CFp+v|YotDTHZ4fuq~iKy@~Tl-k=o^i9A z*)~J7QiHzfaiL+}WkbzTW^uqxl!td&67dCs@PuI?FB;B0`}pEVjsjw@&LR=+e5NKn zz?o7#5{xjL%pnxA-^HD>1N zfswx$tN1?QP@B|5;JfnT>6=v)?SjeV#yoK%3EVsR&Hfah34hyWQiBAy(rQm`LdSM33_4=X?Bn%9e$v=M-w^ExG6Lt=mL~#?I;G^lgPD?x{x3Fny^vCQW(2-?cwR+zKBc+L=}h^yjg8$9me z)Ms0AuEBE>AJu=PAYp~hahvMIz|E}D{dxV0ppovOH;zl*k~h+QB09oGcXlSa0k=nJ z$jFP*7<3U&;(HMfjzS+3IKBZdMnOiU+gl0fe}JY+#5IJAGw`)nte!=wf~k)9Dz2Zl zKC1Z*^W*P>E6O!IwML_>vSD=9j6P(UO&sMuG2^6GkJ=X$#LWj}$+O8) znaN9a1cBHY5h?#j;;apuM{lS%rxfU>3SF${>JIALz27|EK<)|ZX?be|W<{1aNc<32 z=OlQfb=<=pG}hZ{;AeV_0Bft?!72Hp;1ugeCQC@}gz+4W34gvx!3{*ei_iMr6nfW4@aK=$>sM+THK?Ypj@3#FZ$+jon`%5%6Uv>n(2fb@7Fw8xx^>Y{%W|7V<}n%4*^Y-)Vzpbwu3-vA7(9+`|T2m{xvLsuFgZPTN?iK#hL8 z^Hy$!+7uXtgfBrzWve0Ys$(0*xMd7?ptazlJWm+e>Ofcx8LLt0Y-XIy)4g&QCHL`r^Bp6YQ(NWI7s z?KhiqqOSD#9T)$`{E$q?Lf z)mV2s3&(p>sGDMbd$WE6J2uDP_MvZ?k1VFFdxhmJbDvibKAHYd=uQ5_PAC0MZW$jStdZV(;3!TJHJH_8_|)xD#2ErFp-vsUZE2li!6-tyh_Eq~Ds z5hA~iej`j)?+>xlmjx^4NoPJ-Tk8nF+eA0PAhVW4kZ}vrAHrQ@?8uwb~Q(1@g~_UGqPnXuX?ZlGa^} zTcz!#5pF&1*O>WEJIsAA6RtiZfrB>i^i-~?lS$v%T}{&^k`!WV(n6W*Z>3b9Qgyks zL9~acRCJ!r8xQ1F(q`9zY4poIaFfBPQph&<-4L#mvU)E)^)bCVXb$q0HCAbY!u%nK~u5Dfl=PqRBRXEGxzM zB5(XovQLTtG1h>!Y!lKe5Ubd(mx|IVUVK7QY&Dd0>)X|Y{3w0xaAI+ne)kRfj)LA~ zg$R%|7Z_VKFyyeeEp#^ySwGqkcQG;n+ojUF>MjU%Qz_sUegdg*d~4c1%XS49^-BFB zG_6Loi(GahTi`ON4xwoS!xxh$CFSA0`eS4$v&Zsyszf6TwgMgG(8t)!2j#Em48ho= z3hL)O>o2#Dm|AHu*ok?FqXKt1Z52n-O8B-be1g+i_It$J_Bi?(pLwPyBdP-;Whcq| z2x&>{%s=4kiJ2>BytPcKlqv}uNNEe^^wbULQb3+-fCnVSKgw5nbgn5LAHUi2u&333 z`M3F5cw~Nhf;eS|1RtawZc?lH0y^q68z*uaJ@9QN_4yIX)y8nhotS@O`A-xzQ#k4f zQ8RaRh)J5KEkUZH{*;W{T3GDF@kZ+=tt#iLNW4h3Y?4;KtG-ZMkLlRM-)P_$V*h&0 z6cAWhvR_a`y%<9|4MB;_7!Z(pbExNgRzBkCdDlXjhbrL_e}T6D{<$N%W7Dul!OV6{ z8;M+qaShiH4mQ`W;bdt@d;JlfwEI$tbdBMQp!uo{=f(xB9RV$SlSITb(Lzs-NHNc*bMo)h;pcCv+L{8`FA}jWCtn zjiuyq&YaVYmejfHi$~*V>LxF5&cxSke7%7Y#SD{`8;@I`DgGN;`^uGt7@~3UhGE z2jLegc?_dO-t0(S?hP2^a4m7FlG9MwrDFXDzPkYXs4!J?w1Y7HDotcvanJ_%h2O}r zq|d!IO26HQv@8HI>L(VkADctSCqNK)$&p=1%S4sRpFLyGB0#-NGbZ9~C2AT}qLZ?d z_-|=ZzaZ=iv-kZ6TF(?d3J!|j zeB+)|rB&QFW&9QgY^3*863rCQ_IcF~BH5vw;DFw>)|K-n}0YsTqyxO~3 z2y8l`9eUYPZfhM2+3A=Hwfl%o-WfvBGg;FiO_t7@&mfrk2-*D`eLZ|)y!WW#9?Y(A zGJ}j6ZiUkB9N_q!UmO5^UZrGMkH5f0?yMrcOmFO`*zE1aSfL^c9&k94ol&RHYWMp7lr1NHAb4&4 zd`n0o1g!57@ju-&{x7)z9~HopKB-%r2L-_OrC};tK8KWOI(qhf4}JbD#X`bde`(Fn zXuoZS?YgJ);l*f<=E_~!6>dddSy-T`*?ykq3OIrODWEz9Ji6+L)!b#X*MD`tM5RZp z>9A#wTHtjY>m3D01y2Qtb{yy(z=8wnU)cLC#lQLkOveE*Wxorgbab8Y>EEua|8;GU zQ1L&zsrsKi_HWV>y8lMAv+cWL{!EktlYWl!r~s-<;KzU7{Lb|{%9H}X0JEr$varC9 zqr5DDS_%C4&l@H1W$^Dm#Qi0K>eA6S|66f?NuX9bdiwuH98K`i1Ai6hKW_e`bpIjY zKW+f3O91%y-xuh=s_cIyfevs!N+A0`+YtYKH2`WQuyFs`l>b#V{(A}k^M?4hLG<5? z1E`h2^8BA|uD_~86MR&X|84#L-)gS^Z;YEKcPZTO!~6(`bH3!G=GIWvzFV$r`SO1O Dm|IXR literal 58827 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 - - + + + - Frostbase - The open-source backend built for Cloudflare - - - Auth - - Database - - Durable Objects - - Workers AI - - Self-hostable + Frostbase + The open-source backend built for Cloudflare + + + Auth + + Database + + Durable Objects + + Workers AI + + Self-hostable From d94166f7f488442c12b5f5fb8dd2610fef5adb57 Mon Sep 17 00:00:00 2001 From: clibequilibrium <105135724+clibequilibrium@users.noreply.github.com> Date: Wed, 7 Oct 2026 21:18:37 -0400 Subject: [PATCH 3/3] Packages publish under @frostbase-dev The @frostbase scope on npm already belongs to someone else, so the packages become @frostbase-dev/{auth,db,storage,cli} - matching the GitHub org and frostbase.dev. The CLI's command is still frostbase; imports, the CLI's agent registry, the release workflow, docs and integration snippets follow. --- .github/workflows/release.yaml | 8 ++++---- AGENTS.md | 2 +- CONTRIBUTING.md | 12 ++++++------ README.md | 10 +++++----- agents/auth/AGENTS.md | 2 +- agents/auth/README.md | 10 +++++----- agents/auth/frostbase.agent.json | 2 +- agents/auth/package-lock.json | 4 ++-- agents/auth/package.json | 2 +- agents/auth/src/admin.ts | 10 +++++----- agents/auth/src/bindings.ts | 4 ++-- agents/auth/template/worker-entry.ts | 6 +++--- agents/auth/template/wrangler-fragment.jsonc | 2 +- agents/auth/tsconfig.build.json | 2 +- agents/auth/tsconfig.json | 2 +- agents/db/AGENTS.md | 2 +- agents/db/README.md | 12 ++++++------ agents/db/frostbase.agent.json | 2 +- agents/db/package-lock.json | 4 ++-- agents/db/package.json | 2 +- agents/db/src/admin.ts | 8 ++++---- agents/db/src/drizzle.ts | 2 +- agents/db/template/worker-entry.ts | 10 +++++----- agents/db/template/wrangler-fragment.jsonc | 4 ++-- agents/db/tsconfig.build.json | 2 +- agents/db/tsconfig.json | 2 +- agents/storage/AGENTS.md | 2 +- agents/storage/README.md | 4 ++-- agents/storage/frostbase.agent.json | 2 +- agents/storage/package-lock.json | 4 ++-- agents/storage/package.json | 2 +- agents/storage/src/admin.ts | 8 ++++---- agents/storage/src/bindings.ts | 2 +- agents/storage/src/client.ts | 2 +- agents/storage/template/worker-entry.ts | 6 +++--- agents/storage/tsconfig.build.json | 2 +- agents/storage/tsconfig.json | 2 +- cli/README.md | 6 +++--- cli/package-lock.json | 4 ++-- cli/package.json | 2 +- cli/src/commands/add.ts | 2 +- cli/src/commands/schema.ts | 2 +- cli/src/lib/agents.ts | 6 +++--- cli/src/lib/entrypoint.ts | 2 +- cli/src/lib/manifest.ts | 2 +- e2e/admin-sdk.api.spec.ts | 6 +++--- e2e/db.ui.spec.ts | 2 +- e2e/remote-config-client.api.spec.ts | 2 +- e2e/storage-client.api.spec.ts | 2 +- e2e/storage.ui.spec.ts | 4 ++-- src/lib/integration-examples.ts | 14 +++++++------- src/lib/openapi/db.ts | 2 +- .../[projectId]/db/[[tool=dbtool]]/+page.svelte | 10 +++++----- src/routes/(marketing)/+page.svelte | 3 ++- static/llms.txt | 6 +++--- 55 files changed, 121 insertions(+), 120 deletions(-) diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index 5b025e4..52759b6 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -65,10 +65,10 @@ jobs: node <<'EOF' >> "$GITHUB_OUTPUT" const { execSync } = require('child_process'); const packages = [ - { name: '@frostbase/auth', dir: 'agents/auth', prefix: 'auth-v' }, - { name: '@frostbase/db', dir: 'agents/db', prefix: 'db-v' }, - { name: '@frostbase/storage', dir: 'agents/storage', prefix: 'storage-v' }, - { name: '@frostbase/cli', dir: 'cli', prefix: 'cli-v' }, + { name: '@frostbase-dev/auth', dir: 'agents/auth', prefix: 'auth-v' }, + { name: '@frostbase-dev/db', dir: 'agents/db', prefix: 'db-v' }, + { name: '@frostbase-dev/storage', dir: 'agents/storage', prefix: 'storage-v' }, + { name: '@frostbase-dev/cli', dir: 'cli', prefix: 'cli-v' }, ]; const refType = process.env.GITHUB_REF_TYPE; const refName = process.env.GITHUB_REF_NAME; diff --git a/AGENTS.md b/AGENTS.md index e888803..4fe7f1d 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -18,7 +18,7 @@ types. | `agents/auth` | `auth-agent` | `AuthAgent` | | `agents/db` | `db-agent` | `DbAgent` `DbCollection` `DbTable` `DbGateway` `DbView` | | `agents/storage` | `storage-agent` | `StorageAgent` `StorageBucket` | -| `cli` | none | `@frostbase/cli`, runs on a consumer's machine | +| `cli` | none | `@frostbase-dev/cli`, runs on a consumer's machine | **Never import runtime code or generated Worker types across those boundaries.** Shared DTOs are deliberately copied — `src/lib/agents.ts` mirrors diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index d9f76ef..744f30e 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -52,12 +52,12 @@ cd agents/db && npx tsc --noEmit && npm run test:unit Separate npm projects with separate Wrangler configs and separate generated `Env` types: -| Path | Worker | What it is | -| ------------- | ------------ | ---------------------------------------------- | -| `/` | web | SvelteKit dashboard and marketing site | -| `agents/auth` | `auth-agent` | `AuthAgent` DO - Better Auth per project | -| `agents/db` | `db-agent` | `DbAgent` + `DbCollection` DOs - documents | -| `cli` | none | `@frostbase/cli`, runs on a consumer's machine | +| Path | Worker | What it is | +| ------------- | ------------ | -------------------------------------------------- | +| `/` | web | SvelteKit dashboard and marketing site | +| `agents/auth` | `auth-agent` | `AuthAgent` DO - Better Auth per project | +| `agents/db` | `db-agent` | `DbAgent` + `DbCollection` DOs - documents | +| `cli` | none | `@frostbase-dev/cli`, runs on a consumer's machine | **Never import runtime code or generated Worker types across those boundaries.** Shared DTOs are deliberately copied - `src/lib/agents.ts` diff --git a/README.md b/README.md index f06295e..23832cb 100644 --- a/README.md +++ b/README.md @@ -47,7 +47,7 @@ allowlist, and an unlisted origin gets a 403. For a server credential, from the CLI: ```bash -npm install -g @frostbase/cli +npm install -g @frostbase-dev/cli frostbase login frostbase init # links this directory to a project frostbase key create server --env-file # writes a service key to .env.local @@ -178,7 +178,7 @@ if (!config.get('signupsOpen')) { Buckets of files with per-bucket access modes: ```ts -import { createStorageClient } from '@frostbase/storage/client'; +import { createStorageClient } from '@frostbase-dev/storage/client'; const storage = createStorageClient({ baseUrl: 'https://frostbase.dev/agents/storage-agent/', @@ -200,9 +200,9 @@ With no user to relay — a cron, queue consumer, or webhook — mint a page). Each agent ships an `./admin` client over it: ```ts -import { createDbAdmin } from '@frostbase/db/admin'; -import { createAuthAdmin } from '@frostbase/auth/admin'; -import { createStorageAdmin } from '@frostbase/storage/admin'; +import { createDbAdmin } from '@frostbase-dev/db/admin'; +import { createAuthAdmin } from '@frostbase-dev/auth/admin'; +import { createStorageAdmin } from '@frostbase-dev/storage/admin'; const db = createDbAdmin(); // url, project, and key from the environment const post = await db.collection('posts').get(id); diff --git a/agents/auth/AGENTS.md b/agents/auth/AGENTS.md index 4a3089b..e9c4418 100644 --- a/agents/auth/AGENTS.md +++ b/agents/auth/AGENTS.md @@ -1,4 +1,4 @@ -# @frostbase/auth +# @frostbase-dev/auth Better Auth on a Durable Object. One `AuthAgent` per project, addressed by project id, each with its own embedded SQLite and its own signing keypair. diff --git a/agents/auth/README.md b/agents/auth/README.md index ac05ccb..ebefead 100644 --- a/agents/auth/README.md +++ b/agents/auth/README.md @@ -1,4 +1,4 @@ -# @frostbase/auth +# @frostbase-dev/auth Better Auth on a Cloudflare Durable Object. One isolated instance per project, each with its own embedded SQLite database, in your account. This is the auth @@ -14,7 +14,7 @@ dashboards; and opt-in auth events into Workers Analytics Engine. The easy way is the CLI, which does all of the wiring below: ```bash -npx @frostbase/cli add auth +npx @frostbase-dev/cli add auth ``` By hand: install the package, re-export the agent from your Worker entrypoint @@ -24,11 +24,11 @@ your `wrangler.jsonc`, and regenerate types. ```ts // src/index.ts -export { AuthAgent, default } from '@frostbase/auth'; +export { AuthAgent, default } from '@frostbase-dev/auth'; ``` ```bash -npm install @frostbase/auth +npm install @frostbase-dev/auth npx wrangler types npx wrangler deploy ``` @@ -43,7 +43,7 @@ catch a missing binding at compile time instead of on the first request, add one line anywhere in your Worker: ```ts -import type { AssertAuthAgentEnv } from '@frostbase/auth'; +import type { AssertAuthAgentEnv } from '@frostbase-dev/auth'; export type _AuthAgentBindings = AssertAuthAgentEnv; ``` diff --git a/agents/auth/frostbase.agent.json b/agents/auth/frostbase.agent.json index e15df66..13623da 100644 --- a/agents/auth/frostbase.agent.json +++ b/agents/auth/frostbase.agent.json @@ -3,7 +3,7 @@ "name": "auth", "title": "Authentication", "description": "Users, sessions, and RBAC on Durable Object SQLite.", - "packageName": "@frostbase/auth", + "packageName": "@frostbase-dev/auth", "worker": "auth-agent", "durableObjects": [{ "class": "AuthAgent", "scope": "perProject" }], "entrypoint": { "assertEnvType": "AssertAuthAgentEnv" }, diff --git a/agents/auth/package-lock.json b/agents/auth/package-lock.json index 7a53ecc..d3a479a 100644 --- a/agents/auth/package-lock.json +++ b/agents/auth/package-lock.json @@ -1,11 +1,11 @@ { - "name": "@frostbase/auth", + "name": "@frostbase-dev/auth", "version": "0.7.1", "lockfileVersion": 3, "requires": true, "packages": { "": { - "name": "@frostbase/auth", + "name": "@frostbase-dev/auth", "version": "0.7.1", "license": "Apache-2.0", "dependencies": { diff --git a/agents/auth/package.json b/agents/auth/package.json index 0e98778..cfbb8a8 100644 --- a/agents/auth/package.json +++ b/agents/auth/package.json @@ -1,5 +1,5 @@ { - "name": "@frostbase/auth", + "name": "@frostbase-dev/auth", "version": "0.7.4", "description": "Better Auth on a Cloudflare Durable Object, one instance per project - the auth primitive behind Frostbase.", "license": "Apache-2.0", diff --git a/agents/auth/src/admin.ts b/agents/auth/src/admin.ts index 5f0537d..4ae36ad 100644 --- a/agents/auth/src/admin.ts +++ b/agents/auth/src/admin.ts @@ -1,8 +1,8 @@ /** - * The ADMIN client for `@frostbase/auth` - user and session management + * The ADMIN client for `@frostbase-dev/auth` - user and session management * from a server. * - * The twin of `@frostbase/db/admin`, and the same three properties hold: + * The twin of `@frostbase-dev/db/admin`, and the same three properties hold: * it targets the CONSOLE (a `cfbs_` service key is verified in the console * guard and never reaches this agent as a bearer), it is admin-grade, and it * is server-only. @@ -51,7 +51,7 @@ export class AuthAdminError extends Error { export class AuthAgentTooOldError extends Error { constructor(path: string) { super( - `the auth agent did not recognise ${path}. Deploy @frostbase/auth 0.7.0 or newer ` + + `the auth agent did not recognise ${path}. Deploy @frostbase-dev/auth 0.7.0 or newer ` + `before calling this - an older agent answers a 404 that looks like a missing user.`, ); this.name = 'AuthAgentTooOldError'; @@ -74,7 +74,7 @@ function assertServerOnly(): void { // which declare no DOM, and a Worker has no document either. if (typeof (globalThis as { document?: unknown }).document !== 'undefined') { throw new Error( - '@frostbase/auth/admin is server-only: it carries a service key, which can read and ' + + '@frostbase-dev/auth/admin is server-only: it carries a service key, which can read and ' + 'delete every account in your project. Never import it into browser code. Use ' + 'better-auth/client with the signed-in user’s own session instead.', ); @@ -98,7 +98,7 @@ function resolve( if (value) return value; } throw new Error( - `@frostbase/auth/admin needs ${label}: pass it explicitly, or set ${names.join(' or ')}. ` + + `@frostbase-dev/auth/admin needs ${label}: pass it explicitly, or set ${names.join(' or ')}. ` + `Inside a Worker, secrets live on \`env\` rather than a global process - pass \`{ env }\`.`, ); } diff --git a/agents/auth/src/bindings.ts b/agents/auth/src/bindings.ts index 8857e74..7f6bc81 100644 --- a/agents/auth/src/bindings.ts +++ b/agents/auth/src/bindings.ts @@ -1,5 +1,5 @@ /** - * The binding contract for consumers of `@frostbase/auth`. + * The binding contract for consumers of `@frostbase-dev/auth`. * * The Agents SDK constrains `Agent` against `Cloudflare.Env`, which * is an empty declaration-merge target that `wrangler types` fills in from your @@ -144,7 +144,7 @@ export interface AuthAgentBindings { * on first request. Use it once, anywhere in your Worker: * * ```ts - * import type { AssertAuthAgentEnv } from '@frostbase/auth'; + * import type { AssertAuthAgentEnv } from '@frostbase-dev/auth'; * type _AuthBindings = AssertAuthAgentEnv; * ``` */ diff --git a/agents/auth/template/worker-entry.ts b/agents/auth/template/worker-entry.ts index efb020d..c8e3b15 100644 --- a/agents/auth/template/worker-entry.ts +++ b/agents/auth/template/worker-entry.ts @@ -1,5 +1,5 @@ /** - * Worker entrypoint for a Worker that hosts `@frostbase/auth`. + * Worker entrypoint for a Worker that hosts `@frostbase-dev/auth`. * * Copy this to the file your `wrangler.jsonc` names as `main`. * @@ -8,7 +8,7 @@ * the binding resolves. The default export is the fetch handler that routes * `/agents/auth-agent//...` to the right instance. */ -export { AuthAgent, default } from '@frostbase/auth'; +export { AuthAgent, default } from '@frostbase-dev/auth'; /** * Compile-time check that your generated `Env` carries the bindings the agent @@ -17,5 +17,5 @@ export { AuthAgent, default } from '@frostbase/auth'; * * Run `npx wrangler types` after editing `wrangler.jsonc` to regenerate `Env`. */ -import type { AssertAuthAgentEnv } from '@frostbase/auth'; +import type { AssertAuthAgentEnv } from '@frostbase-dev/auth'; export type _AuthAgentBindings = AssertAuthAgentEnv; diff --git a/agents/auth/template/wrangler-fragment.jsonc b/agents/auth/template/wrangler-fragment.jsonc index f9e1ecb..53ce583 100644 --- a/agents/auth/template/wrangler-fragment.jsonc +++ b/agents/auth/template/wrangler-fragment.jsonc @@ -1,5 +1,5 @@ /** - * Wrangler configuration for a Worker that hosts `@frostbase/auth`. + * Wrangler configuration for a Worker that hosts `@frostbase-dev/auth`. * * Merge this into your own `wrangler.jsonc`, then run `npx wrangler types` so * the generated `Env` carries these bindings. The agent reads `Env` from your diff --git a/agents/auth/tsconfig.build.json b/agents/auth/tsconfig.build.json index 6ca240a..2eaee56 100644 --- a/agents/auth/tsconfig.build.json +++ b/agents/auth/tsconfig.build.json @@ -1,5 +1,5 @@ /** - * Publish build for `@frostbase/auth`. + * Publish build for `@frostbase-dev/auth`. * * Emits `dist/` from `src/` only. Two things are deliberately left out of the * published package: diff --git a/agents/auth/tsconfig.json b/agents/auth/tsconfig.json index 67b6c56..b0b9c1c 100644 --- a/agents/auth/tsconfig.json +++ b/agents/auth/tsconfig.json @@ -43,7 +43,7 @@ * `dist` is this project's own build output - with allowJs on it would be * typechecked alongside the sources it was emitted from. `template` holds * files meant to be copied into a consumer's project, so they import - * `@frostbase/auth` by package name, which does not resolve from + * `@frostbase-dev/auth` by package name, which does not resolve from * inside the package itself. */ "exclude": ["dist", "template", "node_modules"] diff --git a/agents/db/AGENTS.md b/agents/db/AGENTS.md index 0a96738..7f7ead4 100644 --- a/agents/db/AGENTS.md +++ b/agents/db/AGENTS.md @@ -1,4 +1,4 @@ -# @frostbase/db +# @frostbase-dev/db Documents with live queries and schema-first SQL tables, one Durable Object per collection or table. The largest agent in the repo and the one with the most diff --git a/agents/db/README.md b/agents/db/README.md index b6f1fb1..1d31aea 100644 --- a/agents/db/README.md +++ b/agents/db/README.md @@ -1,11 +1,11 @@ -# @frostbase/db +# @frostbase-dev/db Firestore-style JSON documents with live queries, running on Cloudflare Durable Objects - one isolated instance per collection. The database primitive behind [Frostbase](https://github.com/frostbase-dev/frostbase). ```bash -npx @frostbase/cli add db +npx @frostbase-dev/cli add db ``` The CLI installs this package, merges `template/wrangler-fragment.jsonc` into @@ -23,7 +23,7 @@ steps; both templates ship in the package. `added` / `modified` / `removed` deltas as writes happen. Subscriptions survive hibernation; you pay nothing while idle. - **Access modes per collection** - `public`, `auth`, or `owner`, verified - against `@frostbase/auth` project JWTs. `owner` scopes every read and + against `@frostbase-dev/auth` project JWTs. `owner` scopes every read and write to the token's subject. Optional permission keys additionally require that claim on the JWT (granted via auth roles; the admin role's `*` always passes). @@ -37,12 +37,12 @@ steps; both templates ship in the package. SDK), operator NDJSON import that round-trips exports exactly, and point-in-time restore of a single collection to any moment in the past 30 days (deployed stacks; local development has no durable change log). -- **A typed client** - `@frostbase/db/client` wraps REST, aggregates, +- **A typed client** - `@frostbase-dev/db/client` wraps REST, aggregates, export, and the subscribe protocol with the same zod schemas the server validates with. ```ts -import { createDbClient } from '@frostbase/db/client'; +import { createDbClient } from '@frostbase-dev/db/client'; const db = createDbClient({ baseUrl: 'https://your-worker.workers.dev/agents/db-agent/my-app', @@ -65,7 +65,7 @@ const unsubscribe = posts.subscribe( Required: the `DbAgent` and `DbCollection` Durable Object bindings and the `DB_EVENTS` Analytics Engine dataset (auto-creates on first write). Optional: an `AUTH_AGENT` service binding for multi-worker deployments - in the normal -single-worker install, having `@frostbase/auth` in the same Worker is +single-worker install, having `@frostbase-dev/auth` in the same Worker is enough for token verification. No secret is required for a working deploy. ## What your Worker serves diff --git a/agents/db/frostbase.agent.json b/agents/db/frostbase.agent.json index 5ff07c9..7c08876 100644 --- a/agents/db/frostbase.agent.json +++ b/agents/db/frostbase.agent.json @@ -3,7 +3,7 @@ "name": "db", "title": "Database", "description": "Documents with live queries and SQL tables with typed columns - one Durable Object per collection or table.", - "packageName": "@frostbase/db", + "packageName": "@frostbase-dev/db", "worker": "db-agent", "durableObjects": [ { "class": "DbAgent", "scope": "perProject" }, diff --git a/agents/db/package-lock.json b/agents/db/package-lock.json index 5dcf491..847e6f9 100644 --- a/agents/db/package-lock.json +++ b/agents/db/package-lock.json @@ -1,11 +1,11 @@ { - "name": "@frostbase/db", + "name": "@frostbase-dev/db", "version": "0.6.1", "lockfileVersion": 3, "requires": true, "packages": { "": { - "name": "@frostbase/db", + "name": "@frostbase-dev/db", "version": "0.6.1", "license": "Apache-2.0", "dependencies": { diff --git a/agents/db/package.json b/agents/db/package.json index 8e963f1..4d79595 100644 --- a/agents/db/package.json +++ b/agents/db/package.json @@ -1,5 +1,5 @@ { - "name": "@frostbase/db", + "name": "@frostbase-dev/db", "version": "0.7.0", "description": "Documents with live queries and schema-first SQL tables on Cloudflare Durable Objects, one isolated instance per collection or table - the database primitive behind Frostbase.", "license": "Apache-2.0", diff --git a/agents/db/src/admin.ts b/agents/db/src/admin.ts index 52a2bd9..5c2ec7b 100644 --- a/agents/db/src/admin.ts +++ b/agents/db/src/admin.ts @@ -68,7 +68,7 @@ function resolve( if (value) return value; } throw new Error( - `@frostbase/db/admin needs ${label}: pass it explicitly, or set ${names.join(' or ')}. ` + + `@frostbase-dev/db/admin needs ${label}: pass it explicitly, or set ${names.join(' or ')}. ` + `Inside a Worker, secrets live on \`env\` rather than a global process - pass \`{ env }\`.`, ); } @@ -96,7 +96,7 @@ export class DbAdminError extends Error { export class DbAgentTooOldError extends Error { constructor(path: string) { super( - `the db agent did not recognise ${path}. Deploy @frostbase/db 0.6.0 or newer ` + + `the db agent did not recognise ${path}. Deploy @frostbase-dev/db 0.6.0 or newer ` + `before calling this - an older agent answers a 404 that looks like a missing record.`, ); this.name = 'DbAgentTooOldError'; @@ -119,8 +119,8 @@ function assertServerOnly(): void { // test anyway, since a Worker has neither. if (typeof (globalThis as { document?: unknown }).document !== 'undefined') { throw new Error( - '@frostbase/db/admin is server-only: it carries a service key, which is admin-grade ' + - 'over your whole project. Never import it into browser code. Use @frostbase/db/client ' + + '@frostbase-dev/db/admin is server-only: it carries a service key, which is admin-grade ' + + 'over your whole project. Never import it into browser code. Use @frostbase-dev/db/client ' + 'with the signed-in user’s project JWT instead.', ); } diff --git a/agents/db/src/drizzle.ts b/agents/db/src/drizzle.ts index bb6a6a0..a08ce8b 100644 --- a/agents/db/src/drizzle.ts +++ b/agents/db/src/drizzle.ts @@ -12,7 +12,7 @@ import type { TableSqlResponse, TableSqlResult } from './schemas'; * SQL), so `getToken` is effectively mandatory outside operator tooling. * * ```ts - * import { drizzleTable } from '@frostbase/db/drizzle'; + * import { drizzleTable } from '@frostbase-dev/db/drizzle'; * import { sqliteTable, text, integer } from 'drizzle-orm/sqlite-core'; * * const todos = sqliteTable('todos', { diff --git a/agents/db/template/worker-entry.ts b/agents/db/template/worker-entry.ts index 66488e8..487ec27 100644 --- a/agents/db/template/worker-entry.ts +++ b/agents/db/template/worker-entry.ts @@ -1,5 +1,5 @@ /** - * Worker entrypoint for a Worker that hosts `@frostbase/db`. + * Worker entrypoint for a Worker that hosts `@frostbase-dev/db`. * * Copy this to the file your `wrangler.jsonc` names as `main`. * @@ -8,13 +8,13 @@ * how the bindings resolve. The default export is the fetch handler that * routes `/agents/db-agent//...` to the right instances. * - * Already have a default export (for example from `@frostbase/auth`)? + * Already have a default export (for example from `@frostbase-dev/auth`)? * Re-export only the classes - the existing agent handler routes to any * Durable Object binding by name: * - * export { DbAgent, DbCollection } from '@frostbase/db'; + * export { DbAgent, DbCollection } from '@frostbase-dev/db'; */ -export { DbAgent, DbCollection, default } from '@frostbase/db'; +export { DbAgent, DbCollection, default } from '@frostbase-dev/db'; /** * Compile-time check that your generated `Env` carries the bindings the agent @@ -23,5 +23,5 @@ export { DbAgent, DbCollection, default } from '@frostbase/db'; * * Run `npx wrangler types` after editing `wrangler.jsonc` to regenerate `Env`. */ -import type { AssertDbAgentEnv } from '@frostbase/db'; +import type { AssertDbAgentEnv } from '@frostbase-dev/db'; export type _DbAgentBindings = AssertDbAgentEnv; diff --git a/agents/db/template/wrangler-fragment.jsonc b/agents/db/template/wrangler-fragment.jsonc index 9ab0f11..14ba421 100644 --- a/agents/db/template/wrangler-fragment.jsonc +++ b/agents/db/template/wrangler-fragment.jsonc @@ -1,5 +1,5 @@ /** - * Wrangler configuration for a Worker that hosts `@frostbase/db`. + * Wrangler configuration for a Worker that hosts `@frostbase-dev/db`. * * Merge this into your own `wrangler.jsonc`, then run `npx wrangler types` so * the generated `Env` carries these bindings. The agent reads `Env` from your @@ -71,7 +71,7 @@ ], /** - * NOT included: an AUTH_AGENT service binding. If `@frostbase/auth` + * NOT included: an AUTH_AGENT service binding. If `@frostbase-dev/auth` * lives in this same Worker (the normal `frostbase add auth` setup), * the db agent finds its AuthAgent Durable Object binding automatically * and token-verified collections just work. A service binding is only for diff --git a/agents/db/tsconfig.build.json b/agents/db/tsconfig.build.json index 37122d9..412c281 100644 --- a/agents/db/tsconfig.build.json +++ b/agents/db/tsconfig.build.json @@ -1,5 +1,5 @@ /** - * Publish build for `@frostbase/db`. + * Publish build for `@frostbase-dev/db`. * * Emits `dist/` from `src/` only. Deliberately left out of the published * package: diff --git a/agents/db/tsconfig.json b/agents/db/tsconfig.json index 67b6c56..b0b9c1c 100644 --- a/agents/db/tsconfig.json +++ b/agents/db/tsconfig.json @@ -43,7 +43,7 @@ * `dist` is this project's own build output - with allowJs on it would be * typechecked alongside the sources it was emitted from. `template` holds * files meant to be copied into a consumer's project, so they import - * `@frostbase/auth` by package name, which does not resolve from + * `@frostbase-dev/auth` by package name, which does not resolve from * inside the package itself. */ "exclude": ["dist", "template", "node_modules"] diff --git a/agents/storage/AGENTS.md b/agents/storage/AGENTS.md index ca79580..8b5b51c 100644 --- a/agents/storage/AGENTS.md +++ b/agents/storage/AGENTS.md @@ -1,4 +1,4 @@ -# @frostbase/storage +# @frostbase-dev/storage Buckets of files on R2. The bytes live in R2, the *index* lives in Durable Objects, and the data plane is the **worker** — bytes never enter a DO. diff --git a/agents/storage/README.md b/agents/storage/README.md index bd73ac6..b31adc6 100644 --- a/agents/storage/README.md +++ b/agents/storage/README.md @@ -1,4 +1,4 @@ -# @frostbase/storage +# @frostbase-dev/storage Object storage on Cloudflare R2 - buckets of files with per-bucket access modes, served through your worker with a sorted, pageable index. The storage @@ -14,7 +14,7 @@ serves downloads with `Range`, conditional requests, and edge caching. ## Install ```sh -npx @frostbase/cli add storage +npx @frostbase-dev/cli add storage ``` The CLI installs this package, merges `template/wrangler-fragment.jsonc` into diff --git a/agents/storage/frostbase.agent.json b/agents/storage/frostbase.agent.json index def34a9..261508e 100644 --- a/agents/storage/frostbase.agent.json +++ b/agents/storage/frostbase.agent.json @@ -3,7 +3,7 @@ "name": "storage", "title": "Storage", "description": "Object storage on R2 - buckets of files with per-bucket access modes, served through the worker with a sorted, pageable index.", - "packageName": "@frostbase/storage", + "packageName": "@frostbase-dev/storage", "worker": "storage-agent", "durableObjects": [ { diff --git a/agents/storage/package-lock.json b/agents/storage/package-lock.json index 8801416..6ba2f99 100644 --- a/agents/storage/package-lock.json +++ b/agents/storage/package-lock.json @@ -1,11 +1,11 @@ { - "name": "@frostbase/storage", + "name": "@frostbase-dev/storage", "version": "0.1.0", "lockfileVersion": 3, "requires": true, "packages": { "": { - "name": "@frostbase/storage", + "name": "@frostbase-dev/storage", "version": "0.1.0", "license": "Apache-2.0", "dependencies": { diff --git a/agents/storage/package.json b/agents/storage/package.json index c7f0b24..fb78049 100644 --- a/agents/storage/package.json +++ b/agents/storage/package.json @@ -1,5 +1,5 @@ { - "name": "@frostbase/storage", + "name": "@frostbase-dev/storage", "version": "0.4.0", "description": "Object storage on Cloudflare R2 - buckets of files with per-bucket access modes, an object index with keyset paging, one Durable Object orchestrator per project - the storage primitive behind Frostbase.", "license": "Apache-2.0", diff --git a/agents/storage/src/admin.ts b/agents/storage/src/admin.ts index 457ec11..73cc387 100644 --- a/agents/storage/src/admin.ts +++ b/agents/storage/src/admin.ts @@ -1,5 +1,5 @@ /** - * The ADMIN client for `@frostbase/storage` - buckets and object bytes + * The ADMIN client for `@frostbase-dev/storage` - buckets and object bytes * from a server. * * The twin of the db and auth admin clients: it targets the CONSOLE (a `cfbs_` @@ -46,7 +46,7 @@ export class StorageAdminError extends Error { export class StorageAgentTooOldError extends Error { constructor(path: string) { super( - `the console did not recognise ${path}. Deploy a console (and @frostbase/storage) that ` + + `the console did not recognise ${path}. Deploy a console (and @frostbase-dev/storage) that ` + `ships the storage object proxy before calling this - an older deployment answers a 404 ` + `that looks like a missing object.`, ); @@ -70,7 +70,7 @@ export interface StorageObjectSummary { function assertServerOnly(): void { if (typeof (globalThis as { document?: unknown }).document !== 'undefined') { throw new Error( - '@frostbase/storage/admin is server-only: it carries a service key, which can read, ' + + '@frostbase-dev/storage/admin is server-only: it carries a service key, which can read, ' + 'overwrite, and delete every object in your project regardless of bucket access modes. ' + 'Never import it into browser code - upload from the browser with the signed-in user’s ' + 'project JWT against the public object path instead.', @@ -92,7 +92,7 @@ function resolve( if (value) return value; } throw new Error( - `@frostbase/storage/admin needs ${label}: pass it explicitly, or set ${names.join(' or ')}. ` + + `@frostbase-dev/storage/admin needs ${label}: pass it explicitly, or set ${names.join(' or ')}. ` + `Inside a Worker, secrets live on \`env\` rather than a global process - pass \`{ env }\`.`, ); } diff --git a/agents/storage/src/bindings.ts b/agents/storage/src/bindings.ts index f25a9c1..c5d4b78 100644 --- a/agents/storage/src/bindings.ts +++ b/agents/storage/src/bindings.ts @@ -1,5 +1,5 @@ /** - * The binding contract for a Worker hosting `@frostbase/storage`. + * The binding contract for a Worker hosting `@frostbase-dev/storage`. * * `AssertStorageAgentEnv` is an identity type whose CONSTRAINT does the * checking: the consumer's entrypoint template instantiates it with their diff --git a/agents/storage/src/client.ts b/agents/storage/src/client.ts index 7992686..bf8952b 100644 --- a/agents/storage/src/client.ts +++ b/agents/storage/src/client.ts @@ -15,7 +15,7 @@ import { SIGNED_URL_MAX_TTL_SECONDS, type SignedMethod } from './signing'; * This is the END-USER client: it speaks the public object paths with a * project JWT, so every call is subject to the bucket's access modes, owner * scoping, and permission keys. The server-side counterpart is - * `@frostbase/storage/admin`, which bypasses modes over a service key and + * `@frostbase-dev/storage/admin`, which bypasses modes over a service key and * REFUSES to construct in a browser. * * Bytes go straight to the agent, never through a JSON proxy: uploads and diff --git a/agents/storage/template/worker-entry.ts b/agents/storage/template/worker-entry.ts index a567356..b551018 100644 --- a/agents/storage/template/worker-entry.ts +++ b/agents/storage/template/worker-entry.ts @@ -6,9 +6,9 @@ * bindings in wrangler.jsonc resolve. If your project already has a default * export, drop the `default` re-export below and keep your own: * - * export { StorageAgent, StorageBucket } from '@frostbase/storage'; + * export { StorageAgent, StorageBucket } from '@frostbase-dev/storage'; */ -export { StorageAgent, StorageBucket, default } from '@frostbase/storage'; +export { StorageAgent, StorageBucket, default } from '@frostbase-dev/storage'; /** * Compile-time binding contract: if wrangler.jsonc is missing a binding the @@ -16,5 +16,5 @@ export { StorageAgent, StorageBucket, default } from '@frostbase/storage'; * field named - before anything deploys. Run `wrangler types` after changing * bindings so `Env` is current. */ -import type { AssertStorageAgentEnv } from '@frostbase/storage'; +import type { AssertStorageAgentEnv } from '@frostbase-dev/storage'; export type _StorageAgentBindings = AssertStorageAgentEnv; diff --git a/agents/storage/tsconfig.build.json b/agents/storage/tsconfig.build.json index 795f3e9..50e37d6 100644 --- a/agents/storage/tsconfig.build.json +++ b/agents/storage/tsconfig.build.json @@ -1,5 +1,5 @@ /** - * Publish build for `@frostbase/storage`. + * Publish build for `@frostbase-dev/storage`. * * Emits `dist/` from `src/` only. Deliberately left out of the published * package: diff --git a/agents/storage/tsconfig.json b/agents/storage/tsconfig.json index 8e72185..590e4b9 100644 --- a/agents/storage/tsconfig.json +++ b/agents/storage/tsconfig.json @@ -21,7 +21,7 @@ * `dist` is this project's own build output - with allowJs on it would be * typechecked alongside the sources it was emitted from. `template` holds * files meant to be copied into a consumer's project, so they import - * `@frostbase/storage` by package name, which does not resolve from + * `@frostbase-dev/storage` by package name, which does not resolve from * inside the package itself. */ "exclude": ["dist", "template", "node_modules"] diff --git a/cli/README.md b/cli/README.md index ef49bea..1def397 100644 --- a/cli/README.md +++ b/cli/README.md @@ -1,10 +1,10 @@ -# @frostbase/cli +# @frostbase-dev/cli Scaffold and deploy a [Frostbase](https://github.com/frostbase-dev/frostbase) backend on your own Cloudflare account. ```bash -npm install -g @frostbase/cli +npm install -g @frostbase-dev/cli frostbase init my-backend cd my-backend @@ -37,7 +37,7 @@ UI; cross-origin requests from unlisted origins get an explicit 403 Available agents today: `auth` and `db`. -To pin a version: `FROSTBASE_DB_SPEC=@frostbase/db@0.1.3 +To pin a version: `FROSTBASE_DB_SPEC=@frostbase-dev/db@0.1.3 frostbase add db` (and `FROSTBASE_AUTH_SPEC` for auth). ## Notes diff --git a/cli/package-lock.json b/cli/package-lock.json index 5ddbd0c..ba605b4 100644 --- a/cli/package-lock.json +++ b/cli/package-lock.json @@ -1,11 +1,11 @@ { - "name": "@frostbase/cli", + "name": "@frostbase-dev/cli", "version": "0.4.0", "lockfileVersion": 3, "requires": true, "packages": { "": { - "name": "@frostbase/cli", + "name": "@frostbase-dev/cli", "version": "0.4.0", "license": "Apache-2.0", "dependencies": { diff --git a/cli/package.json b/cli/package.json index 4c6909e..15b775c 100644 --- a/cli/package.json +++ b/cli/package.json @@ -1,5 +1,5 @@ { - "name": "@frostbase/cli", + "name": "@frostbase-dev/cli", "version": "0.7.0", "description": "Scaffold and deploy a Frostbase backend on your own Cloudflare account.", "license": "Apache-2.0", diff --git a/cli/src/commands/add.ts b/cli/src/commands/add.ts index 4cef1f2..090570e 100644 --- a/cli/src/commands/add.ts +++ b/cli/src/commands/add.ts @@ -104,7 +104,7 @@ async function findWranglerConfig(projectDir: string): Promise { throw new UserError( 'This project uses wrangler.toml, which this CLI does not edit.', 'Convert it to wrangler.jsonc (same keys, JSONC syntax), or merge node_modules/' + - '@frostbase/auth/template/wrangler-fragment.jsonc into it by hand.' + '@frostbase-dev/auth/template/wrangler-fragment.jsonc into it by hand.' ); } catch (cause) { if (cause instanceof UserError) throw cause; diff --git a/cli/src/commands/schema.ts b/cli/src/commands/schema.ts index 40fe9c9..05ea9ee 100644 --- a/cli/src/commands/schema.ts +++ b/cli/src/commands/schema.ts @@ -169,7 +169,7 @@ async function generate(flags: Flags): Promise { `// Generated by \`frostbase schema generate\` from project ${projectId}`, `// on ${new Date().toISOString()}. DDL stays server-side: change columns with`, '// `frostbase schema apply` (or the dashboard) and re-generate. This file', - '// is for querying through @frostbase/db/drizzle.', + '// is for querying through @frostbase-dev/db/drizzle.', `import { ${[...imports].sort().join(', ')} } from 'drizzle-orm/sqlite-core';` ].join('\n'); diff --git a/cli/src/lib/agents.ts b/cli/src/lib/agents.ts index df56cd8..6282a8e 100644 --- a/cli/src/lib/agents.ts +++ b/cli/src/lib/agents.ts @@ -26,15 +26,15 @@ export interface AgentSpec { */ export const AGENTS: Record = { auth: { - packageName: '@frostbase/auth', + packageName: '@frostbase-dev/auth', description: 'Better Auth on a Durable Object - one isolated instance per project' }, db: { - packageName: '@frostbase/db', + packageName: '@frostbase-dev/db', description: 'Firestore-style documents with live queries - one Durable Object per collection' }, storage: { - packageName: '@frostbase/storage', + packageName: '@frostbase-dev/storage', description: 'Object storage on R2 - buckets of files with per-bucket access modes' } }; diff --git a/cli/src/lib/entrypoint.ts b/cli/src/lib/entrypoint.ts index 48fd4a6..8fdc1de 100644 --- a/cli/src/lib/entrypoint.ts +++ b/cli/src/lib/entrypoint.ts @@ -49,7 +49,7 @@ export async function patchEntrypoint( */ let exportLine = lines.full; if (/export\s+default|export\s*\{[^}]*\bdefault\b/.test(source)) { - if (!source.includes('@frostbase/')) { + if (!source.includes('@frostbase-dev/')) { throw new UserError( `${entrypointPath} already has a default export.`, `Export the agent classes yourself and route to them from your fetch handler:\n` + diff --git a/cli/src/lib/manifest.ts b/cli/src/lib/manifest.ts index a1bde23..78f5175 100644 --- a/cli/src/lib/manifest.ts +++ b/cli/src/lib/manifest.ts @@ -120,7 +120,7 @@ export async function readManifest( if (version !== 1) { throw new UserError( `${packageName} declares agent manifest version ${String(version)}, which this CLI does not understand.`, - 'Upgrade @frostbase/cli and try again.' + 'Upgrade @frostbase-dev/cli and try again.' ); } diff --git a/e2e/admin-sdk.api.spec.ts b/e2e/admin-sdk.api.spec.ts index dc29a9c..50cbc85 100644 --- a/e2e/admin-sdk.api.spec.ts +++ b/e2e/admin-sdk.api.spec.ts @@ -46,7 +46,7 @@ test.describe('admin clients', () => { } }); - test('db: collections and tables through @frostbase/db/admin', async () => { + test('db: collections and tables through @frostbase-dev/db/admin', async () => { const db = createDbAdmin({ url, projectId: SDK_PROJECT, key }); const posts = db.collection<{ title: string; votes: number }>(`posts-${run}`); @@ -90,7 +90,7 @@ test.describe('admin clients', () => { await expect(posts.get('one')).rejects.toThrow(/no such/i); }); - test('auth: user lifecycle through @frostbase/auth/admin', async () => { + test('auth: user lifecycle through @frostbase-dev/auth/admin', async () => { const auth = createAuthAdmin({ url, projectId: SDK_PROJECT, key }); const email = `sdk-${run}@example.com`; @@ -129,7 +129,7 @@ test.describe('admin clients', () => { await expect(auth.getUser(created.id)).rejects.toThrow(/not found/i); }); - test('storage: bucket and object bytes through @frostbase/storage/admin', async () => { + test('storage: bucket and object bytes through @frostbase-dev/storage/admin', async () => { const storage = createStorageAdmin({ url, projectId: SDK_PROJECT, key }); const bucket = storage.bucket('sdk-files'); await bucket.configure({}); diff --git a/e2e/db.ui.spec.ts b/e2e/db.ui.spec.ts index c8b0e9d..61d05b3 100644 --- a/e2e/db.ui.spec.ts +++ b/e2e/db.ui.spec.ts @@ -403,7 +403,7 @@ test.describe('database page (frontend)', () => { const integration = page.getByTestId('db-integration'); await expect(integration).toContainText(`/api/projects/${DB_UI_PROJECT}/db`); await integration.getByRole('tab', { name: 'Client SDK' }).click(); - await expect(integration).toContainText('@frostbase/db/client'); + await expect(integration).toContainText('@frostbase-dev/db/client'); await integration.getByRole('tab', { name: 'Raw WebSocket' }).click(); await expect(integration).toContainText(`/agents/db-agent/${DB_UI_PROJECT}/collections`); }); diff --git a/e2e/remote-config-client.api.spec.ts b/e2e/remote-config-client.api.spec.ts index 371e77f..cfdc0ef 100644 --- a/e2e/remote-config-client.api.spec.ts +++ b/e2e/remote-config-client.api.spec.ts @@ -3,7 +3,7 @@ import { createDbClient } from '../agents/db/src/client'; import { ensureProject } from './helpers'; /** - * The END-USER Remote Config client (`@frostbase/db/client`), driven as an + * The END-USER Remote Config client (`@frostbase-dev/db/client`), driven as an * app would drive it. * * Same rule as the storage-client and admin-sdk specs: exercise the REAL diff --git a/e2e/storage-client.api.spec.ts b/e2e/storage-client.api.spec.ts index 2696fbf..c1decca 100644 --- a/e2e/storage-client.api.spec.ts +++ b/e2e/storage-client.api.spec.ts @@ -3,7 +3,7 @@ import { createStorageClient, StorageError } from '../agents/storage/src/client' import { authPath, ensureProject, storageBucketPath, uniqueEmail } from './helpers'; /** - * The END-USER storage client (`@frostbase/storage/client`). + * The END-USER storage client (`@frostbase-dev/storage/client`). * * Drives the REAL exported client rather than a hand-rolled fetch at the same * URLs - the point is to prove the published surface works, including its URL diff --git a/e2e/storage.ui.spec.ts b/e2e/storage.ui.spec.ts index d4b98bc..8dea2e4 100644 --- a/e2e/storage.ui.spec.ts +++ b/e2e/storage.ui.spec.ts @@ -234,7 +234,7 @@ test.describe('storage console', () => { test('the Integration page shows the client snippet', async ({ page }) => { await page.goto(`/dashboard/${UI_PROJECT}/storage/integration`); const panel = page.getByTestId('storage-integration'); - await expect(panel).toContainText('@frostbase/storage/client'); + await expect(panel).toContainText('@frostbase-dev/storage/client'); await expect(panel).toContainText('createSignedUrl'); // The shared code-sample component, so the snippets get the same tabs, // copy button, and syntax highlighting every other Integration tab has. @@ -242,7 +242,7 @@ test.describe('storage console', () => { // One name for the server credential across all three agents' Integration // tabs - it was 'Server' here and 'Service key' on auth and db. await panel.getByRole('tab', { name: 'Admin service key' }).click(); - await expect(panel).toContainText('@frostbase/storage/admin'); + await expect(panel).toContainText('@frostbase-dev/storage/admin'); // And the page shape matches auth and db: base URL, samples, caveat. await expect(panel).toContainText('Storage base URL'); }); diff --git a/src/lib/integration-examples.ts b/src/lib/integration-examples.ts index f14e829..4ee0fbc 100644 --- a/src/lib/integration-examples.ts +++ b/src/lib/integration-examples.ts @@ -132,7 +132,7 @@ curl ${url}/get-session \\ id: 'service-key', label: 'Admin service key', lang: 'typescript', - code: `import { createAuthAdmin } from '@frostbase/auth/admin'; + code: `import { createAuthAdmin } from '@frostbase-dev/auth/admin'; // SERVER ONLY. An admin service key can read, create, re-role, and delete // every account in this project. Mint one under Settings - it is shown once @@ -205,7 +205,7 @@ const { docs } = await (await fetch('${url}/collections/posts/query', { id: 'db-sdk', label: 'Client SDK', lang: 'typescript', - code: `import { createDbClient } from '@frostbase/db/client'; + code: `import { createDbClient } from '@frostbase-dev/db/client'; const db = createDbClient({ baseUrl: '${url}', @@ -227,7 +227,7 @@ const unsubscribe = posts.subscribe( id: 'db-tables', label: 'SQL tables', lang: 'typescript', - code: `import { createDbClient } from '@frostbase/db/client'; + code: `import { createDbClient } from '@frostbase-dev/db/client'; const db = createDbClient({ baseUrl: '${url}', getToken }); @@ -245,7 +245,7 @@ todos.subscribe( id: 'db-drizzle', label: 'Drizzle', lang: 'typescript', - code: `import { drizzleTable } from '@frostbase/db/drizzle'; + code: `import { drizzleTable } from '@frostbase-dev/db/drizzle'; import { desc } from 'drizzle-orm'; import { sqliteTable, text, integer } from 'drizzle-orm/sqlite-core'; @@ -292,7 +292,7 @@ export function buildRemoteConfigIntegrationExamples(url: string): CodeExample[] id: 'config-sdk', label: 'Client SDK', lang: 'typescript', - code: `import { createDbClient } from '@frostbase/db/client'; + code: `import { createDbClient } from '@frostbase-dev/db/client'; // getToken is optional - a signed-in user's project JWT is what enables // role and permission targeting. Anonymous callers just omit it. @@ -376,7 +376,7 @@ export function buildStorageIntegrationExamples( id: 'storage-sdk', label: 'Client SDK', lang: 'typescript', - code: `import { createStorageClient } from '@frostbase/storage/client'; + code: `import { createStorageClient } from '@frostbase-dev/storage/client'; const storage = createStorageClient({ baseUrl: '${agentBase}',${ @@ -462,7 +462,7 @@ const blob = await response.blob();` id: 'storage-server', label: 'Admin service key', lang: 'typescript', - code: `import { createStorageAdmin } from '@frostbase/storage/admin'; + code: `import { createStorageAdmin } from '@frostbase-dev/storage/admin'; // SERVER ONLY. An admin service key is admin-grade over this project's // storage: it bypasses bucket access modes, exactly like the operator session diff --git a/src/lib/openapi/db.ts b/src/lib/openapi/db.ts index 55c572f..842ca97 100644 --- a/src/lib/openapi/db.ts +++ b/src/lib/openapi/db.ts @@ -331,7 +331,7 @@ export const dbOpenApi: AgentOpenApiModule = { tags: [DB_TAG], summary: 'Run single-table SQL (ORM-grade, D1-shaped)', description: - 'One SELECT/INSERT/UPDATE/DELETE (or an atomic `batch`) over this table alone - what `@frostbase/db/drizzle` drives. DML gains automatic RETURNING and feeds the change log and live queries. ALWAYS requires a project JWT (public modes never open raw SQL); owner-scoped tables refuse it. Results carry objects plus `raw` value arrays with `columns` order for drivers. SELECTs serve from region replicas when replication is on.', + 'One SELECT/INSERT/UPDATE/DELETE (or an atomic `batch`) over this table alone - what `@frostbase-dev/db/drizzle` drives. DML gains automatic RETURNING and feeds the change log and live queries. ALWAYS requires a project JWT (public modes never open raw SQL); owner-scoped tables refuse it. Results carry objects plus `raw` value arrays with `columns` order for drivers. SELECTs serve from region replicas when replication is on.', parameters: [tableParam], security: PUBLIC_SECURITY, requestBody: { diff --git a/src/routes/(app)/dashboard/[projectId]/db/[[tool=dbtool]]/+page.svelte b/src/routes/(app)/dashboard/[projectId]/db/[[tool=dbtool]]/+page.svelte index 964ec17..fade7bf 100644 --- a/src/routes/(app)/dashboard/[projectId]/db/[[tool=dbtool]]/+page.svelte +++ b/src/routes/(app)/dashboard/[projectId]/db/[[tool=dbtool]]/+page.svelte @@ -897,7 +897,7 @@ curl -X POST ${dbBase}/collections/posts/documents \\ id: 'sdk', label: 'Client SDK', lang: 'typescript', - code: `import { createDbClient } from '@frostbase/db/client'; + code: `import { createDbClient } from '@frostbase-dev/db/client'; // IN THE BROWSER. This fetch sends no Authorization header - it works // because the browser attaches the signed-in user's session cookie, so the @@ -931,7 +931,7 @@ const unsubscribe = posts.subscribe( id: 'ssr', label: 'Server (SSR)', lang: 'typescript', - code: `import { createDbClient } from '@frostbase/db/client'; + code: `import { createDbClient } from '@frostbase-dev/db/client'; // ON A SERVER there is no ambient session, so you RELAY the identity the // user already sent you: /auth/token accepts the session cookie or a bearer @@ -960,7 +960,7 @@ export async function load({ request }) { id: 'service-key', label: 'Admin service key', lang: 'typescript', - code: `import { createDbAdmin } from '@frostbase/db/admin'; + code: `import { createDbAdmin } from '@frostbase-dev/db/admin'; // SERVER ONLY. An admin service key is admin-grade over this project's whole // data plane: it bypasses access modes, validators, and permission keys, exactly @@ -995,7 +995,7 @@ await db.table('orders').sql('SELECT * FROM orders WHERE id = ?', [id]); id: 'tables', label: 'SQL tables', lang: 'typescript', - code: `import { createDbClient } from '@frostbase/db/client'; + code: `import { createDbClient } from '@frostbase-dev/db/client'; const db = createDbClient({ baseUrl: '${dbBase}', @@ -1019,7 +1019,7 @@ todos.subscribe( id: 'drizzle', label: 'Drizzle', lang: 'typescript', - code: `import { drizzleTable } from '@frostbase/db/drizzle'; + code: `import { drizzleTable } from '@frostbase-dev/db/drizzle'; import { desc } from 'drizzle-orm'; import { sqliteTable, text, integer } from 'drizzle-orm/sqlite-core'; diff --git a/src/routes/(marketing)/+page.svelte b/src/routes/(marketing)/+page.svelte index f66851b..564a891 100644 --- a/src/routes/(marketing)/+page.svelte +++ b/src/routes/(marketing)/+page.svelte @@ -875,7 +875,8 @@

Point fetch at your project's endpoint and you're integrated - this is the exact API the demo dashboard uses. When you want types, the - Better Auth client and @frostbase/db/client wrap the same routes. + Better Auth client and @frostbase-dev/db/client wrap the same + routes.

  • diff --git a/static/llms.txt b/static/llms.txt index 7e1e897..f73b205 100644 --- a/static/llms.txt +++ b/static/llms.txt @@ -13,9 +13,9 @@ Frostbase is agent-first: every backend primitive ships as a versioned npm packa ## Source - [GitHub](https://github.com/frostbase-dev/frostbase): the whole repository, including both agents and the CLI. -- [@frostbase/auth](https://www.npmjs.com/package/@frostbase/auth): Better Auth in a per-project Durable Object. -- [@frostbase/db](https://www.npmjs.com/package/@frostbase/db): documents and typed SQL tables, both with live queries. -- [@frostbase/cli](https://www.npmjs.com/package/@frostbase/cli): `init`, `add `, `deploy`, `schema`. +- [@frostbase-dev/auth](https://www.npmjs.com/package/@frostbase-dev/auth): Better Auth in a per-project Durable Object. +- [@frostbase-dev/db](https://www.npmjs.com/package/@frostbase-dev/db): documents and typed SQL tables, both with live queries. +- [@frostbase-dev/cli](https://www.npmjs.com/package/@frostbase-dev/cli): `init`, `add `, `deploy`, `schema`. ## Optional