From e1156235d7ea83b887a4237ea9c3eb10d5f3fa4f Mon Sep 17 00:00:00 2001 From: Zynh0722 Date: Fri, 3 May 2024 05:21:21 -0700 Subject: [PATCH] BROKEN: Trying to read svg doesnt work lmao --- .gitignore | 175 +++++++++ README.md | 15 + assets/Xbox_Controller_Blank.svg | 587 +++++++++++++++++++++++++++++++ bun.lockb | Bin 0 -> 36845 bytes index.ts | 8 + package.json | 14 + tsconfig.json | 27 ++ 7 files changed, 826 insertions(+) create mode 100644 .gitignore create mode 100644 README.md create mode 100644 assets/Xbox_Controller_Blank.svg create mode 100755 bun.lockb create mode 100644 index.ts create mode 100644 package.json create mode 100644 tsconfig.json diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..9b1ee42 --- /dev/null +++ b/.gitignore @@ -0,0 +1,175 @@ +# Based on https://raw.githubusercontent.com/github/gitignore/main/Node.gitignore + +# Logs + +logs +_.log +npm-debug.log_ +yarn-debug.log* +yarn-error.log* +lerna-debug.log* +.pnpm-debug.log* + +# Caches + +.cache + +# Diagnostic reports (https://nodejs.org/api/report.html) + +report.[0-9]_.[0-9]_.[0-9]_.[0-9]_.json + +# Runtime data + +pids +_.pid +_.seed +*.pid.lock + +# Directory for instrumented libs generated by jscoverage/JSCover + +lib-cov + +# Coverage directory used by tools like istanbul + +coverage +*.lcov + +# nyc test coverage + +.nyc_output + +# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files) + +.grunt + +# Bower dependency directory (https://bower.io/) + +bower_components + +# node-waf configuration + +.lock-wscript + +# Compiled binary addons (https://nodejs.org/api/addons.html) + +build/Release + +# Dependency directories + +node_modules/ +jspm_packages/ + +# Snowpack dependency directory (https://snowpack.dev/) + +web_modules/ + +# TypeScript cache + +*.tsbuildinfo + +# Optional npm cache directory + +.npm + +# Optional eslint cache + +.eslintcache + +# Optional stylelint cache + +.stylelintcache + +# Microbundle cache + +.rpt2_cache/ +.rts2_cache_cjs/ +.rts2_cache_es/ +.rts2_cache_umd/ + +# Optional REPL history + +.node_repl_history + +# Output of 'npm pack' + +*.tgz + +# Yarn Integrity file + +.yarn-integrity + +# dotenv environment variable files + +.env +.env.development.local +.env.test.local +.env.production.local +.env.local + +# parcel-bundler cache (https://parceljs.org/) + +.parcel-cache + +# Next.js build output + +.next +out + +# Nuxt.js build / generate output + +.nuxt +dist + +# Gatsby files + +# Comment in the public line in if your project uses Gatsby and not Next.js + +# https://nextjs.org/blog/next-9-1#public-directory-support + +# public + +# vuepress build output + +.vuepress/dist + +# vuepress v2.x temp and cache directory + +.temp + +# Docusaurus cache and generated files + +.docusaurus + +# Serverless directories + +.serverless/ + +# FuseBox cache + +.fusebox/ + +# DynamoDB Local files + +.dynamodb/ + +# TernJS port file + +.tern-port + +# Stores VSCode versions used for testing VSCode extensions + +.vscode-test + +# yarn v2 + +.yarn/cache +.yarn/unplugged +.yarn/build-state.yml +.yarn/install-state.gz +.pnp.* + +# IntelliJ based IDEs +.idea + +# Finder (MacOS) folder config +.DS_Store diff --git a/README.md b/README.md new file mode 100644 index 0000000..db4da90 --- /dev/null +++ b/README.md @@ -0,0 +1,15 @@ +# frc-controller-diagram-generator + +To install dependencies: + +```bash +bun install +``` + +To run: + +```bash +bun run index.ts +``` + +This project was created using `bun init` in bun v1.1.0. [Bun](https://bun.sh) is a fast all-in-one JavaScript runtime. diff --git a/assets/Xbox_Controller_Blank.svg b/assets/Xbox_Controller_Blank.svg new file mode 100644 index 0000000..5509a8c --- /dev/null +++ b/assets/Xbox_Controller_Blank.svg @@ -0,0 +1,587 @@ + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/bun.lockb b/bun.lockb new file mode 100755 index 0000000000000000000000000000000000000000..3347bcdb9c145f9a507c88bc32db0fe47e52689c GIT binary patch literal 36845 zcmeIbd0dR&`#(Nqq_RY!LKKpvXxJ)i&CF@;ykDwU-haG*pP%!1oX&lg=kr|WI_JL6a^KT6OhGl6!&Y@; z`KdDf7RtK?`-y{R`1rdo@MQTg8J_-ZU)LbULN#$=8jbc%dyw#a4IAw+soXU$A33f( zJfrE{+06r09;#oPmpC%a$7vlD0_V&NXre!b5&XEP6aRu6$kS*M^I5(D7>NVl7vjqx z><*zPggqck6r$0@A?yiaVAzEp2Kaf+=RlbT$nOp53SD^Rr6I&}hxlPVgpv>sVr%I@ zaoTGrF9z{aIxC-V@55hH?WTTp>cENkCW)VJ`^F z_~DXnd>%h% zPYs9%xGwO=bW^^Zq@8;Fa`OY2UJPit8b9CP*UO6q%7Q;3Y}Wu9%h%P5$q1w+gAgc( z62F|AZvet*AQHD-*ogj+e-avrdd~x8qn_UJ*F+Uwb#E*tLu-}|zdHuVa9}>OG z4B*u-&o4K4=Fq-I5mM^qVvl!3?(vuGap=~qar7PDjy@rwY0ZWES!|sH1LI4WL07$e zHts!hxoorXz{b$kmNy3Fi-+z^s7U+LO?s6~?1<_e64tqOF2Z%?YpXM}zvm=0?n^l% z*JXJh*`h5nx5nPzJNn7$V2e?f<26@ORrG z6Ti%SwQH7ZR@&QV)2@h)&fh%qo>jyr+LM>ZLn0?_8nt0#(A9Tc=NOMTud_$8!Csrv`s5&b-E4=En{k61AWvQ3tZjJs5Sw=xc78BQuTvV{m&UOdw`}?mY zXNCHUZ)#$Shov4X%yPcm&vo5ATZvU!%7@BUUB6-C5MukTI@woLZpO_~11oAKZ?D$v zBKFm0>sdw8&dbcTaVxK@ZpfV?DL3x!j)8W!r>ULUD`R5y{iLbk4tupVk2mg)^zrQD z|7eJ9H}=E+>s9UJN1Pn5cQ$F5y!F3N_|R~-~>@>H8fE1x*ZLZ+Wq*}5lE;DVWM6T|ZEShC3`!GCk$Vrm{y(KHo7E1^@oLbMA)Z^Q!lir{EXfQK%UvB=i z%#k*Sz0UT5sYvhR6PenVwry5wiWI+P*xNWEcjzj$VP6_j*PTx|Y9DdVcwNA%Ye}>E z&Y?LZ981Z2>hC#h<%4$;k-~L-o=p7iX2?;`fBb%ms`}+puMc~dsj@O9mRZ!j&a+)# zQ+-+G(JZh>SXCr55>V@msI!F_LeFre56|wrl1ljC+|u|A>X0M&cTjrVZ`3~< z6k+fi_#J>B`x|&^Xb9Gi{Q*-}haG9ZD<2QjAlH%f_J~Niop6Eu2h%W(aI}ZTe1g9T z7nAw;j^Iccf@eU*#(X@sAD-bIas=-Oc+?-pVXE)2Blr`1JS->vl_PjzP?|NR{n(Ek zaRhGzcs0Ni4E94u9KnYJULWu<7t^o}5bcm7_(}jw06gL_?cd7JfJ$NE#vQ+%!Mg)~ zJm692jXH$6-etDgO=dhJZ&5 z>fqnbKL)V=hdGQZKT!Sa@gD|woPV%x)B))SxNOrA`Hur0+mE=8Vv(5O-|*|lw9d@G zim>^?=MUE1nfA{D{O`>BOpTC&anfm*~ zIm5Kyz#u_%FX%zX==~;r!cK{lx(OcjUhX_}|gr02sKxBfraU;`amo zciP_!cpSet_VFI>=siHje<&Opk@*Arkfh^vTaJ`F1b7vwALIY#8BXx^fH&deu|8Y_ zbi@(7hNPhVh$HFkagcHWfXC+t>JEKJ9l>V;p3Fb+D8nYTtV%_LFItB>74)Emp-O;|swh_Ft6mS27 zx<`jHbi@%n3-CC85!cbSBR|1!0lY0AkLmxm{#wA>Q1Jg&f4XqUi~DC%@4v;b06g|T z;ya4Pc9QlV2fPvBF%2D&gBSbtUxIG{{4_qkGxM)0fXsda9}D>3nLq9V9{Uel+8Oy3 zq<>F-FTi8}ceeiHfd8HLe*^sQwBJhR_vXJ1fd8HLR|5Wb+CK{3i)e%Xaol%w>|xah>ckeeC!j3p1|8RH@WDNCV-EjG@=kGuO z;rS!tasK@`a{xZC(IXD`-smty-wQnI6PAbEx3w@#xeh~2hi>OO46!XJJ30(8K8PO@ zeNaQJQ-Pm93_^6&5b=uKR9=YnjR23hQT%iaF?}>Y{!bzDDD(5FA>tVPbPTbaDtJtX zXF1nli1lgmqTCSUI{Y|>sJC(aIEKgreZl2{Gexe$5OGG_7%xN}+JQ&B19-$afyZ(# z;4$3;Jf?es$8;8W>{~zZm>$3n*$`s+h2U`vhl59lA*L_K2smnp_$Y2FFT{37^W)SI z%dG;BVJtttGa=$v^LgU=;W~b}9zty2Mt*!VKitX>w?l~S-o+31^3(T2h;kp`#}D%3 zhxlPSgy=|!*H{mF)C-PrbQq%lGv0Z+`7_@CuZ;Ka65sI#`ENSl6Qc2Wsnm4ytq)ld zufnY@l^9O>XWV~etCkqJu^neVa_)P0-IZtK)2%F?rSI=DtwdtiR-by8TK(tS2COZ) zYO`2u;Os@$c861V@mWC}eSN$U)4p+1#*wdEH+d(^7wxv6R6T1*JZ)sT{xrp}4zDKW z4=^lWX>sE~ov!`rbo=hlx9imwmQM-ne&Iw_y}iqF3NPOG#L)|dw_cZ?xN(Yg*TCtL z^+!^Z#x<24m*UJiD_na1yqV+uw|e&bF3dQ#$!$rmw`*mhYm~o>IW%YAUUSsuLFtGt zeel~Fq6d7I5JxY%l36(8{O}o#8mG;sT@EolFZsCp8Hcc~Qx>WW-95iDaO6>uZgwAD zm$+8WQ#D&FAN%&%gt}SBUN7vbudS~c_xK)#7oT~=(YH*Te*5matD55B+WqgpO1kkX zy0^Z`IKz3mhuBl1H;=suA7?nm25HZ-zjD09=85$V*_DAiFIq;8)`&d5;6s(H5rtQT zkU~gzY>Zs*A-3>x)84FDyYkSq$~(=?r^Xr5)<2U? zqG|P)`(mt;8}9$^!5gJ}qi%_5y`6ALc9ckz!rem>&G{5w>iUr`nda8dW~cX4gT$>j z=4yP}GiTOVr)O_p7hNAQbU;CmZUsA>RM%(d9HmXPd$Yqj^xmfQ-s9u~8mejBKdrk%J#CU6yBax z-m(OxN<*6Yq32^R?*ABfyZhv2zE_s@+Vj`RzK>;-MN3CMmaZD0c6#f@J|CT*t!`N7 ze7dk`Wxe;st3x(5Bz?5D52NtnJWU*3H+W6f>rHPC&Zsm>cf5ab-C&WvV%~*|zaGsS zA$Ila{?nBgq)yyFEnjTsZg6W($o)5O&)C_`i`p)yy(H{)nU_ljg%{Vk#L<5!n2#}A zxn{b2kF6I+ej7DsG&A$V)Kxup6}+kZz9}%~F=MMu_fMxY9r_(zf5%p?TzIoezewRH zD>ZxzXkLdFh;t~sy$LCV^w+P9E28u(Pj>kx|8}HM@uz9)4KwF+Zv9a2+V8IWdXrvm zS(D!>Z<{;(!IWnvM*=GX#9qeaM;6NNQ?|)pE|j6%kHQPbel3n3eC<$_{)1ALahn!8 z&Q3Wvrpi}cs$bBGo^R?atMzqmtlpTlJ9k)m*Gpq2cdsjPIdX2)y&K9QeoY!*GUwLJ z5_|1U;f3S07DpfVrRc8-!K#Z?Z@rC}VeWV1lFHe4+6Lhto;_KiG$iG8nu|?FYZX4jDP&<)sT@%UMrVuaaC~;p7Myo3&&I~j=nU>VP!?}r?mzbwXzB--|lgr zA8Guu?A(s5hg(EP?z%I^X4#X}FyAF=Qdx&{<6|%No^4gDFDrY>x^C_8E1yoD#%~tM zeT@4q;^-dnS9f()t>&!s?NRvo`ko$sNA^e`bs91CG^@avgh_ib#)q|{?+`0Y956bj#XM5J+vvV_Of=L3#%n1CuP?U_Q_wZT9q<6 z&96lK;oolMqc+pSF38Ip?W!`{cshk0vw*|4?o*X^;Im`tswXqFxo|b1Uc*mt5`}dCEocb&B64>)@fHDv}CkzB*la*fn17O2)*|I)gXdJ$>=1 z+M4-!rCZGC^jy=@9VrxEvOhz5dhhz?bcZd)juv}IU)`aky(8@PlP=q9bc}cBi^jxn zV97_kn-+V|#8f>^_*$&APLa%#@lM_uKN#x08)Rbqj=iIfU$W2R@~)g{_hHKHHS3+~ zbGs<{B>d>Qx#-X+$$X(1vnmsA(!P$L(2!^}V7u>w17q%ayVUF%=pQ$HM(XG-DK_ig z96j*2cqm0)*fzH~`q7!F?yZ-%s5d zmhxdkFVm31sk&7wYI9z>`EJVjYq|4$Key)PP843;e-cOE@Yf|)xS`wZYzKoi;-7Bm zEgUSr`1ROyuQX}D>*}>PHp*V>K73^H+_H?Q9WsfUk1km*?;2WSH>Q71@TzSJ;>iUR zUiikh#nCyQx0W1t(A2n@q@^}6PLSJ-YDN#=PD~a zgmqP9R9e{EXxqz1yZYa-GrH0^VHkxM_sPW3dxvPq*H3#YwQ}>9f(HlnM$^P9GGj6q z8kQw^ib*-AuG45dp{u@6bMDfT+0*Q+Y_45dsv~#L{npV7k3A!w=;u9hI=-sAYSOD`amzo2=H+(z*!ccPPQr*J{Us@P6ZN`esHCp8EFGbCVuQ~0 z(2w;u2b^6!+WWbE@*Il1WFL?8^qk^hsRoHwmv%BY51z1j^YP2--6~&%=pCH5H$`z* zrvG@$m({~xc9H36YwwX3SR7fpFzm|uPm3+)NS+e!c$GH|t148$S zWGrTKvh*0;RuQUkm3-63u=43^ZBrA^C62Y)yC}R0RNlU}?=%MYDNY(G+ATjpYL>;CZ9Vm^ z(#w}JChu|iraIx?$D(kd*oc{KBWEz=nPQ@PJDifAzMi(?#Ja=T7H`sX*HUGw>#lJ#`#pts7?t;#WI_GkIoG!guD+oWa<5^}_RQHoKFXBMDwSQLt+zbg z`Rk*QxQZ&ZS^D2MRVAxB6(-ANENfkRhUOmniFeNx%= zw!vTuuOgLq%AkgvnbWsgN;-TE9yM)5OpOFPKIZ7`-Ob0M#h%YoToUNwBUyM#jrMd< z$jQd~jOv#;1#{AcEAC{aT)yl-+MYVj@EnOay4jI4j;eLWo(W?{{HUI*ET(qMdElJ8 zGb}>;h6i_VF1|lF=<(3H5h~4}FYX>V#Cw;z*Vr1`?Z2}Y>mQl%MaJgwH;TMUgcL&h z+#OGPR57fdT0Xt(Gyj}u+9bWqlBRQt3(XGFhH2C7T+DZxmkb=EHfKgr{?Un{SyQa-=6wR{P3r4N?rFxEs89j;CnXrP|A3@ zk;Rr~Ruo=x4u|ygio6s44z(E6R7^uWt471*_@;YdGx#!=bR(8-bEjd zc8Th(!w9Ldz1XvG*)Ro}GINo=%lk?k*gAv4JBBLn_>X3@g@=q1_Df%^byDrd=tu7o zi<3?p4^$MEnY!@fn{Et~b?X<-SseC#@Y&=kVvpuLRl4T)!DDxUnxC_f^hG9h{XotI zx$>GMKALymHtR^4>m((Ku%e#py1nnl5SAMDP2E!U(twZO=V|y}=(ohXLF-6nrsDhS zilX%>Kc<9gViKbF4^t=Fj0AX zuBf?LYTqRjeb-TV@%)oGda>k^bK->w{qIJKSY@kvJb!j%dbjCoFLY5H_B<#4r0YHB zgFEJ272P%1+0emg@{&~R(` zyEn*sY<<4mz{>4R;x@1F#V>}?Oy6%CORVTtC@1sW>Cd{a?35@HpvRs6&D|c*M!NUBFb|2)X_t}2xwXkZRCwaS!{$`1# zM|_xMnyi%a^0n5}@qIsrz0!*Q@m=+;Glf@!%6l<(x3!J&K2`MvwGp~$UotPwW=)pr zab|!_sKv^Jyo?iZBQ48%%JnyP))2LkH+&wnd`;mkr;-J>r535uN5db=Q+Ua_8q(AI zEgNB-v^@KK)AeBQP{Y@Q=jOO9O`4tJH&^I^( z)N7EpG-_O!zD3s(o)Y}i)s6cV%POD=^M-pRB$`a)5krul1X zip|#u8%r(rEFUto{?z!N0bM5}E4fh9#Y}H;J96{mLC8QA2r7AY+nr^z@JMHEWY0EC( zG>2Z&>}x(~L)YwQS90dOy1yWM!=!1K&c60}Jgzu4v{u`B?VyP0lG71qUvHCNm1iep zN8uey<-K%;^Kg4tkLOq23uLQqooe)5R6o%4@)OgV46UhSrB)Y@o|;uwGiE@%`w6KY zruj?0t};*C${AA3{FGHOO5{YzP71Fcm6vnkRa97D(v3pJ7Y8n!e=s)Z%8b7i_6*(X zex~u>h&rWhbwldP-xu`1|6uL>2`-Z7GF{9Un>_5A#_}v?mVH~Lc!k1C-bWxk{eyMF z?%16Z4bGMhXsF$jZ!7&!RlNDSQ}-wLH<-q_=bk>}HzqUIJJwmVioU~Py0B6G*B57Z z{Uy0*|Ai@sHJz2I`wRHSyT#F!_eDY6@ zisECYURYaRnmH{sp<|;g6pQFTc^PL9yVt-3o)8$BHWr(|ac}QcdbLL?jw|Oq0*JU#aam z*>-}?n4ZbQW0xdM&KaLWubnb?{`<@MYnumAcqb5Hk#|e4Lff4K<}Q@~B5$Jm%yNB! zmZ^vRm2G$O78-96RUag!aOerk;~u+8CU?l~{oBIia3qP(3M?Ri7r65fG_^Uvp`QBz5KUQtND*im_@K)CuQ878r2Me}qBs@sZn|S}` zy9Li8`SUefKmPJ`Z=9nrpG9&ssHwTV1K=M#fa$&ps!+ zg=H^0nq<(tv0B>bsaB|g+}b7DhF?6gi)o7$#5Maap6|5Jzd|#0`RrUZ<3zI`VPBS4 zk9$+4VjA~G*jJ1quL+g6w)^ngQmL(c_)xJ(=##>RIidIxM4t!fQ(9?XJF{$#P9aOx?>L28XIl zejG|$sdn;t+>_`!uNw7lcP(6;nS&cLj)@-7zWt{8HQloNx`Kq@kpovJ#)=BXMA!GA z@J^)i-Y!s#ogphZph%*NLY4C5E4HkIalPhfEH%6tcETaCd2#%;wKGLrJYL$^JWY=c z)_b^5e)7{}Mitd=ifNfkl@+Py%9E(P3y&8iPZW!rdgJT!lKp#AGJN;%uQE?N;9zyV zIfg!Fno5(ZYnZ)Rje_)|$7$yu#*7;_ry;hXXynp(>x>=YVjk3a$c)OnM9*hfbJxCu zpQiU}-KW#5{3v!B%OCBh7`OMJ8f#(`tH`ngHrC=1A zI56~~+?BHwJ(yE@@7zoi_8EWebg-SBTZyZlN;kRK>rzj41F*@t$!w$F7I|!Gdx6M}mza z_Y@C^Ht)Id+=1_QzN1_1k1eUZGolvEF6t_77c+LCsO*Y0qxHUxPk$@(@`GQa$ce(J zaJJlS#VJ|cc00?N7Mag7IHMl2EhE6ne`~sqhSw*J%_lu5@>)@OFHiFNSTgyq?y;qH ziFINXEKvhPnNY3U6>s;(=(zSDJ?vtY)>IWtDh_@7w05P zxTwV6D37ry$#*(Xq8YZ$;982sI~VGFJcY`8d$iV(x6|U9?=KIv4-6j^ZmLt^TNY&P zrKt6>_VKv6r-yjj*l!G0uP@XswysYZ79@E*H+6K>T-l2WE_uS&C!L_kYeVII+I8EC zr#0KlXLgyoG``;wd9#_}O9NEC=k2V`(UvrMd;ah8zd6byrAHa~>(o2yxVcY#lvtWc z+dkAR*lo+eBR{k#yi=*Xx^?M=(#C%sUv8dS7N-;OedKYcMREuFt~_V>c3b7kqL**I zn)dGviUg)VqH$%bSUa>#vKCdv z$W=a7o^qqW`FwWWlw73%@3$f~(i^_Y`+VDZ2ALpBuJS}JF z4vG43v~p*9?+T$yuXN8`-QN9SnfX1dT{_igBTh(f{$c2locD|!?3ZI3;@dPx(j;|? zG4*}cY$~s0eBrh)$CP?rfB$gyhLZEQ<;(mI#$`L&S|^{osw&Nh8rFEVrt8`D`$klPcnZ}j&DlF;y!sJ=19Bp~ER_uZh)|^O%!9U)NZ~S^K`>}BL*zYf;Jo@%! zkKK3dz-?#Fef@Xd1$m1fQskXWdo41w@)GF*ky+lQOOl6myOR` zOqY3j>=T6-ztbU(9>f{vHAr!LwY?crBK#Zc%b~{-(;lt1>FRrX#E(aGjn&cV{YUn9 zw%4!*}Z)vm`4~p{eS;RX@+yi}q4@ z@p~fT=;tnswcY5l;<~p&zpe#x{U=A3WIK5&orst{yXVmN3HuLZIsQo5C(QnqJVDxQ zWs$;Ijl;vPEWZEE;AujpdYRBFJO}?@a`=q^`9B{sAOi0MBmS4<`yCt%1AjE|M+1K} z@J9oGH1J0Qe>Ct%1AjE|M+1K}@c$zXr14+Vyx@o81{}7#3d@fZ9V7IG*v5Z^Q7N6PD@i z41d5y&EtjQ2Em#d6M+1mtKnjh2Y-7_en*YJQ^emC9sr*P9)F)@1l}0D33&YO2EUQP z?^*EM6Z}pDzv;m5FYsFl{H_7NLBQ_?@ZCPXhsSs3_H{8sztk5z{w@f0fWNoF<4pW+3%?P>@A>eXNpW56#5zXCjdlN|+K8oUAcOn$#Ox0dw9QgU9hT6+DhN9Cv!)aXjdN*9NZ%UJblF zcp?La$cyE$UXqUbA=em^u|+L|=~NubigHoYsO527AqLCgyN8t4AESFJSyd?Bf6b@ZLhs+A3-)&`mfx zFo*mHa#3L)*B~Y*h(;r}Bgp^M7Z&DL2Y)=l!$^)G|5aaD$XQKALqkPfgAF+_t|Q3* zg%{*3gB-XEBFKN_7v#i24%`C~abJR6eG->!t1GtkS$bX#|VDMW%%pw1`UXVj9 zIgtNwFUT?FW61x)7vvBt5#+z;3v!4Z3G)B-AxB+BM+Lg+XC3qwnlN5XMN>taMr>*j zTLS_%Vx5Bg*M30`v0p*{uRpgQb?hHv>4I1QfE;ZV4a_07Fo=x+E}J@ZLW>m+Vx0il zbX2rev|8+W5IYBuqsbcw{4vV(bNBaP`FTafZ<_fudi`lB9B*9h5W6G9 z9)qw@IE-o-Iy7RLgjj44$VP0A5L*m_9Ace>SZ#nD9ndvAl!!eOV&?&JKxUMhST-RR zA0P*Z0ceNVJ|Q+CAV(e8+QbmMD8ya_zaC&C7E*}i2*}ao^#Y4;8->`6fE*Yfr~_g} zg;gF|AcxqIA@(%{ zImFTovA`k7AvSl2EfPTvu~I{B4WQqkV7mJ5sNK?9AdkO*mM!( z5GzN-`ime3H#o4ajUe`71Ua3VX@5ONe|?wyJa%~V_E;FcKkGn{)0ujHjrsL_`fI6w z&Gu`|&v%w!h4RlW#kEUk>gf#TzbnDdPZvQ;f4;W`IsaV=I-`SMV~DjcVg(8A5_Onm z+MFAItpj4Ki`Xy{7Q!VGkhOfZM64Wf>(Rv7jM)1kc96I^+%*NU2u3U=@pE9)LTri= zTT9#=kQ>&Ce5+%`8WZGb@Male$Bfu_;^uILBbLsH1t`ej&t}BN8L|BYD-@W4asDAz z(1>*?t^`~*VkeE*kK)$@m|xdJY^M>MQe2F>9#llEs}ZYHkOQ^Af=7+mStItRcsVE= zv8YBYO+gN|^Aphfv7*9yh5u1a=78`G8qyrDQu|d2Nq5QD*IW&jqyO7CNnFLQ7wx6rd zj372_Whcn13l3|>wj9<3aoo97`F~06V{c55LIa|hCh;WIpiVCEOb~~|WCNSiUHM2` zPpdCXI3UE`bktbwYeJ#DzNhgen6-{45uAC#xsdv=j)iERYObQ}GM%ozGG6 zXM3sQk&!Bc8!-4MLMlOCi;TGG?!lZOe_!5pfKRX&oYV6nTxMV+l``P>Kd>BRwo%bP zl!ki$Ar-`cqa=7Xf*5V^Q3L@Vu0a3U0ND8O%E7*kcY)hM-W6;!`5Y`y&vq-~sRC-^ zUHoTN?*8nyn$N2W3n2#t|H%ORYab3Xl;z0?aAm`w;hLSrhOs#QzW!{OlHD1e%piB~ z09Gi|2aM6Wdk3-n!rc9R{Mj09G(b=Y71e@ZaF2vg%Q$2OoNX`(3IUTK!oX=>qn-ZZ z?&=YSc4`^0WC2XuJ^XXC0sM0k@Zib_c>Mf5z(y}>C&b$|D8!3*-9}re#ekU_1y(pj zYEL{tjQ|%!7#b?NJdya6!EB%Q#ehNrAt1uwo}*#ILYQtW4dw-Wjra`E9WAPr!hQe+BmgpQR1d&lR)? z!aYH3M??I>O2F{17&>_Fh^PQ2a{+^BsEzttl>?$yanJ*oK zw*P2qT{UpDP5=&mFL7KwnGD|Xej6fDN+Fj312=X1BaEC41C(6CBL$Bv+wND&!~sxB z3~pXnUA6ak=CultybBOjmv>8{jcy$+FqPd#i(ASdo|Ff*!SbvfsmWUu0Fq0}eMdO#*m4W4YC8XdYb@vIyG7=UEl zRd3r}&JztLR7ClCbx^R@6EXK>y`4_t)q^W1sEB)>PFX3op*sH2I|0G8&pmnXP;Iba z104MAV5@is<^bVc@D$kIvygw9&#MTn#Y1IynBR_s{9}87@vpcGAZ}&+H8;*}Z77CP z3P`vUA@2~sor-xK0gGBd;hBENx`B84&xde3p`-T~f6Wh2{uQ-G{^;Xw3m9%bte~F~ zg4wMS+*xdQA7<+$T)F;~;uqw~^7|#*2O%1SgpytT!T3rmTPMvSh)IX-9lei&Vp8A`T4Vb;VY#@t@#6BT5AntGx2ky zR#3Ko5KMEek~r?JKdFo3?dstl(yCC9H;{Sz`*^f9*tlCczNT6LEq%&pNuqXcNBMYd z5s>lXonhi`V+2IpXlHnMS`rZP;+eN@bHF+fQT3G43j(D zJ^~($b%q7+cmWH>I>W-fI|MY`D3!;@-_?WR=IaRu9&HRsN-5x?#9$i0H8D)1{ACR@ zFxb_HyS?VKGF&|&73sCRCH{E~A(q=myb;ZSVFilDa~K!^7~$o5vi*G-ygf)8z0Z3I z0hGK8XaJrW@QB=kSw1j$+D7vW@fi3K2KSvrdkY|V%K<3(3)1tqMr~L1pAF;H`k(3C zf!ALBt(3^SU4ic(Qn_qg?Y1FbD;)Q6@G}`Vu|r(=Uj+b-0hH(8+HKTLeJlZv8ifvR ze<|8(HPEsELHT*>vX&%Z<9@u+&YjVU4_7z>DvWi8g|~DP@bKcDVInIt0T)T>3>z-| z1WXv~6bo-jNg?7TbcTz!Vii#F;+{U$|BITOy3KcMjQ7h7abJ7f|pwcOh-f+%08*B80=>y~t|s z*5nC|yG1~8H;w#PW89~Hu%8FZoz<@J)M7wGjpFeXeshYeCGJZs-ixa?o?cvuxbK>P SN)Q1eEglc=mDc~>-~R{89U=Ar literal 0 HcmV?d00001 diff --git a/index.ts b/index.ts new file mode 100644 index 0000000..f25923c --- /dev/null +++ b/index.ts @@ -0,0 +1,8 @@ +import Jimp from "jimp"; + +let image = await Jimp.read("./assets/Xbox_Controller_Blank.svg"); + +image.resize(250, 250); + +await image.writeAsync("test.png"); + diff --git a/package.json b/package.json new file mode 100644 index 0000000..5c890f6 --- /dev/null +++ b/package.json @@ -0,0 +1,14 @@ +{ + "name": "frc-controller-diagram-generator", + "module": "index.ts", + "type": "module", + "devDependencies": { + "@types/bun": "latest" + }, + "peerDependencies": { + "typescript": "^5.0.0" + }, + "dependencies": { + "jimp": "^0.22.12" + } +} \ No newline at end of file diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 0000000..238655f --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,27 @@ +{ + "compilerOptions": { + // Enable latest features + "lib": ["ESNext", "DOM"], + "target": "ESNext", + "module": "ESNext", + "moduleDetection": "force", + "jsx": "react-jsx", + "allowJs": true, + + // Bundler mode + "moduleResolution": "bundler", + "allowImportingTsExtensions": true, + "verbatimModuleSyntax": true, + "noEmit": true, + + // Best practices + "strict": true, + "skipLibCheck": true, + "noFallthroughCasesInSwitch": true, + + // Some stricter flags (disabled by default) + "noUnusedLocals": false, + "noUnusedParameters": false, + "noPropertyAccessFromIndexSignature": false + } +}