From 26a8bfaf50bf50ff765ed034d5f50c5858202352 Mon Sep 17 00:00:00 2001 From: Dan Adajian Date: Wed, 1 May 2024 08:11:33 -0500 Subject: [PATCH 1/2] docs: document class consolidation --- docs/docs/class-consolidation.md | 83 ++++++++++++++++++++++++++++++++ docs/docs/recommended-usage.md | 2 +- src/config.ts | 1 + 3 files changed, 85 insertions(+), 1 deletion(-) create mode 100644 docs/docs/class-consolidation.md diff --git a/docs/docs/class-consolidation.md b/docs/docs/class-consolidation.md new file mode 100644 index 0000000..fcbfe7c --- /dev/null +++ b/docs/docs/class-consolidation.md @@ -0,0 +1,83 @@ +--- +sidebar_position: 5 +--- + +# Class Consolidation + +In GraphQL, it's common to have input types that mirror output types. For example, you might have a `UserInput` type for creating a user and a `User` type for querying a user. These types might have the same fields but are treated as separate types in GraphQL. + +With the class consolidation feature, GraphQL Kotlin Codegen can detect when these types are equivalent and consolidate them into a single Kotlin class. +If this class functions in your resolver code as both an input and an output type, GraphQL Kotlin will subsequently +transform it into the separate input and output types we started with. + +## How It Works + +The class consolidation feature works by comparing the fields of input and output types. If the fields and their types +are exactly the same, the types are considered equivalent. + +Here's an example: + +```graphql +input UserInput { + name: String! + email: String! +} + +type User { + name: String! + email: String! +} +``` + +In this case, `UserInput` and `User` have the same fields, so they would be consolidated into a single Kotlin class: + +```kotlin +data class User( + val name: String, + val email: String +) +``` + +This also works recursively. If the fields of a type are themselves input or output types, they will be consolidated as well. + +```graphql +input UserInput { + name: NameInput! + email: String! +} + +input NameInput { + first: String! + last: String! +} + +type User { + name: Name! + email: String! +} + +type Name { + first: String! + last: String! +} +``` + +```kotlin +data class User( + val name: Name, + val email: String +) + +data class Name( + val first: String, + val last: String +) +``` + +## Limitations + +The class consolidation feature only works with types that have the same fields with the same types. +If the fields are different, the types will not be consolidated. Instead, individual classes will be generated with the +`@GraphQLValidObjectLocations` annotation, enforcing that the class can only be used as either an input or output type. +Check out the [GraphQL Kotlin docs](https://opensource.expediagroup.com/graphql-kotlin/docs/schema-generator/customizing-schemas/restricting-input-output) +to learn more about this annotation. diff --git a/docs/docs/recommended-usage.md b/docs/docs/recommended-usage.md index 2f7ad56..5891c0e 100644 --- a/docs/docs/recommended-usage.md +++ b/docs/docs/recommended-usage.md @@ -60,7 +60,7 @@ class MyQuery : Query, QueryInterface() { ``` -The resulting source code is at risk of being extremely unperformant. The `MyType` class is a data class, which means +The resulting source code is extremely unperformant. The `MyType` class is a data class, which means that the `field1` and `field2` properties are both initialized when the `MyType` object is created, and `myExpensiveCall1()` and `myExpensiveCall2()` will both be called in sequence! Even if I only query for `field1`, not only will `myExpensiveCall2()` still run, but it will also wait until `myExpensiveCall1()` is totally finished. diff --git a/src/config.ts b/src/config.ts index 7bfa079..17293ed 100644 --- a/src/config.ts +++ b/src/config.ts @@ -120,6 +120,7 @@ export const configSchema = object({ * classMethods: "COMPLETABLE_FUTURE", * } * ] + * @link https://opensource.expediagroup.com/graphql-kotlin-codegen/docs/recommended-usage */ resolverClasses: optional( array( From 5b2d201739f91da39b9553bd8889037a2f06c4fa Mon Sep 17 00:00:00 2001 From: Dan Adajian Date: Wed, 1 May 2024 09:22:02 -0500 Subject: [PATCH 2/2] auto generate configuration docs --- .github/workflows/docs.yml | 8 +++---- .prettierignore | 1 + docs/.gitignore | 1 + docs/bun.lockb | Bin 460134 -> 487711 bytes docs/docs/configuration.md | 9 -------- docs/docusaurus.config.ts | 16 ++------------ docs/jsdoc.conf | 5 +++++ docs/package.json | 5 +++-- docs/partials/main.hbs | 7 ++++++ docs/partials/scope.hbs | 0 src/config.ts | 44 ++++++++++++++++++------------------- 11 files changed, 45 insertions(+), 51 deletions(-) create mode 100644 .prettierignore delete mode 100644 docs/docs/configuration.md create mode 100644 docs/jsdoc.conf create mode 100644 docs/partials/main.hbs create mode 100644 docs/partials/scope.hbs diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index 1d6b6cf..88ba201 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -18,10 +18,6 @@ concurrency: group: pages cancel-in-progress: false -defaults: - run: - working-directory: docs - jobs: build: runs-on: ubuntu-latest @@ -35,8 +31,12 @@ jobs: - name: Install Dependencies run: bun install + - name: Build Plugin + run: bun run build + - name: Build Docs run: bun docs:build + working-directory: docs - name: Setup Pages uses: actions/configure-pages@v5 diff --git a/.prettierignore b/.prettierignore new file mode 100644 index 0000000..7ec769b --- /dev/null +++ b/.prettierignore @@ -0,0 +1 @@ +*.hbs diff --git a/docs/.gitignore b/docs/.gitignore index b2d6de3..c2240b7 100644 --- a/docs/.gitignore +++ b/docs/.gitignore @@ -7,6 +7,7 @@ # Generated files .docusaurus .cache-loader +docs/configuration.md # Misc .DS_Store diff --git a/docs/bun.lockb b/docs/bun.lockb index 898141afffbfca272d8481c6af37c0d348c073cc..883a6ed32c8dc046fa25373fdabdf2a9539cf669 100755 GIT binary patch delta 112682 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 delta 94342 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 U(X=f-zl_A|&|(;i!ZKCQ~wm9TG+)Ls(?K zmC)r8LZRdcOU#hu2!W3gE=X8r@})pHEMaO2gb&Rx5(fW?P&OsPN;5GfLf$6`_auB| zN~S_MBVkD@gip+E2@{?o)Jcu-sacR3p~N$UmlD>R8vY2kB&_#GSZ|(7nExE1bsB_? z=F>C?)&D|BnHJ$Q(>yK0GYNYnY%xjGA*}uzp=UaT&&^H=&0Zh`r$^Xsx~4}+@)F^w zgq1&c@ zL0O#$rDqnDpMA|2Qko@33C@ag+Shc;ijpJ=%26r5_?n;)lpRt=grJ)}mr{PCesZJSlCnNG%022w%KX$Qt@EHfpnme8RQE?o znHS}E>L)MCGbwwdJfeQ`p{!1W(lZ~*pVW_(W@%A^^P@bae)6LvNr!S&%5&VOb9O}BsVp}5O@}anh8TlX`V}% zAB50493i#&G#sINW`vYQ5z?6EMG>A!*drmGNg9E$+KtdN0wIIhDWO>~LU1vJ0MoS? zLXs>9MrQR3(JL1rcsYsAR$_BjhcFFt;*76>~+x83|RYAXGCms~}7WMfg)f z4O5}2?{uH)=0sKB)27cP-@&t&*YGo|>iNbvKTd2$w)5>}V(R-QaedFLfRdR}LkWFc z`!#uaWYX_y%s zf^u~nj^wcsM0p}G?v8lX;mcI1%x7JEhk4BJwnJOOhucWMoo@k;mbblc5!Ze`|6@g= z$PddWS+}n5ch!Sg#XFe|9ef8S^+ZON^pUf|%Ibcn{{O(6-lmDfeQyXaXjI&d%)^?# zey$C}cpIeBALB_YrYkl{_-Kw*-r0R>q?gC`7u|es`DW|Cl3b9$<&Qk?ON!BtBD?kP z)V~AUIH6*b_GZBQe~2d=DeE2ehV6cdH?1kQ~Br} zPcduQ`o{)wRZr(bjbL3(#wmNJ_tAT@Vg|GIR8;qrW5^00!ig!A(Z`Wab=N&v?>?P+ zb?WDE+zK!kC-|Oq-Wy^zbn%_#Nv{4R-^)%aF0W@VVyf>Pmn*Q0k0ZH)25i4R%lCaB zSBDBdj#SD;Vo%0hW3KUPY2~7~LYd2ReWy6bTr<7q`CfHRu1n5itH4{E=e-qiooZ7r zoXpqRJf&*tqyFLPe8~p)>`_QvGiR^ush0V6_VI1?zK_}1#dn0#NY=mW`<;5W>*FXp zaQpq`zSnRy3j9%?^!qRS9c64LMNlUwBX?jWQ&z5#u-xW~8dY$P7OT1$l>W!n9E$uf; z(^HbaTAJRhudw=b%q>g1ho;QvRfl&hO>fkfrgxD2W@*1$S~`{gt|jWt`ZCmqQ|?*X zpJ+-X1KhVXy?I|+Mo6jv{5`caeak7CrRmN5veOG7lUv$zOUs0&_oH~~U$5?$q28f> z*E0Ou(lVpnw>10J{(9e6d9?w5ddn`lE2 z?HAKIEyHYRiLFHR?EnSN4#_Od4^8pp0KMc+{UniPmlO9B1eqqbv|P9kSv}MK_CRix zzYnpf^VlCE$b-AOWvE}pE8)BljHb?$!qW2LKBOMYUrI~MkNZ1IONGWi&s)%bv^0Ix zK=BoXy5O(+PiKjRaMzOv>Csd=y)sR&#Z`yOXxSCU-5pPLD18(`5f*_SmKJD*)$7$N zgI;bIWZCIeYgH{xA5!qVQnDz5uMSB5f-S=c+=(nL3!3^~F-U4@IV`(Kv^18M6OE>K z6o>SdmIqA*DFFpQfBCGiCDs2 zwQ`nS4ct5B$)7%0p*+-tK&w`xEUgxrUVj_Hwt}VA#vMHsF&mDGmdGr|F%d00+e((E zp4t}lr>|is5p~oKkQ=I4T7BF(ts|$Zr8Pj)I|FsJ=mQ!G+Yla*21iS@qdKAr&aV6{*ci87QLBzq%hHC@3YFpYnxb3$R*RiywX!a|Q^@R>4+zb>}M@v1AM*TNu zr!VMFpYV_&6E=^b4wnX&))KdmmBEIV#w5<+YiauIhr%+6bNHd@sA_C!ZE$~J9TEC0 zhzk5JOpHdRuEW!TKp+M&&}G<{1%iL{4>mevBzmwlCNsin2H>^h>=N7G^2 z#?m_BZfI%I?;`Tg(HR<9Vh79cJ+vBV`s-+EU2tbc(=o0um?$${!FoHUqqC)TL;DF& z9lGyXT6f$hDY_0_ef5M)N9%LVo-a7**zIl^_Qd@IhSKyt4kgkH{N&)Tr#GtosV!9S6u^+i)vt9cV!T7S!~AKDtv@rUDmOYD!kyLH$NKvT884+Sl4uw^#@O&<@@ z-w-qlhzzX~S{nwVG)nnhH7s@^IMckep=2$Bf_e{$(A0Q!Tq_4M2MPvkolN&z`X*k1KatQHW7C?n*J78+9cfXSna+LO_ezr_`a;&hlY3%EBW9rGPtVE{cR%ex_Pvt0@8KBRQsdIm9X)|%( zR$}~pVrjEfepVcwztxEHpADHTZLMWE2Q9?X)>+zIv}*JjbGZQ$Y+A zCt~%dO_tq!+%beIvG3YyEsdeL82O59*OIBt;(eQF15h4A%4((*RuJTK59#8j+h}H^e9jpgd zMxKSxCbpl!X4nE-;d9sq+hGUngfCzh?1nwC7xuw^H~?S5SD=N|*Ki25fI1A{!gpGU z9l`NE9EBg?7#s(!s(u8mq<#Xeo=(AOI0L`HSvUvhK?|vipvBV_xC+)_IM3m4 z(90qNsr`(Q9#X(>*l4|@_00p#gdf81@CQ7GKj8^Hg=dh0ZjlmFflgq0#k3YeQBVQ& zHMbEk5~3jnM!{$p10TRR7!MO*B20qG5Iu$erouFs4l`gT%!1i42j;>&Ffbn$z(QCA zi(v^Yg=MfDK7~-S@G*P>tKm~v18en7rgb>h!v@$0o8U9p3|n9;d=A@SJM4g+ z@CEFG-LMDt!amp!2jENi3J$_y=mK4#8+3^84YWyVs__L?{SscmYw*QDzgNu* z*Qxej;WpfX-{3CXgZuCR9>VYN2p+=|Xihw>pfzZn`YyDE_RtYFsr|KB{T#GF)%(gr zARAIaEHYt6tqUwIHqw+pKnP9$sq-#gjA3k{GluZt`qxc zy~+JKT!yP~4X(ot(85(O>VF5CLS3j24WJP;2EE{4Fa56xdf{hw$N~C5KozJ8)j(@o zeY7Aegg{0}rT5zVjfg3?e1 z%0hXF0?oc7Kxv z;s1muu#NrgumeuguX@vG`apkpA0ELC(0Y0+?1J5}7Y@KzaD;HFsmK5bgfEC|7wmz( zuutdt{WuQ5m+%!Fgs0;wSlXn~%dqcuNy&1cJWA zl1`tuNRJ}}=nGpf;T1U9_l0|u@G^u$d-M*_5oWW$9rVE*eGW>mfYIw<^quFCpwT@B zM#C5w47y_QJ`8}qpsNK{^a-HKu!0LR)ADt)Mm31HIy|I%thw5DGyk6ow*{MQi$z5DhUf z3P!`2q!fP`jx+EJoCST9;s`8;C9o7$LSAY*ALNGuP!I}1C=`Yw5C-8;6e6G)0dB$xhKg&T)oTN`4Z#P0T|m$U16?4{1%Z!Y z4XlNAFbC$s2#)@d5DhUf4s>0hEwqF7^5_8dK^F%KK`0c4B9I6YgBJf<>?Z@Q?^D16 zN;Vg+!Zno=Zosc_6K=t6*bn*1xUK;df>0;|xoMv0Jp7jz4#L-P2)=>Cpl`RN0WF87 z6Nx_Q{VC{^K11O+?0}uH3G_;s_o%ffwoTdQX8SYtr{EAA1_%A~HF5jl$H$tYJ>SdJ zYlg<*IUXj$5Eu%>Ko<}O!C)8yLqQi1szG&_K%82ikA*=*tP2UlAOOEWXo>p|cm$8( z2|R`8a4k`Bstm_1xC1*u-$>MF2K5rYjqo9iglLEXy`ZtS`Ap~7aMILQS!Tl=(3e)$ zz-^ko3Fw-Et`Rf?T^6{H{R7ZPm343F7HBDd2Xt%5ADgtGmAqE&ZpZ>5@HuRQ9k3I= z@S*ZP!!et#Fb_IHV<-Vyx-X>i43r>Zy_xv{`Th!y!VL6vum(=i5~tw|oQ1J44)pz~ zP&kdvx8TCvlnQMI&7p;+S}k$3hBojnw1s-0<$5Ogi^TK^#l4`FxxRKfj!bLy-4E`P zv3pP-w^rI(S!*F(9CpEC3Zf6i>qR^I29myuln8nfcPEXp??D&n3i=9O2hjW78bCv+ z1$Cf230H)!M0$z+9-#NXT_S;2G+ArNOw(k7=OkE>{cp*b58FRU@Co!mugq3=aE=o; zdN=DK#7IXpBGIqqU-zUy~T(_<>k0pZ> zVJ^&v1<)OI*;ki&byZhaY~2t_Jg1Y={`aU(U7kHjj=zVapo>^pDb00w2i8!yXV!{0aI~xTf~kHAi`lWZTDb_qPJ* z`e70@1-b-RKyFc&9cT*8K($oM+Rh?lrzwP8&}fzPI2?ljJOUvb zq=6K`(*us=umz%k`}mHEP>s^&fqak+vO_Kih76Dq0w6W`LmG&rW_0yUSKBf}H?@BO zszg`X3V~|jJf*z=Bj6nvV&z;V`wg@eDwVFDjVCh`KyUCF1cPA+ybJB%F?LVDF60Rc zdY?>$;TNHkXK5UHAQwDUq-@K9E_~@im$v%$UpMFob)fhG0#zZ3xPpnZ332GFV4IR!SHfnDGw-bO%buwL5rlAf-612l;TGJ4U(L)_evP72 z;~WOMemM|y@x3>61yx=Uqy=K}+&d*X&*DS-a%TWt@<|7Q5C9pit%i-x&yU-YN zfhMZ8)mpW1)Px#P1vETlfncZv6(I`BLt!WfS-}k&n{3-WxJ!U+w8RSmWj;43!JLo{ zazJ*-4|z!6kq<{+(ArR2MWpqi4rk7Uo)2jiv9^(HwdmF2SLeB+pv7)!(Biigl!XdV z4XQ$QP+^quhR^`&Lmj9``ksN3s_^7e)zlJNKr?s;G@dnu=Fl4C*9K%KU12(abOu02 zduRu$>b4;NxOVcFpY-VX3B`>}hVOyePpCFDc=iAn=%PGF+&}t8FZMOmybt|AQ+FL$ z(!>zZvTP6#XS8SOZP>X1*I@!&gI#b1eu4{d3Vwzk;WL;IQ(!WD0ApYz#K3S+&1!!{ z9Je$v8b*2C>}kjL&~_3i6XRhVj0HtF5tPw+Fcp-jbX%K?Tj6HFbeIM)U}t7F?pZL? zVh&r+9U>*FNEd)aMXY`4i$RfYf@QE27QsSLM6y>Y6EuoF>0+1mT|R+=)Q$h5UHycYKwP(q)=YLJcWKY@>dw4yzU zEoaA$P)4@f&SgUT%2ZtYxbF4%Z3NZiUf2w|U=Qquov=f7yak79K)LS(b`>eItzajv z4yMku9b~8Gk?rST+sJ<#$WJyx@!DZzua5l%cnT-OxPk2qB$T-A|0V*$$IWCe_SKJ0 zz(M#5_JQ4>zQlb1)SuLkqGR}PKgd8wf^u*7XysOsDT27VGJPE4`hUy*A@~~9AypHy zi-E)N4IG0dmiq^`^p$AOm98V~d}_04Zbcl|Py1G+p3JDkDrF*2?ds};3gxo4s-@&k>R$$$ zRcUsW6jTG%*+xPkC>2nSobv|NxA@`9$I`5-?O z04*T{$b^=Zp`c}Dv;^Ol}gXXcC-%3+$@K~;Aep`WUd58kp zX+~cOszP^2MsuuZyBZdQ=CmEOTCaseliNiw8RVe=-2ekedys!SXbts1k=6xWm1+Q$ zD1;Wv4WT78hGx(d>`M;Kakqe0Ab$=9X7sdw8+O`)ooFZA9YGm+4?06vP{1xQ2`0h> z7!TuMEPMcCK=F(QWlqb75ik_Agy;(cpf@P)UTXh!ZMVU_43xP~;A2<<%FIWw z9OS23&)ya0S#F zm*EmzgbQ#Eeu2|)3Vwng;RGCqAK)k)f$!j3I1JywA^2Kd=sm?-Ne2s)2=`rFrTsSZ|U+^7}=2l;PT7m=tPHQNrbjSt}75Bp#b zd;vRQH|&DFAe-%A#}U_UYyY+VFq*(h{B1_xTYfz$q3y3s+6RJ~I&N57kEgXwLv>3$3ic_I~_`)am1E z_P!1Z+pVoK|326?XV-*n^P9&$PW#`BW2{c106O~Y0CBf*OA|MN0hYa*Ng2>^V`oA& ztKp~*C@xQPMdQ$69yjuY+EF&cK?(kCg;7FEn-GiBqvn38irBX1c$V<6ko}dFsx32&t6{I`+4z?tKp7*YXBv#K*z0!3KCEmkfuAJ zquGwK_I3ADcSBWEMcBrzg)sK*#1+m?T=vpSX^Ei7b?a0Slw?~1ii2*YMuH5>vMmF$ zv8#18?zo9*kt|y^Y24D=i)UrnKzZU(pOD*giD)j4%7~SqB1~n!0^4b9V?f4H?C)pW znGU6Z=Rt{_gRV9r46}}2?*(h^%;))}>nq{O&6u1WaSxH0--f>W${kl-c zqMo&{t&Z_Qpiwf5-#?cCI%&DldgGU#t&T1ohC_T~S8g0>(Vo>=8VnMHFE~L1#_yo# z<{a$5W;+0YxJO{EmA8uRa?nG6 zi}dVV4stk@9j(xnyTQ;G20<_A33?KzBc#GMD|R}@)3C4OI|#Qg?sv$5R`w0q^3QXu zs~}CFF*E|%Iz&RzCGN7yKo*p1+C0ivz-TXVKz*MDKHtD z!vq)(1EB*ngQlRwt=}uYR@`kNItuY!9119d;?NRz8)yNM*1ooS0u?WX z`#$uCj+WMsZFlGf??ET%4C-55*>-_Y^+yRZ>H#w93)1?q?G3%4Cn$j2x3A5AV-ie+G8hMt_%z&8VHV7U8P>Kg z{&R4D0xO{mwkz1?W~=sG4vS$Cs9AMKdI2b2A$=Jvfu+)QJboyLW$-cXk6@LhsYK`C z6#NW7!AbZLRLUK&3sl-K;5h7rZEy^JfX$#9I11mv9#E63=Au8tu?aT923QAcVGXQ@ zD2(g`6p8HZgm>e%{gk+!@aMRz4d2Go4zqs|*v_XOtln#PMt?@B zTm(qXR!ja=Y-_Mh!8SQ0gQTFN!o}7P>;WbT?!=G?Qi7f%((^>spej^>N_uv>JdScu z7BWEqXt+%WX)SjKwt5gU5P~2tWP{8gTQ`J&?!oKH0zF}n9r8df$N@P){<)zH=ss;p zjsJR5L=OiQ2DOzQ8q&i4YUSTTPx6$1udZkG=kSF889G5%=ngu64`9nbhYR}R=mWihINtcb&p!Vg{rFFI zi6E|Be{^YzPj=Z!&-Ndv_LqkuR04AA6s!}`Kv0D8Yeb-h=(TaDK+s{efPHnw`D|yw zWS9VvXzHNjVH}Kw>DZ5Ct5f|5w!>i#T3faMFm_Z6YKj;b4WnQTd;k+c9VdXqC$ZI` zsSN2%sm%NiGtn2JO_v?pwrGlT8vE*?Q^7tmRJbYZhp{c9@m~?mKu`yH2)YX2j=-&< z9#n<8FbA92Fc;>50o97eg=K6DVxzDa5I=F}X6SmTod-+LQjW&bG*0BB5vTMtBF4`QJ4F=YteGXe;3v7lBupUB)XQSF* zQ>je|+J0tj<<1Vdc%Q?h$GC7ncx3;w@$+vOb4cR}!{&%1Z+jg=&7H8kq72bBo-A2bv zB(8^aJ7abR;wEIO4I%K(%u&?wy*Z-8DKZ4%lkPK2la!3iOAT_An z)alaUP74}X?4}4{U!~2!_AYuxYhTMc9bK8(20L;8SDZowC10lb(&5(3Op2a z;!(itM3@ca$F9e&2ixw@4Q$O0lK~-ahT>;N?{3Hq%8W9S3wO?F{!@-(AU0Rt#PZ;m z7Yait6o5id5Gs&ZeoK>EL$9!HG&(Abt=U`Yv!Dom^Vvq*9*S5V675KI$0iaz0*b;T zGO60JOCF9^40Lx^e)hJwrOQt?sujD5;$GfMtNKraXZ)(VNn|OY9D&P%s;dlJbsSyy zD~-Ds?viZn_Ovrq4}Wz|*_OiJZj$(Es2QU4qZvhD2d+ebickSm^%^h~fdZ>T#kGyA zSH(6Vzqje?q{=`I_42p|%E3Qel^8<+SKp=dv$P;!`ZNSZEQ{j^!=lUep=c1q4)Wj9&yz6I% zYx~U4L|ya?cl$6AOiPGWX)`Xn(U)($__PTNB{qg5mzjozGsIYQ9vlsn>sE)qP zU77x!=KvFR${|k;0Y1Rg6L;F~cwW1-kWgbRfn{A1$sJP;U5QPxivXLW?WQ-FF{ zFn^4BGIm?ru(CaW_gIuv0Xip{m(P{HR9I+O5&Z;6rTqBCmTyk>oi@T_R(Ww9P|P5O`bN{ zZsJ1^P`clxHmPn<;Pa_XMYisy{+zIhBh%rTNiU4uwARWYJ)pC{nQ?=vit#sVZctT& z(wc|Su0Z!_>L&#ujwHFAyJp?*zW1c+IZ~&kHKFtwQ~6iFAm^-frtPmJaE?Bp#%}jz zwy&$r&-5qe5#EFGdIq!MR|zd@$1EPoC%DSl(yBeThJo9!Q&&0>WNW9G=em>tbZ{yb+lS5n@DwBufZ zcU~-#{SbMsNt@LBVlAvp*iqVf8=1vKDJeUGg;_lF*qBAzlb@a*_Q%E82zF;N%gIdS zNi5V4i?6zw_md5;K8>{~Momz*nEqR5C2t-W;EeUTlf~RuLF`l$%7vANJK>n@80`H1 z?<>;|8Lz}nD@|uWHZx5%@hb7$f(${{hCY5C)%}38phmZhud-L!xAEjO`a|*1uyBTf zm)VT}UFsz{r!aNBLK{Y>%vSo#tXMEk7H2p~l-)ZJq(BE_Lu>fu;ZII=*pde;?b&dzv%*?)tf$RdSf9!({Pv4s%&4U&-N3`H#9e z%~s>i=;`#HBlI_XI4EN(t{OQvU+Hb3_%JSzX~*9=Oz1tzl{}~STzTMnQP;xHf9;F~ zIn&Wi?8C88D%xh=oy%*vXUgNM=^qR^pXKeFis4^ zKxg!kMBIz>)Bp15M_R`1P^ z4SO(;`9Wb%W1$R|4657hM4G&pV#8jsd_qq7?41AT^!Qkx-|`su0}A&P3ym8ee$;R1 zu8)KLvEW!%1x`+G>OWwd@XI^TNv-6_YmWa(twiNDGv0HBJ4fd=^^?ZYr{y&v5Alz$ z+xzx*e?Ie2c1QD>a-9huU$^(;ZOuEs`_*;23z(08_v>sojq_$fv)q?R9u+hd|6p9U zn(U3cTT_`*&ux>U+oZy=^)aoG>6MI_;umjXs0rzW{$Z%u z@Q7@03pFu+$Ju^U*hD?^7Q4vfI9oes1;R|9cL{IVnbj>^L2t5WmvK>;Y4e1mAbvt^13KGd^1*<&i8&U_3X9avS@j_xsj@S(3`ea?iLy0nWsDW`om7X7~-eRK21 zntoVVT`X6)+57Y@S+-l$E|OhTE5%OlM4CseMLd-u8s)~V#6 z@AV3o_b=L(A~pwKN0<#QsRTQP^ARTWFJk&5!t_zj>=f-vwsV}W*gRUzZartAVrG+q z*%|iMDd%r1x_|2N?E>G}*==TL$KJOK(zCdCG^<;)LjIV#M;68wWKwan?m0QI3-n=e zbD4ej4nnB%cXrF4I>s^jN^A%_4J(h4KVivG9CKuuYsb5(rX7s6{L_kKRo{*kQ%0Xy z9qSXXI^JFlv9%k&8tly4S@}Qn4}a5Y@xvt$pE>@5DbJNs=I#q>%03R(lr|wR+22vx zlzK_0DNx4rVm~s1bs{H^7*`IHqULW|N>FNR=zIqs%?iU){C%x)@TuvsK7GrW-Gp^d z#zJSESvQx=SU*226I45_-LdSJwT5<6=9OR2fAmwkM9IpUDX;$3(E{zE&>rfhl%3m_ z?rEPltfSeqcugYn%X&xrC7-oens0Hv*Rib`zZ&h>?9+}tDE#w0ZkObrX?hCev`#Yl z%6qO2$J~iY)#vpm{oaX9@_*_9b{67R)0<}hUsguku)UC;V~ug)70mwRv_<6#riV@l%_^9fBy8>OXH}~EOJdM8=#zYz zTYvU*^E9zt=6D5jpOF7C1}8kia?*I%jLCkB6mbT3`$T8AYgX@c!p@R;=!da=da(1G zfU$j+G#|TM5&sHQrIPVaMAjQs^3KzKoi?T8!iqz63b0Neo$%4jcH-C<2Tj-d-c_*Y z#A2TW>@HyUKC4LXJe9q(j~3m1a)yVGZW~+W8hI_)T7=Umfp#tZDzNwU4PYTn1WrH zCV7udXX_ef3jOo{pa=J@VL~(^8C%1oVpi&2RKr`~q{|2PdcAn`L#o6(PjlE)7pn=~ z53$r#(v`UHj9q2dv~&7!CB$>h%g&^o>G&05W!inSmbal=-gsxmohI4llGZ=wv;W@| zM^{^z>R83`987O53#&~g?eWTBzSObjowL4~!W;jTh*lF=4f!9_d9I!HxxjS(|A(t= zKEJq%I%n52=Nr+qo4N3sl?EH>C>GK~fyHd?Wi!?7i!oBB`*L zh=nF@_f`*Bxg#uRy;zGC^-bN>biyy{n~|wpwXMs8&d3Jl*Hm=wsts7J{bvE}2%0r8 zeSRXMfelQ^QMTh7nEJmEa%BVW^5go5`)mGKQ05ptjRjr_`oX3K=6Gt?LZ|mKWuPh8 z#ARQeblTTKj`_QSot+w*{htt}wRP`d6|XBn_Ej-I@0yXz6I~jaGHKqDsK3vkM&9w} zU?bB93+Jsy=2dzuU!tqtH<$Ul?~cd{_{~e7c3mFpbFQ)RPe<&JvCs_k=jIV(t6x0zajb=Z6LT30yG%|iHK!Hw zUt8PX&cAJE#}j`)Av;U|k8&pv(|?4p^I)~ln=)A)@lE$C*23(iyP1(0T#M~q>a;{> zqn4&Vz1G>brD?N*?fWgw(x&w0=$2+jMz&L1n!6cYot^VrnviH0UyTc(m#t`N`Yb2L z+QrxX9$)RL2b;%Os;Tu<9EGB+oA>E1@-N@Be}=IbHO-eTa)uN3+TYMrr&9% z=h@ntkJ&~BwDX>In(w>sT72TZ z)(}@rPjes3$jLpq?oXw*NM`!_=Rdd1Qx^<}Vc}oklLnt*-nFAWlvQz;iKu~#cgX-cWC$#LmhJu&ybs|w@I~{IIK!DQL9}U z5{GFPySTT>A3{5EgQiUg1zm5&KJ;8x|L;2#8bTaQ8gzv^s*m^N@TAwg(dm5>74z%M^pR0Im<>R zPpzeESg7aDRDXPQB%Wxt=6H?A%WilsBCJ}ht}M<)1I-T-y*UeXZyV@cL{vz>wrkMFcZONP z$<{?l$7j~{Q-gM# z`Szz+9}b`6`N&z3A>Qk-j?Q}z-kZ_)JQf^gnpDz5LUK~dDnrcj?yihkA{|Yz%|>hy z!>7*wWB6un6fo?B7p0R79AcuXl9RbuXoRbFwMUiw2exZG^;nd2ti&fJKB+5JJ(s%d zJ+-{$vx(33+;GmV@$>kl)ja#Oy9)3wqtEpl^uVrK^CZ?Pis$q5OzI>_oPbiF6wwR(fDKO&OFI`;qB((i}U(5$;M>U+lPxX z|Mb?`%1P#-y3K(}rfmgJUygLx>HIdytW$cnt*zVpc38U)SUuWZe2V8$vzSwL+w9A9 zw3o(x&yiEa(P4@i9!kC@Vxfs_^`x8bjoSZ_hD0o=ogyDiF`KZkj|LN-kAjonKRS<{ zVDTxYwmOv+?Z5222aJvd`)IKa`!`i-cUQYe@r!8hTU8#JY=(Du>eu-0v+*w@b;9rz zt*9dc9}P9b=alH1xaR^5X`Uj56>BoX+*Nap#v&Ap-ub>y^ylYG#>R%VQ@1PBPSw)g z3B_IPU(IMAhE@#!(M9aKiFgx7yj0&Dnh6i0R*1-i58lJGcxIb2|Niag9V&+&JRDo* z46{wDq71-|X7daa7TrtxFWudIuvJPG-t;%nZfe1Pg^2K5Jpa?BAYR=dmcEv-DtmbfOvY z`v;j%jP5%t)@Q{Wb5UUrW04z+Zb`~^U3tf)yLDDu-^V8epZoQjPP>(+MENtJs;($IDcnlZ$9+cN9%d!1!3Kzuu$w< zT&Wu`FI-NG7w!m`-~_mOo+(m{*pFeMT6Sm5*Z$(=?*fM}A{QDr_?>bk(6m;%Pf)7t21%wuo?yz(=?E_mAl_`RhxU=i5F-9UmFvDh5m9!n6U0-3%qBd z_K8z2=w#k6Y+FP+@-8sP6?+{llzxq)4H~q1l%}C=5#i{Ik2*$yDHhDXh3pD*`GoEC8{HhUGe z_+oF)P9BPO4BngJW^CBD_^8fG9IDo^`kEu{VtvLeHYrMyvrn-oh{c0F-(Tz5rG1<; z;LnRq6c&+>uuyBBPMJ8vuM1W`i;W{-i8tN7LppEWvZm6RSf8jRW}3ow!a{iuZnACr zu3F#fAwFw}n1YXLlWK17Fe%pOizVi~!d}8c15jj_91EWx`muJbMfRoM8SaDu zyK_0KC+_L=Ns5vQ+u}>jw8NCDG5f*n?_ZMjb@y7)YUd)}RY~8arcEgZo>@!H;8ILR z>{E;9Il7E~MIH5)nadbN#;}sq6|}9-vz(m~vvh~Q&wyp#MBYB$hcjka3GqyUtmze1=9z8SXXD>jn8>o; zs`Th(SDIes$Xd0PW@%Y!vg1nc%D+dIn6sP1JvZfxFoH8}?2nJ?_=j)8%YAdMqTNgk zwz9qMw$!|h>{ImN1 z?Y=!RvpdxPG9LG&wcgHr;oTe0E+5(w;OVM7a};jRJKp}(QVC9tc7J=*iR~8gPF9(; zdRxq$@Odz9ZmTi9)w%JF=9%)oiRDcy36;#M0e8aZ<2Nx+G~d^w?c(fvChpc5J+A&X zyZ@LTTQNo!X1SD>esjp3?$wgpsRKRz-81!1=;#eAW|b>4;TcE5gLIsdyfw!O&u`*{ zysQ~f+HXcDzQCBjHAabu{+@wv@aPXl%oWWQFp>~-8gypp+;=$xJQ4%?`r5@GdgT* zKYM$w%-;UR&}8?bH?_w2>RHHJd2%N_KSt54MR?A(eaiuq9)zCkf2KXe>)7>#f-Pqb3WN`+Ug37 z?Qaj3R$<+f4|q>^Yuj!gF!k`yBkd*)FG2{<0Yr7YPz-j3(zHc1jM>#?cRM>JYZ>+? zMg0G(Vcm6B@Y@+W)r37|`<(B(psFVap2dh=FIt$`xv{l>4B4Lgi!Gy_BfHFR+gE*S zNod>H+xVr5o30L1`(X0UU^R8ZqD(`4;-uoKw>bOi7iM=uSA;utU+=lUZs9LiWcu!_ z^b}T4wQ^?X(sGJMoY8akGf|C*u75w%q7fID3LY`9_*IA5--tf;zrJl8|8|%&{*Oc| z9x=6#5bc`AuAt1Vj(8s%=->8g^`ZOCHF9PBQe?5Y)R^1VZ@Uv4FGhE|@4b=a{w;k- z?O)DE6N&Y(eLPFE?R$#iEm!!Pj9Rya&Ct`XAT#nES6%y#bNm~8_Wk38Z`G$gYU(#- z3YPDvx3a%2fA;&m6BcPPsrytc^CR%dOrKlSs>7$pb{5}(kDhX13TE9AblYE)FWv3= zxCQ59j1`ten)NuFJK-lbn;$hH%}BoksrZx1-AQY6PDy@TD>Lg^ivIYdz~|iT`boFs zxx5}9>k@zTQPYdC?wMF5!=ljs)#pA62<6fL zKxqd1?&Qb43(W(GMo-F-{>~y|(CsezZqeiBA~8fZ!a^(m9qHZc1A??Euf{&NnUKHzjM(OrW_cSb_{2%? zV*+I!{aE?V@^DvdCEdcuP4y*9)Omfq+b{OV`uP21?i1D>_>;E@QpJpHv++`!-LV$- z6KGb0zx|=8xSsBt#HF=c(z$=8Exn-DkHls5Y&*yC;{4ZxYjL9EPM$hZ{E&9t*_Nr= zF@82V$KYFaW(i zW43nSXshyzckpt{Tk=IH#D!V4(n2QSLR!>&DHvxS=y1o#Ok>Ji>I06RfN-e0@1FEH;*goQP_XA zx@GK6_;E$Mne6A)x|}!tIx`sA`_@BtkqrxZkA%&cver6~E=OXDq_LfTwEetyX?dz_ zeRs|F4NBm{vRgjipEs%A<4CxKg_cRle|xvlu(Bz1QQqpk`Z0li;b1>kXa6MN_w#0C zSGvUc_vjLKR;pRg`Nex&&l$%!=#8od&U4B(5S|Y1^Jy z=l~1+ZF8!6ed_7r2tQm@A*|Tn)bpmUbi{vVi95O%=XIm~@ytv&= zzH}}M%u=ys_EGshCn@V(M5j1TG?5dzWEF_TfoC@lta|y?Tr6}?oy=^*Cj&k~_nU@R zeA4@w$H#LXrJH2wP8Jx9d$4uCH4aaKY>W6;eTd7tYUaIj`(Kyshh6nvHm$K9rq<^4yH9P zu9|5*U7g+TYu=Gz<;%iD_6|N+5{qIyaYHJ(t{MMc6sa&4{={+OgOb=`D3#&=J zza9>BmcM4&^r9y=#8MNHy*ux({CMm6Kd_ACIu;{Ut7~RmFP?%Kj74%R8rQfUF{r>+ zomlvtmMroeHR*dZy4aJdF<7R@GHU*yCAF7z)|f^Ut0S3fW>asv%kpdHJB8SC%>?#g z``tCuxsNM6`V1jc6SC-9N7YPOwrB*?(uqV8{+07iDpkjj{ljjj&rM>{Mcw4ry%&h9 zCAppXudxl2cyjFNwxRf_Zd=WMC+5z(txw*i$!}QgT_9osf)>)*B9fhNxwSG)c*9QW|$}s&E`FO$0z7$ zeUAyp`rk8$LC-xcQjIgZvS!Fvg$Y#%#OVE>*9kzaaJlJ^E2Lbm_h@HFe{E~ z16-Z-tL!2NU4g*`38P-^Qy@w8naffg^Mv6D;MEP7UK`-5j7JM2Q5?*_Vpg8$%gR3%c_XSQi`q}^jHk)m|k zTfFLLkSoB>j|m^dZyxL?1o`1+-9a3Bb#8fU>SV4O?_D<6`o?CGpDiyQL?3JFZ?<7s zJmH@&$8ePEko#pq?pNhnPDn}|)_L+9@{n~f1Mr}}xo*uVo3uxT)F#DHS8Y#hEr$}@^m`67 zeJJrS!f|0J?eXuQd5_e}lfWcs(hQ?S|Bip;oA|vYiv5kaCop4D{)Z0p?l4zaaEXWB z!7}Z}@Gm|-QgRlVZ zBZkuncw%(ka93yF@d&SnyYl(Y#Zh2{E315JkD$BOdhG2<{aoFDy%jZs^Q?Ys&xr3h z`q*Jcjc^6HFIpy_&6#+-NS0ywRD<~QXZ>Q`d_Te!zll9f3qQqdet@V3x-ziTWW*K3E+dcCh5_dm1`8;{5C_R@$eRGG} z(eIhVoK$RYnO0bnEbk+gfyEhvJcrS~uU5A_y!q_K^con6B&_HzqSv5QZ)KVE=iNVY zl_bBnD2}5<-#eNHy@!d0o=h9ZWj)boLhD!)#x2ipAa)dZe{_nCA@9celzZ+ldkE~V z|J>W=3m?RMwY1+Z9!0a`x9ZCNm49%;$@KcmVamt20wPEK<&Eq~jZ&*C9xXj3HnM*w z6R%0!6aMyA!KW=6OiXiQEk}4l8ENpsdq{pV@m{Cg?ebQm#;sXen->hVqbOB(OgP$O zGH3T))?j&rZpf;S)06EU&|(y$QleMhm_DeNq*s|S3%IjN)9GMwq*ZY9Z*YLHsP1-mAWYnf#r?Upo8H<|GYdRKx zz`++c+s8j}E&PYT;TdjrjOB2#%V6$~<t)v6;3r8>e>qQ9GJ~+}&9A!}Omw$!jIZ0B9Rq37ZWQ>Eh{lQ;;fT*yB?r zqu2InrsnrdGaZ@{+?YuBirfC4(b#I+PU>%4C%M9X)zxoLa&>ys2ZGZi^YNU|zuj2w zi;j)UgeY2m6hc+m9m6c1>>B+hfHMuRSDE4pPrsOe>blQUX8$}x)N+2nH6xjcnc@m@ z|HP{obUv*=vd8Z8pKb9ziR78PTuN?Y41I%6dmAH_{-b$I@47b^1KU1U7N8 z-rA{d_MS``U7fMSv#4MaYSNjJGblkC-h`_e_=XfOn*AOa%$mz{VxuF+8}5BMB^jTY zjHR4sJdf-Ys5WhmyH@1y2@cFolhJgUNzvA2G>d1FVb)LEv~T^y#Jw$}w=eeG)NVlY zZywbnabA<7v1ngLlVuhmc#BerS%mPOWiy$vvs^`e?a5~7zbBilNIcbFjCW=xqgcad z9%zwxf5;N2Po98zvt1LMIfKlk*+f`4$n4d&RFL_Dt-D^3cZ}(fd;E_N+g}bNE7lM1 zS_he^Ikb8AATw4c7w|6A9J8~S(0MfEr7Yg#J~I88K_we}l7&p@{6l>_ z#YYztQiYwkzVl#28;_4?3{8>M3@5C!c~&!T9*^J0|DBiT7f*VnlH)B`&3LFlv9Ap= zuay4&5FgK3a@3;B=8yar|0Wgv<^+r5_@p8IrRh`lOErF+XHuhaqlDv1h^cKj%pO}7 zZPSj=wPDuK4+u-A)uG@$S_30p*}R>xcEQ|RR_4wYZds7EwD@R%|2nA8=|9V5(o=cX zd?+NF`GMFY3u2*BqUh5*tv33s)+H^=BH^&*vK#k&a#oEu#42q1UMa$he)y~tVKr7$ zs!lmfeOdVC^zq#C7*juK_Q6XBt;IqUh}gV4v*a{O=hIC(+w@H3ETer)#wE4zhVNHt?7!#?IV)@M!!nzX<+p>V!kA-tz0dsaCN5qc> zO{zug^J|y9i`YM3(6nOTeS`PQs$pLC@Y&QSd*!p9{CTneg-bQVHD6-+5n$PbNm-;qwWePQIWsz_kRw_zu1D27Qh)X%X+p$HH z3uX4JD_d7s>lE>hwCj3@ZS8Tt!%}>##w}mSyjn?)$xp^59Kvs(Vp8>v&0#*COFhkk z_W1>7iTNb<7c|V>MlNv$77uLeo%?5XUTxFh{{23>+UBWJ#{t6XAbb4yq^nAJ89JAB zs&X*nG)I>(8P&Y<<`P#eCs+3(mU3;y^LnC8PG0sm?L#scdfhBuN_Di1@J98WPnxs! z*8V@8U3*;ARTgIke!o$)LImY8B0{zX;vm9^iD*7nMXA zlUuFF`ec9)G(<%ON6iN+iabQjP<)%VE?FwowzX)q-}}425f~xc{KNa1-#zEtbMHO( z+;h)8_t4aWuE?}f;1&goEGJY-UIj?{*fc~BNSbv$s{ZW(jw3vc`WVcCF?7XThU`fWz5 zMI$JQmEVt`4>zOrs*%*RS;$p?l+F*kp=H0^ydHZq2AFazHXJo8x4@jyrSaB}E?@uX zig!XuSdh&~<&q6>v+y)KAsx1xlLCwMFRT#doE2j8c^ z@-NORxy}|Y+pmCGH;OAZui;n3Qq@D&Dw9ww>CPTW|G)30Y5B{`uNaM>O@&@J(_Fko%!(496iyC0%IF?J7a4}3_+!&Ax zTv_GJ8%xWIu#&R?!OUlqkM)-4&YoZ%Z29OcdjqMu2#c(7+`8@P)$6y(Wjm9CaTJNt zq5F8Qzy}pQGi!2D%u5c6U&c}OQNfjVZHI>@W<1q1H2xOINxdH6tg(UHW`1yg#Rj$? z$zrx;Jh>Hvuvrtfd(5-C7y__o0^P^sp3a^3l90o+^w@#nI)psOY%oe{iZ6TJz@JLt zU4}@Unm`#l@N$0dAF1a~2f2kmk_SR4hMUu=gA4x{kh82!*Nx?YBIS{UWxw>DkIm|Lpt8VdduN6ff$TeUgFO2FK?k+$uGxW>1#OQnP?`QsL*_&7)z7PR3;hSSFkHyIG@$lO%?;BOH>J$FQckWNj@QR9x9)~eH?=P$Z4 z`$(pm7f#WV07{kVJa^DN;&4BO##EsPHaaFgDGxJ-fVIQH8 z;>?GxDc=3v;xWE$xZV+z#&9PBg7H3N={DiV>4J3|ZY*m0pr-uu{BKu9){K*DFcbO+ zIs{zxUuEjX-4ziY?!L+z~;xrI3eyk(7S`x3IRS5h9dP3ik}$y7YD_ zcGm8bY4$!;9Vx|1=0Dih#InRv?g7C@={kkRmO+**Q(l4}Ss7IIrL~YDZQ>NZ@t<7V zn7Dm9w@W?$t_dxr-F;x4;D951@~>NiYxC= z+X--X^23mu88nye88v_Vt!0NnVeNM4wgqEsXzKSvS6hB>$AQ{a?&g+%+T_%4Q?Z>= z)~Iq@W^5|mkLEa|c#1iVx*fzUwIe0Zm?KRt$K0fs34$~-(tjP`FguM5SMKza039kg z8;$~QxcGMs^*AI9SMIQ-@rOV~R_p5hP?8RqfY@s(sjG(#E0ZSx>y^LM^fSA8wRSVO zrJbD<9JsM%8k1kY5pePQT6OJNk<+}YUjZ(YitjSr9_8$DfwPq1GVi?E?V5cULdg}O zQ|H+baFc~3;vmH2Wy7K+Nz<3+M79yyf>@TrSSrT=!5kS&?SuUGnNrUKLY^73+HIUc z;YTn8{bMQj2!y#RmaCheHw<4sI9dbeh!;$3_HPSlsX=Rfq1U}1?<9TQR#P{V>VT`9 z8AnZwR&pGvkD~R}aa_q9SzVR=4^!9#w9b|elv`mOO<@q90)j2}4a-h$`+C!}wK4<- zTow}g=&0b*<(BHsnoMJ&VpEP0lc$*pPd{^w`J;g42$~zqAMAGfqey}7s?vmg1xtnhbh*i6Ae zj(+~yVU7l$z!*6s@LAS|XL}FHdoV;ABT3zH2QhL+0D@V$Ar+(gMCv1_0fL?7p*OfY z7b!&&XeVfCJN3g#8m0^HDmavJ)e{rBn)7uTQ#PydJ!V97w2D{&Z)gR2|3M-xtHAid z?yJS!DYN_T;J13oXfF7gt-tdn4(F_~;mp?r``fvnWcrBqh(s0etXBwN8r z{Xz;C!5{pWUN!78c!ILLiv^|7{Zp8LDS%*S#8XSp?^-dxuD%T-E`>ZQL9>IhvDB39 z^{x8hJZ>CrwXZCRtQ=_rTDTZzUX=-QqFc*&?BD!Wi!NiAGY3)AvsL(E5lbS41k>G1 zsOc(p1W~>>t1z0H+tgAeQG0_D~qgLG#x7F1j#xFclYOpV~Ilv50=yGSIAWh^HWe%_oexCF{ca^63YNZ69i z-nH~`E!gikE^Q&j7LhcRdPcBU&P7=J8Q~SBaRFU81F1HL(RLgf+FU32YtN=}QJH=@ zU}kvCPjL8Sol9%g@CH9Nzfm>)k*6nfG@wS3eZ0+Idlq?SW}So9g3UknEUb=eAjF=v zuA5%-Qc+sO4S>r|M-J|%#A#r5J!Z;WwkJbg^)M&8Zqforz+TevlM|h)heE{}Px;2Ic0I=>s1vzG}`wW^#lc|s*X^!{l@vfp_ zc?5H`j9{CXRWxeY^1AbSk3~8Dxwx!g!6=w#t4&c93EX+#*l@Mr;yAF^3eV_T2Sq$^ z?17`##U~g6x%OX;*PYi^yx&%1DHLrr2H-OP#DA}3+048btYs%d_o41V?!!{_RFC$S zTV~&~Q>@bSWowy&tgYtv;EXgVr1T|~L*AG;Eva{%JSGA%3?@XeoN)-^_Yp+WHKHo?dzh90FuV?-Ot*Z}XB6yWbnZ|={Y7Z)FLg^WS^6DbGaQU&iqo6B-z5STQ{2(;uO*Sz|3-lJv zz9NhXlzv$03>ooygU+gUZ1BN{6K9kUOXhd#r{CQ3=){z$!g2V`j^4M8e@U@RoOC53 znLfKB1TSxde}ZjwD+2>+6^ov2P1G56Oq5I4f7*Zin!opbguRmO=_!*>6qLL?-@!6w z&a&PTf8Qj&LMo331&;E4roaN<^^he%##_95bv9IVRVWycn4XYjh|khz8GMX$bqjPp z$tlLUS#x|6(i3%aQqvRWQ`Akt!IW`LSYk~V2Z^o|o{FLI(L5D~GJVB?)LbF1w+dN;joEuOUQk*tqT&?RN1`Xm|XPb$&BdzvoYC*H6)ErC|6 z#0FZ{SLH@~d{yr2UR4RES>41mg{>hyOP`?gSrDH=1tFrEJYN)@>BAPm!_?GW9N&!& zwFp7v?WJ-th1iSzdYQT_MP~)+JjFCynS%w1i%jP|#qNJV@;^}|4{K3F>u(Bn^sYi2 zP1Rna>tp8o($~kuL8hiq@vf45*8@85E9iNxHDCq>s2ogpBE+a} docs/configuration.md" }, "devDependencies": { "@docusaurus/core": "3.2.1", @@ -13,7 +14,7 @@ "@docusaurus/types": "3.2.1", "@mdx-js/react": "3.0.1", "clsx": "2.1.1", - "docusaurus-theme-github-codeblock": "2.0.2", + "jsdoc-to-markdown": "8.0.1", "prism-react-renderer": "2.3.1", "react": "18.3.1", "react-dom": "18.3.1", diff --git a/docs/partials/main.hbs b/docs/partials/main.hbs new file mode 100644 index 0000000..cfa0b8a --- /dev/null +++ b/docs/partials/main.hbs @@ -0,0 +1,7 @@ +--- +sidebar_position: 3 +--- + +# Configuration + +{{>all-docs~}} diff --git a/docs/partials/scope.hbs b/docs/partials/scope.hbs new file mode 100644 index 0000000..e69de29 diff --git a/src/config.ts b/src/config.ts index 17293ed..f854d17 100644 --- a/src/config.ts +++ b/src/config.ts @@ -40,12 +40,15 @@ export const configSchema = object({ includeDependentTypes: optional(boolean()), /** * Limits dependent types to include from `onlyTypes` list. Can be used to exclude classes that are imported from external packages. - * @description If `MyType` depends on `MyDependentType1` and `MyDependentType2`, we can allow `MyDependentType2` to be imported externally by including its import in `extraImports` and omitting it in the `dependentTypesInScope` list: `["MyType", "MyDependentType1"]` + * + * If `MyType` depends on `MyDependentType1` and `MyDependentType2`, we can allow `MyDependentType2` to be imported externally by including its import in `extraImports` and omitting it in the `dependentTypesInScope` list + * @example ["MyType", "MyDependentType1"] */ dependentTypesInScope: optional(array(string())), /** * Denotes Kotlin classes representing union types to be treated as interfaces rather than annotation classes. - * @description This should be used for types outside `dependentTypesInScope` that are not generated by the plugin. Only use when unionGeneration is set to `ANNOTATION_CLASS`. + * + * This should be used for types outside `dependentTypesInScope` that are not generated by the plugin. Only use when unionGeneration is set to `ANNOTATION_CLASS`. */ externalUnionsAsInterfaces: optional(array(string())), /** @@ -67,44 +70,40 @@ export const configSchema = object({ ), /** * Denotes Kotlin annotations to replace GraphQL directives. - * @example [{ directive: "myDirective", kotlinAnnotations: ['@MyAnnotation("some argument")'] }] + * + * `directive` is the name of the directive to replace, and `kotlinAnnotations` is a list of Kotlin annotations to replace the directive with. + * + * Use `argumentsToRetain` to forward arguments from the directive directly to the Kotlin annotation. Can be INT, FLOAT, STRING, BOOLEAN, or ENUM. ```@YourGraphQLDirective(arg1: "value1") -> @YourKotlinAnnotation(arg1 = "value1")``` + * + * Use `definitionType` to apply the directive replacement to a specific kind of type definition. If omitted, the replacement will apply to all definition types. + * + * @example + * [{ directive: "myDirective", kotlinAnnotations: ['@MyAnnotation("some argument")'] }] + * + * @example + * [{ directive: "myDirective", definitionType: Kind.INPUT_OBJECT_TYPE_DEFINITION, kotlinAnnotations: ['@MyAnnotation("some argument")'] }] */ directiveReplacements: optional( array( object({ - /** - * The name of the directive to replace. - */ directive: string(), - /** - * A list of Kotlin annotations to replace the directive with. - */ kotlinAnnotations: array( union([ string(), object({ - /** - * The name of the annotation to replace the directive with. - */ annotationName: string(), - /** - * The arguments to forward from the directive directly to the Kotlin annotation. Can be INT, FLOAT, STRING, BOOLEAN, or ENUM. - * @example @YourGraphQLDirective(arg1: "value1") -> @YourKotlinAnnotation(arg1 = "value1") - */ argumentsToRetain: array(string()), }), ]), ), - /** - * The type definition to apply the directive replacement to. If omitted, the replacement will apply to all definition types. - */ definitionType: optional(enum_(Kind)), }), ), ), /** * Denotes types that should be generated as classes. Resolver classes can inherit from these to enforce a type contract. - * @description Type names can be optionally passed with the classMethods config to generate suspend functions or + * + * Type names can be optionally passed with the classMethods config to generate `suspend` functions or * `java.util.concurrent.CompletableFuture` functions. * @example * [ @@ -133,8 +132,9 @@ export const configSchema = object({ ), ), /** - * Denotes the generation strategy for union types. Defaults to `MARKER_INTERFACE`. - * @description The `MARKER_INTERFACE` option is highly recommended, since it is more type-safe than using annotation classes. + * Denotes the generation strategy for union types. Can be `ANNOTATION_CLASS` or `MARKER_INTERFACE`. Defaults to `MARKER_INTERFACE`. + * + * The `MARKER_INTERFACE` option is highly recommended, since it is more type-safe than using annotation classes. * @link https://opensource.expediagroup.com/graphql-kotlin/docs/schema-generator/writing-schemas/unions/ */ unionGeneration: optional(