@jpetit/toolkit 3.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (192) hide show
  1. package/.prettierignore +11 -0
  2. package/.prettierrc.json +9 -0
  3. package/.vscode/settings.json +26 -0
  4. package/README.md +22 -0
  5. package/assets/lua/fixCodeBlocks.lua +19 -0
  6. package/assets/lua/removeEnvs.lua +20 -0
  7. package/assets/lua/removeHtmlOnly.lua +11 -0
  8. package/assets/problems/graphics/japanese-flag.pbm/README.md +14 -0
  9. package/assets/problems/graphics/japanese-flag.pbm/award.png +0 -0
  10. package/assets/problems/graphics/japanese-flag.pbm/handler.yml +2 -0
  11. package/assets/problems/graphics/japanese-flag.pbm/problem.ca.tex +21 -0
  12. package/assets/problems/graphics/japanese-flag.pbm/problem.ca.yml +3 -0
  13. package/assets/problems/graphics/japanese-flag.pbm/sample-1.inp +1 -0
  14. package/assets/problems/graphics/japanese-flag.pbm/sample-2.inp +1 -0
  15. package/assets/problems/graphics/japanese-flag.pbm/solution.cc +25 -0
  16. package/assets/problems/graphics/japanese-flag.pbm/solution.py +11 -0
  17. package/assets/problems/graphics/tortuga.pbm/README.md +13 -0
  18. package/assets/problems/graphics/tortuga.pbm/award.png +0 -0
  19. package/assets/problems/graphics/tortuga.pbm/handler.yml +2 -0
  20. package/assets/problems/graphics/tortuga.pbm/problem.ca.tex +23 -0
  21. package/assets/problems/graphics/tortuga.pbm/problem.ca.yml +3 -0
  22. package/assets/problems/graphics/tortuga.pbm/sample.inp +0 -0
  23. package/assets/problems/graphics/tortuga.pbm/solution.py +11 -0
  24. package/assets/problems/standard/campanar-de-la-torrassa.pbm/README.md +15 -0
  25. package/assets/problems/standard/campanar-de-la-torrassa.pbm/award.html +1 -0
  26. package/assets/problems/standard/campanar-de-la-torrassa.pbm/award.png +0 -0
  27. package/assets/problems/standard/campanar-de-la-torrassa.pbm/campanar.eps +1113 -0
  28. package/assets/problems/standard/campanar-de-la-torrassa.pbm/campanar.png +0 -0
  29. package/assets/problems/standard/campanar-de-la-torrassa.pbm/generate.cc +10 -0
  30. package/assets/problems/standard/campanar-de-la-torrassa.pbm/handler.yml +2 -0
  31. package/assets/problems/standard/campanar-de-la-torrassa.pbm/problem.ca.tex +59 -0
  32. package/assets/problems/standard/campanar-de-la-torrassa.pbm/problem.ca.yml +3 -0
  33. package/assets/problems/standard/campanar-de-la-torrassa.pbm/problem.en.tex +52 -0
  34. package/assets/problems/standard/campanar-de-la-torrassa.pbm/problem.en.yml +4 -0
  35. package/assets/problems/standard/campanar-de-la-torrassa.pbm/sample.inp +7 -0
  36. package/assets/problems/standard/campanar-de-la-torrassa.pbm/slow.cc +29 -0
  37. package/assets/problems/standard/campanar-de-la-torrassa.pbm/solution.cc +48 -0
  38. package/assets/problems/standard/campanar-de-la-torrassa.pbm/test-1.inp +12 -0
  39. package/assets/problems/standard/campanar-de-la-torrassa.pbm/test-2.inp +100000 -0
  40. package/assets/problems/standard/campanar-de-la-torrassa.pbm/test-2.ops +1 -0
  41. package/assets/problems/standard/campanar-de-la-torrassa.pbm/test-b.inp +0 -0
  42. package/assets/problems/standard/maximum-of-2-integers.pbm/README.md +11 -0
  43. package/assets/problems/standard/maximum-of-2-integers.pbm/handler.yml +1 -0
  44. package/assets/problems/standard/maximum-of-2-integers.pbm/problem.ca.tex +17 -0
  45. package/assets/problems/standard/maximum-of-2-integers.pbm/problem.ca.yml +3 -0
  46. package/assets/problems/standard/maximum-of-2-integers.pbm/problem.en.tex +16 -0
  47. package/assets/problems/standard/maximum-of-2-integers.pbm/problem.en.yml +4 -0
  48. package/assets/problems/standard/maximum-of-2-integers.pbm/sample-1.inp +1 -0
  49. package/assets/problems/standard/maximum-of-2-integers.pbm/sample-2.inp +1 -0
  50. package/assets/problems/standard/maximum-of-2-integers.pbm/sample-3.inp +1 -0
  51. package/assets/problems/standard/maximum-of-2-integers.pbm/solution.c +18 -0
  52. package/assets/problems/standard/maximum-of-2-integers.pbm/solution.cc +13 -0
  53. package/assets/problems/standard/maximum-of-2-integers.pbm/solution.java +16 -0
  54. package/assets/problems/standard/maximum-of-2-integers.pbm/solution.py +5 -0
  55. package/assets/problems/standard/maximum-of-2-integers.pbm/test-1.inp +1 -0
  56. package/assets/problems/standard/maximum-of-2-integers.pbm/test-2.inp +1 -0
  57. package/assets/problems/standard/maximum-of-2-integers.pbm/test-3.inp +1 -0
  58. package/assets/problems/standard/maximum-of-2-integers.pbm/test-4.inp +1 -0
  59. package/assets/problems/standard/maximum-of-2-integers.pbm/test-5.inp +1 -0
  60. package/assets/problems/standard/treasures-in-a-map.pbm/README.md +12 -0
  61. package/assets/problems/standard/treasures-in-a-map.pbm/atzar.cc +85 -0
  62. package/assets/problems/standard/treasures-in-a-map.pbm/award.png +0 -0
  63. package/assets/problems/standard/treasures-in-a-map.pbm/generate-1.cc +26 -0
  64. package/assets/problems/standard/treasures-in-a-map.pbm/generate-2.cc +26 -0
  65. package/assets/problems/standard/treasures-in-a-map.pbm/generate-3.cc +26 -0
  66. package/assets/problems/standard/treasures-in-a-map.pbm/generate-4.cc +26 -0
  67. package/assets/problems/standard/treasures-in-a-map.pbm/handler.yml +1 -0
  68. package/assets/problems/standard/treasures-in-a-map.pbm/problem.ca.tex +40 -0
  69. package/assets/problems/standard/treasures-in-a-map.pbm/problem.ca.yml +3 -0
  70. package/assets/problems/standard/treasures-in-a-map.pbm/problem.en.tex +40 -0
  71. package/assets/problems/standard/treasures-in-a-map.pbm/problem.en.yml +4 -0
  72. package/assets/problems/standard/treasures-in-a-map.pbm/random-1.inp +24 -0
  73. package/assets/problems/standard/treasures-in-a-map.pbm/random-2.inp +27 -0
  74. package/assets/problems/standard/treasures-in-a-map.pbm/random-3.inp +38 -0
  75. package/assets/problems/standard/treasures-in-a-map.pbm/random-4.inp +50 -0
  76. package/assets/problems/standard/treasures-in-a-map.pbm/sample-1.inp +9 -0
  77. package/assets/problems/standard/treasures-in-a-map.pbm/sample-2.inp +6 -0
  78. package/assets/problems/standard/treasures-in-a-map.pbm/sample-3.inp +7 -0
  79. package/assets/problems/standard/treasures-in-a-map.pbm/solution.cc +38 -0
  80. package/assets/problems/standard/treasures-in-a-map.pbm/test-1.inp +5 -0
  81. package/assets/problems/standard/treasures-in-a-map.pbm/test-2.inp +6 -0
  82. package/assets/problems/standard/treasures-in-a-map.pbm/test-3.inp +6 -0
  83. package/assets/problems/standard/treasures-in-a-map.pbm/test-4.inp +9 -0
  84. package/assets/problems/standard/treasures-in-a-map.pbm/test-5.inp +10 -0
  85. package/assets/problems/standard/treasures-in-a-map.pbm/test-6.inp +9 -0
  86. package/assets/problems/standard/treasures-in-a-map.pbm/test-7.inp +12 -0
  87. package/assets/problems/standard/treasures-in-a-map.pbm/test-8.inp +3 -0
  88. package/assets/problems/standard/treasures-in-a-map.pbm/test-9.inp +37 -0
  89. package/assets/problems/standard/treasures-in-a-map.pbm/test-91.inp +52 -0
  90. package/assets/problems/standard/treasures-in-a-map.pbm/test-92.inp +25 -0
  91. package/assets/problems/standard/treasures-in-a-map.pbm/test-93.inp +3 -0
  92. package/assets/sty/judgeit.ca.sty +54 -0
  93. package/assets/sty/judgeit.de.sty +61 -0
  94. package/assets/sty/judgeit.en.sty +60 -0
  95. package/assets/sty/judgeit.es.sty +54 -0
  96. package/assets/sty/judgeit.fr.sty +59 -0
  97. package/assets/sty/judgeit.sty +307 -0
  98. package/assets/sty/picins.sty +579 -0
  99. package/assets.zip +0 -0
  100. package/eslint.config.mjs +31 -0
  101. package/lib/ai.ts +138 -0
  102. package/lib/assets.ts +31 -0
  103. package/lib/cleaner.ts +58 -0
  104. package/lib/compilers/_frompython.ts +388 -0
  105. package/lib/compilers/base.ts +97 -0
  106. package/lib/compilers/gcc.ts +47 -0
  107. package/lib/compilers/gxx.ts +47 -0
  108. package/lib/compilers/index.ts +61 -0
  109. package/lib/compilers/python3.ts +67 -0
  110. package/lib/data.ts +19 -0
  111. package/lib/doctor.ts +104 -0
  112. package/lib/generate.ts +333 -0
  113. package/lib/maker.ts +535 -0
  114. package/lib/settings.ts +42 -0
  115. package/lib/tui.ts +69 -0
  116. package/lib/utils.ts +83 -0
  117. package/package.json +56 -0
  118. package/problems/graphic.pbm/README.md +14 -0
  119. package/problems/graphic.pbm/award.png +0 -0
  120. package/problems/graphic.pbm/handler.yml +2 -0
  121. package/problems/graphic.pbm/problem.ca.html +13 -0
  122. package/problems/graphic.pbm/problem.ca.md +20 -0
  123. package/problems/graphic.pbm/problem.ca.tex +21 -0
  124. package/problems/graphic.pbm/problem.ca.txt +20 -0
  125. package/problems/graphic.pbm/problem.ca.yml +3 -0
  126. package/problems/graphic.pbm/sample-1.inp +1 -0
  127. package/problems/graphic.pbm/sample-2.inp +1 -0
  128. package/problems/graphic.pbm/solution.py +11 -0
  129. package/problems/maxim2.pbm/Main.java +13 -0
  130. package/problems/maxim2.pbm/distillation.yml +7 -0
  131. package/problems/maxim2.pbm/distilled-01.inp +1 -0
  132. package/problems/maxim2.pbm/distilled-02.inp +1 -0
  133. package/problems/maxim2.pbm/distilled-03.inp +1 -0
  134. package/problems/maxim2.pbm/distiller.yml +2 -0
  135. package/problems/maxim2.pbm/generate-inputs.py +9 -0
  136. package/problems/maxim2.pbm/handler.yml +2 -0
  137. package/problems/maxim2.pbm/ma-1.inp +1 -0
  138. package/problems/maxim2.pbm/ma-2.inp +1 -0
  139. package/problems/maxim2.pbm/ma-3.inp +1 -0
  140. package/problems/maxim2.pbm/ma-4.inp +1 -0
  141. package/problems/maxim2.pbm/ma-5.inp +1 -0
  142. package/problems/maxim2.pbm/per-doubles.inp +1 -0
  143. package/problems/maxim2.pbm/problem.ca.html +11 -0
  144. package/problems/maxim2.pbm/problem.ca.md +19 -0
  145. package/problems/maxim2.pbm/problem.ca.tex +17 -0
  146. package/problems/maxim2.pbm/problem.ca.txt +19 -0
  147. package/problems/maxim2.pbm/problem.ca.yml +3 -0
  148. package/problems/maxim2.pbm/problem.en.html +11 -0
  149. package/problems/maxim2.pbm/problem.en.md +19 -0
  150. package/problems/maxim2.pbm/problem.en.tex +16 -0
  151. package/problems/maxim2.pbm/problem.en.txt +19 -0
  152. package/problems/maxim2.pbm/problem.en.yml +4 -0
  153. package/problems/maxim2.pbm/sample-1.inp +1 -0
  154. package/problems/maxim2.pbm/sample-2.inp +1 -0
  155. package/problems/maxim2.pbm/sample-3.inp +1 -0
  156. package/problems/maxim2.pbm/solution.c +12 -0
  157. package/problems/maxim2.pbm/solution.cc +13 -0
  158. package/problems/maxim2.pbm/solution.java +13 -0
  159. package/problems/maxim2.pbm/solution.pas +9 -0
  160. package/problems/maxim2.pbm/solution.py +5 -0
  161. package/problems/maxim2.pbm/tags.yml +2 -0
  162. package/problems/maxim2.pbm/test_-1_-1.inp +1 -0
  163. package/problems/maxim2.pbm/test_-1_-2.inp +1 -0
  164. package/problems/maxim2.pbm/test_-1_0.inp +1 -0
  165. package/problems/maxim2.pbm/test_-1_1.inp +1 -0
  166. package/problems/maxim2.pbm/test_-2_-1.inp +1 -0
  167. package/problems/maxim2.pbm/test_-2_-2.inp +1 -0
  168. package/problems/maxim2.pbm/test_-2_0.inp +1 -0
  169. package/problems/maxim2.pbm/test_-2_1.inp +1 -0
  170. package/problems/maxim2.pbm/test_0_-1.inp +1 -0
  171. package/problems/maxim2.pbm/test_0_-2.inp +1 -0
  172. package/problems/maxim2.pbm/test_0_0.inp +1 -0
  173. package/problems/maxim2.pbm/test_0_1.inp +1 -0
  174. package/problems/maxim2.pbm/test_1_-1.inp +1 -0
  175. package/problems/maxim2.pbm/test_1_-2.inp +1 -0
  176. package/problems/maxim2.pbm/test_1_0.inp +1 -0
  177. package/problems/maxim2.pbm/test_1_1.inp +1 -0
  178. package/test.ts +3 -0
  179. package/toolkit/ai.ts +30 -0
  180. package/toolkit/clean.ts +19 -0
  181. package/toolkit/compilers.ts +29 -0
  182. package/toolkit/create-jutge-ai.ts +101 -0
  183. package/toolkit/create-template.ts +51 -0
  184. package/toolkit/create-wizard.ts +4 -0
  185. package/toolkit/create.ts +75 -0
  186. package/toolkit/doctor.ts +17 -0
  187. package/toolkit/index.ts +28 -0
  188. package/toolkit/init.ts +66 -0
  189. package/toolkit/make.ts +60 -0
  190. package/toolkit/verify.ts +19 -0
  191. package/tsconfig.json +38 -0
  192. package/types/zip.d.ts +4 -0
