From c9a9cccff5b28d901dd6597a8734b35172f6b5a6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Julien=20Valverd=C3=A9?= Date: Sat, 27 Jul 2024 02:13:08 +0200 Subject: [PATCH 01/10] Dependencies upgrade --- bun.lockb | Bin 154881 -> 163918 bytes package.json | 12 ++++++------ 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/bun.lockb b/bun.lockb index 520463aa76f04621c5efd1d2e1ad9c49f964c3cb..a80897138669914fe27aa0b23302f2ef3149fad5 100755 GIT binary patch delta 33908 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 z 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 delta 29406 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 CJx@LW diff --git a/package.json b/package.json index 65f6d22..7d2c146 100644 --- a/package.json +++ b/package.json @@ -46,16 +46,16 @@ "clean:node": "rm -rf node_modules" }, "dependencies": { - "remeda": "^2.2.2", - "type-fest": "^4.21.0" + "remeda": "^2.6.0", + "type-fest": "^4.23.0" }, "devDependencies": { - "bun-types": "^1.1.17", + "bun-types": "^1.1.20", "npm-check-updates": "^16.14.20", "npm-sort": "^0.0.4", - "tsup": "^8.1.0", - "tsx": "^4.16.0", - "typescript": "^5.5.3" + "tsup": "^8.2.3", + "tsx": "^4.16.2", + "typescript": "^5.5.4" }, "optionalDependencies": { "@effect/schema": "*", -- 2.49.1 From 8622c1f6211d5349a18ae07e8f3a5d368feda510 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Julien=20Valverd=C3=A9?= Date: Sat, 27 Jul 2024 02:14:05 +0200 Subject: [PATCH 02/10] Regenerated lockfile --- bun.lockb | Bin 163918 -> 164302 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/bun.lockb b/bun.lockb index a80897138669914fe27aa0b23302f2ef3149fad5..132e9477024348ce68fac1b04e7791b1a9aaa31a 100755 GIT binary patch delta 33612 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 delta 33050 zcmeIb2UJu^*Dl=WKr4;5fPzF7R1^a!IVr&iHU{WuXoY z*J$v6QANBtf=&k|`DZ)XrcKcc zDSXyJrmoD>#J125MQJ#>S?TEo*&0pDsv1od@by5QKr1NxpAb^(mp~yZ+6Y<`lz}>f z7AW%epf$iZ1g#Eg1zHXCB^o1o9+c{DlKHwtvyj05MMLpMYUhBGLiM07O@tjNxrUCF zm{d#6OOMYZ>tq;nlZ{@mQgUWiF3j}FRW^ocZFz95K*=}>x$%j{JdI|rA}{ME&q5ba z%70%=wti}!dvbbKg2u9rT>l} z&1=|o-w1ZF;}C>F32W>YVHTi`R9>Ot0}jUY|%3c%}u0I8cki~)67wr$Vko02O)8x zCbF^Iz%Epv0@Fg|hV-FwLtQ~>D&9d(k?09{Qs_2#ETp33tbA%n6B;h(&jBS@s1Hi* zg*TDga|BNVGgs*TFlxV0Q*<2((!6t1*%E36tmwYf@PcM?hs}^rvA7N>t&0z+M;$#< z=qXV0sqQUg#XEqK?-WB$KK83(A$T^7twq% zGn2A3KcfQWr^M&E4~WmroTKnJBju4rw~`fX21<$qf>QZ2$S1y^LC$ZDHc2tEWFZyk zot5vNotu@74zm*apu?2-^fVMo$m(y*1PwzCDyLTTM}ivgP-sn1bMTF!5XsfKt_q$; zULF+Dx=0OpW82E@X@X#XDv+C+ksF_+(Ub(rPIm{COluh}&tadutV~}h(uW3~k*uxlQPRoN8gLO!Kl5 z)AEoX-dP^GKPXw|h(i11C6GZiA5osD`2NhAEC$=?f(EXrf zna^+VI$92%Mt&RRshwk>q?me+@J*8y%)~Uf7bXwLR=r=^ z?_kPX>2iUr%tYv}(e%rW&(6l={pX3wDN~+;)XWrPZfbrWf<$_1a!USr)F%ZHWiT9# zrdO7H?q~-}mZ^&QqJazp4IxwHAwkqON3LiCo<`gZ6=+1s@de4Gi6>S7&224E>cA~F!o&bA*r^T^$usk9Ic+%V%os&W%hR6*c z2Bmrf*%5s;-IJkmEpJw$Z_8#@bYq7rPG;{a^s*ae**!gdq%b$H%;X`7GlTlSI4~r8 z?xo}B*cOYKc29bD?R2Bjo@QNs^=tpA)%z!H8thwae{{b!>tzwtdPRv>|#!|3*I!|X^$2j5S>z^ym6{jXme$@WgBbSXo z_hFN*0@!J*US=nM+nGIc;-9xRhE*IRggIQCG4Ris0l$QwyQZ=0mAU5JUw6cwz4E$KwU|A-hnnY%u089J=JrlzR@s@gtDIu?)hDM- z#HvS@Y)j=Zvv$vHKCQdmV>H`h=rTl` z5ZX1lJF~QPHfvyEmQZcV#z(B7Z9`UMYsVJa+O^vrxVu?=&i1;+FLaeEnfx%i?V2g-1K~7_wr?^tsb7-I>!b@tk$>sIbCI)93uWJZM%@ zT$3~G@l!r6?QOcKPUuU%?xMqBmzQ&&1#A~OJ#tg!yFVsv>$_{gs?dX%a>7j97x!p7 zW8Z;>#gTJNLr0a}^ozyjI>C{ZJ~TRd-LY@uPs6g8Zpk}Q*`Z$tR@>Ue()f8*P?f;K zKXZmXd0jGZNFwWH9l_RFhp~6o&X%eIJED3F)@+D5!UAlZ*=>gayLHA+vrqe<-X8qp z;_F^6@AtN@=QZ_>%PUjX%OSw6Ywf*$!zOn;yQELwf&pK;Rfz~4ryJYq_USpZjymLI zY$@lra-!{&4l#Av9y>R-&cV6e<8xnky4Jk(qWSw1W*3X1pC8Yd_;yL#mo2Q8mV_)j zxY}xMkFs?R|CIV%HDprkgl7(2+B83S?9ry7J)?3CuWK@EX8(Be19PvOtUb8zN7mWi z%}o2pbid4*Ys<6S_C?Ij-kD9dk0`wDSGc2iPUjo5+nssY_2dlm;P88YOkOzud3cJ;5hD;{sKEgar2FT08{(x>3C>X+(J z8;s5>>mO=AYeUVMktOB(e68?%Y6XW)(RnQgS6YOi zRf4torW#EPDYXr$2q`6MH5xg$1yZtXB2sd>^HT2TYK??4EXX<3w2Vd*B~@FElw9~V zQf(wzld@{=M5L4kkcwbCt2Z(=qkbAYHxkU)K(qu_Zs|2ra@in+u2xb@BaxC@KaNxs zg94_AcM%&uS2vh2v!I6J-3n}*TZq`qf(6wH(GA9S6O1@#&i2;u*A;`qi4Y$khXwnK z8cVhfMLJ@KXa=FchSm1h%>+k9Ojvj;fAP5`8(23)=ZS5fgl1BaKNYSl6WsiDLD*^W z0ivi3+grz9SEO)SiQ54#40)z(7<#XYK#U^>nx=aB;6kJ}iQAxXDCz32{S2-N+gT@A zjI?GS>WAn?S*r>N&~Z07>Jkco`>1fT0{+*_Bqsmwmq3K8#AW#0Xn9uy%-cAhs|s_PKVjxZ0L|s2!sF z3IRUcC?g5SAu2#^K|26k5Zmb*tlNlGE66o$Sc?F`o^5LoqF-&V(R6@Jz<)YCfOS1Jy8KqR^>KaW?DOK=S>O4|%4bK{C?qsCo-X9_rOEq+1HD!N= zGh!@*z{!(IKC&HL8;nJs=!&j?IVwsc4+E;YQr z?JpTzY2Gj3N?Z8|uC$eK_!z|lS?h7&O6#2iS6Z(c9J@3x8C>c3R)M4Wg_||-*WCbD z9~`D0ZlQz!kqct(;6R~B(ySmdJNfI_zj4RFQJZqqw!m}|2QR_=^#(_J!toG0*ZQ-8 z5h3F5{%l)Bh|UHLQb{d2o{+=>BSUo?AftW|5wZV#31HhILv)?so;36_QZRc5PF^Y0 zfnTu9$=*8*9Id{xY}g=w-6n9DPf`peU;JB14|pPVF0a0!;K+f^BuBrYaI<!Ixn5 z+2^2OZAYZqkjrWpBNae0@oHnXty_rB3>uMA8p%E_kR)%=N(wJl^00hiNqelraO7c? z*7Vo*2G@vv#$K=xDVjBDlNH~FvVq-0bbe5(y(FX&i~$F~E-KH$4gR{0Xr(1MDVk_k zfx}?|%jp$T)Oi_cJ-5XorE$tOVBqBG5ZwL68%@}@o*_D8Q+e?6{4E8iR6s<12#%IH z3KA14GUzTm2F^iac-t zG+>1(rmkQnY`Q7nXhx(hPPZJKT#^FOT_sOexH^nLO2PC&{<uFDjta{2zZM)h8m6ynfGJX8YzR(3joPvgtwO|UZCQ{ZM0dKa+%4Q4 zZczb)!q!kfSl0$AnkT4=tzkGgOsb;6VQ`oPbTcf%Ut1%ZRvlW_4MK{BhhS2}U%MTg zANyP@SX+WrfaLpiFxm2)(s3XM94Rj!71n^G+SsHp7q`HX2@&kz3$`8P9#OJSfEgHs z!XgV6?%}V?>IlaG2V27}=YgXRr06DI>&SxIgy<@DQg>_WH4>cCGM3CRg_DAuc0V{D zHY7M$`<PCRr~A-`=1}b2hA|zb*|N)rKa?{<`16Ve)Y>A-`Xbbws`;tsYU^nQe;- z(Y5X@FBGgo4}a|haE;gygn@IEk{gQf*I9H?Pk_c>ju6x{HHm&V1PK%?~#nW+YTl)}QxgN4p z$_KmV;IQWuSxKvEDLC>ZXp1hNf-Cj1ke+gvvNI1>ICAGI|mMPqO4c<-tv@Up5gKnz)?MEN_FLo z`1Vn*hrIFNup;Do;%6hkU&h9$c7IgvNGU$wSja1I&^&8pLv16{G#N zvEbn3aP65$HGy1O{JN{)$hGA#Q!z!OL8K|FARS5R@03{eG*LMLW?+KkYVi6psq#K& zE)6~j91T$R(mmkFXXTHbPJQGp6gr_^3OLdiX8{awBRDc4@~|pPz>yb&g9)3b{beR_ zbHLGT%OURsIC<1G_fF~Z5OmUBlMPPx5^Ciqa1G`Du+2XQCwm@khyEGJqX@1`MvCgl z9ytdbja2$rCtP4#`-bXjWy*^ajsQ*RZxUoQ%mGF*Tj5X}vEnQ^#Vw$lWtQBsJf?o& z5Io3bA_C07kTTMcME7hqa8QVDQntDrp}qDTacl?lXK%KB~^p!Ax1+@y%O@`0|MWmfjw+kG_ zFL`E62g=o<9A-a6;pEdqe{glD#XfWsBC>RjYgvd%vp|OZTgNwABh}KR4oH(d4!yLY~4s*d8N1sgwWqf`Z`3v z7Sa$Dg%Dn=eo68MQXI@ldoO&IvGM(ACKOU1QGf`v0qFHD6~N<+q9NK2pchdp-<}w} zh>}*F0aBzJK;^pw^dd@f>=V-K8(Jt8>;*AZh?lZuN)_NMk{r=jdJ!dgip+kOl41y7 z(u*jSM;MXXK|qjRM5(_l{1I1rAprarN)@p_rIBL&NU!fvY6we4>Ig0?y@-+=9x1)P zr4=C=r^v@C{g(>VjQ>N__?IT=kbGgX(((5w&G8H+|9h0`&jDx(<|*Zf3hc&@w$UV5 zNF1<8p^HK3MU-m&1W^7`fL=sNz6>Dwa)4eEWsS#Gv)6&!Aj$rn3T((YTQ+{28DLjv zhZ4t?QvVldE2-=M9UTko#5h|k3JwCrZgG z3jZxF2f3S)Uq{I&O3AtkUsq6;5(&y8!&52Xr4;xcr7UkH|9?VBVPB>Ef1!on$)F1U zikv7V0~DSpB?A@ydz4mG2=d9~O_cIYmGa+G5*0R63N%*=d`n5xLXm$<$&=bB_1Y@= z-=mb(PRak4k|-K)7-*rUgHqsol(IT1`9x_%ofZCDN}?``oG4kao5KHhv?BRm1`1M; z$^)f3`3fx{1}~!2U_XWb9;K}Qcq7vf0kr@f4@you36$zj0i_pF;u-M~YC@qTn}#={ z)A2?HIVd$Wn}iCb$q zN-1|nq34wH-%@Jl0_2o+QK6R_CrS!h zC_GV0TH%c>ZLP?y>mxx8+bDwXQCikjD4#u@DoWFb4fasv z-%^tIROH`M62&WWqEs$H>>wu+6+v&M!1pL+B`NveQWB-$jT%fPhTT|XYXhq31C9jg zN^Zu+Mbi@hIaZTt=zJ}|zNO^Lxd0jMd&g<2L2@$nKgVi1X47)|=UDxn)AK*aY7HH; zX{FfWjaJq_$LavZBHues!$8t;n^x36$Ljy?I8BzK{C|$sWC{8B{m-#lK3@NGtp4X% z{eS*gZNJ!B6a?n+lU-=NS>^-!_y=6OW1eQ>d$jND!r@haY->GsyZ&&Q{eQ%MxfMGi zr`)BQWgnkvbF1Ogmtkl8rdkvS{$}0($>a|W!(LjjQ9o@iV^)M!tz$W>qRX0TC~eNH zRz{aKmD1%{^s)}xFi6X@Bda=SosrVB70cR}p-(EB3M>^xHD>hr$%478Mp~q_B@>n- zEq$)CVzZV;v-Zn7D|{suzBE>_W+h9hLn>{<_DUU6x-wgjns}fTXb zwYbull;@*!J8sOsIeeZly<^%^lVndr$004BUU`sKZNr<@vsWG8JLSdU;bwn~Z9U{v zl=Y?Kn;v-!SDs9-!5Xi(V;TQ42=2^kQ!IP8USIgepir!Z2-q%t$vGJPu2gc@KJhZ-Z?a6i>{5EYDeN!GhK3441$o|CZ z&kJ|>y4H1>*8RxKhRfTOS>EI2(8+@a7P5I8?AVD-2EmirZ;oZ1H|nEYV_cf#4S2n& zt+k6&r!~W`*F8{Y^xR!OJ(rJk{ZP$q+>Ng8BW=1=cKp@*`tF$XW21IY-a0wOBrX0` zl-bkYwuBv`?_yM4z1a~oYW6QZb1yaszHC5oEZYL^1~`9KXG<(g*`#L^witv!b_JZ> zW<6`X)gT13v0G!=VQ^2uHD-a^Vp;!UJ)5`9fWHJi1n0Iz&suLc2;pqj_E>fqT&Eod zp(!f?H)gAzt=VB{-CQ*jsA<%`5$$u`2mO32Yu3fxn+kIl`#wJR!|+cvvNrYa+H%^? ze_8eodcP)NrBml0yX?M|{X}?Ie{b7IbGioKd*_?o;z*t9%zc|3({3;bEm`!2SoUC> zo^1jb$%KuuZ02@7Gj22p2DTnt#11{P!SuIg?{{GO!Nu(~2yL0LE0!(asgLR(x9UL6 z%xO({6`zC(>s~&5bUeP#g#E)$6UZf8E#=z063mWabOV4)hG6)@*Za2)mThB6f8-z}5E4VG-s_Zccu`G2D z%)Lj?PJrve?DxhBU0Dv^yRjp9@6KHI#R_q30N#7BGkEXG>gYRf*=MBOX*5y3ZIS&QEF{Zl^D@{PmWub8Y%kttG5brg!fcj<_c`nc-sdux%dx^dHURJQ*%`bqV0Es<3JcjV zyf0!`@V=ONUX2x&u(5dmiQU2bQWkhER`{7s!TU1y5bw)b`1M#}1)GKUm8=Bst61a> zjN=Bzal;_2Vei4c0~dGGApF8s+{8F;VjQ;&!g|)_7RGT4;{dmj>2AZUw_(WJ24NH1 z3T_LyDt8P*F-yGzv)+Lr!EI$$Z(-KEdhV+g4B~bTAFjn?!-wzcTU(zt)Am~bW|`IK zVb_Q4%OCz{aKsH`eCt^~ep|rXI7WE1`T4~m+v-gwoNKu_@zSq8u4XntPe*OL{ps@a zKO-!M9=!IA6YtdUK6*6U|DK+o&00Oz#Snw}9OV_L7F13*b|p=y`?!!4(bPMgqI1dR|4un69xazagZ7EdVRt(C~dC zjrp0LyP807OT%+bAaHxG=NCwDN5iX|LU0*^QKk^w)9|w-81q8UwdQE@K1;>y1e9Q| z-Wr5Im_3a40Njvw2JxYWw>L-OnJ@Kx6AFuuHT){gUBoLrU!#NIsfK%%f#4kk)5}2c zT*L2@VEJo3Z(bJdm$0!f;5C2h`8=@VD-C~C7Wrmx^t`nh1b=GyY%>V9K=7FaZ#BG? z4uX`odaf@A!FvtwS`GrccY3~)1Rpg#p*#eKAvjnbg3lUWQJVYrdTv94uNwZN6-u~$ z(6bA74T8XrR6y{$40hB#gJ>eKv-eoGHXcHrI(7oTt4 z^$iG-T4d z**~`F`;9}E<@VI)gHKpJe;P!cz`FhkQ+~$s0b5RB=5JugFIYcs41%7YAr;V&cqj~+^qdTqqdSP&xnk|kG z%hlB%dF?`(X36KH?Q=48Sq~q^X@9<2a%z6w%F35!9kg!YKfSeJ$MuzAr%D1_{3?c< z34)$!UmHXlfxY}AhHoLh(*uKOE3j>kV|a=P{>C$dXfLq#uVc8K3HVJY?#9)l?1q?uZ^AdyDSYVGzFn$a0tzR0% zP>km##%~G!^GlpGxJyGJmR|WJmH|1wYFvbc3Urz{{^I@J41XP6JJ_%ZKPcH}_ zkRZbrf=IsA7J`|TAlQjn6byV(T?itqA<))?pf!)K2f;fMY$8EhF4Tu$xeWxy`Vd6( z^(5$A8G=y`aIg;FI@rj8hbO*CA9`-}j-QrY@#)OhyxQ&PT&c;fvq|L_4qa&RW384` zE0;~!Fu&g3@Z%3|J<(p+^V6i@hnsU7H#JyvSi6|>&z0d}8Sdz)6W{8Nj<(pMqZ{Z5 z>AiM%OR>AfGQBQt_ndipH&rt2P81MK#7YJrn zg`iV42-5hXY7j(JgFx#HK?aX@hTt6uHjyBUmrxtaogr{{g&>CyaD||=3j{YvkjLxP zg21dg1QTjOP{6N{U<(Nv*M^`UA6pxOlo}8`CBXn5=mvpZO$g?>K`@9vB*9@4w5|ie z5I(C81pQqh_)LOA9!WFrRttjZP7n;^cbp)&OoHZBAQ-`?(D299hF~X+b`;lDhakWW zf{f}A{J^)8-~kD$)PP_tPptvL%sLR9Ai+3pUlW3ex)2Ph3Bd&JNxi%y!37db;$133 zu)H1wHsqsIcn-}_=lT##_kw`&J5~^wxnm)?-ZhBRvGDF9O_EaDHT zjmspsPjPh#_arsOctH*Kdj?@C5A+5f;Ee+Fyis5oe@KD{5ESm}T`~I5)frRko~hR7 z*>4Z7c6##g&X}KXWpB>C;q}!JGqr}9#h0ybqL&1AS`@p~Wz70R-4>cv95K4E@vcFp zcDL8R{$?{+@$K?D=&-rCR?xQWs(DS^XB@q~u-^JL#$yY|mcPGu($+`6e~rBKsd{5u z%L?|7uJvsG!@;!M0}?|D`YnhUy!u}==XwT2)jh!{_y~4|zovz`b`Z*cdKRBLu~E+D zQK4BKRVn__BICniG57rGsCvRT>a8h$ z?<-iC7Ef+3+!pX~o~ho$R{jU@0ic$}@r{M1l3b_$6q0*!Tw@`&thhXYZ*GQz0M$`{ zk0w7D-!5>Wy^vmfrIk?DgfffYwHCreO7ZdS1WUdp5dZcNoQwK&g|FOqck@e%kDxp$gf7FHhNq;X?|F}(0tWcBm zqyjz7La)h+jJg@B$mmHHO41iiqZHXxMMjUQPNX8ly48T1n9L)k-_!pL2l`_95Nb-BhU(I8s$o*oD`$a=L~9k9GtzGr*)O0pIv1cFK(CETx#~#Mvtguw z`uI={q!R#AV3Sg=CenBqO?oa!vsn?kLMUQLq(HGEtA(^PWX_;lAft|J1L`9%^oSAu z*SG=g0T*DWBCCTm;+FKVb__gnLjB{n0<$)YL+nUi*~F?ntYj zV)iTLJRtKy1yb~&QjWfv3{zykDzb)m4zs8fsUl~Fg5jh13y?`D7X@5kK zc_ZBwAVrTVG9RSvr~+Q}s1zk>b=xbln@_=_-{TdxzE71FaT^t1~F5hFm4*z^J> zqw*ABD!_ngz;u8f&FPG`=@A|ZGD87c4Mo6kU<5D{puj?bwi}?U0|~ zkB)_!?nuM|J%C;S1&~CbH(&&kfD|AV=mStN=>l{GVt`nHf=M($0i-t?r=al#_zI9Y zXg?PL6TlSE0%ZU*p&b4&fCN24dxFQU7aX<6k^C1QvR>#}X9bcgfmOg7U@hXFP*Gr-4{(5@ z;zXb=>d@-h3edw-T>*Nisslhl>lyGH@Cf(=xJeczha_j~4-5e4>()U)29OD40TiGj z00YnmNCR4s9Eb#>fYv}D5CjARjer1v;*K9s9w-M~MqPUJ`y#N2Lc>NR3V^;qKOhUp z26BKVKvSR@kbqGv23-PBAfk{w378DfGkLE7I>^2Q-UGLQ!|xB%6G8bD3J6{rQ&1}Xy-pcbIcGQb=S zhX53K=$SuTzz%Q(=wU%i;1bH82hISy0dK%ZK;W#4ggf8?GyvQHTfh#m2Py*AfEgNT z1ylqo0X@;N7vv6<555<8+S1z#+;5YRP)Nb8AM#cLbAZ{vG=TPodq6JG3T4uPR!AFw zZb)wcEdUk)e*$lT55Q;OHgE#S15!~o3TO=^0c{{l0QCn&d@Iz@bBxY_3s4)NeS-=T znxRk`$S9;Y0vZEh07YraC*?_*&HzQ^Iw)TWumRelOiO^GEtOH>ggi&!3n0>8{iuV( zG+ev}@21FF%Vrf=vd9X6mh%?m74sXLg&%x3A^9(W;s(VJiX#+H#{je*XkC!+lEG*J zb^$u@S;dG#ZIEouw-yWa3du>mfCd0V^TdN}EuyCIQ8Z768o;%`wG}NPyx8O#>}O3RbinDcunu zQ^x@6VxTyqj(G(J^*z{@xCrV;f*#H+F)GixJ)|{nV)tZ8YS&YE`T#YJ5qIk z$C*l%x)2#0@;8OppMA26o08q7LW;K0DXWIAQ?yn(g07C zOQ-p#3=$3i`UAN@4$u$C1E_%lARp)p3<3O5c`)c8U;@&#Vg@2j^(al#`XewLAS-;& z8HYh$hYFH6(p<|PS?ZAFNK{#MEE?T7fEsQLH~_R-X!KOh7Z?N3iunN`KNbz2?w7jSTTH`cr(*cst1?B+r zfcd}zfUL6wbUE;|fDgvYx#GZUV^4>i=E+P^j;sfFi^t9wgpc$n~KD1kp8d7c-n z%Ssx=n(&Ee#aI0S|GE|3yoGW17M0dgf8syA*W#}ir)&)`&6&w}?icKR)jI+Hn34Z- zQRtiPr3KVqA|GSAI;E#o5dNO04*U!kE~qNpH{lCOt+%`c&DB+}A~3TGskcR#cD%Hb zdRc*A)bY)Wrv7VS@!SJKD-&T8Z+lp<7Y=fP$VoowvQSy@;S1jiHUa(~o*rJH5G*(o*tg~U*lqd{Q)`ZFPu^il;n4=3O43-k?DZU5(^&oPO$S+uM~)lKHoa- z<&is5GYvi9Z|bE2^H)xNT-oOADC7iqpdDUV4(i;t1>#YQMMAV01eyyO&gxr+2OsUSwc?D#$n|w0#Mfrts_UhKjBR0 zm8T1uwChEkAo$h!S7ga%aq(uX=sL zoi8WWy7}m5q6VCbMxb7_p#He6l;h*!*-+!o>m3)W@Py++W#7Lm<)cwAVz9D5$n8!C zTrAbaj;}c`cnhxl4v`#gb3*X;Q!hx^Ze6)z+@x8q43Qv%S+#zCs*P>#FxMY;-k^YxrPPrP3TLe(Z!`@2FnnFmBT4xy3cC z9+eho&%dI8pL+Ad@8Paye>QD)ptOK`H-vxfH3429Pq!$|*;s|QISIYg+ax;P+`Z_B z*TWo2OQ`ovgqDp?${lm0cWF)qKIbI#QZJ~mxO>L4{-$UAWG+Og@+@i;;cZ`l*oyCXb9e{vl>!pcF)@$v}d!%qo*yw54Y!BM^N zVO;NN>vvo|atlSsjj_NVa+lMBz4*QsZ**Gl5=?p4X~El3y?&xouP0wWOpbpemG>s6 z*~@pLyrX&#g=uH6jwi~jJct6mvNm0K3ALbJL}5Pf&ef4+?|DltP{`6u=b>kW*1{D& z;S3s5ucr8+Y@PY7muy&uaAU+MO#e6gpOl0BZ!qe9fB%z8VEeR&7^K^wA`mm z#_y#$4*c^um`=T&X7P%leV&=Q;*loIs8m(jBJD-&j#1~K#dmi{so-!EUW5{U>V-H7 zl|Sh$s#(7&ZR)$*qf~d72|tOtj_So7URFb5?rdwHP+C{oChbM+kWLrW9n!k2RJoif zZwHxJ)s*+SAS5}e_n6Edy}jx3&lP?~G*$MOe*EzT%>O7}?IOIU70oWHmvIC-l-wyyrLGIfJypn&>w?CMW1ORCWd;#rpjM{!diZ}(iV z){;azHP~~H*MbB8k-Gaekguig%3l^7TB+AQET3V2?Ub3_A~b|KAWhYaBf39d@pzi0 z*S8W+m*kFbN2dToXJE8r-q#1?E?H!q`LUEbiT zVDF{gccK1#xYV1ZM~fi&54h@2r6Y${wHKd#SMak_FYc)PbI?2625WJ`kk>qSx+gf< z{fxSFI8uMcTy2$~yo+4v))3@g4V*Gnf5-nFavOT!1i>F5*XdW(rISfwtsl<5NVx5( z=He@aAim=s3^@EQOlo=$CcPWPGa;$0-teOSoIC2kQ)k>09O-90)%#u4A9Gi=!3Uj2 zJmfdQ%SpYsMg0YLslIfgIMaxa{|$X^elFNngM+Jg!93q{eZd?y-hDekmCjMx7i@#Yjt z(4i@+eyxp5YPoo!1P&Z@u(%$^d!dBiBb2a2iR7S=Hs|v`MWBSQeBk+@4k z^CNPU1CDt(UrTiz!{xQ#tKtu?Yo`tzskDy0tUhuop;dj(#HJ4S#?xdgn?q$cya{jk2U=IJs~OQwSH1uIeydP|4xDKHZ?+y-q*+tm>y==` z*&jj`r|>4SPi_CS$|}_7r(~r8OhV_T{5ZN06*GydG1MD#GU`-KSUD}BttgN^(XK|l z6DRs!bYU~ymJeu)q9U@ox8Q9apsgn@`3rcZ__ifChj;O_58WM@tH*SK_F*0iX`#bjHP=TJ<4XZ`O*ZgF2~~>4Xf? zSH729j4_~f=_8s_LhNVYqaWg2TC+9J#;LfndK=CU+No~Wg0Ede4NNqzdP%VNmyW*b zwK<-RW_=M)OvBfas-OMchY=p|2#Z?1en)%tWAlu4C)S}J%^-}XeBAi!V6J|I`1_;7 z*tUG=RhaeeuLxuQe9;Y|5_dj`hh=T=3jU&HG;enoxgn1Q2PgGXoyCs_*30ky>IZa7 zfgCYmeg}U032e2Z1OM_=u=7xFI8lG)A0^36q2TQfIF-Xa)q4Oahd(L7l-|55lo4N| zp<4(L0Y?OUEO>@zWj=S{PM_el>SZd=27T$k&h;`!MP=2f*RGryJ)}Sza)>^3&__GC zW1WtC9n_ie9L^Hlkvo5eiV+?8V8|@h+ho-14fwVvLQTHzDl}>G1aGbG2*XL8lXozD z=NpjByaUrLxQTNbrF7IgTx&@T-}43SZj9j-zJeZ$;XBZelX}g~%bs)Fz215B3A9pn zJ#1?)P=fkuBYMWpxQ1FT7JN0vEe6H%?k_=AZJWjN$;7vh-%a6xI!Gt=dKdMo2`EV`2@|GFzdB4O^@5nV9<9o`9~$zbR8pGS z={>l|ZF%5x|HKhw$y%{#aN7EU z8h+|!M{{0OTDAZBEWI*1#4q)lqk&=d?s~g-ELS@2enuYk5#v@bL@FDa{^K_1UA?8& zrFnR2IapuMDTd-$zqLhxU{ ztgLLso_3Dv^-A44-ntufq96Y0gS28W*!_IOb9`J;#%!(Lw=`|hi&HHol}$rIU%u`+ zJWXlRNxgw-SEFTxZ~DB+LkVS@lr8M#sNTtxoc+tgZqxVFFD)T|KgBnG!q)@sUtn^4 z(|9HZEgtK@GqG;}Yvh>tObBsO?;ujI8$p9!@_rwe&i9mHrV(K&YDk-lvUS<3Hzldp zwxE`D1o!4oUkHx8dWq16!jY{#c4zgvDD}z|sfULAGzyv`5S`~~Z?F)Y-UvQ$$7o86 zZv+QB_3|k71{Lap!XvNxR&WyW&Dp{?@P)ts=FBORpMN7n`Kfn4EjiLRO+24F0PWB! zLC@-~Q005fb^g76Of^|CTF>pW_(b|%u2+`)ec7aCg+3#_20f5;kUUMjSt@dsN4vfo zhB&L*;alr$e*GPmTV6J|d=CwWWy@<}vG>I`3zok3S4zS?Y;$Dr)Y`WQkz|HrnV zM#ulv?ZM7oy-sfAgy|h`kD9X8R6Y-Rdh$5Md9xScp4I1M;U_OhCm1E>@C2Mo$jTIboz&aM zl$(YQK|Lk9Z5_z>J;uP-4&s({9+Q36hW4ekgZaeA_%37M5cxy@l4COmEa-DK6<HNNYpLrZr%pV}qqEO~_GSNU%< zmKuCdgqL}vyxc^ORQ~F#;5)sRxUUsLpLD-pvzry3&x}jpkMQ}>8cp4MUTN^Up z!~&^eg?STt@7UOQ%YWvFDGhHfEcOz_r-I3jIHd@pz(u!vMU&xqIMl8z@qnIu| zHM5|z-c$gO2E+`|0^4q?mqudWt zWx2Z_#v)bA_Co{j%|vf9p*{av2I@g(#>@Mox3N00Uh(yEVtrE^PmlcMfl0U;GdVY_ z0N3axrlh9#=6Xw1508fd!g^z{?<$JbYNY2DxF^zGllTaT7~nj3u(RaYUQ$Xr?epkx zu>t?7l30^hX(3iNmHrgu(hzg=I8(IN;=6VaAAYZrcw1;#e85^fXUebHi;ejVdzi=0 zK@8!$EyY@bXYucrqF&@hiJ0DW2Qi<&cMvV?!}{c=_D(kTGp46E$fsM0=_bo;+^xx_ znY!*Mmcu_g5|elXN3o^}zDD9_w4zHfh74{$HYOwGzniqFe;=fBhytMOUx zq8E3nEBf$TgD|ma?xII=H8=6IP~5JrXk)_f)D}aEkGYHC`c`521G0^I4dj2m;9iiQ znx2P$WZ<43pO9|!mYU2kW@M!fG$v)c$HR_UxL!HmJue@Zf2L&RD4P@~8^?;?Chb*qS@H#vJB|@Y0+vVmx0RfmKtzq3FzcPjLXB z*G3##F}?uTapz~H88hL8xYRXw0AJKebm6w#QsVwH2!h#WTSR z#c$h-i$oqDD_R%N>?E!dxLK&!uDEHe=ppi!aiV|msMeyLzz4;NDg0>{IG0777{IHw z!$f;_6-S$A6y)N6oRw4f=C0yNZX1CzCtHeU#pAn)BLsdgPKY7%CJ z1gec?ms1;)uA9v@#`ku|zn4jiPc}-f@m~b)aC9zM!5uoc5~F$9aIEavEf9%|!o{w9 zawUX{yk=NUNLia;aC}KCk#UP$v3wcn-0a7F28%2Bx^%HNZyJJT(nG`?Ud9Sht4pZZ zq4+_l7$or3p|In^RM@OuxENl1HC&u77B6ciJ{EXr2Ez7@7I^#ELVUwpxx=wWw-OzA zRs`b6<%*(Hu`UuW!b69O=EZ*u7EcQ^@}bq(exjcLnJl{TsAPo0DkO6IzID&hpi2=o-sp49p_{l*0vs0dzCU)ezQ^X>^J55|dlX!@C z%oZDR=WKb{ro~S)MQ?$x%7nMx%M}-!7GtzNLh;CKv6jda)5X?&MJ__m@g!(HFG(E4 zJ(Iz%OorQ_O*8H~7^ACggMk$f75(^G@+U-$k@8Y_I}}R+s#fRydm&XmQOqxXl_(Yp z9C1s_UE;A(AZ`ZpiV5OqZqit6$sG&DN8Ga})|_jRXaS#c>4w!6QzTYIko4m@4#*i- YBs!SlldCUZUL-aZJp=jEBJs}u2L~gP3jhEB -- 2.49.1 From d4978aed2e861c9d22748aff8aac8146fc5841b6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Julien=20Valverd=C3=A9?= Date: Sat, 27 Jul 2024 02:15:11 +0200 Subject: [PATCH 03/10] Fixed CI --- .gitea/workflows/publish.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitea/workflows/publish.yaml b/.gitea/workflows/publish.yaml index a666946..6b885ef 100644 --- a/.gitea/workflows/publish.yaml +++ b/.gitea/workflows/publish.yaml @@ -23,6 +23,6 @@ jobs: run: npm run build - name: Publish run: | - npm config set @thilawyn:registry https://git.jvalver.de/api/packages/thilawyn/npm/ + npm config set @thilawyn:registry https://git.valverde.cloud/api/packages/thilawyn/npm/ npm config set -- //git.jvalver.de/api/packages/thilawyn/npm/:_authToken "${{ vars.NODE_AUTH_TOKEN }}" npm publish -- 2.49.1 From 1278f05d3e4661e0d3277ef44b34ee1dd96eb6fc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Julien=20Valverd=C3=A9?= Date: Sat, 27 Jul 2024 02:34:39 +0200 Subject: [PATCH 04/10] Mutable tests --- src/effect/schema/class/Mutable.ts | 50 ++++++++++++++++++++++++++++++ src/effect/schema/tests.ts | 15 +++++++-- 2 files changed, 62 insertions(+), 3 deletions(-) create mode 100644 src/effect/schema/class/Mutable.ts diff --git a/src/effect/schema/class/Mutable.ts b/src/effect/schema/class/Mutable.ts new file mode 100644 index 0000000..d513941 --- /dev/null +++ b/src/effect/schema/class/Mutable.ts @@ -0,0 +1,50 @@ +import { Schema } from "@effect/schema" +import type { Types } from "effect" +import type { StaticType } from "../../../StaticType" +import type { HasFields } from "./util" + + +export interface MutableClass< + Self, + Fields extends Schema.Struct.Fields, + I, R, C, + Inherited, + Proto, +> +extends Omit< + StaticType>, + "extend" +> +{ + new( + ...args: ConstructorParameters> + ): Omit< + InstanceType>, + keyof Fields + > & + Types.Mutable> + + extend(identifier: string): ( + fields: newFields | HasFields, + annotations?: Schema.Annotations.Schema, + ) => MutableClass< + Extended, + Fields & newFields, + I & Schema.Struct.Encoded, + R | Schema.Struct.Context, + C & Schema.Struct.Constructor, + Self, + Proto + > +} + + +export const Mutable = < + Self, + Fields extends Schema.Struct.Fields, + I, R, C, + Inherited, + Proto +>( + self: Schema.Class +) => self as MutableClass diff --git a/src/effect/schema/tests.ts b/src/effect/schema/tests.ts index 0e9f692..fe75ca0 100644 --- a/src/effect/schema/tests.ts +++ b/src/effect/schema/tests.ts @@ -1,14 +1,23 @@ import { Schema as S } from "@effect/schema" import { reaction, runInAction } from "mobx" import { Jsonifiable } from "./Jsonifiable" -import { MobXObservable, MutableTaggedClass } from "./class" +import { Class, MobXObservable, MutableTaggedClass, TaggedClass } from "./class" +import { Mutable } from "./class/Mutable" -class User extends MutableTaggedClass()("User", { +// class User extends MutableTaggedClass()("User", { +// id: S.BigIntFromSelf, +// role: S.Union(S.Literal("BasicUser"), S.Literal("Admin")), +// }).pipe( +// MobXObservable +// ) {} + +class User extends TaggedClass()("User", { id: S.BigIntFromSelf, role: S.Union(S.Literal("BasicUser"), S.Literal("Admin")), }).pipe( - MobXObservable + Mutable, + MobXObservable, ) {} const JsonifiableUser = User.pipe( -- 2.49.1 From eb3f01bd5bdc550ba3d132af7fb147219037e1c6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Julien=20Valverd=C3=A9?= Date: Sat, 27 Jul 2024 02:42:12 +0200 Subject: [PATCH 05/10] Tests --- src/effect/schema/tests.ts | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/src/effect/schema/tests.ts b/src/effect/schema/tests.ts index fe75ca0..d2fa624 100644 --- a/src/effect/schema/tests.ts +++ b/src/effect/schema/tests.ts @@ -12,13 +12,12 @@ import { Mutable } from "./class/Mutable" // MobXObservable // ) {} -class User extends TaggedClass()("User", { +class User extends Class("User")({ id: S.BigIntFromSelf, role: S.Union(S.Literal("BasicUser"), S.Literal("Admin")), -}).pipe( - Mutable, - MobXObservable, -) {} +}) {} + +const MutableUser = Mutable(User) const JsonifiableUser = User.pipe( Jsonifiable(S.Struct({ -- 2.49.1 From 7e901781267ece2bc7367012edadc86940e8b16c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Julien=20Valverd=C3=A9?= Date: Sat, 27 Jul 2024 02:47:30 +0200 Subject: [PATCH 06/10] Tests --- src/effect/schema/class/Mutable.ts | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/src/effect/schema/class/Mutable.ts b/src/effect/schema/class/Mutable.ts index d513941..78bbe1e 100644 --- a/src/effect/schema/class/Mutable.ts +++ b/src/effect/schema/class/Mutable.ts @@ -39,6 +39,18 @@ extends Omit< } +type MutableInput< + Self, + Fields extends Schema.Struct.Fields, + I, R, C, + Inherited, + Proto +> = Omit, + | "extend" + | "transformOrFail" + | "transformOrFailFrom" +> + export const Mutable = < Self, Fields extends Schema.Struct.Fields, @@ -46,5 +58,5 @@ export const Mutable = < Inherited, Proto >( - self: Schema.Class + self: MutableInput ) => self as MutableClass -- 2.49.1 From 1f8a92bc663686b66ec38dc1726ea6d8709ea826 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Julien=20Valverd=C3=A9?= Date: Sat, 27 Jul 2024 02:59:51 +0200 Subject: [PATCH 07/10] Tests --- src/effect/schema/class/Mutable.ts | 13 +++++++------ src/effect/schema/tests.ts | 8 +++++--- 2 files changed, 12 insertions(+), 9 deletions(-) diff --git a/src/effect/schema/class/Mutable.ts b/src/effect/schema/class/Mutable.ts index 78bbe1e..78569eb 100644 --- a/src/effect/schema/class/Mutable.ts +++ b/src/effect/schema/class/Mutable.ts @@ -39,17 +39,18 @@ extends Omit< } -type MutableInput< +interface MutableInput< Self, Fields extends Schema.Struct.Fields, I, R, C, Inherited, Proto -> = Omit, - | "extend" - | "transformOrFail" - | "transformOrFailFrom" -> +> extends StaticType> { + new( + props: any, + options?: any, + ): Schema.Struct.Type & Omit & Proto +} export const Mutable = < Self, diff --git a/src/effect/schema/tests.ts b/src/effect/schema/tests.ts index d2fa624..86360b1 100644 --- a/src/effect/schema/tests.ts +++ b/src/effect/schema/tests.ts @@ -12,12 +12,14 @@ import { Mutable } from "./class/Mutable" // MobXObservable // ) {} -class User extends Class("User")({ +const UserProto = Class("User")({ id: S.BigIntFromSelf, role: S.Union(S.Literal("BasicUser"), S.Literal("Admin")), -}) {} +}) -const MutableUser = Mutable(User) +class User extends UserProto {} + +const MutableUser = Mutable(UserProto) const JsonifiableUser = User.pipe( Jsonifiable(S.Struct({ -- 2.49.1 From 2ad29a147b8cf72123bd056a7e19104635c87715 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Julien=20Valverd=C3=A9?= Date: Mon, 29 Jul 2024 14:05:07 +0200 Subject: [PATCH 08/10] Cleanup --- src/effect/schema/class/Mutable.ts | 63 ------------------------------ src/effect/schema/tests.ts | 20 +++------- 2 files changed, 5 insertions(+), 78 deletions(-) delete mode 100644 src/effect/schema/class/Mutable.ts diff --git a/src/effect/schema/class/Mutable.ts b/src/effect/schema/class/Mutable.ts deleted file mode 100644 index 78569eb..0000000 --- a/src/effect/schema/class/Mutable.ts +++ /dev/null @@ -1,63 +0,0 @@ -import { Schema } from "@effect/schema" -import type { Types } from "effect" -import type { StaticType } from "../../../StaticType" -import type { HasFields } from "./util" - - -export interface MutableClass< - Self, - Fields extends Schema.Struct.Fields, - I, R, C, - Inherited, - Proto, -> -extends Omit< - StaticType>, - "extend" -> -{ - new( - ...args: ConstructorParameters> - ): Omit< - InstanceType>, - keyof Fields - > & - Types.Mutable> - - extend(identifier: string): ( - fields: newFields | HasFields, - annotations?: Schema.Annotations.Schema, - ) => MutableClass< - Extended, - Fields & newFields, - I & Schema.Struct.Encoded, - R | Schema.Struct.Context, - C & Schema.Struct.Constructor, - Self, - Proto - > -} - - -interface MutableInput< - Self, - Fields extends Schema.Struct.Fields, - I, R, C, - Inherited, - Proto -> extends StaticType> { - new( - props: any, - options?: any, - ): Schema.Struct.Type & Omit & Proto -} - -export const Mutable = < - Self, - Fields extends Schema.Struct.Fields, - I, R, C, - Inherited, - Proto ->( - self: MutableInput -) => self as MutableClass diff --git a/src/effect/schema/tests.ts b/src/effect/schema/tests.ts index 86360b1..0e9f692 100644 --- a/src/effect/schema/tests.ts +++ b/src/effect/schema/tests.ts @@ -1,25 +1,15 @@ import { Schema as S } from "@effect/schema" import { reaction, runInAction } from "mobx" import { Jsonifiable } from "./Jsonifiable" -import { Class, MobXObservable, MutableTaggedClass, TaggedClass } from "./class" -import { Mutable } from "./class/Mutable" +import { MobXObservable, MutableTaggedClass } from "./class" -// class User extends MutableTaggedClass()("User", { -// id: S.BigIntFromSelf, -// role: S.Union(S.Literal("BasicUser"), S.Literal("Admin")), -// }).pipe( -// MobXObservable -// ) {} - -const UserProto = Class("User")({ +class User extends MutableTaggedClass()("User", { id: S.BigIntFromSelf, role: S.Union(S.Literal("BasicUser"), S.Literal("Admin")), -}) - -class User extends UserProto {} - -const MutableUser = Mutable(UserProto) +}).pipe( + MobXObservable +) {} const JsonifiableUser = User.pipe( Jsonifiable(S.Struct({ -- 2.49.1 From 6b7e16ceabbb250259718252b3bb9e92cd00df45 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Julien=20Valverd=C3=A9?= Date: Mon, 29 Jul 2024 18:14:38 +0200 Subject: [PATCH 09/10] Refactoring --- bun.lockb | Bin 164302 -> 164302 bytes package.json | 34 +++++++---- src/{effect/schema/class => Schema}/Class.ts | 0 src/Schema/Jsonifiable.ts | 13 +++++ src/Schema/Kind.ts | 8 +++ src/Schema/MobX/ObservableClass.ts | 26 +++++++++ src/Schema/MobX/index.ts | 1 + src/Schema/MutableClass.ts | 54 ++++++++++++++++++ src/Schema/MutableTaggedClass.ts | 37 ++++++++++++ src/Schema/Tag.ts | 8 +++ .../schema/class => Schema}/TaggedClass.ts | 0 src/Schema/index.ts | 8 +++ src/Schema/util.ts | 6 ++ src/{ => Types}/StaticType.ts | 0 src/Types/index.ts | 1 + src/effect/schema/Jsonifiable.ts | 39 ------------- src/effect/schema/Kind.ts | 9 --- src/effect/schema/Tag.ts | 9 --- src/effect/schema/class/MobXObservable.ts | 27 --------- src/effect/schema/class/MutableClass.ts | 54 ------------------ src/effect/schema/class/MutableTaggedClass.ts | 37 ------------ src/effect/schema/class/index.ts | 7 --- src/effect/schema/class/util.ts | 7 --- src/effect/schema/index.ts | 3 - src/index.ts | 3 +- src/{effect/schema => }/tests.ts | 6 +- tsup.config.ts | 5 +- 27 files changed, 192 insertions(+), 210 deletions(-) rename src/{effect/schema/class => Schema}/Class.ts (100%) create mode 100644 src/Schema/Jsonifiable.ts create mode 100644 src/Schema/Kind.ts create mode 100644 src/Schema/MobX/ObservableClass.ts create mode 100644 src/Schema/MobX/index.ts create mode 100644 src/Schema/MutableClass.ts create mode 100644 src/Schema/MutableTaggedClass.ts create mode 100644 src/Schema/Tag.ts rename src/{effect/schema/class => Schema}/TaggedClass.ts (100%) create mode 100644 src/Schema/index.ts create mode 100644 src/Schema/util.ts rename src/{ => Types}/StaticType.ts (100%) create mode 100644 src/Types/index.ts delete mode 100644 src/effect/schema/Jsonifiable.ts delete mode 100644 src/effect/schema/Kind.ts delete mode 100644 src/effect/schema/Tag.ts delete mode 100644 src/effect/schema/class/MobXObservable.ts delete mode 100644 src/effect/schema/class/MutableClass.ts delete mode 100644 src/effect/schema/class/MutableTaggedClass.ts delete mode 100644 src/effect/schema/class/index.ts delete mode 100644 src/effect/schema/class/util.ts delete mode 100644 src/effect/schema/index.ts rename src/{effect/schema => }/tests.ts (86%) diff --git a/bun.lockb b/bun.lockb index 132e9477024348ce68fac1b04e7791b1a9aaa31a..dc82173e1f713f06e362e76e77376ab14e12b2f9 100755 GIT binary patch delta 147 zcmV;E0Brxxg9^@r3Xm=!j$Hh+9j#}ot(# z0Tq*R8z+Gg$=Giqd#icp`y74T!~*O1STI%JP9#j1r>lr(gU(PM{HM4vO@Am zh*KO>9#0NVe9=O7K8{+N+#`V!e3Hykh%25Qw}mqSk&OW{w->N(RmjXOZ BJ1zhK delta 145 zcmV;C0B--zg9^@r3Xm=!Ke$d~ylNIczXhCQRcwi1# zlf;H7lkgk}vp9tfu0Y!FI337?M{zq*%`MOY9$a~l0cX9tG)hlBcF;ZSic$$V30oM0 z2{4$3XwMkOxx~E8pI1WPN!bJ%cKhrDc>uSCGXar}0Wh~0!2ut>0Wh~We*%{Raz;L2 diff --git a/package.json b/package.json index 7d2c146..50c1715 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@thilawyn/thilalib", - "version": "0.1.5", + "version": "0.1.6", "type": "module", "files": [ "./dist" @@ -17,24 +17,34 @@ "default": "./dist/index.cjs" } }, - "./effect/schema": { + "./Types": { "import": { - "types": "./dist/effect/schema/index.d.ts", - "default": "./dist/effect/schema/index.js" + "types": "./dist/Types/index.d.ts", + "default": "./dist/Types/index.js" }, "require": { - "types": "./dist/effect/schema/index.d.cts", - "default": "./dist/effect/schema/index.cjs" + "types": "./dist/Types/index.d.cts", + "default": "./dist/Types/index.cjs" } }, - "./effect/schema/class": { + "./Schema": { "import": { - "types": "./dist/effect/schema/class/index.d.ts", - "default": "./dist/effect/schema/class/index.js" + "types": "./dist/Schema/index.d.ts", + "default": "./dist/Schema/index.js" }, "require": { - "types": "./dist/effect/schema/class/index.d.cts", - "default": "./dist/effect/schema/class/index.cjs" + "types": "./dist/Schema/index.d.cts", + "default": "./dist/Schema/index.cjs" + } + }, + "./Schema/MobX": { + "import": { + "types": "./dist/Schema/MobX/index.d.ts", + "default": "./dist/Schema/MobX/index.js" + }, + "require": { + "types": "./dist/Schema/MobX/index.d.cts", + "default": "./dist/Schema/MobX/index.cjs" } } }, @@ -50,7 +60,7 @@ "type-fest": "^4.23.0" }, "devDependencies": { - "bun-types": "^1.1.20", + "bun-types": "^1.1.21", "npm-check-updates": "^16.14.20", "npm-sort": "^0.0.4", "tsup": "^8.2.3", diff --git a/src/effect/schema/class/Class.ts b/src/Schema/Class.ts similarity index 100% rename from src/effect/schema/class/Class.ts rename to src/Schema/Class.ts diff --git a/src/Schema/Jsonifiable.ts b/src/Schema/Jsonifiable.ts new file mode 100644 index 0000000..3a006cd --- /dev/null +++ b/src/Schema/Jsonifiable.ts @@ -0,0 +1,13 @@ +import { Schema } from "@effect/schema" +import type { Jsonifiable as TJsonifiable } from "type-fest" + + +export const Jsonifiable = < + JsonifiableA, + JsonifiableI extends TJsonifiable, + JsonifiableR, +>( + jsonifiable: Schema.Schema +) => + (schema: Schema.Schema) => + jsonifiable.pipe(Schema.compose(schema)) diff --git a/src/Schema/Kind.ts b/src/Schema/Kind.ts new file mode 100644 index 0000000..5f4b88b --- /dev/null +++ b/src/Schema/Kind.ts @@ -0,0 +1,8 @@ +import { Schema } from "@effect/schema" + + +export const Kind = (kind: Kind) => + Schema.withConstructorDefault( + Schema.propertySignature(Schema.Literal(kind)), + () => kind, + ) diff --git a/src/Schema/MobX/ObservableClass.ts b/src/Schema/MobX/ObservableClass.ts new file mode 100644 index 0000000..3be882a --- /dev/null +++ b/src/Schema/MobX/ObservableClass.ts @@ -0,0 +1,26 @@ +import { Schema } from "@effect/schema" +import { makeObservable, observable, type CreateObservableOptions } from "mobx" +import { mapValues } from "remeda" + + +interface ObservableClassSelf { + new(...args: any[]): Schema.Struct.Type + readonly fields: { readonly [K in keyof Schema.Struct.Fields]: Schema.Struct.Fields[K] } +} + +export const ObservableClass = ( + self: Self, + options?: Omit, +) => + class Observable extends self { + declare ["constructor"]: typeof Observable + + constructor(...args: any[]) { + super(...args) + + makeObservable(this, + mapValues(this.constructor.fields, () => observable), + options, + ) + } + } as Self diff --git a/src/Schema/MobX/index.ts b/src/Schema/MobX/index.ts new file mode 100644 index 0000000..ceef0ba --- /dev/null +++ b/src/Schema/MobX/index.ts @@ -0,0 +1 @@ +export * from "./ObservableClass" diff --git a/src/Schema/MutableClass.ts b/src/Schema/MutableClass.ts new file mode 100644 index 0000000..72715ee --- /dev/null +++ b/src/Schema/MutableClass.ts @@ -0,0 +1,54 @@ +import { Schema } from "@effect/schema" +import type { Mutable } from "effect/Types" +import type { StaticType } from "../Types" +import type { HasFields } from "./util" + + +export interface IMutableClass< + Self, + Fields extends Schema.Struct.Fields, + I, R, C, + Inherited, + Proto, +> +extends Omit< + StaticType>, + "extend" +> +{ + new( + ...args: ConstructorParameters> + ): Omit< + InstanceType>, + keyof Fields + > & + Mutable> + + extend(identifier: string): ( + fields: newFields | HasFields, + annotations?: Schema.Annotations.Schema, + ) => IMutableClass< + Extended, + Fields & newFields, + I & Schema.Struct.Encoded, + R | Schema.Struct.Context, + C & Schema.Struct.Constructor, + Self, + Proto + > +} + + +export const MutableClass = Schema.Class as (identifier: string) => + ( + fieldsOr: Fields | HasFields, + annotations?: Schema.Annotations.Schema, + ) => IMutableClass< + Self, + Fields, + Schema.Struct.Encoded, + Schema.Struct.Context, + Schema.Struct.Constructor, + {}, + {} + > diff --git a/src/Schema/MutableTaggedClass.ts b/src/Schema/MutableTaggedClass.ts new file mode 100644 index 0000000..16fc4f7 --- /dev/null +++ b/src/Schema/MutableTaggedClass.ts @@ -0,0 +1,37 @@ +import { Schema } from "@effect/schema" +import type { IMutableClass } from "./MutableClass" +import type { HasFields } from "./util" + + +export interface IMutableTaggedClass< + Self, + Tag, + Fields extends Schema.Struct.Fields, +> +extends IMutableClass< + Self, + Fields, + Schema.Struct.Encoded, + Schema.Struct.Context, + Schema.Struct.Constructor>, + {}, + {} +> +{ + readonly _tag: Tag +} + + +export const MutableTaggedClass = Schema.TaggedClass as (identifier?: string) => + < + Tag extends string, + Fields extends Schema.Struct.Fields, + >( + tag: Tag, + fieldsOr: Fields | HasFields, + annotations?: Schema.Annotations.Schema, + ) => IMutableTaggedClass< + Self, + Tag, + { readonly _tag: Schema.PropertySignature<":", Tag, never, ":", Tag, true, never> } & Fields + > diff --git a/src/Schema/Tag.ts b/src/Schema/Tag.ts new file mode 100644 index 0000000..2181b7a --- /dev/null +++ b/src/Schema/Tag.ts @@ -0,0 +1,8 @@ +import { Schema } from "@effect/schema" + + +export const Tag = (tag: Tag) => + Schema.withConstructorDefault( + Schema.propertySignature(Schema.Literal(tag)), + () => tag, + ) diff --git a/src/effect/schema/class/TaggedClass.ts b/src/Schema/TaggedClass.ts similarity index 100% rename from src/effect/schema/class/TaggedClass.ts rename to src/Schema/TaggedClass.ts diff --git a/src/Schema/index.ts b/src/Schema/index.ts new file mode 100644 index 0000000..e3fa60a --- /dev/null +++ b/src/Schema/index.ts @@ -0,0 +1,8 @@ +export * from "./Class" +export * from "./Jsonifiable" +export * from "./Kind" +export * as MobX from "./MobX" +export * from "./MutableClass" +export * from "./MutableTaggedClass" +export * from "./Tag" +export * from "./TaggedClass" diff --git a/src/Schema/util.ts b/src/Schema/util.ts new file mode 100644 index 0000000..bace57e --- /dev/null +++ b/src/Schema/util.ts @@ -0,0 +1,6 @@ +import { Schema } from "@effect/schema" + + +export type HasFields = + | { readonly fields: Fields } + | { readonly from: HasFields } diff --git a/src/StaticType.ts b/src/Types/StaticType.ts similarity index 100% rename from src/StaticType.ts rename to src/Types/StaticType.ts diff --git a/src/Types/index.ts b/src/Types/index.ts new file mode 100644 index 0000000..fc3cf1c --- /dev/null +++ b/src/Types/index.ts @@ -0,0 +1 @@ +export * from "./StaticType" diff --git a/src/effect/schema/Jsonifiable.ts b/src/effect/schema/Jsonifiable.ts deleted file mode 100644 index e426a20..0000000 --- a/src/effect/schema/Jsonifiable.ts +++ /dev/null @@ -1,39 +0,0 @@ -import { Schema as S } from "@effect/schema" -import type * as TF from "type-fest" - - -// export function Jsonifiable< -// A, I, R, -// JsonifiableA extends I, JsonifiableI extends TF.Jsonifiable, JsonifiableR, -// >( -// schema: S.Schema, -// jsonifiable: S.Schema, -// ) { -// return jsonifiable.pipe(S.compose(schema)) -// } - -// export function Jsonifiable( -// schema: S.Schema -// ) { -// return < -// JsonifiableA extends I, -// JsonifiableI extends TF.Jsonifiable, -// JsonifiableR, -// >( -// jsonifiable: S.Schema -// ) => -// jsonifiable.pipe(S.compose(schema)) -// } - -export function Jsonifiable< - JsonifiableA, - JsonifiableI extends TF.Jsonifiable, - JsonifiableR, ->( - jsonifiable: S.Schema -) { - return ( - schema: S.Schema - ) => - jsonifiable.pipe(S.compose(schema)) -} diff --git a/src/effect/schema/Kind.ts b/src/effect/schema/Kind.ts deleted file mode 100644 index 3f6748a..0000000 --- a/src/effect/schema/Kind.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { Schema as S } from "@effect/schema" - - -export function Kind(kind: Kind) { - return S.withConstructorDefault( - S.propertySignature(S.Literal(kind)), - () => kind, - ) -} diff --git a/src/effect/schema/Tag.ts b/src/effect/schema/Tag.ts deleted file mode 100644 index 9570122..0000000 --- a/src/effect/schema/Tag.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { Schema as S } from "@effect/schema" - - -export function Tag(tag: Tag) { - return S.withConstructorDefault( - S.propertySignature(S.Literal(tag)), - () => tag, - ) -} diff --git a/src/effect/schema/class/MobXObservable.ts b/src/effect/schema/class/MobXObservable.ts deleted file mode 100644 index f967df0..0000000 --- a/src/effect/schema/class/MobXObservable.ts +++ /dev/null @@ -1,27 +0,0 @@ -import { Schema as S } from "@effect/schema" -import { makeObservable, observable, type CreateObservableOptions } from "mobx" -import { mapValues } from "remeda" - - -interface MobXObservableA { - new(...args: any[]): S.Struct.Type - readonly fields: { readonly [K in keyof S.Struct.Fields]: S.Struct.Fields[K] } -} - -export function MobXObservable( - self: A, - options?: Omit, -) { - return class MobXObservable extends self { - declare ["constructor"]: typeof MobXObservable - - constructor(...args: any[]) { - super(...args) - - makeObservable(this, - mapValues(this.constructor.fields, () => observable), - options, - ) - } - } as A -} diff --git a/src/effect/schema/class/MutableClass.ts b/src/effect/schema/class/MutableClass.ts deleted file mode 100644 index beccf6f..0000000 --- a/src/effect/schema/class/MutableClass.ts +++ /dev/null @@ -1,54 +0,0 @@ -import { Schema as S } from "@effect/schema" -import type { Mutable } from "effect/Types" -import type { StaticType } from "../../../StaticType" -import type { HasFields } from "./util" - - -export interface IMutableClass< - Self, - Fields extends S.Struct.Fields, - I, R, C, - Inherited, - Proto, -> -extends Omit< - StaticType>, - "extend" -> -{ - new( - ...args: ConstructorParameters> - ): Omit< - InstanceType>, - keyof Fields - > & - Mutable> - - extend(identifier: string): ( - fields: newFields | HasFields, - annotations?: S.Annotations.Schema, - ) => IMutableClass< - Extended, - Fields & newFields, - I & S.Struct.Encoded, - R | S.Struct.Context, - C & S.Struct.Constructor, - Self, - Proto - > -} - - -export const MutableClass = S.Class as (identifier: string) => - ( - fieldsOr: Fields | HasFields, - annotations?: S.Annotations.Schema, - ) => IMutableClass< - Self, - Fields, - S.Struct.Encoded, - S.Struct.Context, - S.Struct.Constructor, - {}, - {} - > diff --git a/src/effect/schema/class/MutableTaggedClass.ts b/src/effect/schema/class/MutableTaggedClass.ts deleted file mode 100644 index abc2f1c..0000000 --- a/src/effect/schema/class/MutableTaggedClass.ts +++ /dev/null @@ -1,37 +0,0 @@ -import { Schema as S } from "@effect/schema" -import type { IMutableClass } from "./MutableClass" -import type { HasFields } from "./util" - - -export interface IMutableTaggedClass< - Self, - Tag, - Fields extends S.Struct.Fields, -> -extends IMutableClass< - Self, - Fields, - S.Struct.Encoded, - S.Struct.Context, - S.Struct.Constructor>, - {}, - {} -> -{ - readonly _tag: Tag -} - - -export const MutableTaggedClass = S.TaggedClass as (identifier?: string) => - < - Tag extends string, - Fields extends S.Struct.Fields, - >( - tag: Tag, - fieldsOr: Fields | HasFields, - annotations?: S.Annotations.Schema, - ) => IMutableTaggedClass< - Self, - Tag, - { readonly _tag: S.PropertySignature<":", Tag, never, ":", Tag, true, never> } & Fields - > diff --git a/src/effect/schema/class/index.ts b/src/effect/schema/class/index.ts deleted file mode 100644 index 3bc9960..0000000 --- a/src/effect/schema/class/index.ts +++ /dev/null @@ -1,7 +0,0 @@ -export { Class } from "./Class" -export { MobXObservable } from "./MobXObservable" -export { MutableClass } from "./MutableClass" -export type { IMutableClass } from "./MutableClass" -export { MutableTaggedClass } from "./MutableTaggedClass" -export type { IMutableTaggedClass } from "./MutableTaggedClass" -export { TaggedClass } from "./TaggedClass" diff --git a/src/effect/schema/class/util.ts b/src/effect/schema/class/util.ts deleted file mode 100644 index 8b089cf..0000000 --- a/src/effect/schema/class/util.ts +++ /dev/null @@ -1,7 +0,0 @@ -import { Schema as S } from "@effect/schema" - - -export type HasFields = ( - | { readonly fields: Fields } - | { readonly from: HasFields } -) diff --git a/src/effect/schema/index.ts b/src/effect/schema/index.ts deleted file mode 100644 index e4b52a0..0000000 --- a/src/effect/schema/index.ts +++ /dev/null @@ -1,3 +0,0 @@ -export { Jsonifiable } from "./Jsonifiable" -export { Kind } from "./Kind" -export { Tag } from "./Tag" diff --git a/src/index.ts b/src/index.ts index 70ad017..05f2af0 100644 --- a/src/index.ts +++ b/src/index.ts @@ -1 +1,2 @@ -export type { StaticType } from "./StaticType" +export * as Schema from "./Schema" +export * as Types from "./Types" diff --git a/src/effect/schema/tests.ts b/src/tests.ts similarity index 86% rename from src/effect/schema/tests.ts rename to src/tests.ts index 0e9f692..b61ccba 100644 --- a/src/effect/schema/tests.ts +++ b/src/tests.ts @@ -1,14 +1,14 @@ import { Schema as S } from "@effect/schema" import { reaction, runInAction } from "mobx" -import { Jsonifiable } from "./Jsonifiable" -import { MobXObservable, MutableTaggedClass } from "./class" +import { Jsonifiable, MutableTaggedClass } from "./Schema" +import { ObservableClass } from "./Schema/MobX" class User extends MutableTaggedClass()("User", { id: S.BigIntFromSelf, role: S.Union(S.Literal("BasicUser"), S.Literal("Admin")), }).pipe( - MobXObservable + ObservableClass ) {} const JsonifiableUser = User.pipe( diff --git a/tsup.config.ts b/tsup.config.ts index 5f0ff92..e8f8d60 100644 --- a/tsup.config.ts +++ b/tsup.config.ts @@ -4,8 +4,9 @@ import { defineConfig } from "tsup" export default defineConfig({ entry: [ "./src/index.ts", - "./src/effect/schema/index.ts", - "./src/effect/schema/class/index.ts", + "./src/Types/index.ts", + "./src/Schema/index.ts", + "./src/Schema/MobX/index.ts", ], format: ["esm", "cjs"], skipNodeModulesBundle: true, -- 2.49.1 From b6c5f728ae555c2e52764c5c011124f31d8b6c78 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Julien=20Valverd=C3=A9?= Date: Mon, 29 Jul 2024 18:37:34 +0200 Subject: [PATCH 10/10] Refactoring --- src/Schema/Class.ts | 16 ++++++++-------- src/Schema/TaggedClass.ts | 12 ++++++------ 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/src/Schema/Class.ts b/src/Schema/Class.ts index e93331e..eb3eb78 100644 --- a/src/Schema/Class.ts +++ b/src/Schema/Class.ts @@ -1,17 +1,17 @@ -import { Schema as S } from "@effect/schema" +import { Schema } from "@effect/schema" import type { HasFields } from "./util" -export const Class = S.Class as (identifier: string) => - ( +export const Class = Schema.Class as (identifier: string) => + ( fieldsOr: Fields | HasFields, - annotations?: S.Annotations.Schema, - ) => S.Class< + annotations?: Schema.Annotations.Schema, + ) => Schema.Class< Self, Fields, - S.Struct.Encoded, - S.Struct.Context, - S.Struct.Constructor, + Schema.Struct.Encoded, + Schema.Struct.Context, + Schema.Struct.Constructor, {}, {} > diff --git a/src/Schema/TaggedClass.ts b/src/Schema/TaggedClass.ts index 9e08eb2..29f38da 100644 --- a/src/Schema/TaggedClass.ts +++ b/src/Schema/TaggedClass.ts @@ -1,17 +1,17 @@ -import { Schema as S } from "@effect/schema" +import { Schema } from "@effect/schema" import type { HasFields } from "./util" -export const TaggedClass = S.TaggedClass as (identifier?: string) => +export const TaggedClass = Schema.TaggedClass as (identifier?: string) => < Tag extends string, - Fields extends S.Struct.Fields, + Fields extends Schema.Struct.Fields, >( tag: Tag, fieldsOr: Fields | HasFields, - annotations?: S.Annotations.Schema, - ) => S.TaggedClass< + annotations?: Schema.Annotations.Schema, + ) => Schema.TaggedClass< Self, Tag, - { readonly _tag: S.PropertySignature<":", Tag, never, ":", Tag, true, never> } & Fields + { readonly _tag: Schema.PropertySignature<":", Tag, never, ":", Tag, true, never> } & Fields > -- 2.49.1