@@ -0,0 +1,579 @@
1
+ % PICINS.STY --- Style File zum Einbinden von Bildern
2
+ % Autor: J. Bleser, E. Lang
3
+ % Hochschulrechenzentrum
4
+ % Technische Hochschule Darmstadt
5
+ % !!! Dieses Style-File ist urheberrechtlich geschuetzt !!!
6
+ % !!! Aenderungen nur mit Zustimmung der Autoren !!!
7
+ \message{Option `picins' Version 3.0 Sep. 1992, TH Darmstadt/HRZ}
8
+ \newbox\@BILD%
9
+ \newbox\@TEXT%
10
+ \newdimen\d@breite%
11
+ \newdimen\d@hoehe%
12
+ \newdimen\d@xoff%
13
+ \newdimen\d@yoff%
14
+ \newdimen\d@shad%
15
+ \newdimen\d@dash%
16
+ \newdimen\d@boxl%
17
+ \newdimen\d@pichskip%
18
+ \newdimen\d@tmp
19
+ \newdimen\d@tmpa
20
+ \newdimen\d@bskip
21
+ \newdimen\hsiz@%
22
+ \newdimen\p@getot@l%
23
+ \newcount\c@breite
24
+ \newcount\c@hoehe
25
+ \newcount\c@xoff
26
+ \newcount\c@yoff
27
+ \newcount\c@pos
28
+ \newcount\c@shad
29
+ \newcount\c@dash
30
+ \newcount\c@boxl
31
+ \newcount\c@zeilen%
32
+ \newcount\@changemode%
33
+ \newcount\c@piccaption%
34
+ \newcount\c@piccaptionpos%
35
+ \newcount\c@picpos
36
+ \newcount\c@whole%
37
+ \newcount\c@half%
38
+ \newcount\c@tmp
39
+ \newcount\c@tmpa
40
+ \newcount\c@tmpb
41
+ \newcount\c@tmpc
42
+ \newcount\c@tmpd
43
+ \newskip\d@leftskip
44
+ \newif\if@list \@listfalse%
45
+ \newif\if@offset%
46
+
47
+
48
+ \c@piccaptionpos=1%
49
+ \c@picpos=0
50
+ \d@shad=4pt%
51
+ \d@dash=4pt%
52
+ \d@boxl=10pt%
53
+ \d@pichskip=1em%
54
+ \@changemode=0%
55
+ \def\@captype{figure}%
56
+ \let\old@par=\par%
57
+
58
+ \def\pichskip#1{\d@pichskip #1\relax}
59
+
60
+
61
+ \def\shadowthickness#1{\d@shad #1\relax}
62
+
63
+
64
+ \def\dashlength#1{\d@dash #1\relax}
65
+
66
+
67
+ \def\boxlength#1{\d@boxl #1\relax}
68
+
69
+
70
+ \def\picchangemode{\@changemode=1}%
71
+ \def\nopicchangemode{\@changemode=0}%
72
+
73
+
74
+ \def\piccaptionoutside{\c@piccaptionpos=1}%
75
+ \def\piccaptioninside{\c@piccaptionpos=2}%
76
+ \def\piccaptionside{\c@piccaptionpos=3}%
77
+ \def\piccaptiontopside{\c@piccaptionpos=4}%
78
+
79
+ \def\piccaption{\@ifnextchar [{\@piccaption}{\@piccaption[]}}
80
+ \def\@piccaption[#1]#2{\c@piccaption=1\def\sh@rtf@rm{#1}\def\capti@nt@xt{#2}}
81
+ \def\make@piccaption{%
82
+ \hsiz@\d@breite%
83
+ \ifnum\c@piccaptionpos=2%
84
+ \advance\hsiz@ -2\fboxsep%
85
+ \fi%
86
+ \ifnum\c@piccaptionpos>2%
87
+ \hsiz@\hsize\advance\hsiz@-\d@breite\advance\hsiz@-\d@pichskip%
88
+ \fi%
89
+ \setbox\@TEXT=\vbox{\hsize\hsiz@\caption[\sh@rtf@rm]{\capti@nt@xt}}%
90
+ }
91
+
92
+
93
+
94
+ \def\newcaption{\refstepcounter\@captype\@dblarg{\@newcaption\@captype}}
95
+ \long\def\@newcaption#1[#2]#3{%
96
+ \old@par%
97
+ \addcontentsline{\csname ext@#1\endcsname }{#1}%
98
+ {\protect\numberline{\csname the#1\endcsname}{\ignorespaces #2}}
99
+ \begingroup\@parboxrestore\normalsize%
100
+ \@newmakecaption{\csname fnum@#1\endcsname}{\ignorespaces #3}\old@par%
101
+ \endgroup%
102
+ }
103
+ \long\def\@newmakecaption#1#2{%
104
+ \vskip 10pt%
105
+ \setbox\@tempboxa \hbox {#1: #2}%
106
+ \ifdim \wd\@tempboxa >\hsize%
107
+ \setbox0=\hbox{#1: }\dimen0=\hsize\advance\dimen0 by-\wd0
108
+ \setbox1=\vtop{\hsize=\dimen0 #2}
109
+ \hbox{\box0 \box1}
110
+ \par
111
+ \else \hbox to\hsize {\hfil \box \@tempboxa \hfil}
112
+ \fi
113
+ }
114
+
115
+
116
+
117
+
118
+
119
+ \def\parpic{%
120
+ \@ifnextchar ({\iparpic}{\iparpic(0pt,0pt)}
121
+ }
122
+ \def\iparpic(#1,#2){%
123
+ \@ifnextchar ({\@offsettrue\iiparpic(#1,#2)}%
124
+ {\@offsetfalse\iiparpic(#1,#2)(0pt,0pt)}
125
+ }
126
+ \def\iiparpic(#1,#2)(#3,#4){%
127
+ \@ifnextchar [{\iiiparpic(#1,#2)(#3,#4)}{\iiiparpic(#1,#2)(#3,#4)[l]}
128
+ }
129
+ \def\iiiparpic(#1,#2)(#3,#4)[#5]{%
130
+ \@ifnextchar [{\ivparpic(#1,#2)(#3,#4)[#5]}{\ivparpic(#1,#2)(#3,#4)[#5][]}
131
+ }
132
+ \def\ivparpic(#1,#2)(#3,#4)[#5][#6]#7{%
133
+ \let\par=\old@par\par%
134
+ \hangindent0pt\hangafter1%
135
+ \setbox\@BILD=\hbox{#7}%
136
+ \d@breite=#1\d@breite=\the\d@breite%
137
+ \ifdim\d@breite=0pt\d@breite=\wd\@BILD\fi%
138
+ \c@breite=\d@breite\divide\c@breite by65536%
139
+ \multiply\c@piccaption\c@piccaptionpos%
140
+ \d@hoehe=#2\d@hoehe=\the\d@hoehe%
141
+ \ifdim\d@hoehe=0pt\d@hoehe=\ht\@BILD\advance\d@hoehe by\dp\@BILD\fi%
142
+ \c@hoehe=\d@hoehe\divide\c@hoehe by65536%
143
+ \d@xoff=#3\c@xoff=\d@xoff\divide\c@xoff by65536%
144
+ \d@yoff=\d@hoehe%
145
+ \advance\d@yoff by-#4\c@yoff=\d@yoff\divide\c@yoff by65536%
146
+ \c@pos=1\unitlength1pt%
147
+ \if@offset%
148
+ \setbox\@BILD=\hbox{%
149
+ \begin{picture}(\c@breite,\c@hoehe)%
150
+ \put(0,0){\makebox(\c@breite,\c@hoehe){}}%
151
+ \put(\c@xoff,\c@yoff){\box\@BILD}%
152
+ \end{picture}%
153
+ }%
154
+ \else%
155
+ \setbox\@BILD=\hbox{%
156
+ \begin{picture}(\c@breite,\c@hoehe)%
157
+ \put(0,0){\makebox(\c@breite,\c@hoehe)[#6]{\box\@BILD}}%
158
+ \end{picture}%
159
+ }%
160
+ \fi%
161
+ \ifnum\c@piccaption=2%
162
+ \make@piccaption%
163
+ \advance\d@hoehe\ht\@TEXT\advance\d@hoehe\dp\@TEXT%
164
+ \c@hoehe=\d@hoehe\divide\c@hoehe by65536%
165
+ \setbox\@BILD=\vbox{\box\@BILD\vspace{-5pt}%
166
+ \hbox{\hspace{\fboxsep}\box\@TEXT}%
167
+ \vspace{4pt}}%
168
+ \fi%
169
+ \@tfor\@tempa := #5\do{%
170
+ \if\@tempa f\setbox\@BILD=\hbox{\Rahmen(\c@breite,\c@hoehe){\box\@BILD}}\fi%
171
+ \if\@tempa s\setbox\@BILD=\hbox{\Schatten(\c@breite,\c@hoehe){\box\@BILD}}\fi%
172
+ \if\@tempa o\setbox\@BILD=\hbox{\Oval(\c@breite,\c@hoehe){\box\@BILD}}\fi%
173
+ \if\@tempa d\setbox\@BILD=\hbox{\Strich(\c@breite,\c@hoehe){\box\@BILD}}\fi%
174
+ \if\@tempa x\setbox\@BILD=\hbox{\Kasten(\c@breite,\c@hoehe){\box\@BILD}}\fi%
175
+ \if\@tempa l\c@pos=1\fi%
176
+ \if\@tempa r\c@pos=2\fi%
177
+ }%
178
+ \ifnum\c@piccaption=1%
179
+ \make@piccaption%
180
+ \advance\d@hoehe\ht\@TEXT\advance\d@hoehe\dp\@TEXT%
181
+ \c@hoehe=\d@hoehe\divide\c@hoehe by65536%
182
+ \setbox\@BILD=\vbox{\box\@BILD\vspace{-5pt}\hbox{\box\@TEXT}\vspace{4pt}}%
183
+ \fi%
184
+ \ifodd\count0\c@picpos=0\else\c@picpos=\@changemode\fi%
185
+ \pagetotal=\the\pagetotal%
186
+ \d@tmp=\pagegoal\advance\d@tmp by-\pagetotal\advance\d@tmp by-\baselineskip%
187
+ \ifdim\d@hoehe>\d@tmp%
188
+ \vskip 0pt plus\d@hoehe\relax\pagebreak[3]\vskip 0pt plus-\d@hoehe\relax%
189
+ \ifnum\c@picpos=1\c@picpos=0\else\c@picpos=\@changemode\fi%
190
+ \fi%
191
+ \ifnum\c@picpos=1\ifnum\c@pos=1\c@pos=2\else\c@pos=1\fi\fi%
192
+ \ifnum\@listdepth>0
193
+ \@listtrue\parshape 0%
194
+ \advance\hsize -\rightmargin%
195
+ \d@leftskip \leftskip%
196
+ \leftskip \@totalleftmargin%
197
+ \if@inlabel\rule{\linewidth}{0pt}\vskip-\baselineskip\relax\fi%
198
+ \else\@listfalse\medskip%
199
+ \fi%
200
+ \if@list\d@tmpa=\linewidth\else\d@tmpa=\hsize\fi%
201
+ \ifnum\c@piccaption=3%
202
+ \make@piccaption%
203
+ \d@tmp\ht\@TEXT\advance\d@tmp\dp\@TEXT%
204
+ \ifdim\d@hoehe>\d@tmp%
205
+ \setbox\@TEXT=\vbox to\d@hoehe{\vfill\box\@TEXT\vspace{.2\baselineskip}\vfill}%
206
+ \else%
207
+ \setbox\@BILD=\vbox to\d@tmp{\vfill\box\@BILD\vfill}%
208
+ \d@hoehe\d@tmp%
209
+ \fi%
210
+ \fi%
211
+ \ifnum\c@piccaption=4%
212
+ \make@piccaption%
213
+ \d@tmp\ht\@TEXT\advance\d@tmp\dp\@TEXT%
214
+ \setbox\@TEXT=\vbox to\d@hoehe{\vspace{-10pt}\box\@TEXT\vfil}%
215
+ \advance\d@hoehe-\d@tmp%
216
+ \fi%
217
+ \ifnum\c@pos=1\d@tmpa=0pt%
218
+ \ifnum\c@piccaption>2%
219
+ \setbox\@BILD=\hbox{\box\@BILD\hspace{\d@pichskip}\hbox{\box\@TEXT}}%
220
+ \fi%
221
+ \else\advance\d@tmpa by-\wd\@BILD\d@breite=-\d@breite%
222
+ \ifnum\c@piccaption>2%
223
+ \d@tmpa=0pt%
224
+ \setbox\@BILD=\hbox{\hbox{\box\@TEXT}\hspace{\d@pichskip}\box\@BILD}%
225
+ \fi%
226
+ \fi%
227
+ \p@getot@l\the\pagetotal%
228
+ \d@bskip\d@hoehe\advance\d@bskip by\parskip\advance\d@bskip by.3\baselineskip%
229
+ {\noindent\hspace*{\d@tmpa}\relax%
230
+ \box\@BILD\nopagebreak\vskip-\d@bskip\relax\nopagebreak}%
231
+ \d@tmp=-\d@hoehe\divide\d@tmp by\baselineskip%
232
+ \c@zeilen=\d@tmp\advance\c@zeilen by-1%
233
+ \ifdim\d@breite<0pt\advance\d@breite by-\d@pichskip%
234
+ \else\advance\d@breite by\d@pichskip%
235
+ \fi%
236
+ \hangindent=\d@breite%
237
+ \hangafter=\c@zeilen%
238
+ \let\par=\x@par%
239
+ \ifnum\c@piccaption=3%
240
+ \hangindent0pt\hangafter1\let\par=\old@par%
241
+ \vskip\d@hoehe\vskip.2\baselineskip%
242
+ \fi%
243
+ \c@piccaption=0%
244
+ }
245
+
246
+
247
+
248
+
249
+ \newdimen\ptoti
250
+ \newdimen\ptotii
251
+ \def\x@par{%
252
+ \ptoti\pagetotal%
253
+ \old@par%
254
+ \ptotii\pagetotal%
255
+ \ifdim\ptoti=\ptotii%
256
+ \d@tmp\d@hoehe%
257
+ \else%
258
+ \d@tmp\baselineskip%
259
+ \multiply\d@tmp by\prevgraf%
260
+ \advance\d@tmp by\parskip%
261
+ \global\advance\d@hoehe by-\d@tmp\d@tmp=\d@hoehe%
262
+ \fi%
263
+ \ifdim\d@hoehe>0pt%
264
+ \divide\d@tmp by\baselineskip\c@zeilen=-\d@tmp\advance\c@zeilen by-1%
265
+ \c@zeilen=\the\c@zeilen%
266
+ \else\c@zeilen=0
267
+ \fi
268
+ \ifnum\c@zeilen<0\hangafter=\c@zeilen\hangindent=\d@breite%
269
+ \else\let\par=\old@par%
270
+ \hangindent 0pt%
271
+ \leftskip \d@leftskip%
272
+ \if@list\parshape \@ne \@totalleftmargin \linewidth%
273
+ \advance\hsize \rightmargin%
274
+ \fi%
275
+ \fi%
276
+ }
277
+
278
+
279
+ \def\picskip#1{%
280
+ \let\par=\old@par%
281
+ \par%
282
+ \pagetotal\the\pagetotal%
283
+ \c@tmp=#1\relax%
284
+ \ifnum\c@tmp=0%
285
+ \d@tmp\baselineskip\multiply\d@tmp by\prevgraf\advance\d@tmp\parskip%
286
+ \ifdim\p@getot@l<\pagetotal
287
+ \advance\d@hoehe by-\d@tmp\advance\d@hoehe by1ex%
288
+ \ifdim\d@hoehe>0pt\vspace*{\d@hoehe}\fi%
289
+ \fi%
290
+ \ifdim\p@getot@l=\pagetotal%
291
+ \advance\d@hoehe by-\d@tmp\advance\d@hoehe by1ex%
292
+ \ifdim\d@hoehe>0pt\vspace*{\d@hoehe}\fi%
293
+ \fi%
294
+ \else\hangafter=-\c@tmp\hangindent=\d@breite%
295
+ \fi%
296
+ \leftskip \d@leftskip%
297
+ \if@list\parshape \@ne \@totalleftmargin \linewidth%
298
+ \advance\hsize \rightmargin%
299
+ \fi%
300
+ }
301
+
302
+
303
+
304
+
305
+
306
+
307
+ \def\hpic{%
308
+ \@ifnextchar ({\ihpic}{\ihpic(0pt,0pt)}
309
+ }
310
+ \def\ihpic(#1,#2){%
311
+ \@ifnextchar ({\@offsettrue\iihpic(#1,#2)}%
312
+ {\@offsetfalse\iihpic(#1,#2)(0pt,0pt)}
313
+ }
314
+ \def\iihpic(#1,#2)(#3,#4){%
315
+ \@ifnextchar [{\iiihpic(#1,#2)(#3,#4)}{\iiihpic(#1,#2)(#3,#4)[l]}
316
+ }
317
+ \def\iiihpic(#1,#2)(#3,#4)[#5]{%
318
+ \@ifnextchar [{\ivhpic(#1,#2)(#3,#4)[#5]}{\ivhpic(#1,#2)(#3,#4)[#5][]}
319
+ }
320
+ \def\ivhpic(#1,#2)(#3,#4)[#5][#6]#7{%
321
+ \setbox\@BILD=\hbox{#7}%
322
+ \d@breite=#1\d@breite=\the\d@breite%
323
+ \ifdim\d@breite=0pt\d@breite=\wd\@BILD\fi%
324
+ \c@breite=\d@breite\divide\c@breite by65536%
325
+ \d@hoehe=#2\d@hoehe=\the\d@hoehe%
326
+ \ifdim\d@hoehe=0pt\d@hoehe=\ht\@BILD\advance\d@hoehe by\dp\@BILD\fi%
327
+ \c@hoehe=\d@hoehe\divide\c@hoehe by65536%
328
+ \d@xoff=#3\c@xoff=\d@xoff\divide\c@xoff by65536%
329
+ \d@yoff=\d@hoehe%
330
+ \advance\d@yoff by-#4\c@yoff=\d@yoff\divide\c@yoff by65536%
331
+ \c@pos=0\d@tmpa=\parindent\parindent=0pt\unitlength1pt%
332
+ \if@offset
333
+ \setbox\@BILD=\hbox{%
334
+ \begin{picture}(\c@breite,\c@hoehe)%
335
+ \put(0,0){\makebox(\c@breite,\c@hoehe){}}%
336
+ \put(\c@xoff,\c@yoff){\box\@BILD}%
337
+ \end{picture}%
338
+ }%
339
+ \else%
340
+ \setbox\@BILD=\hbox{%
341
+ \begin{picture}(\c@breite,\c@hoehe)%
342
+ \put(0,0){\makebox(\c@breite,\c@hoehe)[#6]{\box\@BILD}}%
343
+ \end{picture}%
344
+ }%
345
+ \fi%
346
+ \@tfor\@tempa := #5\do{%
347
+ \if\@tempa f\setbox\@BILD=\hbox{\Rahmen(\c@breite,\c@hoehe){\box\@BILD}}\fi%
348
+ \if\@tempa s\setbox\@BILD=\hbox{\Schatten(\c@breite,\c@hoehe){\box\@BILD}}\fi%
349
+ \if\@tempa o\setbox\@BILD=\hbox{\Oval(\c@breite,\c@hoehe){\box\@BILD}}\fi%
350
+ \if\@tempa d\setbox\@BILD=\hbox{\Strich(\c@breite,\c@hoehe){\box\@BILD}}\fi%
351
+ \if\@tempa x\setbox\@BILD=\hbox{\Kasten(\c@breite,\c@hoehe){\box\@BILD}}\fi%
352
+ \if\@tempa t\c@pos=1\fi%
353
+ \if\@tempa b\c@pos=2\fi%
354
+ }%
355
+ \ifnum\c@pos=0\parbox{\d@breite}{\makebox[0cm]{}\\\box\@BILD\smallskip}\fi%
356
+ \ifnum\c@pos=1\parbox[t]{\d@breite}{\makebox[0cm]{}\\\box\@BILD\smallskip}\fi%
357
+ \ifnum\c@pos=2\parbox[b]{\d@breite}{\makebox[0cm]{}\\\box\@BILD\smallskip}\fi%
358
+ \parindent=\d@tmpa%
359
+ }
360
+
361
+
362
+
363
+
364
+
365
+
366
+ \def\Rahmen(#1,#2)#3{%
367
+ \c@whole=\@wholewidth\divide\c@whole by65536%
368
+ \c@half=\@halfwidth\divide\c@half by65536%
369
+ \c@tmpa=#1\advance\c@tmpa by\c@whole\advance\c@tmpa by\c@whole%
370
+ \c@tmpb=#2\advance\c@tmpb by\c@whole\advance\c@tmpb by\c@whole%
371
+ \begin{picture}(\c@tmpa,\c@tmpb)%
372
+ \put(\c@whole,\c@half){\framebox(#1,#2){#3}}%
373
+ \end{picture}%
374
+ \global\advance\d@breite by2\@wholewidth%
375
+ \global\advance\d@hoehe by2\@wholewidth%
376
+ }
377
+
378
+
379
+ \def\Schatten(#1,#2)#3{%
380
+ \c@whole=\@wholewidth\divide\c@whole by65536%
381
+ \c@half=\@halfwidth\divide\c@half by65536%
382
+ \c@shad=\d@shad\divide\c@shad by65536%
383
+ \c@tmp=\c@whole\advance\c@tmp by\c@whole\c@tmpd=\c@tmp%
384
+ \advance\c@tmp by\c@shad%
385
+ \advance\c@tmpd by#1%
386
+ \advance\c@half by\c@shad%
387
+ \c@tmpa=#1\advance\c@tmpa by\c@tmp%
388
+ \c@tmpb=#2\advance\c@tmpb by\c@tmp%
389
+ \begin{picture}(\c@tmpa,\c@tmpb)%
390
+ \put(\c@whole,\c@half){\framebox(#1,#2){#3}}%
391
+ \put(\c@shad,0){\rule{\c@tmpd pt}{\c@shad pt}}%
392
+ \put(\c@tmpd,0){\rule{\c@shad pt}{#2 pt}}%
393
+ \end{picture}%
394
+ \global\advance\d@breite by2\@wholewidth\global\advance\d@breite by\d@shad%
395
+ \global\advance\d@hoehe by2\@wholewidth\global\advance\d@hoehe by\d@shad%
396
+ }
397
+
398
+
399
+ \def\Oval(#1,#2)#3{%
400
+ \@wholewidth=0.4pt%
401
+ \c@tmpa=\the#1\divide\c@tmpa by2%
402
+ \c@tmpb=\the#2\divide\c@tmpb by2%
403
+ \begin{picture}(#1,#2)%
404
+ \put(\c@tmpa,\c@tmpb){\oval(#1,#2)}%
405
+ \put(0.4,0.4){#3}%
406
+ \end{picture}%
407
+ \global\advance\d@breite by1pt\global\advance\d@hoehe by1pt%
408
+ }
409
+
410
+
411
+ \def\Strich(#1,#2)#3{%
412
+ \c@whole=\@wholewidth\divide\c@whole by65536%
413
+ \c@half=\@halfwidth\divide\c@half by65536%
414
+ \c@dash=\d@dash\divide\c@dash by65536%
415
+ \c@tmp=\c@whole\advance\c@tmp by\c@whole%
416
+ \c@tmpa=#1\advance\c@tmpa by\c@tmp%
417
+ \c@tmpb=#2\advance\c@tmpb by\c@tmp%
418
+ \c@tmpc=#1\advance\c@tmpc by\c@whole%
419
+ \c@tmpd=#2\advance\c@tmpd by\c@whole%
420
+ \begin{picture}(\c@tmpa,\c@tmpb)%
421
+ \put(\c@half,\c@half){\dashbox{\c@dash}(\c@tmpc,\c@tmpd){#3}}%
422
+ \end{picture}%
423
+ \global\advance\d@breite by2\@wholewidth%
424
+ \global\advance\d@hoehe by2\@wholewidth%
425
+ }
426
+
427
+
428
+ \def\Kasten(#1,#2)#3{%
429
+ \@wholewidth=0.4pt%
430
+ \c@boxl=\d@boxl\divide\c@boxl by65536\c@boxl=\the\c@boxl%
431
+ \c@tmpa=#1\advance\c@tmpa by\c@boxl%
432
+ \c@tmpb=#2\advance\c@tmpb by\c@boxl%
433
+ \c@tmp=#2%
434
+ \begin{picture}(\c@tmpa,\c@tmpb)%
435
+ \put(0,\c@boxl){\framebox(#1,#2){#3}}%
436
+ \put(\c@boxl,0){\line(-1,1){\c@boxl}}%
437
+ \put(\c@boxl,0){\line(1,0){#1}\line(-1,1){\c@boxl}}%
438
+ \put(\c@boxl,0){\put(#1,0){\line(0,1){\c@tmp}%
439
+ \put(0,\c@tmp){\line(-1,1){\c@boxl}}}}%
440
+ \end{picture}%
441
+ \global\advance\d@breite by\d@boxl%
442
+ \global\advance\d@hoehe by\d@boxl%
443
+ }
444
+
445
+
446
+
447
+
448
+
449
+ \newbox\env@box%
450
+ \newdimen\d@envdp
451
+ \newcount\c@hsize
452
+ \newcount\c@envdp
453
+ \newdimen\d@envb
454
+
455
+ \long\def\frameenv{\@ifnextchar [{\@frameenv}{\@frameenv[\textwidth]}}
456
+ \long\def\@frameenv[#1]{%
457
+ \hsiz@=\textwidth \textwidth=#1 \d@envb=#1
458
+ \advance\textwidth by-2\@wholewidth
459
+ \advance\textwidth by-2\fboxsep
460
+ \hsize=\textwidth \linewidth=\textwidth
461
+ \setbox\env@box=\vbox\bgroup}%
462
+ \def\endframeenv{%
463
+ \egroup%
464
+ \hsize=\hsiz@ \textwidth=\hsiz@ \linewidth=\hsiz@
465
+ \c@breite=\d@envb \divide\c@breite by65536
466
+ \advance\d@envb by-2\@wholewidth
467
+ \c@hsize=\d@envb \divide\c@hsize by65536%
468
+ \d@envdp=\dp\env@box \advance\d@envdp by\ht\env@box%
469
+ \advance\d@envdp by2\fboxsep%
470
+ \d@hoehe=\d@envdp \advance\d@hoehe by2\@wholewidth
471
+ \c@hoehe=\d@hoehe \divide\c@hoehe by65536
472
+ \c@envdp=\d@envdp \divide\c@envdp by65536%
473
+ \c@tmp=\@wholewidth \divide\c@tmp by65536
474
+ \vskip\@wholewidth%
475
+ \unitlength 1pt\noindent%
476
+ \begin{picture}(\c@breite,\c@hoehe)(0,0)
477
+ \put(\c@tmp,\c@tmp){\framebox(\c@hsize,\c@envdp){\box\env@box}}
478
+ \end{picture}%
479
+ }
480
+
481
+
482
+
483
+ \long\def\shadowenv{\@ifnextchar [{\@shadowenv}{\@shadowenv[\textwidth]}}
484
+ \long\def\@shadowenv[#1]{%
485
+ \hsiz@=\textwidth \textwidth=#1 \d@envb=#1
486
+ \advance\textwidth by-2\@wholewidth
487
+ \advance\textwidth by-2\fboxsep
488
+ \advance\textwidth by-\d@shad%
489
+ \hsize=\textwidth \linewidth=\textwidth
490
+ \setbox\env@box=\vbox\bgroup}%
491
+ \def\endshadowenv{%
492
+ \egroup
493
+ \hsize=\hsiz@ \textwidth=\hsiz@ \linewidth=\hsiz@
494
+ \d@tmpa=\d@envb
495
+ \c@breite=\d@envb \divide\c@breite by65536
496
+ \advance\d@envb by-2\@wholewidth \advance\d@envb by-\d@shad
497
+ \c@hsize=\d@envb \divide\c@hsize by65536%
498
+ \d@envdp=\dp\env@box \advance\d@envdp by\ht\env@box%
499
+ \advance\d@envdp by2\fboxsep%
500
+ \c@envdp=\d@envdp \divide\c@envdp by65536%
501
+ \d@hoehe=\d@envdp
502
+ \advance\d@hoehe by2\@wholewidth \advance\d@hoehe by\d@shad
503
+ \c@hoehe=\d@hoehe \divide\c@hoehe by65536
504
+ \c@shad =\d@shad \divide\c@shad by65536
505
+ \c@tmp=\@wholewidth \divide\c@tmp by65536
506
+ \advance\d@tmpa by-2\d@shad
507
+ \c@xoff =\d@tmpa \divide\c@xoff by65536
508
+ \advance\c@xoff by\c@shad \advance\c@xoff by-1
509
+ \advance\d@envdp by\@wholewidth
510
+ \vskip\@halfwidth
511
+ \unitlength 1pt\noindent%
512
+ \begin{picture}(\c@breite,\c@hoehe)(0,0)
513
+ \put(\c@tmp,\c@shad){\framebox(\c@hsize,\c@envdp){\box\env@box}}
514
+ \put(\c@shad,0){\rule{\d@tmpa}{\d@shad}}%
515
+ \put(\c@xoff,0){\rule{\d@shad}{\d@envdp}}%
516
+ \end{picture}%
517
+ \vskip\@halfwidth
518
+ }
519
+
520
+
521
+ \long\def\dashenv{\@ifnextchar [{\@dashenv}{\@dashenv[\textwidth]}}
522
+ \long\def\@dashenv[#1]{%
523
+ \hsiz@=\textwidth \textwidth=#1 \d@envb=#1
524
+ \advance\textwidth by-2\@wholewidth \advance\textwidth by-2\fboxsep
525
+ \hsize=\textwidth \linewidth=\textwidth
526
+ \setbox\env@box=\vbox\bgroup}%
527
+ \long\def\enddashenv{%
528
+ \egroup
529
+ \hsize=\hsiz@ \textwidth=\hsiz@ \linewidth=\hsiz@
530
+ \c@breite=\d@envb \divide\c@breite by65536
531
+ \advance\d@envb by-\@wholewidth
532
+ \c@hsize=\d@envb \divide\c@hsize by65536%
533
+ \d@envdp=\dp\env@box \advance\d@envdp by\ht\env@box%
534
+ \advance\d@envdp by2\fboxsep%
535
+ \advance\d@envdp by\@wholewidth
536
+ \d@hoehe=\d@envdp \advance\d@hoehe by2\@wholewidth
537
+ \c@hoehe=\d@hoehe \divide\c@hoehe by65536
538
+ \c@envdp=\d@envdp \divide\c@envdp by65536%
539
+ \c@dash=\d@dash \divide\c@dash by65536%
540
+ \c@whole=\@wholewidth \divide\c@whole by65536
541
+ \c@half=\@halfwidth \divide\c@half by 65536
542
+ \noindent\unitlength 1pt
543
+ \begin{picture}(\c@breite,\c@hoehe)(0,0)
544
+ \put(\c@half,\c@whole){\dashbox{\c@dash}(\c@hsize,\c@envdp){\box\env@box}}
545
+ \end{picture}%
546
+ }
547
+
548
+
549
+ \long\def\ovalenv{\@ifnextchar [{\@ovalenv}{\@ovalenv[\textwidth]}}%
550
+ \long\def\@ovalenv[#1]{%
551
+ \hsiz@=\textwidth \textwidth=#1 \d@envb=#1
552
+ \advance\textwidth by-4\fboxsep
553
+ \hsize=\textwidth \linewidth=\textwidth
554
+ \setbox\env@box=\vbox\bgroup}%
555
+ \long\def\endovalenv{%
556
+ \egroup
557
+ \hsize=\hsiz@ \textwidth=\hsiz@ \linewidth=\hsiz@
558
+ \@wholewidth=0.4pt
559
+ \c@breite=\d@envb \divide\c@breite by65536
560
+ \advance\d@envb by-2\@wholewidth
561
+ \c@hsize=\d@envb \divide\c@hsize by65536%
562
+ \d@envdp=\dp\env@box \advance\d@envdp by\ht\env@box%
563
+ \advance\d@envdp by4\fboxsep%
564
+ \c@envdp=\d@envdp \divide\c@envdp by65536%
565
+ \d@hoehe=\d@envdp \advance\d@hoehe by2\@wholewidth
566
+ \c@hoehe=\d@hoehe \divide\c@hoehe by65536
567
+ \c@tmpa=\c@hsize \divide\c@tmpa by2%
568
+ \c@tmpb=\c@envdp \divide\c@tmpb by2%
569
+ \d@tmpa=2\fboxsep \advance\d@tmpa by\@wholewidth
570
+ \c@xoff=\d@tmpa \divide\c@xoff by65536%
571
+ \advance\d@tmpa by\dp\env@box
572
+ \c@yoff=\d@tmpa \divide\c@yoff by65536%
573
+ \unitlength 1pt\noindent
574
+ \begin{picture}(\c@breite,\c@hoehe)(0,0)
575
+ \put(\c@tmpa,\c@tmpb){\oval(\c@hsize,\c@envdp)}
576
+ \put(\c@xoff,\c@yoff){\box\env@box}%
577
+ \end{picture}%
578
+ }
579
+
package/assets.zip ADDED
Binary file
@@ -0,0 +1,31 @@
1
+ // @ts-check
2
+
3
+ import eslint from '@eslint/js'
4
+ import { globalIgnores } from 'eslint/config'
5
+ import tseslint from 'typescript-eslint'
6
+
7
+ export default tseslint.config(
8
+ eslint.configs.recommended,
9
+ tseslint.configs.recommended,
10
+ [globalIgnores(['postcss.config.mjs', 'eslint.config.mjs', 'lib/compilers/_frompython.ts'])],
11
+
12
+ tseslint.configs.recommendedTypeChecked,
13
+ {
14
+ languageOptions: {
15
+ parserOptions: {
16
+ projectService: true,
17
+ tsconfigRootDir: import.meta.dirname,
18
+ },
19
+ },
20
+ },
21
+ {
22
+ rules: {
23
+ '@typescript-eslint/no-explicit-any': 'off',
24
+ '@typescript-eslint/no-unsafe-assignment': 'off',
25
+ '@typescript-eslint/no-unused-vars': 'off',
26
+ '@typescript-eslint/no-unsafe-member-access': 'off',
27
+ // '@typescript-eslint/no-unsafe-return': 'off',
28
+ // '@typescript-eslint/no-unsafe-argument': 'off',
29
+ },
30
+ },
31
+ )