feature: vor und nachteile

This commit is contained in:
Hikyu 2026-05-31 13:21:13 +02:00
parent 552a947a1c
commit e3dad17446
23270 changed files with 3024794 additions and 200 deletions

View File

@ -8,36 +8,42 @@
\providecommand\HyField@AuxAddToCoFields[2]{} \providecommand\HyField@AuxAddToCoFields[2]{}
\providecommand\BKM@entry[2]{} \providecommand\BKM@entry[2]{}
\babel@aux{ngerman}{} \babel@aux{ngerman}{}
\BKM@entry{id=1,dest={73656374696F6E2E31},srcline={31}}{5C3337365C3337375C303030415C3030306E5C303030775C303030655C3030306E5C303030645C303030755C3030306E5C303030675C303030735C303030735C3030307A5C303030655C3030306E5C303030615C303030725C303030695C3030306F} \BKM@entry{id=1,dest={73656374696F6E2E31},srcline={32}}{5C3337365C3337375C303030415C3030306E5C303030775C303030655C3030306E5C303030645C303030755C3030306E5C303030675C303030735C303030735C3030307A5C303030655C3030306E5C303030615C303030725C303030695C3030306F}
\BKM@entry{id=2,dest={73756273656374696F6E2E312E31},srcline={42}}{5C3337365C3337375C303030505C303030725C3030306F5C3030306A5C303030655C3030306B5C303030745C303030695C303030645C303030655C303030655C3030305C3034305C303030755C3030306E5C303030645C3030305C3034305C3030305A5C303030695C303030655C3030306C5C303030735C303030655C303030745C3030307A5C303030755C3030306E5C30303067} \BKM@entry{id=2,dest={73756273656374696F6E2E312E31},srcline={43}}{5C3337365C3337375C303030505C303030725C3030306F5C3030306A5C303030655C3030306B5C303030745C303030695C303030645C303030655C303030655C3030305C3034305C303030755C3030306E5C303030645C3030305C3034305C3030305A5C303030695C303030655C3030306C5C303030735C303030655C303030745C3030307A5C303030755C3030306E5C30303067}
\BKM@entry{id=3,dest={73756273656374696F6E2E312E32},srcline={49}}{5C3337365C3337375C3030304B5C303030655C303030725C3030306E5C303030665C303030755C3030306E5C3030306B5C303030745C303030695C3030306F5C3030306E5C303030655C3030306E5C3030305C3034305C303030755C3030306E5C303030645C3030305C3034305C303030415C3030306E5C303030775C303030655C3030306E5C303030645C303030755C3030306E5C303030675C303030735C303030665C3030305C3334345C3030306C5C3030306C5C30303065} \BKM@entry{id=3,dest={73756273656374696F6E2E312E32},srcline={50}}{5C3337365C3337375C3030304B5C303030655C303030725C3030306E5C303030665C303030755C3030306E5C3030306B5C303030745C303030695C3030306F5C3030306E5C303030655C3030306E5C3030305C3034305C303030755C3030306E5C303030645C3030305C3034305C303030415C3030306E5C303030775C303030655C3030306E5C303030645C303030755C3030306E5C303030675C303030735C303030665C3030305C3334345C3030306C5C3030306C5C30303065}
\@writefile{toc}{\contentsline {section}{\numberline {1}Anwendungsszenario}{2}{section.1}\protected@file@percent } \@writefile{toc}{\contentsline {section}{\numberline {1}Anwendungsszenario}{2}{section.1}\protected@file@percent }
\@writefile{toc}{\contentsline {subsection}{\numberline {1.1}Projektidee und Zielsetzung}{2}{subsection.1.1}\protected@file@percent } \@writefile{toc}{\contentsline {subsection}{\numberline {1.1}Projektidee und Zielsetzung}{2}{subsection.1.1}\protected@file@percent }
\@writefile{toc}{\contentsline {subsection}{\numberline {1.2}Kernfunktionen und Anwendungsfälle}{2}{subsection.1.2}\protected@file@percent } \@writefile{toc}{\contentsline {subsection}{\numberline {1.2}Kernfunktionen und Anwendungsfälle}{2}{subsection.1.2}\protected@file@percent }
\BKM@entry{id=4,dest={73656374696F6E2E32},srcline={71}}{5C3337365C3337375C303030445C3030306F5C3030306B5C303030755C3030306D5C303030655C3030306E5C303030745C303030615C303030745C303030695C3030306F5C3030306E5C3030305C3034305C303030645C303030655C303030725C3030305C3034305C303030445C303030615C303030745C303030655C3030306E5C3030306D5C3030306F5C303030645C303030655C3030306C5C3030306C5C303030695C303030655C303030725C303030755C3030306E5C30303067} \BKM@entry{id=4,dest={73656374696F6E2E32},srcline={72}}{5C3337365C3337375C303030445C3030306F5C3030306B5C303030755C3030306D5C303030655C3030306E5C303030745C303030615C303030745C303030695C3030306F5C3030306E5C3030305C3034305C303030645C303030655C303030725C3030305C3034305C303030445C303030615C303030745C303030655C3030306E5C3030306D5C3030306F5C303030645C303030655C3030306C5C3030306C5C303030695C303030655C303030725C303030755C3030306E5C30303067}
\BKM@entry{id=5,dest={73756273656374696F6E2E322E31},srcline={74}}{5C3337365C3337375C303030445C303030615C303030735C3030305C3034305C3030306B5C3030306F5C3030306E5C3030307A5C303030655C303030705C303030745C303030695C3030306F5C3030306E5C303030655C3030306C5C3030306C5C303030655C3030305C3034305C303030455C303030525C3030302D5C3030304D5C3030306F5C303030645C303030655C3030306C5C3030306C} \BKM@entry{id=5,dest={73756273656374696F6E2E322E31},srcline={75}}{5C3337365C3337375C303030445C303030615C303030735C3030305C3034305C3030306B5C3030306F5C3030306E5C3030307A5C303030655C303030705C303030745C303030695C3030306F5C3030306E5C303030655C3030306C5C3030306C5C303030655C3030305C3034305C303030455C303030525C3030302D5C3030304D5C3030306F5C303030645C303030655C3030306C5C3030306C}
\@writefile{toc}{\contentsline {section}{\numberline {2}Dokumentation der Datenmodellierung}{3}{section.2}\protected@file@percent } \@writefile{toc}{\contentsline {section}{\numberline {2}Dokumentation der Datenmodellierung}{3}{section.2}\protected@file@percent }
\@writefile{toc}{\contentsline {subsection}{\numberline {2.1}Das konzeptionelle ER-Modell}{3}{subsection.2.1}\protected@file@percent } \@writefile{toc}{\contentsline {subsection}{\numberline {2.1}Das konzeptionelle ER-Modell}{3}{subsection.2.1}\protected@file@percent }
\@writefile{lof}{\contentsline {figure}{\numberline {1}{\ignorespaces Konzeptionelles ER-Modell}}{3}{figure.1}\protected@file@percent } \@writefile{lof}{\contentsline {figure}{\numberline {1}{\ignorespaces Konzeptionelles ER-Modell}}{3}{figure.1}\protected@file@percent }
\newlabel{fig:er-modell}{{1}{3}{Konzeptionelles ER-Modell}{figure.1}{}} \newlabel{fig:er-modell}{{1}{3}{Konzeptionelles ER-Modell}{figure.1}{}}
\BKM@entry{id=6,dest={73756273656374696F6E2E322E32},srcline={93}}{5C3337365C3337375C3030304B5C303030655C303030795C3030302D5C303030565C303030615C3030306C5C303030755C303030655C3030302D5C3030304D5C3030306F5C303030645C303030655C3030306C5C3030306C5C303030695C303030655C303030725C303030755C3030306E5C30303067} \BKM@entry{id=6,dest={73756273656374696F6E2E322E32},srcline={94}}{5C3337365C3337375C3030304B5C303030655C303030795C3030302D5C303030565C303030615C3030306C5C303030755C303030655C3030302D5C3030304D5C3030306F5C303030645C303030655C3030306C5C3030306C5C303030695C303030655C303030725C303030755C3030306E5C30303067}
\@writefile{toc}{\contentsline {subsection}{\numberline {2.2}Key-Value-Modellierung}{4}{subsection.2.2}\protected@file@percent } \@writefile{toc}{\contentsline {subsection}{\numberline {2.2}Key-Value-Modellierung}{4}{subsection.2.2}\protected@file@percent }
\@writefile{lot}{\contentsline {table}{\numberline {1}{\ignorespaces Übersicht der Schlüsselstrukturen in Redis}}{4}{table.1}\protected@file@percent } \@writefile{lot}{\contentsline {table}{\numberline {1}{\ignorespaces Übersicht der Schlüsselstrukturen in Redis}}{4}{table.1}\protected@file@percent }
\BKM@entry{id=7,dest={73756273656374696F6E2E322E33},srcline={188}}{5C3337365C3337375C303030445C3030306F5C3030306B5C303030755C3030306D5C303030655C3030306E5C303030745C303030655C3030306E5C3030306F5C303030725C303030695C303030655C3030306E5C303030745C303030695C303030655C303030725C303030745C303030655C3030305C3034305C3030304D5C3030306F5C303030645C303030655C3030306C5C3030306C5C303030695C303030655C303030725C303030755C3030306E5C30303067} \BKM@entry{id=7,dest={73756273656374696F6E2E322E33},srcline={188}}{5C3337365C3337375C303030445C3030306F5C3030306B5C303030755C3030306D5C303030655C3030306E5C303030745C303030655C3030306E5C3030306F5C303030725C303030695C303030655C3030306E5C303030745C303030695C303030655C303030725C303030745C303030655C3030305C3034305C3030304D5C3030306F5C303030645C303030655C3030306C5C3030306C5C303030695C303030655C303030725C303030755C3030306E5C30303067}
\@writefile{toc}{\contentsline {subsection}{\numberline {2.3}Dokumentenorientierte Modellierung}{5}{subsection.2.3}\protected@file@percent } \@writefile{toc}{\contentsline {subsection}{\numberline {2.3}Dokumentenorientierte Modellierung}{5}{subsection.2.3}\protected@file@percent }
\BKM@entry{id=8,dest={73756273656374696F6E2E322E34},srcline={192}}{5C3337365C3337375C303030475C303030725C303030615C303030705C303030685C3030302D5C303030445C303030615C303030745C303030655C3030306E5C303030625C303030615C3030306E5C3030306B5C3030302D5C3030304D5C3030306F5C303030645C303030655C3030306C5C3030306C5C303030695C303030655C303030725C303030755C3030306E5C30303067} \BKM@entry{id=8,dest={73756273656374696F6E2E322E34},srcline={262}}{5C3337365C3337375C303030475C303030725C303030615C303030705C303030685C3030302D5C303030445C303030615C303030745C303030655C3030306E5C303030625C303030615C3030306E5C3030306B5C3030302D5C3030304D5C3030306F5C303030645C303030655C3030306C5C3030306C5C303030695C303030655C303030725C303030755C3030306E5C30303067}
\@writefile{toc}{\contentsline {subsection}{\numberline {2.4}Graph-Datenbank-Modellierung}{6}{subsection.2.4}\protected@file@percent } \@writefile{toc}{\contentsline {subsection}{\numberline {2.4}Graph-Datenbank-Modellierung}{7}{subsection.2.4}\protected@file@percent }
\BKM@entry{id=9,dest={73656374696F6E2E33},srcline={202}}{5C3337365C3337375C303030565C303030655C303030725C303030675C3030306C5C303030655C303030695C303030635C303030685C3030305C3034305C303030645C303030655C303030725C3030305C3034305C303030445C303030615C303030745C303030655C3030306E5C3030306D5C3030306F5C303030645C303030655C3030306C5C3030306C5C303030695C303030655C303030725C303030755C3030306E5C30303067} \@writefile{tdo}{\contentsline {todo}{komplett pruefen ob wir das richtig verstanden haben}{7}{section*.1}\protected@file@percent }
\BKM@entry{id=10,dest={73756273656374696F6E2E332E31},srcline={203}}{5C3337365C3337375C303030565C3030306F5C303030725C3030302D5C3030305C3034305C303030755C3030306E5C303030645C3030305C3034305C3030304E5C303030615C303030635C303030685C303030745C303030655C303030695C3030306C5C303030655C3030305C3034305C303030645C303030655C303030735C3030305C3034305C3030304B5C303030655C303030795C3030302D5C303030565C303030615C3030306C5C303030755C303030655C3030302D5C3030304D5C3030306F5C303030645C303030655C3030306C5C3030306C5C30303073} \pgfsyspdfmark {pgfid1}{4894785}{49725591}
\BKM@entry{id=11,dest={73756273656374696F6E2E332E32},srcline={206}}{5C3337365C3337375C303030565C3030306F5C303030725C3030302D5C3030305C3034305C303030755C3030306E5C303030645C3030305C3034305C3030304E5C303030615C303030635C303030685C303030745C303030655C303030695C3030306C5C303030655C3030305C3034305C303030645C303030655C303030735C3030305C3034305C303030645C3030306F5C3030306B5C303030755C3030306D5C303030655C3030306E5C303030745C303030655C3030306E5C3030306F5C303030725C303030695C303030655C3030306E5C303030745C303030695C303030655C303030725C303030745C303030655C3030306E5C3030305C3034305C3030304D5C3030306F5C303030645C303030655C3030306C5C3030306C5C30303073} \pgfsyspdfmark {pgfid4}{36720195}{49742517}
\BKM@entry{id=12,dest={73756273656374696F6E2E332E33},srcline={209}}{5C3337365C3337375C303030565C3030306F5C303030725C3030302D5C3030305C3034305C303030755C3030306E5C303030645C3030305C3034305C3030304E5C303030615C303030635C303030685C303030745C303030655C303030695C3030306C5C303030655C3030305C3034305C303030645C303030655C303030735C3030305C3034305C303030475C303030725C303030615C303030705C303030685C3030302D5C3030304D5C3030306F5C303030645C303030655C3030306C5C3030306C5C30303073} \pgfsyspdfmark {pgfid5}{38335406}{49471701}
\@writefile{toc}{\contentsline {section}{\numberline {3}Vergleich der Datenmodellierung}{7}{section.3}\protected@file@percent } \@writefile{lot}{\contentsline {table}{\numberline {2}{\ignorespaces Übersicht der Knoten in Neo4j}}{7}{table.2}\protected@file@percent }
\@writefile{toc}{\contentsline {subsection}{\numberline {3.1}Vor- und Nachteile des Key-Value-Modells}{7}{subsection.3.1}\protected@file@percent } \@writefile{lot}{\contentsline {table}{\numberline {3}{\ignorespaces Übersicht der Kanten in Neo4j}}{7}{table.3}\protected@file@percent }
\@writefile{toc}{\contentsline {subsection}{\numberline {3.2}Vor- und Nachteile des dokumentenorientierten Modells}{7}{subsection.3.2}\protected@file@percent } \BKM@entry{id=9,dest={73656374696F6E2E33},srcline={313}}{5C3337365C3337375C303030565C303030655C303030725C303030675C3030306C5C303030655C303030695C303030635C303030685C3030305C3034305C303030645C303030655C303030725C3030305C3034305C303030445C303030615C303030745C303030655C3030306E5C3030306D5C3030306F5C303030645C303030655C3030306C5C3030306C5C303030695C303030655C303030725C303030755C3030306E5C30303067}
\@writefile{toc}{\contentsline {subsection}{\numberline {3.3}Vor- und Nachteile des Graph-Modells}{7}{subsection.3.3}\protected@file@percent } \BKM@entry{id=10,dest={73756273656374696F6E2E332E31},srcline={314}}{5C3337365C3337375C303030565C3030306F5C303030725C3030302D5C3030305C3034305C303030755C3030306E5C303030645C3030305C3034305C3030304E5C303030615C303030635C303030685C303030745C303030655C303030695C3030306C5C303030655C3030305C3034305C303030645C303030655C303030735C3030305C3034305C3030304B5C303030655C303030795C3030302D5C303030565C303030615C3030306C5C303030755C303030655C3030302D5C3030304D5C3030306F5C303030645C303030655C3030306C5C3030306C5C30303073}
\BKM@entry{id=13,dest={73656374696F6E2E34},srcline={217}}{5C3337365C3337375C303030465C303030615C3030307A5C303030695C30303074} \BKM@entry{id=11,dest={73756273656374696F6E2E332E32},srcline={320}}{5C3337365C3337375C303030565C3030306F5C303030725C3030302D5C3030305C3034305C303030755C3030306E5C303030645C3030305C3034305C3030304E5C303030615C303030635C303030685C303030745C303030655C303030695C3030306C5C303030655C3030305C3034305C303030645C303030655C303030735C3030305C3034305C303030645C3030306F5C3030306B5C303030755C3030306D5C303030655C3030306E5C303030745C303030655C3030306E5C3030306F5C303030725C303030695C303030655C3030306E5C303030745C303030695C303030655C303030725C303030745C303030655C3030306E5C3030305C3034305C3030304D5C3030306F5C303030645C303030655C3030306C5C3030306C5C30303073}
\@writefile{toc}{\contentsline {section}{\numberline {4}Fazit}{8}{section.4}\protected@file@percent } \BKM@entry{id=12,dest={73756273656374696F6E2E332E33},srcline={326}}{5C3337365C3337375C303030565C3030306F5C303030725C3030302D5C3030305C3034305C303030755C3030306E5C303030645C3030305C3034305C3030304E5C303030615C303030635C303030685C303030745C303030655C303030695C3030306C5C303030655C3030305C3034305C303030645C303030655C303030735C3030305C3034305C303030475C303030725C303030615C303030705C303030685C3030302D5C3030304D5C3030306F5C303030645C303030655C3030306C5C3030306C5C30303073}
\@writefile{toc}{\contentsline {section}{\numberline {3}Vergleich der Datenmodellierung}{8}{section.3}\protected@file@percent }
\@writefile{toc}{\contentsline {subsection}{\numberline {3.1}Vor- und Nachteile des Key-Value-Modells}{8}{subsection.3.1}\protected@file@percent }
\@writefile{toc}{\contentsline {subsection}{\numberline {3.2}Vor- und Nachteile des dokumentenorientierten Modells}{8}{subsection.3.2}\protected@file@percent }
\@writefile{toc}{\contentsline {subsection}{\numberline {3.3}Vor- und Nachteile des Graph-Modells}{8}{subsection.3.3}\protected@file@percent }
\BKM@entry{id=13,dest={73656374696F6E2E34},srcline={341}}{5C3337365C3337375C303030465C303030615C3030307A5C303030695C30303074}
\@writefile{toc}{\contentsline {section}{\numberline {4}Fazit}{9}{section.4}\protected@file@percent }
\global\@namedef{scr@dte@section@lastmaxnumwidth}{12.14694pt} \global\@namedef{scr@dte@section@lastmaxnumwidth}{12.14694pt}
\global\@namedef{scr@dte@subsection@lastmaxnumwidth}{19.70898pt} \global\@namedef{scr@dte@subsection@lastmaxnumwidth}{19.70898pt}
\@writefile{toc}{\providecommand\tocbasic@end@toc@file{}\tocbasic@end@toc@file} \@writefile{toc}{\providecommand\tocbasic@end@toc@file{}\tocbasic@end@toc@file}
\gdef \@abspage@last{8} \gdef \@abspage@last{9}

View File

@ -1,6 +1,6 @@
# Fdb version 4 # Fdb version 4
["pdflatex"] 1780224030.70589 "/home/hikyu/Documents/Uni/2026 Sommer/Moderne Datenbanken/Ringstats_Dokumentation.tex" "Ringstats_Dokumentation.pdf" "Ringstats_Dokumentation" 1780224031.69094 0 ["pdflatex"] 1780228396.12041 "/home/hikyu/Documents/Uni/2026 Sommer/Moderne Datenbanken/Ringstats_Dokumentation.tex" "Ringstats_Dokumentation.pdf" "Ringstats_Dokumentation" 1780228397.43117 0
"/home/hikyu/Documents/Uni/2026 Sommer/Moderne Datenbanken/Ringstats_Dokumentation.tex" 1780224029.707 10293 d82a873ee416a02207305d2436394daa "" "/home/hikyu/Documents/Uni/2026 Sommer/Moderne Datenbanken/Ringstats_Dokumentation.tex" 1780228396.05977 16384 31f8769ea8848522618cb15632898304 ""
"/usr/share/texmf-dist/fonts/enc/dvips/cm-super/cm-super-t1.enc" 1775415801 2971 def0b6c1f0b107b3b936def894055589 "" "/usr/share/texmf-dist/fonts/enc/dvips/cm-super/cm-super-t1.enc" 1775415801 2971 def0b6c1f0b107b3b936def894055589 ""
"/usr/share/texmf-dist/fonts/map/fontname/texfonts.map" 1775415801 3524 cb3e574dea2d1052e39280babc910dc8 "" "/usr/share/texmf-dist/fonts/map/fontname/texfonts.map" 1775415801 3524 cb3e574dea2d1052e39280babc910dc8 ""
"/usr/share/texmf-dist/fonts/tfm/jknappen/ec/ecbx1200.tfm" 1775415801 3584 402da0b29eafbad07963b1224b222f18 "" "/usr/share/texmf-dist/fonts/tfm/jknappen/ec/ecbx1200.tfm" 1775415801 3584 402da0b29eafbad07963b1224b222f18 ""
@ -48,9 +48,65 @@
"/usr/share/texmf-dist/tex/generic/ltxcmds/ltxcmds.sty" 1775415801 17865 1a9bd36b4f98178fa551aca822290953 "" "/usr/share/texmf-dist/tex/generic/ltxcmds/ltxcmds.sty" 1775415801 17865 1a9bd36b4f98178fa551aca822290953 ""
"/usr/share/texmf-dist/tex/generic/pdfescape/pdfescape.sty" 1775415801 19007 15924f7228aca6c6d184b115f4baa231 "" "/usr/share/texmf-dist/tex/generic/pdfescape/pdfescape.sty" 1775415801 19007 15924f7228aca6c6d184b115f4baa231 ""
"/usr/share/texmf-dist/tex/generic/pdftexcmds/pdftexcmds.sty" 1775415801 20089 80423eac55aa175305d35b49e04fe23b "" "/usr/share/texmf-dist/tex/generic/pdftexcmds/pdftexcmds.sty" 1775415801 20089 80423eac55aa175305d35b49e04fe23b ""
"/usr/share/texmf-dist/tex/generic/pgf/basiclayer/pgfcore.code.tex" 1775415801 1016 1c2b89187d12a2768764b83b4945667c ""
"/usr/share/texmf-dist/tex/generic/pgf/basiclayer/pgfcorearrows.code.tex" 1775415801 43906 06058dc09064474303f3b5dd62d982c0 ""
"/usr/share/texmf-dist/tex/generic/pgf/basiclayer/pgfcoreexternal.code.tex" 1775415801 19324 f4e4c6403dd0f1605fd20ed22fa79dea ""
"/usr/share/texmf-dist/tex/generic/pgf/basiclayer/pgfcoregraphicstate.code.tex" 1775415801 6038 ccb406740cc3f03bbfb58ad504fe8c27 ""
"/usr/share/texmf-dist/tex/generic/pgf/basiclayer/pgfcoreimage.code.tex" 1775415801 6911 f6d4cf5a3fef5cc879d668b810e82868 ""
"/usr/share/texmf-dist/tex/generic/pgf/basiclayer/pgfcorelayers.code.tex" 1775415801 4883 42daaf41e27c3735286e23e48d2d7af9 ""
"/usr/share/texmf-dist/tex/generic/pgf/basiclayer/pgfcoreobjects.code.tex" 1775415801 2544 8c06d2a7f0f469616ac9e13db6d2f842 ""
"/usr/share/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepathconstruct.code.tex" 1775415801 44195 5e390c414de027626ca5e2df888fa68d ""
"/usr/share/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepathprocessing.code.tex" 1775415801 17311 e001219836e75b16c4af9a112785f30a ""
"/usr/share/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepathusage.code.tex" 1775415801 21302 788a79944eb22192a4929e46963a3067 ""
"/usr/share/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepatterns.code.tex" 1775415801 9691 3d42d89522f4650c2f3dc616ca2b925e ""
"/usr/share/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepoints.code.tex" 1775415801 33335 dd1fa4814d4e51f18be97d88bf0da60c ""
"/usr/share/texmf-dist/tex/generic/pgf/basiclayer/pgfcorequick.code.tex" 1775415801 2965 4c2b1f4e0826925746439038172e5d6f ""
"/usr/share/texmf-dist/tex/generic/pgf/basiclayer/pgfcorerdf.code.tex" 1775415801 5196 2cc249e0ee7e03da5f5f6589257b1e5b ""
"/usr/share/texmf-dist/tex/generic/pgf/basiclayer/pgfcorescopes.code.tex" 1775415801 20821 7579108c1e9363e61a0b1584778804aa ""
"/usr/share/texmf-dist/tex/generic/pgf/basiclayer/pgfcoreshade.code.tex" 1775415801 35251 5ff5b5b310c5ac882610e0ccc99095e7 ""
"/usr/share/texmf-dist/tex/generic/pgf/basiclayer/pgfcoretransformations.code.tex" 1775415801 22012 81b34a0aa8fa1a6158cc6220b00e4f10 ""
"/usr/share/texmf-dist/tex/generic/pgf/basiclayer/pgfcoretransparency.code.tex" 1775415801 8893 e851de2175338fdf7c17f3e091d94618 ""
"/usr/share/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrarypositioning.code.tex" 1775415801 3937 3f208572dd82c71103831da976d74f1a ""
"/usr/share/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrarytopaths.code.tex" 1775415801 11518 738408f795261b70ce8dd47459171309 ""
"/usr/share/texmf-dist/tex/generic/pgf/frontendlayer/tikz/tikz.code.tex" 1775415801 186859 0445d9a41a87648b4723e04765409541 ""
"/usr/share/texmf-dist/tex/generic/pgf/libraries/pgflibraryplothandlers.code.tex" 1775415801 32995 ac577023e12c0e4bd8aa420b2e852d1a ""
"/usr/share/texmf-dist/tex/generic/pgf/math/pgfint.code.tex" 1775415801 3063 8c415c68a0f3394e45cfeca0b65f6ee6 ""
"/usr/share/texmf-dist/tex/generic/pgf/math/pgfmath.code.tex" 1775415801 949 cea70942e7b7eddabfb3186befada2e6 ""
"/usr/share/texmf-dist/tex/generic/pgf/math/pgfmathcalc.code.tex" 1775415801 13272 7777a64fbd07131a37d276b131c17ee2 ""
"/usr/share/texmf-dist/tex/generic/pgf/math/pgfmathfloat.code.tex" 1775415801 104717 9b2393fbf004a0ce7fa688dbce423848 ""
"/usr/share/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.base.code.tex" 1775415801 10165 cec5fa73d49da442e56efc2d605ef154 ""
"/usr/share/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.basic.code.tex" 1775415801 28178 41c17713108e0795aac6fef3d275fbca ""
"/usr/share/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.code.tex" 1775415801 9649 85779d3d8d573bfd2cd4137ba8202e60 ""
"/usr/share/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.comparison.code.tex" 1775415801 3865 ac538ab80c5cf82b345016e474786549 ""
"/usr/share/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.integerarithmetics.code.tex" 1775415801 3177 27d85c44fbfe09ff3b2cf2879e3ea434 ""
"/usr/share/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.misc.code.tex" 1775415801 11024 0179538121bc2dba172013a3ef89519f ""
"/usr/share/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.random.code.tex" 1775415801 7889 d0e193914ddc35444510f5b569e26b3d ""
"/usr/share/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.round.code.tex" 1775415801 3379 781797a101f647bab82741a99944a229 ""
"/usr/share/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.trigonometric.code.tex" 1775415801 92405 f515f31275db273f97b9d8f52e1b0736 ""
"/usr/share/texmf-dist/tex/generic/pgf/math/pgfmathparser.code.tex" 1775415801 37733 0fe471ac50324723cf6ab693e5c0916c ""
"/usr/share/texmf-dist/tex/generic/pgf/math/pgfmathutil.code.tex" 1775415801 8471 c2883569d03f69e8e1cabfef4999cfd7 ""
"/usr/share/texmf-dist/tex/generic/pgf/modules/pgfmodulematrix.code.tex" 1775415801 21211 1e73ec76bd73964d84197cc3d2685b01 ""
"/usr/share/texmf-dist/tex/generic/pgf/modules/pgfmoduleplot.code.tex" 1775415801 16218 98503859deba28f16813029fd927ed8e ""
"/usr/share/texmf-dist/tex/generic/pgf/modules/pgfmoduleshapes.code.tex" 1775415801 44792 c4a5a3feba777682c1d16420f2f01a5b ""
"/usr/share/texmf-dist/tex/generic/pgf/pgf.revision.tex" 1775415801 116 760d50e6a16543bf6edb475635793673 ""
"/usr/share/texmf-dist/tex/generic/pgf/systemlayer/pgf.cfg" 1775415801 926 2963ea0dcf6cc6c0a770b69ec46a477b ""
"/usr/share/texmf-dist/tex/generic/pgf/systemlayer/pgfsys-common-pdf.def" 1775415801 5542 32f75a31ea6c3a7e1148cd6d5e93dbb7 ""
"/usr/share/texmf-dist/tex/generic/pgf/systemlayer/pgfsys-pdftex.def" 1775415801 12612 7774ba67bfd72e593c4436c2de6201e3 ""
"/usr/share/texmf-dist/tex/generic/pgf/systemlayer/pgfsys.code.tex" 1775415801 61355 39904e7552da3800a6838d41440943a5 ""
"/usr/share/texmf-dist/tex/generic/pgf/systemlayer/pgfsysprotocol.code.tex" 1775415801 1896 b8e0ca0ac371d74c0ca05583f6313c91 ""
"/usr/share/texmf-dist/tex/generic/pgf/systemlayer/pgfsyssoftpath.code.tex" 1775415801 7778 53c8b5623d80238f6a20aa1df1868e63 ""
"/usr/share/texmf-dist/tex/generic/pgf/utilities/pgffor.code.tex" 1775415801 24033 d8893a1ec4d1bfa101b172754743d340 ""
"/usr/share/texmf-dist/tex/generic/pgf/utilities/pgfkeys.code.tex" 1775415801 39784 414c54e866ebab4b801e2ad81d9b21d8 ""
"/usr/share/texmf-dist/tex/generic/pgf/utilities/pgfkeyslibraryfiltered.code.tex" 1775415801 37436 50ba7794827e363eec9ea3467c15c6d7 ""
"/usr/share/texmf-dist/tex/generic/pgf/utilities/pgfrcs.code.tex" 1775415801 4385 510565c2f07998c8a0e14f0ec07ff23c ""
"/usr/share/texmf-dist/tex/generic/pgf/utilities/pgfutil-common.tex" 1775415801 30029 c49ea8f95207c46731469c614daf4e33 ""
"/usr/share/texmf-dist/tex/generic/pgf/utilities/pgfutil-latex.def" 1775415801 7067 11553488d1600cac6a0cfca012fca111 ""
"/usr/share/texmf-dist/tex/generic/stringenc/stringenc.sty" 1775415801 21514 b7557edcee22835ef6b03ede1802dad4 "" "/usr/share/texmf-dist/tex/generic/stringenc/stringenc.sty" 1775415801 21514 b7557edcee22835ef6b03ede1802dad4 ""
"/usr/share/texmf-dist/tex/generic/uniquecounter/uniquecounter.sty" 1775415801 7008 f92eaa0a3872ed622bbf538217cd2ab7 "" "/usr/share/texmf-dist/tex/generic/uniquecounter/uniquecounter.sty" 1775415801 7008 f92eaa0a3872ed622bbf538217cd2ab7 ""
"/usr/share/texmf-dist/tex/generic/xkeyval/xkeyval.tex" 1775415801 19299 c7c03646b32f5a7caaa137673b7e76d2 ""
"/usr/share/texmf-dist/tex/generic/xkeyval/xkvutils.tex" 1775415801 7787 7dfc2f158253fc82fd655393220e6620 ""
"/usr/share/texmf-dist/tex/latex/base/fontenc.sty" 1775415801 5275 6f9d359641b36842524cdb97716ab75f "" "/usr/share/texmf-dist/tex/latex/base/fontenc.sty" 1775415801 5275 6f9d359641b36842524cdb97716ab75f ""
"/usr/share/texmf-dist/tex/latex/base/ifthen.sty" 1775415801 5525 1593ca62a2554dd7423fc8a4e5a82125 ""
"/usr/share/texmf-dist/tex/latex/base/inputenc.sty" 1775415801 5048 0270515b828149155424600fd2d58ac5 "" "/usr/share/texmf-dist/tex/latex/base/inputenc.sty" 1775415801 5048 0270515b828149155424600fd2d58ac5 ""
"/usr/share/texmf-dist/tex/latex/bookmark/bkm-pdftex.def" 1775415801 8818 aa5157b46368efebf023abff55611467 "" "/usr/share/texmf-dist/tex/latex/bookmark/bkm-pdftex.def" 1775415801 8818 aa5157b46368efebf023abff55611467 ""
"/usr/share/texmf-dist/tex/latex/bookmark/bookmark.sty" 1775415801 18245 97e6be180cf07bb6f7008cfdaaecfce5 "" "/usr/share/texmf-dist/tex/latex/bookmark/bookmark.sty" 1775415801 18245 97e6be180cf07bb6f7008cfdaaecfce5 ""
@ -86,15 +142,29 @@
"/usr/share/texmf-dist/tex/latex/kvsetkeys/kvsetkeys.sty" 1775415801 13815 760b0c02f691ea230f5359c4e1de23a7 "" "/usr/share/texmf-dist/tex/latex/kvsetkeys/kvsetkeys.sty" 1775415801 13815 760b0c02f691ea230f5359c4e1de23a7 ""
"/usr/share/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def" 1775415801 30662 bfd6e864f4ffc5018b0e2b6260c3181c "" "/usr/share/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def" 1775415801 30662 bfd6e864f4ffc5018b0e2b6260c3181c ""
"/usr/share/texmf-dist/tex/latex/latexconfig/epstopdf-sys.cfg" 1775415801 678 4792914a8f45be57bb98413425e4c7af "" "/usr/share/texmf-dist/tex/latex/latexconfig/epstopdf-sys.cfg" 1775415801 678 4792914a8f45be57bb98413425e4c7af ""
"/usr/share/texmf-dist/tex/latex/pgf/basiclayer/pgf.sty" 1775415801 1090 bae35ef70b3168089ef166db3e66f5b2 ""
"/usr/share/texmf-dist/tex/latex/pgf/basiclayer/pgfcore.sty" 1775415801 373 00b204b1d7d095b892ad31a7494b0373 ""
"/usr/share/texmf-dist/tex/latex/pgf/compatibility/pgfcomp-version-0-65.sty" 1775415801 21013 f4ff83d25bb56552493b030f27c075ae ""
"/usr/share/texmf-dist/tex/latex/pgf/compatibility/pgfcomp-version-1-18.sty" 1775415801 989 c49c8ae06d96f8b15869da7428047b1e ""
"/usr/share/texmf-dist/tex/latex/pgf/frontendlayer/tikz.sty" 1775415801 339 c2e180022e3afdb99c7d0ea5ce469b7d ""
"/usr/share/texmf-dist/tex/latex/pgf/math/pgfmath.sty" 1775415801 306 c56a323ca5bf9242f54474ced10fca71 ""
"/usr/share/texmf-dist/tex/latex/pgf/systemlayer/pgfsys.sty" 1775415801 443 8c872229db56122037e86bcda49e14f3 ""
"/usr/share/texmf-dist/tex/latex/pgf/utilities/pgffor.sty" 1775415801 348 ee405e64380c11319f0e249fed57e6c5 ""
"/usr/share/texmf-dist/tex/latex/pgf/utilities/pgfkeys.sty" 1775415801 274 5ae372b7df79135d240456a1c6f2cf9a ""
"/usr/share/texmf-dist/tex/latex/pgf/utilities/pgfrcs.sty" 1775415801 325 f9f16d12354225b7dd52a3321f085955 ""
"/usr/share/texmf-dist/tex/latex/refcount/refcount.sty" 1775415801 9878 9e94e8fa600d95f9c7731bb21dfb67a4 "" "/usr/share/texmf-dist/tex/latex/refcount/refcount.sty" 1775415801 9878 9e94e8fa600d95f9c7731bb21dfb67a4 ""
"/usr/share/texmf-dist/tex/latex/rerunfilecheck/rerunfilecheck.sty" 1775415801 9684 a33a14b82ce60d6e77cb9be689d79ee6 "" "/usr/share/texmf-dist/tex/latex/rerunfilecheck/rerunfilecheck.sty" 1775415801 9684 a33a14b82ce60d6e77cb9be689d79ee6 ""
"/usr/share/texmf-dist/tex/latex/todonotes/todonotes.sty" 1775415801 21404 916e19cbd009b6d289c8194b313d3895 ""
"/usr/share/texmf-dist/tex/latex/tools/calc.sty" 1775415801 10374 2ffd4f27c7f90b8a300608069537743c ""
"/usr/share/texmf-dist/tex/latex/url/url.sty" 1775415801 12796 8edb7d69a20b857904dd0ea757c14ec9 "" "/usr/share/texmf-dist/tex/latex/url/url.sty" 1775415801 12796 8edb7d69a20b857904dd0ea757c14ec9 ""
"/usr/share/texmf-dist/tex/latex/xcolor/xcolor.sty" 1775415801 55384 b454dec21c2d9f45ec0b793f0995b992 ""
"/usr/share/texmf-dist/tex/latex/xkeyval/xkeyval.sty" 1775415801 5006 d7e899bb5d9717c7f214e9bc0284de7b ""
"/usr/share/texmf-dist/web2c/texmf.cnf" 1775415801 43569 fd570f2fa160877d211e859f687312ba "" "/usr/share/texmf-dist/web2c/texmf.cnf" 1775415801 43569 fd570f2fa160877d211e859f687312ba ""
"/var/lib/texmf/fonts/map/pdftex/updmap/pdftex.map" 1777228096 5385779 47c0c393a77fd4a098bacfd57d66b88a "" "/var/lib/texmf/fonts/map/pdftex/updmap/pdftex.map" 1777228096 5385779 47c0c393a77fd4a098bacfd57d66b88a ""
"/var/lib/texmf/web2c/pdftex/pdflatex.fmt" 1778762763 3734533 c370cc050c4a9823a1fe1ab265afc57b "" "/var/lib/texmf/web2c/pdftex/pdflatex.fmt" 1778762763 3734533 c370cc050c4a9823a1fe1ab265afc57b ""
"Ringstats_Dokumentation.aux" 1780224031.65405 7801 512cc0fded801ddd0f27a130c86b6e2b "pdflatex" "Ringstats_Dokumentation.aux" 1780228397.3808 8342 614fe975c96718f7f7d764724aa87b20 "pdflatex"
"Ringstats_Dokumentation.tex" 1780224029.707 10293 d82a873ee416a02207305d2436394daa "" "Ringstats_Dokumentation.tex" 1780228396.05977 16384 31f8769ea8848522618cb15632898304 ""
"Ringstats_Dokumentation.toc" 1780224031.65505 1305 3462b2bc2852c27ffc939f8273265173 "pdflatex" "Ringstats_Dokumentation.toc" 1780228397.3818 1305 1401ae3dd1fbee665ef3e10a49daf4b1 "pdflatex"
"assets/er-modell.png" 1778764597.46144 805989 0b7323ca4b38e6518c24fd9e5684655b "" "assets/er-modell.png" 1778764597.46144 805989 0b7323ca4b38e6518c24fd9e5684655b ""
(generated) (generated)
"Ringstats_Dokumentation.aux" "Ringstats_Dokumentation.aux"

View File

@ -108,6 +108,122 @@ INPUT /usr/share/texmf-dist/tex/latex/rerunfilecheck/rerunfilecheck.sty
INPUT /usr/share/texmf-dist/tex/latex/rerunfilecheck/rerunfilecheck.sty INPUT /usr/share/texmf-dist/tex/latex/rerunfilecheck/rerunfilecheck.sty
INPUT /usr/share/texmf-dist/tex/generic/uniquecounter/uniquecounter.sty INPUT /usr/share/texmf-dist/tex/generic/uniquecounter/uniquecounter.sty
INPUT /usr/share/texmf-dist/tex/generic/uniquecounter/uniquecounter.sty INPUT /usr/share/texmf-dist/tex/generic/uniquecounter/uniquecounter.sty
INPUT /usr/share/texmf-dist/tex/latex/todonotes/todonotes.sty
INPUT /usr/share/texmf-dist/tex/latex/todonotes/todonotes.sty
INPUT /usr/share/texmf-dist/tex/latex/base/ifthen.sty
INPUT /usr/share/texmf-dist/tex/latex/base/ifthen.sty
INPUT /usr/share/texmf-dist/tex/latex/xkeyval/xkeyval.sty
INPUT /usr/share/texmf-dist/tex/latex/xkeyval/xkeyval.sty
INPUT /usr/share/texmf-dist/tex/generic/xkeyval/xkeyval.tex
INPUT /usr/share/texmf-dist/tex/generic/xkeyval/xkvutils.tex
INPUT /usr/share/texmf-dist/tex/latex/xcolor/xcolor.sty
INPUT /usr/share/texmf-dist/tex/latex/xcolor/xcolor.sty
INPUT /usr/share/texmf-dist/tex/latex/graphics-cfg/color.cfg
INPUT /usr/share/texmf-dist/tex/latex/graphics-cfg/color.cfg
INPUT /usr/share/texmf-dist/tex/latex/graphics-cfg/color.cfg
INPUT /usr/share/texmf-dist/tex/latex/graphics/mathcolor.ltx
INPUT /usr/share/texmf-dist/tex/latex/graphics/mathcolor.ltx
INPUT /usr/share/texmf-dist/tex/latex/graphics/mathcolor.ltx
INPUT /usr/share/texmf-dist/tex/latex/pgf/frontendlayer/tikz.sty
INPUT /usr/share/texmf-dist/tex/latex/pgf/frontendlayer/tikz.sty
INPUT /usr/share/texmf-dist/tex/latex/pgf/basiclayer/pgf.sty
INPUT /usr/share/texmf-dist/tex/latex/pgf/basiclayer/pgf.sty
INPUT /usr/share/texmf-dist/tex/latex/pgf/utilities/pgfrcs.sty
INPUT /usr/share/texmf-dist/tex/latex/pgf/utilities/pgfrcs.sty
INPUT /usr/share/texmf-dist/tex/generic/pgf/utilities/pgfutil-common.tex
INPUT /usr/share/texmf-dist/tex/generic/pgf/utilities/pgfutil-latex.def
INPUT /usr/share/texmf-dist/tex/generic/pgf/utilities/pgfrcs.code.tex
INPUT /usr/share/texmf-dist/tex/generic/pgf/utilities/pgfrcs.code.tex
INPUT /usr/share/texmf-dist/tex/generic/pgf/utilities/pgfrcs.code.tex
INPUT /usr/share/texmf-dist/tex/generic/pgf/pgf.revision.tex
INPUT /usr/share/texmf-dist/tex/generic/pgf/pgf.revision.tex
INPUT /usr/share/texmf-dist/tex/latex/pgf/basiclayer/pgfcore.sty
INPUT /usr/share/texmf-dist/tex/latex/pgf/basiclayer/pgfcore.sty
INPUT /usr/share/texmf-dist/tex/latex/pgf/systemlayer/pgfsys.sty
INPUT /usr/share/texmf-dist/tex/latex/pgf/systemlayer/pgfsys.sty
INPUT /usr/share/texmf-dist/tex/generic/pgf/systemlayer/pgfsys.code.tex
INPUT /usr/share/texmf-dist/tex/generic/pgf/systemlayer/pgfsys.code.tex
INPUT /usr/share/texmf-dist/tex/generic/pgf/systemlayer/pgfsys.code.tex
INPUT /usr/share/texmf-dist/tex/generic/pgf/utilities/pgfkeys.code.tex
INPUT /usr/share/texmf-dist/tex/generic/pgf/utilities/pgfkeyslibraryfiltered.code.tex
INPUT /usr/share/texmf-dist/tex/generic/pgf/systemlayer/pgf.cfg
INPUT /usr/share/texmf-dist/tex/generic/pgf/systemlayer/pgfsys-pdftex.def
INPUT /usr/share/texmf-dist/tex/generic/pgf/systemlayer/pgfsys-pdftex.def
INPUT /usr/share/texmf-dist/tex/generic/pgf/systemlayer/pgfsys-common-pdf.def
INPUT /usr/share/texmf-dist/tex/generic/pgf/systemlayer/pgfsyssoftpath.code.tex
INPUT /usr/share/texmf-dist/tex/generic/pgf/systemlayer/pgfsyssoftpath.code.tex
INPUT /usr/share/texmf-dist/tex/generic/pgf/systemlayer/pgfsyssoftpath.code.tex
INPUT /usr/share/texmf-dist/tex/generic/pgf/systemlayer/pgfsysprotocol.code.tex
INPUT /usr/share/texmf-dist/tex/generic/pgf/systemlayer/pgfsysprotocol.code.tex
INPUT /usr/share/texmf-dist/tex/generic/pgf/systemlayer/pgfsysprotocol.code.tex
INPUT /usr/share/texmf-dist/tex/generic/pgf/basiclayer/pgfcore.code.tex
INPUT /usr/share/texmf-dist/tex/generic/pgf/basiclayer/pgfcore.code.tex
INPUT /usr/share/texmf-dist/tex/generic/pgf/basiclayer/pgfcore.code.tex
INPUT /usr/share/texmf-dist/tex/generic/pgf/math/pgfmath.code.tex
INPUT /usr/share/texmf-dist/tex/generic/pgf/math/pgfmathutil.code.tex
INPUT /usr/share/texmf-dist/tex/generic/pgf/math/pgfmathparser.code.tex
INPUT /usr/share/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.code.tex
INPUT /usr/share/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.basic.code.tex
INPUT /usr/share/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.trigonometric.code.tex
INPUT /usr/share/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.random.code.tex
INPUT /usr/share/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.comparison.code.tex
INPUT /usr/share/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.base.code.tex
INPUT /usr/share/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.round.code.tex
INPUT /usr/share/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.misc.code.tex
INPUT /usr/share/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.integerarithmetics.code.tex
INPUT /usr/share/texmf-dist/tex/generic/pgf/math/pgfmathcalc.code.tex
INPUT /usr/share/texmf-dist/tex/generic/pgf/math/pgfmathfloat.code.tex
INPUT /usr/share/texmf-dist/tex/generic/pgf/math/pgfint.code.tex
INPUT /usr/share/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepoints.code.tex
INPUT /usr/share/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepathconstruct.code.tex
INPUT /usr/share/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepathusage.code.tex
INPUT /usr/share/texmf-dist/tex/generic/pgf/basiclayer/pgfcorescopes.code.tex
INPUT /usr/share/texmf-dist/tex/generic/pgf/basiclayer/pgfcoregraphicstate.code.tex
INPUT /usr/share/texmf-dist/tex/generic/pgf/basiclayer/pgfcoretransformations.code.tex
INPUT /usr/share/texmf-dist/tex/generic/pgf/basiclayer/pgfcorequick.code.tex
INPUT /usr/share/texmf-dist/tex/generic/pgf/basiclayer/pgfcoreobjects.code.tex
INPUT /usr/share/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepathprocessing.code.tex
INPUT /usr/share/texmf-dist/tex/generic/pgf/basiclayer/pgfcorearrows.code.tex
INPUT /usr/share/texmf-dist/tex/generic/pgf/basiclayer/pgfcoreshade.code.tex
INPUT /usr/share/texmf-dist/tex/generic/pgf/basiclayer/pgfcoreimage.code.tex
INPUT /usr/share/texmf-dist/tex/generic/pgf/basiclayer/pgfcoreexternal.code.tex
INPUT /usr/share/texmf-dist/tex/generic/pgf/basiclayer/pgfcorelayers.code.tex
INPUT /usr/share/texmf-dist/tex/generic/pgf/basiclayer/pgfcoretransparency.code.tex
INPUT /usr/share/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepatterns.code.tex
INPUT /usr/share/texmf-dist/tex/generic/pgf/basiclayer/pgfcorerdf.code.tex
INPUT /usr/share/texmf-dist/tex/generic/pgf/modules/pgfmoduleshapes.code.tex
INPUT /usr/share/texmf-dist/tex/generic/pgf/modules/pgfmoduleplot.code.tex
INPUT /usr/share/texmf-dist/tex/latex/pgf/compatibility/pgfcomp-version-0-65.sty
INPUT /usr/share/texmf-dist/tex/latex/pgf/compatibility/pgfcomp-version-0-65.sty
INPUT /usr/share/texmf-dist/tex/latex/pgf/compatibility/pgfcomp-version-1-18.sty
INPUT /usr/share/texmf-dist/tex/latex/pgf/compatibility/pgfcomp-version-1-18.sty
INPUT /usr/share/texmf-dist/tex/latex/pgf/utilities/pgffor.sty
INPUT /usr/share/texmf-dist/tex/latex/pgf/utilities/pgffor.sty
INPUT /usr/share/texmf-dist/tex/latex/pgf/utilities/pgfkeys.sty
INPUT /usr/share/texmf-dist/tex/latex/pgf/utilities/pgfkeys.sty
INPUT /usr/share/texmf-dist/tex/generic/pgf/utilities/pgfkeys.code.tex
INPUT /usr/share/texmf-dist/tex/generic/pgf/utilities/pgfkeys.code.tex
INPUT /usr/share/texmf-dist/tex/generic/pgf/utilities/pgfkeys.code.tex
INPUT /usr/share/texmf-dist/tex/latex/pgf/math/pgfmath.sty
INPUT /usr/share/texmf-dist/tex/latex/pgf/math/pgfmath.sty
INPUT /usr/share/texmf-dist/tex/generic/pgf/math/pgfmath.code.tex
INPUT /usr/share/texmf-dist/tex/generic/pgf/math/pgfmath.code.tex
INPUT /usr/share/texmf-dist/tex/generic/pgf/math/pgfmath.code.tex
INPUT /usr/share/texmf-dist/tex/generic/pgf/utilities/pgffor.code.tex
INPUT /usr/share/texmf-dist/tex/generic/pgf/utilities/pgffor.code.tex
INPUT /usr/share/texmf-dist/tex/generic/pgf/utilities/pgffor.code.tex
INPUT /usr/share/texmf-dist/tex/generic/pgf/frontendlayer/tikz/tikz.code.tex
INPUT /usr/share/texmf-dist/tex/generic/pgf/frontendlayer/tikz/tikz.code.tex
INPUT /usr/share/texmf-dist/tex/generic/pgf/frontendlayer/tikz/tikz.code.tex
INPUT /usr/share/texmf-dist/tex/generic/pgf/libraries/pgflibraryplothandlers.code.tex
INPUT /usr/share/texmf-dist/tex/generic/pgf/libraries/pgflibraryplothandlers.code.tex
INPUT /usr/share/texmf-dist/tex/generic/pgf/modules/pgfmodulematrix.code.tex
INPUT /usr/share/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrarytopaths.code.tex
INPUT /usr/share/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrarytopaths.code.tex
INPUT /usr/share/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrarypositioning.code.tex
INPUT /usr/share/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrarypositioning.code.tex
INPUT /usr/share/texmf-dist/tex/latex/tools/calc.sty
INPUT /usr/share/texmf-dist/tex/latex/tools/calc.sty
INPUT /usr/share/texmf-dist/tex/latex/bookmark/bookmark.sty INPUT /usr/share/texmf-dist/tex/latex/bookmark/bookmark.sty
INPUT /usr/share/texmf-dist/tex/latex/bookmark/bookmark.sty INPUT /usr/share/texmf-dist/tex/latex/bookmark/bookmark.sty
INPUT /usr/share/texmf-dist/tex/latex/bookmark/bookmark.sty INPUT /usr/share/texmf-dist/tex/latex/bookmark/bookmark.sty
@ -129,13 +245,6 @@ INPUT /usr/share/texmf-dist/tex/latex/latexconfig/epstopdf-sys.cfg
INPUT /usr/share/texmf-dist/tex/latex/latexconfig/epstopdf-sys.cfg INPUT /usr/share/texmf-dist/tex/latex/latexconfig/epstopdf-sys.cfg
INPUT /usr/share/texmf-dist/tex/latex/latexconfig/epstopdf-sys.cfg INPUT /usr/share/texmf-dist/tex/latex/latexconfig/epstopdf-sys.cfg
INPUT /usr/share/texmf-dist/tex/latex/graphics/color.sty INPUT /usr/share/texmf-dist/tex/latex/graphics/color.sty
INPUT /usr/share/texmf-dist/tex/latex/graphics/color.sty
INPUT /usr/share/texmf-dist/tex/latex/graphics-cfg/color.cfg
INPUT /usr/share/texmf-dist/tex/latex/graphics-cfg/color.cfg
INPUT /usr/share/texmf-dist/tex/latex/graphics-cfg/color.cfg
INPUT /usr/share/texmf-dist/tex/latex/graphics/mathcolor.ltx
INPUT /usr/share/texmf-dist/tex/latex/graphics/mathcolor.ltx
INPUT /usr/share/texmf-dist/tex/latex/graphics/mathcolor.ltx
OUTPUT Ringstats_Dokumentation.pdf OUTPUT Ringstats_Dokumentation.pdf
INPUT /usr/share/texmf-dist/fonts/tfm/public/cm/cmr10.tfm INPUT /usr/share/texmf-dist/fonts/tfm/public/cm/cmr10.tfm
INPUT /usr/share/texmf-dist/fonts/tfm/jknappen/ec/ecss1200.tfm INPUT /usr/share/texmf-dist/fonts/tfm/jknappen/ec/ecss1200.tfm

View File

@ -1,4 +1,4 @@
This is pdfTeX, Version 3.141592653-2.6-1.40.29 (TeX Live 2026/Arch Linux) (preloaded format=pdflatex 2026.5.14) 31 MAY 2026 12:40 This is pdfTeX, Version 3.141592653-2.6-1.40.29 (TeX Live 2026/Arch Linux) (preloaded format=pdflatex 2026.5.14) 31 MAY 2026 13:53
entering extended mode entering extended mode
restricted \write18 enabled. restricted \write18 enabled.
%&-line parsing enabled. %&-line parsing enabled.
@ -333,6 +333,303 @@ Package uniquecounter Info: New unique counter `rerunfilecheck' on input line 2
) )
\Hy@SectionHShift=\skip65 \Hy@SectionHShift=\skip65
) )
(/usr/share/texmf-dist/tex/latex/todonotes/todonotes.sty
Package: todonotes 2024/01/05 v1.1.7 Todonotes source and documentation.
Package: todonotes 2024/01/05
(/usr/share/texmf-dist/tex/latex/base/ifthen.sty
Package: ifthen 2024/03/16 v1.1e Standard LaTeX ifthen package (DPC)
)
(/usr/share/texmf-dist/tex/latex/xkeyval/xkeyval.sty
Package: xkeyval 2025/11/04 v2.10 package option processing (HA)
(/usr/share/texmf-dist/tex/generic/xkeyval/xkeyval.tex
(/usr/share/texmf-dist/tex/generic/xkeyval/xkvutils.tex
\XKV@toks=\toks20
\XKV@tempa@toks=\toks21
\XKV@tempb@toks=\toks22
)
\XKV@depth=\count298
File: xkeyval.tex 2014/12/03 v2.7a key=value parser (HA)
))
(/usr/share/texmf-dist/tex/latex/xcolor/xcolor.sty
Package: xcolor 2024/09/29 v3.02 LaTeX color extensions (UK)
(/usr/share/texmf-dist/tex/latex/graphics-cfg/color.cfg
File: color.cfg 2016/01/02 v1.6 sample color configuration
)
Package xcolor Info: Driver file: pdftex.def on input line 274.
(/usr/share/texmf-dist/tex/latex/graphics/mathcolor.ltx)
Package xcolor Info: Model `cmy' substituted by `cmy0' on input line 1349.
Package xcolor Info: Model `hsb' substituted by `rgb' on input line 1353.
Package xcolor Info: Model `RGB' extended on input line 1365.
Package xcolor Info: Model `HTML' substituted by `rgb' on input line 1367.
Package xcolor Info: Model `Hsb' substituted by `hsb' on input line 1368.
Package xcolor Info: Model `tHsb' substituted by `hsb' on input line 1369.
Package xcolor Info: Model `HSB' substituted by `hsb' on input line 1370.
Package xcolor Info: Model `Gray' substituted by `gray' on input line 1371.
Package xcolor Info: Model `wave' substituted by `hsb' on input line 1372.
)
(/usr/share/texmf-dist/tex/latex/pgf/frontendlayer/tikz.sty
(/usr/share/texmf-dist/tex/latex/pgf/basiclayer/pgf.sty
(/usr/share/texmf-dist/tex/latex/pgf/utilities/pgfrcs.sty
(/usr/share/texmf-dist/tex/generic/pgf/utilities/pgfutil-common.tex
\pgfutil@everybye=\toks23
\pgfutil@tempdima=\dimen156
\pgfutil@tempdimb=\dimen157
)
(/usr/share/texmf-dist/tex/generic/pgf/utilities/pgfutil-latex.def
\pgfutil@abb=\box55
)
(/usr/share/texmf-dist/tex/generic/pgf/utilities/pgfrcs.code.tex
(/usr/share/texmf-dist/tex/generic/pgf/pgf.revision.tex)
Package: pgfrcs 2025-08-29 v3.1.11a (3.1.11a)
))
Package: pgf 2025-08-29 v3.1.11a (3.1.11a)
(/usr/share/texmf-dist/tex/latex/pgf/basiclayer/pgfcore.sty
(/usr/share/texmf-dist/tex/latex/pgf/systemlayer/pgfsys.sty
(/usr/share/texmf-dist/tex/generic/pgf/systemlayer/pgfsys.code.tex
Package: pgfsys 2025-08-29 v3.1.11a (3.1.11a)
(/usr/share/texmf-dist/tex/generic/pgf/utilities/pgfkeys.code.tex
\pgfkeys@pathtoks=\toks24
\pgfkeys@temptoks=\toks25
(/usr/share/texmf-dist/tex/generic/pgf/utilities/pgfkeyslibraryfiltered.code.te
x
\pgfkeys@tmptoks=\toks26
))
\pgf@x=\dimen158
\pgf@y=\dimen159
\pgf@xa=\dimen160
\pgf@ya=\dimen161
\pgf@xb=\dimen162
\pgf@yb=\dimen163
\pgf@xc=\dimen164
\pgf@yc=\dimen165
\pgf@xd=\dimen166
\pgf@yd=\dimen167
\w@pgf@writea=\write3
\r@pgf@reada=\read3
\c@pgf@counta=\count299
\c@pgf@countb=\count300
\c@pgf@countc=\count301
\c@pgf@countd=\count302
\t@pgf@toka=\toks27
\t@pgf@tokb=\toks28
\t@pgf@tokc=\toks29
\pgf@sys@id@count=\count303
(/usr/share/texmf-dist/tex/generic/pgf/systemlayer/pgf.cfg
File: pgf.cfg 2025-08-29 v3.1.11a (3.1.11a)
)
Driver file for pgf: pgfsys-pdftex.def
(/usr/share/texmf-dist/tex/generic/pgf/systemlayer/pgfsys-pdftex.def
File: pgfsys-pdftex.def 2025-08-29 v3.1.11a (3.1.11a)
(/usr/share/texmf-dist/tex/generic/pgf/systemlayer/pgfsys-common-pdf.def
File: pgfsys-common-pdf.def 2025-08-29 v3.1.11a (3.1.11a)
)))
(/usr/share/texmf-dist/tex/generic/pgf/systemlayer/pgfsyssoftpath.code.tex
File: pgfsyssoftpath.code.tex 2025-08-29 v3.1.11a (3.1.11a)
\pgfsyssoftpath@smallbuffer@items=\count304
\pgfsyssoftpath@bigbuffer@items=\count305
)
(/usr/share/texmf-dist/tex/generic/pgf/systemlayer/pgfsysprotocol.code.tex
File: pgfsysprotocol.code.tex 2025-08-29 v3.1.11a (3.1.11a)
))
(/usr/share/texmf-dist/tex/generic/pgf/basiclayer/pgfcore.code.tex
Package: pgfcore 2025-08-29 v3.1.11a (3.1.11a)
(/usr/share/texmf-dist/tex/generic/pgf/math/pgfmath.code.tex
(/usr/share/texmf-dist/tex/generic/pgf/math/pgfmathutil.code.tex)
(/usr/share/texmf-dist/tex/generic/pgf/math/pgfmathparser.code.tex
\pgfmath@dimen=\dimen168
\pgfmath@count=\count306
\pgfmath@box=\box56
\pgfmath@toks=\toks30
\pgfmath@stack@operand=\toks31
\pgfmath@stack@operation=\toks32
)
(/usr/share/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.code.tex)
(/usr/share/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.basic.code.tex)
(/usr/share/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.trigonometric.code
.tex)
(/usr/share/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.random.code.tex)
(/usr/share/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.comparison.code.te
x) (/usr/share/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.base.code.tex)
(/usr/share/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.round.code.tex)
(/usr/share/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.misc.code.tex)
(/usr/share/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.integerarithmetics
.code.tex) (/usr/share/texmf-dist/tex/generic/pgf/math/pgfmathcalc.code.tex)
(/usr/share/texmf-dist/tex/generic/pgf/math/pgfmathfloat.code.tex
\c@pgfmathroundto@lastzeros=\count307
))
(/usr/share/texmf-dist/tex/generic/pgf/math/pgfint.code.tex)
(/usr/share/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepoints.code.tex
File: pgfcorepoints.code.tex 2025-08-29 v3.1.11a (3.1.11a)
\pgf@picminx=\dimen169
\pgf@picmaxx=\dimen170
\pgf@picminy=\dimen171
\pgf@picmaxy=\dimen172
\pgf@pathminx=\dimen173
\pgf@pathmaxx=\dimen174
\pgf@pathminy=\dimen175
\pgf@pathmaxy=\dimen176
\pgf@xx=\dimen177
\pgf@xy=\dimen178
\pgf@yx=\dimen179
\pgf@yy=\dimen180
\pgf@zx=\dimen181
\pgf@zy=\dimen182
)
(/usr/share/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepathconstruct.code.tex
File: pgfcorepathconstruct.code.tex 2025-08-29 v3.1.11a (3.1.11a)
\pgf@path@lastx=\dimen183
\pgf@path@lasty=\dimen184
) (/usr/share/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepathusage.code.tex
File: pgfcorepathusage.code.tex 2025-08-29 v3.1.11a (3.1.11a)
\pgf@shorten@end@additional=\dimen185
\pgf@shorten@start@additional=\dimen186
)
(/usr/share/texmf-dist/tex/generic/pgf/basiclayer/pgfcorescopes.code.tex
File: pgfcorescopes.code.tex 2025-08-29 v3.1.11a (3.1.11a)
\pgfpic=\box57
\pgf@hbox=\box58
\pgf@layerbox@main=\box59
\pgf@picture@serial@count=\count308
)
(/usr/share/texmf-dist/tex/generic/pgf/basiclayer/pgfcoregraphicstate.code.tex
File: pgfcoregraphicstate.code.tex 2025-08-29 v3.1.11a (3.1.11a)
\pgflinewidth=\dimen187
)
(/usr/share/texmf-dist/tex/generic/pgf/basiclayer/pgfcoretransformations.code.t
ex
File: pgfcoretransformations.code.tex 2025-08-29 v3.1.11a (3.1.11a)
\pgf@pt@x=\dimen188
\pgf@pt@y=\dimen189
\pgf@pt@temp=\dimen190
) (/usr/share/texmf-dist/tex/generic/pgf/basiclayer/pgfcorequick.code.tex
File: pgfcorequick.code.tex 2025-08-29 v3.1.11a (3.1.11a)
)
(/usr/share/texmf-dist/tex/generic/pgf/basiclayer/pgfcoreobjects.code.tex
File: pgfcoreobjects.code.tex 2025-08-29 v3.1.11a (3.1.11a)
)
(/usr/share/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepathprocessing.code.te
x
File: pgfcorepathprocessing.code.tex 2025-08-29 v3.1.11a (3.1.11a)
) (/usr/share/texmf-dist/tex/generic/pgf/basiclayer/pgfcorearrows.code.tex
File: pgfcorearrows.code.tex 2025-08-29 v3.1.11a (3.1.11a)
\pgfarrowsep=\dimen191
)
(/usr/share/texmf-dist/tex/generic/pgf/basiclayer/pgfcoreshade.code.tex
File: pgfcoreshade.code.tex 2025-08-29 v3.1.11a (3.1.11a)
\pgf@max=\dimen192
\pgf@sys@shading@range@num=\count309
\pgf@shadingcount=\count310
)
(/usr/share/texmf-dist/tex/generic/pgf/basiclayer/pgfcoreimage.code.tex
File: pgfcoreimage.code.tex 2025-08-29 v3.1.11a (3.1.11a)
)
(/usr/share/texmf-dist/tex/generic/pgf/basiclayer/pgfcoreexternal.code.tex
File: pgfcoreexternal.code.tex 2025-08-29 v3.1.11a (3.1.11a)
\pgfexternal@startupbox=\box60
)
(/usr/share/texmf-dist/tex/generic/pgf/basiclayer/pgfcorelayers.code.tex
File: pgfcorelayers.code.tex 2025-08-29 v3.1.11a (3.1.11a)
)
(/usr/share/texmf-dist/tex/generic/pgf/basiclayer/pgfcoretransparency.code.tex
File: pgfcoretransparency.code.tex 2025-08-29 v3.1.11a (3.1.11a)
) (/usr/share/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepatterns.code.tex
File: pgfcorepatterns.code.tex 2025-08-29 v3.1.11a (3.1.11a)
)
(/usr/share/texmf-dist/tex/generic/pgf/basiclayer/pgfcorerdf.code.tex
File: pgfcorerdf.code.tex 2025-08-29 v3.1.11a (3.1.11a)
)))
(/usr/share/texmf-dist/tex/generic/pgf/modules/pgfmoduleshapes.code.tex
File: pgfmoduleshapes.code.tex 2025-08-29 v3.1.11a (3.1.11a)
\pgfnodeparttextbox=\box61
)
(/usr/share/texmf-dist/tex/generic/pgf/modules/pgfmoduleplot.code.tex
File: pgfmoduleplot.code.tex 2025-08-29 v3.1.11a (3.1.11a)
)
(/usr/share/texmf-dist/tex/latex/pgf/compatibility/pgfcomp-version-0-65.sty
Package: pgfcomp-version-0-65 2025-08-29 v3.1.11a (3.1.11a)
\pgf@nodesepstart=\dimen193
\pgf@nodesepend=\dimen194
)
(/usr/share/texmf-dist/tex/latex/pgf/compatibility/pgfcomp-version-1-18.sty
Package: pgfcomp-version-1-18 2025-08-29 v3.1.11a (3.1.11a)
))
(/usr/share/texmf-dist/tex/latex/pgf/utilities/pgffor.sty
(/usr/share/texmf-dist/tex/latex/pgf/utilities/pgfkeys.sty
(/usr/share/texmf-dist/tex/generic/pgf/utilities/pgfkeys.code.tex))
(/usr/share/texmf-dist/tex/latex/pgf/math/pgfmath.sty
(/usr/share/texmf-dist/tex/generic/pgf/math/pgfmath.code.tex))
(/usr/share/texmf-dist/tex/generic/pgf/utilities/pgffor.code.tex
Package: pgffor 2025-08-29 v3.1.11a (3.1.11a)
\pgffor@iter=\dimen195
\pgffor@skip=\dimen196
\pgffor@stack=\toks33
\pgffor@toks=\toks34
))
(/usr/share/texmf-dist/tex/generic/pgf/frontendlayer/tikz/tikz.code.tex
Package: tikz 2025-08-29 v3.1.11a (3.1.11a)
(/usr/share/texmf-dist/tex/generic/pgf/libraries/pgflibraryplothandlers.code.te
x
File: pgflibraryplothandlers.code.tex 2025-08-29 v3.1.11a (3.1.11a)
\pgf@plot@mark@count=\count311
\pgfplotmarksize=\dimen197
)
\tikz@lastx=\dimen198
\tikz@lasty=\dimen199
\tikz@lastxsaved=\dimen256
\tikz@lastysaved=\dimen257
\tikz@lastmovetox=\dimen258
\tikz@lastmovetoy=\dimen259
\tikzleveldistance=\dimen260
\tikzsiblingdistance=\dimen261
\tikz@figbox=\box62
\tikz@figbox@bg=\box63
\tikz@tempbox=\box64
\tikz@tempbox@bg=\box65
\tikztreelevel=\count312
\tikznumberofchildren=\count313
\tikznumberofcurrentchild=\count314
\tikz@fig@count=\count315
(/usr/share/texmf-dist/tex/generic/pgf/modules/pgfmodulematrix.code.tex
File: pgfmodulematrix.code.tex 2025-08-29 v3.1.11a (3.1.11a)
\pgfmatrixcurrentrow=\count316
\pgfmatrixcurrentcolumn=\count317
\pgf@matrix@numberofcolumns=\count318
)
\tikz@expandcount=\count319
(/usr/share/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrary
topaths.code.tex
File: tikzlibrarytopaths.code.tex 2025-08-29 v3.1.11a (3.1.11a)
)))
(/usr/share/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrary
positioning.code.tex
File: tikzlibrarypositioning.code.tex 2025-08-29 v3.1.11a (3.1.11a)
) (/usr/share/texmf-dist/tex/latex/tools/calc.sty
Package: calc 2025/03/01 v4.3b Infix arithmetic (KKT,FJ)
\calc@Acount=\count320
\calc@Bcount=\count321
\calc@Adimen=\dimen262
\calc@Bdimen=\dimen263
\calc@Askip=\skip66
\calc@Bskip=\skip67
LaTeX Info: Redefining \setlength on input line 86.
LaTeX Info: Redefining \addtolength on input line 87.
\calc@Ccount=\count322
\calc@Cskip=\skip68
)
\c@@todonotes@numberoftodonotes=\count323
)
Class scrartcl Info: loading recommended package `bookmark'. Class scrartcl Info: loading recommended package `bookmark'.
(scrartcl) Using `bookmark' together with `hyperref' is recommended, (scrartcl) Using `bookmark' together with `hyperref' is recommended,
(scrartcl) because of handling of possible bookmark level gaps. (scrartcl) because of handling of possible bookmark level gaps.
@ -340,7 +637,7 @@ Class scrartcl Info: loading recommended package `bookmark'.
(scrartcl) `bookmarkpackage=false' before \begin{document} and (scrartcl) `bookmarkpackage=false' before \begin{document} and
(scrartcl) you can avoid this message adding: (scrartcl) you can avoid this message adding:
(scrartcl) \usepackage{bookmark} (scrartcl) \usepackage{bookmark}
(scrartcl) before \begin{document} on input line 18. (scrartcl) before \begin{document} on input line 19.
(/usr/share/texmf-dist/tex/latex/bookmark/bookmark.sty (/usr/share/texmf-dist/tex/latex/bookmark/bookmark.sty
Package: bookmark 2023-12-10 v1.31 PDF bookmarks (HO) Package: bookmark 2023-12-10 v1.31 PDF bookmarks (HO)
@ -348,11 +645,11 @@ Package: bookmark 2023-12-10 v1.31 PDF bookmarks (HO)
(/usr/share/texmf-dist/tex/latex/bookmark/bkm-pdftex.def (/usr/share/texmf-dist/tex/latex/bookmark/bkm-pdftex.def
File: bkm-pdftex.def 2023-12-10 v1.31 bookmark driver for pdfTeX and luaTeX (HO File: bkm-pdftex.def 2023-12-10 v1.31 bookmark driver for pdfTeX and luaTeX (HO
) )
\BKM@id=\count298 \BKM@id=\count324
)) ))
(/usr/share/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def (/usr/share/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def
File: l3backend-pdftex.def 2025-10-09 L3 backend support: PDF output (pdfTeX) File: l3backend-pdftex.def 2025-10-09 L3 backend support: PDF output (pdfTeX)
\l__color_backend_stack_int=\count299 \l__color_backend_stack_int=\count325
) )
(./Ringstats_Dokumentation.aux (./Ringstats_Dokumentation.aux
Package babel Info: 'ngerman' activates 'german' shorthands. Package babel Info: 'ngerman' activates 'german' shorthands.
@ -360,38 +657,38 @@ Package babel Info: 'ngerman' activates 'german' shorthands.
) )
\openout1 = `Ringstats_Dokumentation.aux'. \openout1 = `Ringstats_Dokumentation.aux'.
LaTeX Font Info: Checking defaults for OML/cmm/m/it on input line 18. LaTeX Font Info: Checking defaults for OML/cmm/m/it on input line 19.
LaTeX Font Info: ... okay on input line 18. LaTeX Font Info: ... okay on input line 19.
LaTeX Font Info: Checking defaults for OMS/cmsy/m/n on input line 18. LaTeX Font Info: Checking defaults for OMS/cmsy/m/n on input line 19.
LaTeX Font Info: ... okay on input line 18. LaTeX Font Info: ... okay on input line 19.
LaTeX Font Info: Checking defaults for OT1/cmr/m/n on input line 18. LaTeX Font Info: Checking defaults for OT1/cmr/m/n on input line 19.
LaTeX Font Info: ... okay on input line 18. LaTeX Font Info: ... okay on input line 19.
LaTeX Font Info: Checking defaults for T1/cmr/m/n on input line 18. LaTeX Font Info: Checking defaults for T1/cmr/m/n on input line 19.
LaTeX Font Info: ... okay on input line 18. LaTeX Font Info: ... okay on input line 19.
LaTeX Font Info: Checking defaults for TS1/cmr/m/n on input line 18. LaTeX Font Info: Checking defaults for TS1/cmr/m/n on input line 19.
LaTeX Font Info: ... okay on input line 18. LaTeX Font Info: ... okay on input line 19.
LaTeX Font Info: Checking defaults for OMX/cmex/m/n on input line 18. LaTeX Font Info: Checking defaults for OMX/cmex/m/n on input line 19.
LaTeX Font Info: ... okay on input line 18. LaTeX Font Info: ... okay on input line 19.
LaTeX Font Info: Checking defaults for U/cmr/m/n on input line 18. LaTeX Font Info: Checking defaults for U/cmr/m/n on input line 19.
LaTeX Font Info: ... okay on input line 18. LaTeX Font Info: ... okay on input line 19.
LaTeX Font Info: Checking defaults for PD1/pdf/m/n on input line 18. LaTeX Font Info: Checking defaults for PD1/pdf/m/n on input line 19.
LaTeX Font Info: ... okay on input line 18. LaTeX Font Info: ... okay on input line 19.
LaTeX Font Info: Checking defaults for PU/pdf/m/n on input line 18. LaTeX Font Info: Checking defaults for PU/pdf/m/n on input line 19.
LaTeX Font Info: ... okay on input line 18. LaTeX Font Info: ... okay on input line 19.
(/usr/share/texmf-dist/tex/context/base/mkii/supp-pdf.mkii (/usr/share/texmf-dist/tex/context/base/mkii/supp-pdf.mkii
[Loading MPS to PDF converter (version 2006.09.02).] [Loading MPS to PDF converter (version 2006.09.02).]
\scratchcounter=\count300 \scratchcounter=\count326
\scratchdimen=\dimen156 \scratchdimen=\dimen264
\scratchbox=\box55 \scratchbox=\box66
\nofMPsegments=\count301 \nofMPsegments=\count327
\nofMParguments=\count302 \nofMParguments=\count328
\everyMPshowfont=\toks20 \everyMPshowfont=\toks35
\MPscratchCnt=\count303 \MPscratchCnt=\count329
\MPscratchDim=\dimen157 \MPscratchDim=\dimen265
\MPnumerator=\count304 \MPnumerator=\count330
\makeMPintoPDFobject=\count305 \makeMPintoPDFobject=\count331
\everyMPtoPDFconversion=\toks21 \everyMPtoPDFconversion=\toks36
) (/usr/share/texmf-dist/tex/latex/epstopdf-pkg/epstopdf-base.sty ) (/usr/share/texmf-dist/tex/latex/epstopdf-pkg/epstopdf-base.sty
Package: epstopdf-base 2020-01-24 v2.11 Base part for package epstopdf Package: epstopdf-base 2020-01-24 v2.11 Base part for package epstopdf
Package epstopdf-base Info: Redefining graphics rule for `.eps' on input line 4 Package epstopdf-base Info: Redefining graphics rule for `.eps' on input line 4
@ -401,29 +698,26 @@ Package epstopdf-base Info: Redefining graphics rule for `.eps' on input line 4
File: epstopdf-sys.cfg 2010/07/13 v1.3 Configuration of (r)epstopdf for TeX Liv File: epstopdf-sys.cfg 2010/07/13 v1.3 Configuration of (r)epstopdf for TeX Liv
e e
)) ))
(/usr/share/texmf-dist/tex/latex/graphics/color.sty Package hyperref Info: Link coloring ON on input line 19.
Package: color 2025/01/14 v1.3e Standard LaTeX Color (DPC)
(/usr/share/texmf-dist/tex/latex/graphics-cfg/color.cfg
File: color.cfg 2016/01/02 v1.6 sample color configuration
)
Package color Info: Driver file: pdftex.def on input line 149.
(/usr/share/texmf-dist/tex/latex/graphics/mathcolor.ltx)) Package todonotes Warning: The length marginparwidth is less than 2cm and will
Package hyperref Info: Link coloring ON on input line 18. most likely cause issues with the appearance of inserted todonotes. The issue c
an be solved by adding a line like \setlength {\marginparwidth }{2cm} prior to
loading the todonotes package. on input line 19.
LaTeX Font Info: External font `cmex10' loaded for size LaTeX Font Info: External font `cmex10' loaded for size
(Font) <17.28> on input line 21. (Font) <17.28> on input line 22.
LaTeX Font Info: External font `cmex10' loaded for size LaTeX Font Info: External font `cmex10' loaded for size
(Font) <12> on input line 21. (Font) <12> on input line 22.
(./Ringstats_Dokumentation.toc (./Ringstats_Dokumentation.toc
LaTeX Font Info: External font `cmex10' loaded for size LaTeX Font Info: External font `cmex10' loaded for size
(Font) <8> on input line 3. (Font) <8> on input line 3.
LaTeX Font Info: External font `cmex10' loaded for size LaTeX Font Info: External font `cmex10' loaded for size
(Font) <6> on input line 3. (Font) <6> on input line 3.
) )
\tf@toc=\write3 \tf@toc=\write4
\openout3 = `Ringstats_Dokumentation.toc'. \openout4 = `Ringstats_Dokumentation.toc'.
[1 [1
@ -431,30 +725,48 @@ LaTeX Font Info: External font `cmex10' loaded for size
{/var/lib/texmf/fonts/map/pdftex/updmap/pdftex.map}{/usr/share/texmf-dist/fonts {/var/lib/texmf/fonts/map/pdftex/updmap/pdftex.map}{/usr/share/texmf-dist/fonts
/enc/dvips/cm-super/cm-super-t1.enc}] /enc/dvips/cm-super/cm-super-t1.enc}]
[2] [2]
<assets/er-modell.png, id=45, 3968.8275pt x 4311.10625pt> <assets/er-modell.png, id=48, 3968.8275pt x 4311.10625pt>
File: assets/er-modell.png Graphic file (type png) File: assets/er-modell.png Graphic file (type png)
<use assets/er-modell.png> <use assets/er-modell.png>
Package pdftex.def Info: assets/er-modell.png used on input line 86. Package pdftex.def Info: assets/er-modell.png used on input line 87.
(pdftex.def) Requested size: 268.8813pt x 292.00674pt. (pdftex.def) Requested size: 268.8813pt x 292.00674pt.
[3 <./assets/er-modell.png>] [3 <./assets/er-modell.png>]
Overfull \hbox (73.65858pt too wide) in paragraph at lines 145--173 Overfull \hbox (52.12212pt too wide) in paragraph at lines 146--173
[][] [][]
[] []
[4] [5] [6] [7] [8] (./Ringstats_Dokumentation.aux) [4] [5] [6]
Package hyperref Info: bookmark level for unknown todo defaults to 0 on input l
ine 263.
Overfull \hbox (5.15562pt too wide) in paragraph at lines 263--263
[][][]\T1/cmr/m/n/12 komplett
[]
Overfull \hbox (5.15562pt too wide) in paragraph at lines 263--263
[][][]\T1/cmr/m/n/12 komplett
[]
Overfull \hbox (9.63942pt too wide) in paragraph at lines 297--309
[][]
[]
[7] [8] [9] (./Ringstats_Dokumentation.aux)
*********** ***********
LaTeX2e <2025-11-01> LaTeX2e <2025-11-01>
L3 programming layer <2026-01-19> L3 programming layer <2026-01-19>
*********** ***********
) )
Here is how much of TeX's memory you used: Here is how much of TeX's memory you used:
13485 strings out of 469462 24579 strings out of 469462
243032 string characters out of 5468614 480525 string characters out of 5468614
788042 words of memory out of 5000000 1010471 words of memory out of 5000000
42001 multiletter control sequences out of 15000+600000 52862 multiletter control sequences out of 15000+600000
638939 words of font info for 63 fonts, out of 8000000 for 9000 638939 words of font info for 63 fonts, out of 8000000 for 9000
14 hyphenation exceptions out of 8191 14 hyphenation exceptions out of 8191
108i,8n,107p,11313b,461s stack positions out of 10000i,1000n,20000p,200000b,200000s 108i,9n,108p,11313b,971s stack positions out of 10000i,1000n,20000p,200000b,200000s
</usr/share/texmf-dist/fonts/type1/public/cm-super/sfbx1200.pfb></usr/share/t </usr/share/texmf-dist/fonts/type1/public/cm-super/sfbx1200.pfb></usr/share/t
exmf-dist/fonts/type1/public/cm-super/sfrm1200.pfb></usr/share/texmf-dist/fonts exmf-dist/fonts/type1/public/cm-super/sfrm1200.pfb></usr/share/texmf-dist/fonts
/type1/public/cm-super/sfrm1728.pfb></usr/share/texmf-dist/fonts/type1/public/c /type1/public/cm-super/sfrm1728.pfb></usr/share/texmf-dist/fonts/type1/public/c
@ -462,10 +774,10 @@ m-super/sfsx1200.pfb></usr/share/texmf-dist/fonts/type1/public/cm-super/sfsx144
0.pfb></usr/share/texmf-dist/fonts/type1/public/cm-super/sfsx1728.pfb></usr/sha 0.pfb></usr/share/texmf-dist/fonts/type1/public/cm-super/sfsx1728.pfb></usr/sha
re/texmf-dist/fonts/type1/public/cm-super/sfsx2488.pfb></usr/share/texmf-dist/f re/texmf-dist/fonts/type1/public/cm-super/sfsx2488.pfb></usr/share/texmf-dist/f
onts/type1/public/cm-super/sftt1200.pfb> onts/type1/public/cm-super/sftt1200.pfb>
Output written on Ringstats_Dokumentation.pdf (8 pages, 575493 bytes). Output written on Ringstats_Dokumentation.pdf (9 pages, 608054 bytes).
PDF statistics: PDF statistics:
160 PDF objects out of 1000 (max. 8388607) 171 PDF objects out of 1000 (max. 8388607)
130 compressed objects within 2 object streams 140 compressed objects within 2 object streams
24 named destinations out of 1000 (max. 500000) 28 named destinations out of 1000 (max. 500000)
110 words of extra memory for PDF output out of 10000 (max. 10000000) 122 words of extra memory for PDF output out of 10000 (max. 10000000)

Binary file not shown.

Binary file not shown.

View File

@ -4,6 +4,7 @@
\usepackage[T1]{fontenc} \usepackage[T1]{fontenc}
\usepackage{graphicx} \usepackage{graphicx}
\usepackage[colorlinks=true, linkcolor=black]{hyperref} \usepackage[colorlinks=true, linkcolor=black]{hyperref}
\usepackage{todonotes}
\title{Ringstats Dokumentation} \title{Ringstats Dokumentation}
\author{Justin Rost \\ 7208260 \author{Justin Rost \\ 7208260
@ -153,7 +154,7 @@ Anhand dieses Systems bilden wir die Schlüssel wie folgt ab:
\texttt{HMAP} & {shield:\{id\}} & id, item\_effect\_id, item\_type\_id, weight, damage, defense \\ \texttt{HMAP} & {shield:\{id\}} & id, item\_effect\_id, item\_type\_id, weight, damage, defense \\
\texttt{HMAP} & {talisman:\{id\}} & id, item\_effect\_id \\ \texttt{HMAP} & {talisman:\{id\}} & id, item\_effect\_id \\
\\ \\
\texttt{HMAP} & {item:\{id\}} & id, name, gear\_type, gear\_id, region\_id \\ \texttt{HMAP} & {item:\{id\}} & id, name, gear\_type, gear\_id \\
\\ \\
\texttt{HMAP} & player:\{id\} & id, name, health, stamina, level, region\_id \\ \texttt{HMAP} & player:\{id\} & id, name, health, stamina, level, region\_id \\
\texttt{SET} & {player:\{id\}:weapon} & item\_id \\ \texttt{SET} & {player:\{id\}:weapon} & item\_id \\
@ -167,7 +168,6 @@ Anhand dieses Systems bilden wir die Schlüssel wie folgt ab:
\\ \\
\texttt{HMAP} & enemy:\{id\} & id, name, health, level, damage \\ \texttt{HMAP} & enemy:\{id\} & id, name, health, level, damage \\
\texttt{SET} & enemy:\{id\}:items & item\_id \\ \texttt{SET} & enemy:\{id\}:items & item\_id \\
\texttt{SET} & enemy:\{id\}:item\_effects & item\_effect\_id \\
\hline \hline
\end{tabular} \end{tabular}
\caption{Übersicht der Schlüsselstrukturen in Redis} \caption{Übersicht der Schlüsselstrukturen in Redis}
@ -187,28 +187,152 @@ Anhand dieses Systems bilden wir die Schlüssel wie folgt ab:
\subsection{Dokumentenorientierte Modellierung} \subsection{Dokumentenorientierte Modellierung}
% Wie sieht das in z. B. MongoDB aus? Zeigt hier ein fiktives JSON-Dokument, das einen Gegner oder Spieler mit all seinen verschachtelten Eigenschaften beschreibt. % Wie sieht das in z. B. MongoDB aus? Zeigt hier ein fiktives JSON-Dokument, das einen Gegner oder Spieler mit all seinen verschachtelten Eigenschaften beschreibt.
Dokumentenorientierte Datenbanken speichern alles, was zusammengehört, gebündelt in einem Dokument.
Wir verwenden in diesem Kapitel MongoDB.
\subsubsection*{Aufbau der Dokumente}
Jede Entität wird zu einem Dokument und liegt in einer eigenen Collection. Der Player hält von seiner Ausrüstung nur die ids fest, denn Weapon, Armor, Shield und Talisman liegen in eigenen Dokumenten und werden von vielen Player gleich gebraucht. So stehen ihre Grundwerte nur an einer Stelle und nicht bei jedem Player erneut. Genauso bekommen Item und Region ein eigenes Dokument, und Region und Enemy zeigen nur über die ids auf ihre Item und Enemy.
So sieht das Dokument eines Player aus:
\begin{verbatim}
player {
id: 1,
name: "Jonas",
health: 100,
stamina: 100,
level: 1,
region_id: 1,
weapon: [ 12 ],
shield: 30,
armor: [ 41, 42 ],
talisman: [ 7 ]
}
\end{verbatim}
Die id beim Player ist dabei die id des Item. Das Item zeigt über gear\_id auf die eigentliche Weapon, die in einem eigenen Dokument liegt und ihren item\_type und item\_effect direkt mitbringt:
\begin{verbatim}
weapon {
id: 213,
item_type: { id: 1, name: "Dolch" },
item_effect: { id: 4, name: "Stärke", value: 5 },
weight: 2,
damage: 70
}
\end{verbatim}
Und so ein Enemy, der seine Item als id behält:
\begin{verbatim}
enemy {
id: 1,
region_id: 1,
name: "Tree_Sentinel",
health: 30000,
level: 20,
damage: 70,
items: [ 5, 10 ]
}
\end{verbatim}
Das Item liegt in einem eigenen Dokument und hält die Grundwerte fest:
\begin{verbatim}
item {
id: 12,
name: "Dolch",
gear_type: "weapon",
gear_id: 213
}
\end{verbatim}
Und die Region zeigt über die ids auf ihre Item und Enemy:
\begin{verbatim}
region {
id: 1,
name: "Limgrave",
items: [ 12, 19, 248 ],
enemies: [ 1, 245 ]
}
\end{verbatim}
\newpage \newpage
\subsection{Graph-Datenbank-Modellierung} \subsection{Graph-Datenbank-Modellierung}
\todo{komplett pruefen ob wir das richtig verstanden haben}
% Wie sieht das in z. B. Neo4j aus? Beschreibt (oder zeichnet), wie Knoten (Player, Region) und Kanten (has_equipped, is_in) die Beziehungen darstellen. % Wie sieht das in z. B. Neo4j aus? Beschreibt (oder zeichnet), wie Knoten (Player, Region) und Kanten (has_equipped, is_in) die Beziehungen darstellen.
Graph-Datenbanken legen den Fokus auf die Beziehungen zwischen den Objekten.
Wir verwenden in diesem Kapitel Neo4j.
% Wir müssen erst die datenmodellieren \subsubsection*{Aufbau aus Knoten und Kanten}
% Habe bereits ein Projekt, lass das nehmen zum vergleichen nachher Jede Entität wird zu einem Knoten, der seine eigenen Werte direkt mitträgt. Die Verbindungen aus dem ER-Modell werden zu Kanten zwischen diesen Knoten. So lässt sich direkt verfolgen, welcher Player welche Weapon trägt oder welches Item ein Enemy fallen lässt.
% - Redis
% - MonogoDb Die Knoten und ihre Werte bilden wir wie folgt ab:
% - MariaDB
\begin{table}[h]
\centering
\begin{tabular}{l l}
\hline
\textbf{Knoten} & \textbf{Attribute} \\ \hline
Player & id, name, health, stamina, level \\
Weapon & id, weight, damage \\
Armor & id, weight, defense \\
Shield & id, weight, damage, defense \\
Talisman & id \\
Type & id, name \\
item\_effect & id, name, value \\
Item & id, name \\
Region & id, name \\
Enemy & id, name, health, level, damage \\
\hline
\end{tabular}
\caption{Übersicht der Knoten in Neo4j}
\end{table}
Die Kanten verbinden die Knoten so, wie es schon das ER-Modell vorgibt:
\begin{table}[h]
\centering
\begin{tabular}{l l l}
\hline
\textbf{Von} & \textbf{Kante} & \textbf{Nach} \\ \hline
Player & has\_equipped & Weapon, Armor, Shield, Talisman \\
Player & is\_in & Region \\
Weapon, Armor, Shield & has & Type \\
Weapon, Armor, Shield, Talisman & has & item\_effect \\
Weapon, Armor, Shield, Talisman & is & Item \\
Region & has & Item, Enemy \\
Enemy & drops & Item \\
\hline
\end{tabular}
\caption{Übersicht der Kanten in Neo4j}
\end{table}
\newpage \newpage
\section{Vergleich der Datenmodellierung} \section{Vergleich der Datenmodellierung}
\subsection{Vor- und Nachteile des Key-Value-Modells} \subsection{Vor- und Nachteile des Key-Value-Modells}
% Vorteil: Extrem schnell für euer Live-Streaming (Lese-/Schreibzugriffe). Nachteil: Komplexe Abfragen (z.B. "Zeige mir alle Waffen mit Stärke > 20") sind schwierig. % Vorteil: Extrem schnell für euer Live-Streaming (Lese-/Schreibzugriffe). Nachteil: Komplexe Abfragen (z.B. "Zeige mir alle Waffen mit Stärke > 20") sind schwierig.
Ein klarer Vorteil ist, dass Redis extrem schnell ist. Genau das brauchen wir, weil wir die Daten des Player laufend schreiben und gleichzeitig im Spiel und im Browser wieder auslesen. Über die Keys kommen wir direkt an ein Objekt, ohne lange zu suchen.
Ein klarer Nachteil ist, dass komplexe Abfragen schwierig sind. Wollen wir zum Beispiel alle Weapon mit einem bestimmten item\_effect finden, müssen wir das in der Anwendung selbst zusammenbauen, weil Redis dafür keine fertige Suche mitbringt.
\subsection{Vor- und Nachteile des dokumentenorientierten Modells} \subsection{Vor- und Nachteile des dokumentenorientierten Modells}
% Vorteil: Alles zu einem Spieler ist in einem JSON-Dokument gebündelt. Nachteil: Redundanzen, wenn z.B. Spieldaten wie "Waffen-Typen" bei jedem Spieler gespeichert werden. % Vorteil: Alles zu einem Spieler ist in einem JSON-Dokument gebündelt. Nachteil: Redundanzen, wenn z.B. Spieldaten wie "Waffen-Typen" bei jedem Spieler gespeichert werden.
Ein klarer Vorteil ist, dass das Modell extrem leserlich und einfach zu modellieren ist. Jedes Dokument ist für sich verständlich und man sieht direkt, welche Daten zu einem Objekt gehören.
Ein klarer Nachteil ist bei uns, dass das meiste über ids referenziert wird und nur wenig wirklich verschachtelt ist. Zwar bringt eine Weapon ihren item\_type und item\_effect direkt mit, aber Player, Item, Region und Enemy zeigen größtenteils nur über ids aufeinander. Dadurch nutzen wir die eigentliche Stärke des Modells kaum und haben am Ende vor allem viele einzelne Dokumente, die sich gegenseitig referenzieren.
\subsection{Vor- und Nachteile des Graph-Modells} \subsection{Vor- und Nachteile des Graph-Modells}
% Vorteil: Genial, um Beziehungen abzufragen (z.B. Welcher Spieler trägt welches Item, das von welchem Boss droppt?). Nachteil: Für pures Live-Streaming von Koordinaten eher überdimensioniert. % Vorteil: Genial, um Beziehungen abzufragen (z.B. Welcher Spieler trägt welches Item, das von welchem Boss droppt?). Nachteil: Für pures Live-Streaming von Koordinaten eher überdimensioniert.
% Siehe Dokumenatation der Datenmodellierung % Siehe Dokumenatation der Datenmodellierung
Ein klarer Vorteil ist, dass sich Beziehungen sehr leicht abfragen lassen.
Wir können zum Beispiel direkt verfolgen, welcher Player welche Weapon trägt oder welches Item ein Enemy fallen lässt,
ohne die Verbindungen umständlich selbst zusammenzubauen.
Ein klarer Nachteil ist, dass Neo4j für unseren Fall überdimensioniert ist.
Bei uns geht es vor allem darum, die Daten des Player schnell zu schreiben und wieder auszulesen, und nicht darum, ständig tiefe Beziehungen abzufragen.
Für dieses einfache Schreiben und Lesen bringt der Graph mehr Aufwand mit, als er uns am Ende Vorteil bringt.
\newpage \newpage
% \section{Bau der app bis zur Endpräsi} % \section{Bau der app bis zur Endpräsi}
@ -217,5 +341,9 @@ Anhand dieses Systems bilden wir die Schlüssel wie folgt ab:
\section{Fazit} \section{Fazit}
% Mehr coole sachen die wir gelernt haben. % Mehr coole sachen die wir gelernt haben.
% Warum wir uns fuer dieses Datenbankmodell entschieden haben. % Warum wir uns fuer dieses Datenbankmodell entschieden haben.
Wir haben die gleichen Daten aus unserem ER-Modell in drei Datenbanken abgebildet und dabei gesehen,
wie verschieden das aussieht. In Redis haben wir alles über Keys und Hash Maps abgelegt und kommen so direkt an ein einzelnes Objekt. In MongoDB liegt jede Entität als Dokument in ihrer Collection, und die Weapon bringt ihren item\_type und item\_effect gleich mit. In Neo4j ist jede Entität ein Knoten und die Verbindungen aus dem ER-Modell werden zu Kanten, also zum Beispiel has\_equipped oder drops. So konnten wir gut vergleichen, was jedes Modell bei unseren Daten gut kann und was eher umständlich ist.
Für Ringstats fällt unsere Wahl auf das Key-Value-Modell mit Redis.
Der Grund ist einfach: Bei uns geht es vor allem darum, die Daten des Player laufend zu schreiben und sofort wieder auszulesen, im Spiel und im Browser. Genau dafür ist Redis gemacht. Über die Keys kommen wir direkt an ein Objekt und müssen nicht lange suchen. Die komplexen Abfragen, bei denen MongoDB oder Neo4j stark wären, brauchen wir kaum, und unsere Daten sind ohnehin nicht tief verschachtelt. Deshalb passt die schnelle und einfache Lösung am besten zu dem, was Ringstats im Kern macht.
\end{document} \end{document}

View File

@ -6,10 +6,10 @@
\contentsline {subsection}{\numberline {2.1}Das konzeptionelle ER-Modell}{3}{subsection.2.1}% \contentsline {subsection}{\numberline {2.1}Das konzeptionelle ER-Modell}{3}{subsection.2.1}%
\contentsline {subsection}{\numberline {2.2}Key-Value-Modellierung}{4}{subsection.2.2}% \contentsline {subsection}{\numberline {2.2}Key-Value-Modellierung}{4}{subsection.2.2}%
\contentsline {subsection}{\numberline {2.3}Dokumentenorientierte Modellierung}{5}{subsection.2.3}% \contentsline {subsection}{\numberline {2.3}Dokumentenorientierte Modellierung}{5}{subsection.2.3}%
\contentsline {subsection}{\numberline {2.4}Graph-Datenbank-Modellierung}{6}{subsection.2.4}% \contentsline {subsection}{\numberline {2.4}Graph-Datenbank-Modellierung}{7}{subsection.2.4}%
\contentsline {section}{\numberline {3}Vergleich der Datenmodellierung}{7}{section.3}% \contentsline {section}{\numberline {3}Vergleich der Datenmodellierung}{8}{section.3}%
\contentsline {subsection}{\numberline {3.1}Vor- und Nachteile des Key-Value-Modells}{7}{subsection.3.1}% \contentsline {subsection}{\numberline {3.1}Vor- und Nachteile des Key-Value-Modells}{8}{subsection.3.1}%
\contentsline {subsection}{\numberline {3.2}Vor- und Nachteile des dokumentenorientierten Modells}{7}{subsection.3.2}% \contentsline {subsection}{\numberline {3.2}Vor- und Nachteile des dokumentenorientierten Modells}{8}{subsection.3.2}%
\contentsline {subsection}{\numberline {3.3}Vor- und Nachteile des Graph-Modells}{7}{subsection.3.3}% \contentsline {subsection}{\numberline {3.3}Vor- und Nachteile des Graph-Modells}{8}{subsection.3.3}%
\contentsline {section}{\numberline {4}Fazit}{8}{section.4}% \contentsline {section}{\numberline {4}Fazit}{9}{section.4}%
\providecommand \tocbasic@end@toc@file {}\tocbasic@end@toc@file \providecommand \tocbasic@end@toc@file {}\tocbasic@end@toc@file

View File

@ -8,36 +8,42 @@
\providecommand\HyField@AuxAddToCoFields[2]{} \providecommand\HyField@AuxAddToCoFields[2]{}
\providecommand\BKM@entry[2]{} \providecommand\BKM@entry[2]{}
\babel@aux{ngerman}{} \babel@aux{ngerman}{}
\BKM@entry{id=1,dest={73656374696F6E2E31},srcline={31}}{5C3337365C3337375C303030415C3030306E5C303030775C303030655C3030306E5C303030645C303030755C3030306E5C303030675C303030735C303030735C3030307A5C303030655C3030306E5C303030615C303030725C303030695C3030306F} \BKM@entry{id=1,dest={73656374696F6E2E31},srcline={32}}{5C3337365C3337375C303030415C3030306E5C303030775C303030655C3030306E5C303030645C303030755C3030306E5C303030675C303030735C303030735C3030307A5C303030655C3030306E5C303030615C303030725C303030695C3030306F}
\BKM@entry{id=2,dest={73756273656374696F6E2E312E31},srcline={42}}{5C3337365C3337375C303030505C303030725C3030306F5C3030306A5C303030655C3030306B5C303030745C303030695C303030645C303030655C303030655C3030305C3034305C303030755C3030306E5C303030645C3030305C3034305C3030305A5C303030695C303030655C3030306C5C303030735C303030655C303030745C3030307A5C303030755C3030306E5C30303067} \BKM@entry{id=2,dest={73756273656374696F6E2E312E31},srcline={43}}{5C3337365C3337375C303030505C303030725C3030306F5C3030306A5C303030655C3030306B5C303030745C303030695C303030645C303030655C303030655C3030305C3034305C303030755C3030306E5C303030645C3030305C3034305C3030305A5C303030695C303030655C3030306C5C303030735C303030655C303030745C3030307A5C303030755C3030306E5C30303067}
\BKM@entry{id=3,dest={73756273656374696F6E2E312E32},srcline={49}}{5C3337365C3337375C3030304B5C303030655C303030725C3030306E5C303030665C303030755C3030306E5C3030306B5C303030745C303030695C3030306F5C3030306E5C303030655C3030306E5C3030305C3034305C303030755C3030306E5C303030645C3030305C3034305C303030415C3030306E5C303030775C303030655C3030306E5C303030645C303030755C3030306E5C303030675C303030735C303030665C3030305C3334345C3030306C5C3030306C5C30303065} \BKM@entry{id=3,dest={73756273656374696F6E2E312E32},srcline={50}}{5C3337365C3337375C3030304B5C303030655C303030725C3030306E5C303030665C303030755C3030306E5C3030306B5C303030745C303030695C3030306F5C3030306E5C303030655C3030306E5C3030305C3034305C303030755C3030306E5C303030645C3030305C3034305C303030415C3030306E5C303030775C303030655C3030306E5C303030645C303030755C3030306E5C303030675C303030735C303030665C3030305C3334345C3030306C5C3030306C5C30303065}
\@writefile{toc}{\contentsline {section}{\numberline {1}Anwendungsszenario}{2}{section.1}\protected@file@percent } \@writefile{toc}{\contentsline {section}{\numberline {1}Anwendungsszenario}{2}{section.1}\protected@file@percent }
\@writefile{toc}{\contentsline {subsection}{\numberline {1.1}Projektidee und Zielsetzung}{2}{subsection.1.1}\protected@file@percent } \@writefile{toc}{\contentsline {subsection}{\numberline {1.1}Projektidee und Zielsetzung}{2}{subsection.1.1}\protected@file@percent }
\@writefile{toc}{\contentsline {subsection}{\numberline {1.2}Kernfunktionen und Anwendungsfälle}{2}{subsection.1.2}\protected@file@percent } \@writefile{toc}{\contentsline {subsection}{\numberline {1.2}Kernfunktionen und Anwendungsfälle}{2}{subsection.1.2}\protected@file@percent }
\BKM@entry{id=4,dest={73656374696F6E2E32},srcline={71}}{5C3337365C3337375C303030445C3030306F5C3030306B5C303030755C3030306D5C303030655C3030306E5C303030745C303030615C303030745C303030695C3030306F5C3030306E5C3030305C3034305C303030645C303030655C303030725C3030305C3034305C303030445C303030615C303030745C303030655C3030306E5C3030306D5C3030306F5C303030645C303030655C3030306C5C3030306C5C303030695C303030655C303030725C303030755C3030306E5C30303067} \BKM@entry{id=4,dest={73656374696F6E2E32},srcline={72}}{5C3337365C3337375C303030445C3030306F5C3030306B5C303030755C3030306D5C303030655C3030306E5C303030745C303030615C303030745C303030695C3030306F5C3030306E5C3030305C3034305C303030645C303030655C303030725C3030305C3034305C303030445C303030615C303030745C303030655C3030306E5C3030306D5C3030306F5C303030645C303030655C3030306C5C3030306C5C303030695C303030655C303030725C303030755C3030306E5C30303067}
\BKM@entry{id=5,dest={73756273656374696F6E2E322E31},srcline={74}}{5C3337365C3337375C303030445C303030615C303030735C3030305C3034305C3030306B5C3030306F5C3030306E5C3030307A5C303030655C303030705C303030745C303030695C3030306F5C3030306E5C303030655C3030306C5C3030306C5C303030655C3030305C3034305C303030455C303030525C3030302D5C3030304D5C3030306F5C303030645C303030655C3030306C5C3030306C} \BKM@entry{id=5,dest={73756273656374696F6E2E322E31},srcline={75}}{5C3337365C3337375C303030445C303030615C303030735C3030305C3034305C3030306B5C3030306F5C3030306E5C3030307A5C303030655C303030705C303030745C303030695C3030306F5C3030306E5C303030655C3030306C5C3030306C5C303030655C3030305C3034305C303030455C303030525C3030302D5C3030304D5C3030306F5C303030645C303030655C3030306C5C3030306C}
\@writefile{toc}{\contentsline {section}{\numberline {2}Dokumentation der Datenmodellierung}{3}{section.2}\protected@file@percent } \@writefile{toc}{\contentsline {section}{\numberline {2}Dokumentation der Datenmodellierung}{3}{section.2}\protected@file@percent }
\@writefile{toc}{\contentsline {subsection}{\numberline {2.1}Das konzeptionelle ER-Modell}{3}{subsection.2.1}\protected@file@percent } \@writefile{toc}{\contentsline {subsection}{\numberline {2.1}Das konzeptionelle ER-Modell}{3}{subsection.2.1}\protected@file@percent }
\@writefile{lof}{\contentsline {figure}{\numberline {1}{\ignorespaces Konzeptionelles ER-Modell}}{3}{figure.1}\protected@file@percent } \@writefile{lof}{\contentsline {figure}{\numberline {1}{\ignorespaces Konzeptionelles ER-Modell}}{3}{figure.1}\protected@file@percent }
\newlabel{fig:er-modell}{{1}{3}{Konzeptionelles ER-Modell}{figure.1}{}} \newlabel{fig:er-modell}{{1}{3}{Konzeptionelles ER-Modell}{figure.1}{}}
\BKM@entry{id=6,dest={73756273656374696F6E2E322E32},srcline={93}}{5C3337365C3337375C3030304B5C303030655C303030795C3030302D5C303030565C303030615C3030306C5C303030755C303030655C3030302D5C3030304D5C3030306F5C303030645C303030655C3030306C5C3030306C5C303030695C303030655C303030725C303030755C3030306E5C30303067} \BKM@entry{id=6,dest={73756273656374696F6E2E322E32},srcline={94}}{5C3337365C3337375C3030304B5C303030655C303030795C3030302D5C303030565C303030615C3030306C5C303030755C303030655C3030302D5C3030304D5C3030306F5C303030645C303030655C3030306C5C3030306C5C303030695C303030655C303030725C303030755C3030306E5C30303067}
\@writefile{toc}{\contentsline {subsection}{\numberline {2.2}Key-Value-Modellierung}{4}{subsection.2.2}\protected@file@percent } \@writefile{toc}{\contentsline {subsection}{\numberline {2.2}Key-Value-Modellierung}{4}{subsection.2.2}\protected@file@percent }
\@writefile{lot}{\contentsline {table}{\numberline {1}{\ignorespaces Übersicht der Schlüsselstrukturen in Redis}}{4}{table.1}\protected@file@percent } \@writefile{lot}{\contentsline {table}{\numberline {1}{\ignorespaces Übersicht der Schlüsselstrukturen in Redis}}{4}{table.1}\protected@file@percent }
\BKM@entry{id=7,dest={73756273656374696F6E2E322E33},srcline={188}}{5C3337365C3337375C303030445C3030306F5C3030306B5C303030755C3030306D5C303030655C3030306E5C303030745C303030655C3030306E5C3030306F5C303030725C303030695C303030655C3030306E5C303030745C303030695C303030655C303030725C303030745C303030655C3030305C3034305C3030304D5C3030306F5C303030645C303030655C3030306C5C3030306C5C303030695C303030655C303030725C303030755C3030306E5C30303067} \BKM@entry{id=7,dest={73756273656374696F6E2E322E33},srcline={188}}{5C3337365C3337375C303030445C3030306F5C3030306B5C303030755C3030306D5C303030655C3030306E5C303030745C303030655C3030306E5C3030306F5C303030725C303030695C303030655C3030306E5C303030745C303030695C303030655C303030725C303030745C303030655C3030305C3034305C3030304D5C3030306F5C303030645C303030655C3030306C5C3030306C5C303030695C303030655C303030725C303030755C3030306E5C30303067}
\@writefile{toc}{\contentsline {subsection}{\numberline {2.3}Dokumentenorientierte Modellierung}{5}{subsection.2.3}\protected@file@percent } \@writefile{toc}{\contentsline {subsection}{\numberline {2.3}Dokumentenorientierte Modellierung}{5}{subsection.2.3}\protected@file@percent }
\BKM@entry{id=8,dest={73756273656374696F6E2E322E34},srcline={192}}{5C3337365C3337375C303030475C303030725C303030615C303030705C303030685C3030302D5C303030445C303030615C303030745C303030655C3030306E5C303030625C303030615C3030306E5C3030306B5C3030302D5C3030304D5C3030306F5C303030645C303030655C3030306C5C3030306C5C303030695C303030655C303030725C303030755C3030306E5C30303067} \BKM@entry{id=8,dest={73756273656374696F6E2E322E34},srcline={262}}{5C3337365C3337375C303030475C303030725C303030615C303030705C303030685C3030302D5C303030445C303030615C303030745C303030655C3030306E5C303030625C303030615C3030306E5C3030306B5C3030302D5C3030304D5C3030306F5C303030645C303030655C3030306C5C3030306C5C303030695C303030655C303030725C303030755C3030306E5C30303067}
\@writefile{toc}{\contentsline {subsection}{\numberline {2.4}Graph-Datenbank-Modellierung}{6}{subsection.2.4}\protected@file@percent } \@writefile{toc}{\contentsline {subsection}{\numberline {2.4}Graph-Datenbank-Modellierung}{7}{subsection.2.4}\protected@file@percent }
\BKM@entry{id=9,dest={73656374696F6E2E33},srcline={202}}{5C3337365C3337375C303030565C303030655C303030725C303030675C3030306C5C303030655C303030695C303030635C303030685C3030305C3034305C303030645C303030655C303030725C3030305C3034305C303030445C303030615C303030745C303030655C3030306E5C3030306D5C3030306F5C303030645C303030655C3030306C5C3030306C5C303030695C303030655C303030725C303030755C3030306E5C30303067} \@writefile{tdo}{\contentsline {todo}{komplett pruefen ob wir das richtig verstanden haben}{7}{section*.1}\protected@file@percent }
\BKM@entry{id=10,dest={73756273656374696F6E2E332E31},srcline={203}}{5C3337365C3337375C303030565C3030306F5C303030725C3030302D5C3030305C3034305C303030755C3030306E5C303030645C3030305C3034305C3030304E5C303030615C303030635C303030685C303030745C303030655C303030695C3030306C5C303030655C3030305C3034305C303030645C303030655C303030735C3030305C3034305C3030304B5C303030655C303030795C3030302D5C303030565C303030615C3030306C5C303030755C303030655C3030302D5C3030304D5C3030306F5C303030645C303030655C3030306C5C3030306C5C30303073} \pgfsyspdfmark {pgfid1}{4894785}{49725591}
\BKM@entry{id=11,dest={73756273656374696F6E2E332E32},srcline={206}}{5C3337365C3337375C303030565C3030306F5C303030725C3030302D5C3030305C3034305C303030755C3030306E5C303030645C3030305C3034305C3030304E5C303030615C303030635C303030685C303030745C303030655C303030695C3030306C5C303030655C3030305C3034305C303030645C303030655C303030735C3030305C3034305C303030645C3030306F5C3030306B5C303030755C3030306D5C303030655C3030306E5C303030745C303030655C3030306E5C3030306F5C303030725C303030695C303030655C3030306E5C303030745C303030695C303030655C303030725C303030745C303030655C3030306E5C3030305C3034305C3030304D5C3030306F5C303030645C303030655C3030306C5C3030306C5C30303073} \pgfsyspdfmark {pgfid4}{36720195}{49742517}
\BKM@entry{id=12,dest={73756273656374696F6E2E332E33},srcline={209}}{5C3337365C3337375C303030565C3030306F5C303030725C3030302D5C3030305C3034305C303030755C3030306E5C303030645C3030305C3034305C3030304E5C303030615C303030635C303030685C303030745C303030655C303030695C3030306C5C303030655C3030305C3034305C303030645C303030655C303030735C3030305C3034305C303030475C303030725C303030615C303030705C303030685C3030302D5C3030304D5C3030306F5C303030645C303030655C3030306C5C3030306C5C30303073} \pgfsyspdfmark {pgfid5}{38335406}{49471701}
\@writefile{toc}{\contentsline {section}{\numberline {3}Vergleich der Datenmodellierung}{7}{section.3}\protected@file@percent } \@writefile{lot}{\contentsline {table}{\numberline {2}{\ignorespaces Übersicht der Knoten in Neo4j}}{7}{table.2}\protected@file@percent }
\@writefile{toc}{\contentsline {subsection}{\numberline {3.1}Vor- und Nachteile des Key-Value-Modells}{7}{subsection.3.1}\protected@file@percent } \@writefile{lot}{\contentsline {table}{\numberline {3}{\ignorespaces Übersicht der Kanten in Neo4j}}{7}{table.3}\protected@file@percent }
\@writefile{toc}{\contentsline {subsection}{\numberline {3.2}Vor- und Nachteile des dokumentenorientierten Modells}{7}{subsection.3.2}\protected@file@percent } \BKM@entry{id=9,dest={73656374696F6E2E33},srcline={313}}{5C3337365C3337375C303030565C303030655C303030725C303030675C3030306C5C303030655C303030695C303030635C303030685C3030305C3034305C303030645C303030655C303030725C3030305C3034305C303030445C303030615C303030745C303030655C3030306E5C3030306D5C3030306F5C303030645C303030655C3030306C5C3030306C5C303030695C303030655C303030725C303030755C3030306E5C30303067}
\@writefile{toc}{\contentsline {subsection}{\numberline {3.3}Vor- und Nachteile des Graph-Modells}{7}{subsection.3.3}\protected@file@percent } \BKM@entry{id=10,dest={73756273656374696F6E2E332E31},srcline={314}}{5C3337365C3337375C303030565C3030306F5C303030725C3030302D5C3030305C3034305C303030755C3030306E5C303030645C3030305C3034305C3030304E5C303030615C303030635C303030685C303030745C303030655C303030695C3030306C5C303030655C3030305C3034305C303030645C303030655C303030735C3030305C3034305C3030304B5C303030655C303030795C3030302D5C303030565C303030615C3030306C5C303030755C303030655C3030302D5C3030304D5C3030306F5C303030645C303030655C3030306C5C3030306C5C30303073}
\BKM@entry{id=13,dest={73656374696F6E2E34},srcline={217}}{5C3337365C3337375C303030465C303030615C3030307A5C303030695C30303074} \BKM@entry{id=11,dest={73756273656374696F6E2E332E32},srcline={320}}{5C3337365C3337375C303030565C3030306F5C303030725C3030302D5C3030305C3034305C303030755C3030306E5C303030645C3030305C3034305C3030304E5C303030615C303030635C303030685C303030745C303030655C303030695C3030306C5C303030655C3030305C3034305C303030645C303030655C303030735C3030305C3034305C303030645C3030306F5C3030306B5C303030755C3030306D5C303030655C3030306E5C303030745C303030655C3030306E5C3030306F5C303030725C303030695C303030655C3030306E5C303030745C303030695C303030655C303030725C303030745C303030655C3030306E5C3030305C3034305C3030304D5C3030306F5C303030645C303030655C3030306C5C3030306C5C30303073}
\@writefile{toc}{\contentsline {section}{\numberline {4}Fazit}{8}{section.4}\protected@file@percent } \BKM@entry{id=12,dest={73756273656374696F6E2E332E33},srcline={326}}{5C3337365C3337375C303030565C3030306F5C303030725C3030302D5C3030305C3034305C303030755C3030306E5C303030645C3030305C3034305C3030304E5C303030615C303030635C303030685C303030745C303030655C303030695C3030306C5C303030655C3030305C3034305C303030645C303030655C303030735C3030305C3034305C303030475C303030725C303030615C303030705C303030685C3030302D5C3030304D5C3030306F5C303030645C303030655C3030306C5C3030306C5C30303073}
\@writefile{toc}{\contentsline {section}{\numberline {3}Vergleich der Datenmodellierung}{8}{section.3}\protected@file@percent }
\@writefile{toc}{\contentsline {subsection}{\numberline {3.1}Vor- und Nachteile des Key-Value-Modells}{8}{subsection.3.1}\protected@file@percent }
\@writefile{toc}{\contentsline {subsection}{\numberline {3.2}Vor- und Nachteile des dokumentenorientierten Modells}{8}{subsection.3.2}\protected@file@percent }
\@writefile{toc}{\contentsline {subsection}{\numberline {3.3}Vor- und Nachteile des Graph-Modells}{8}{subsection.3.3}\protected@file@percent }
\BKM@entry{id=13,dest={73656374696F6E2E34},srcline={341}}{5C3337365C3337375C303030465C303030615C3030307A5C303030695C30303074}
\@writefile{toc}{\contentsline {section}{\numberline {4}Fazit}{9}{section.4}\protected@file@percent }
\global\@namedef{scr@dte@section@lastmaxnumwidth}{12.14694pt} \global\@namedef{scr@dte@section@lastmaxnumwidth}{12.14694pt}
\global\@namedef{scr@dte@subsection@lastmaxnumwidth}{19.70898pt} \global\@namedef{scr@dte@subsection@lastmaxnumwidth}{19.70898pt}
\@writefile{toc}{\providecommand\tocbasic@end@toc@file{}\tocbasic@end@toc@file} \@writefile{toc}{\providecommand\tocbasic@end@toc@file{}\tocbasic@end@toc@file}
\gdef \@abspage@last{8} \gdef \@abspage@last{9}

View File

@ -1,5 +1,5 @@
# Fdb version 4 # Fdb version 4
["pdflatex"] 1780224032.29444 "Ringstats_Dokumentation.tex" "build/Ringstats_Dokumentation.pdf" "Ringstats_Dokumentation" 1780224033.33713 0 ["pdflatex"] 1780228396.07999 "Ringstats_Dokumentation.tex" "build/Ringstats_Dokumentation.pdf" "Ringstats_Dokumentation" 1780228397.37315 0
"/usr/share/texmf-dist/fonts/enc/dvips/cm-super/cm-super-t1.enc" 1775415801 2971 def0b6c1f0b107b3b936def894055589 "" "/usr/share/texmf-dist/fonts/enc/dvips/cm-super/cm-super-t1.enc" 1775415801 2971 def0b6c1f0b107b3b936def894055589 ""
"/usr/share/texmf-dist/fonts/map/fontname/texfonts.map" 1775415801 3524 cb3e574dea2d1052e39280babc910dc8 "" "/usr/share/texmf-dist/fonts/map/fontname/texfonts.map" 1775415801 3524 cb3e574dea2d1052e39280babc910dc8 ""
"/usr/share/texmf-dist/fonts/tfm/jknappen/ec/ecbx1200.tfm" 1775415801 3584 402da0b29eafbad07963b1224b222f18 "" "/usr/share/texmf-dist/fonts/tfm/jknappen/ec/ecbx1200.tfm" 1775415801 3584 402da0b29eafbad07963b1224b222f18 ""
@ -47,9 +47,65 @@
"/usr/share/texmf-dist/tex/generic/ltxcmds/ltxcmds.sty" 1775415801 17865 1a9bd36b4f98178fa551aca822290953 "" "/usr/share/texmf-dist/tex/generic/ltxcmds/ltxcmds.sty" 1775415801 17865 1a9bd36b4f98178fa551aca822290953 ""
"/usr/share/texmf-dist/tex/generic/pdfescape/pdfescape.sty" 1775415801 19007 15924f7228aca6c6d184b115f4baa231 "" "/usr/share/texmf-dist/tex/generic/pdfescape/pdfescape.sty" 1775415801 19007 15924f7228aca6c6d184b115f4baa231 ""
"/usr/share/texmf-dist/tex/generic/pdftexcmds/pdftexcmds.sty" 1775415801 20089 80423eac55aa175305d35b49e04fe23b "" "/usr/share/texmf-dist/tex/generic/pdftexcmds/pdftexcmds.sty" 1775415801 20089 80423eac55aa175305d35b49e04fe23b ""
"/usr/share/texmf-dist/tex/generic/pgf/basiclayer/pgfcore.code.tex" 1775415801 1016 1c2b89187d12a2768764b83b4945667c ""
"/usr/share/texmf-dist/tex/generic/pgf/basiclayer/pgfcorearrows.code.tex" 1775415801 43906 06058dc09064474303f3b5dd62d982c0 ""
"/usr/share/texmf-dist/tex/generic/pgf/basiclayer/pgfcoreexternal.code.tex" 1775415801 19324 f4e4c6403dd0f1605fd20ed22fa79dea ""
"/usr/share/texmf-dist/tex/generic/pgf/basiclayer/pgfcoregraphicstate.code.tex" 1775415801 6038 ccb406740cc3f03bbfb58ad504fe8c27 ""
"/usr/share/texmf-dist/tex/generic/pgf/basiclayer/pgfcoreimage.code.tex" 1775415801 6911 f6d4cf5a3fef5cc879d668b810e82868 ""
"/usr/share/texmf-dist/tex/generic/pgf/basiclayer/pgfcorelayers.code.tex" 1775415801 4883 42daaf41e27c3735286e23e48d2d7af9 ""
"/usr/share/texmf-dist/tex/generic/pgf/basiclayer/pgfcoreobjects.code.tex" 1775415801 2544 8c06d2a7f0f469616ac9e13db6d2f842 ""
"/usr/share/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepathconstruct.code.tex" 1775415801 44195 5e390c414de027626ca5e2df888fa68d ""
"/usr/share/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepathprocessing.code.tex" 1775415801 17311 e001219836e75b16c4af9a112785f30a ""
"/usr/share/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepathusage.code.tex" 1775415801 21302 788a79944eb22192a4929e46963a3067 ""
"/usr/share/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepatterns.code.tex" 1775415801 9691 3d42d89522f4650c2f3dc616ca2b925e ""
"/usr/share/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepoints.code.tex" 1775415801 33335 dd1fa4814d4e51f18be97d88bf0da60c ""
"/usr/share/texmf-dist/tex/generic/pgf/basiclayer/pgfcorequick.code.tex" 1775415801 2965 4c2b1f4e0826925746439038172e5d6f ""
"/usr/share/texmf-dist/tex/generic/pgf/basiclayer/pgfcorerdf.code.tex" 1775415801 5196 2cc249e0ee7e03da5f5f6589257b1e5b ""
"/usr/share/texmf-dist/tex/generic/pgf/basiclayer/pgfcorescopes.code.tex" 1775415801 20821 7579108c1e9363e61a0b1584778804aa ""
"/usr/share/texmf-dist/tex/generic/pgf/basiclayer/pgfcoreshade.code.tex" 1775415801 35251 5ff5b5b310c5ac882610e0ccc99095e7 ""
"/usr/share/texmf-dist/tex/generic/pgf/basiclayer/pgfcoretransformations.code.tex" 1775415801 22012 81b34a0aa8fa1a6158cc6220b00e4f10 ""
"/usr/share/texmf-dist/tex/generic/pgf/basiclayer/pgfcoretransparency.code.tex" 1775415801 8893 e851de2175338fdf7c17f3e091d94618 ""
"/usr/share/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrarypositioning.code.tex" 1775415801 3937 3f208572dd82c71103831da976d74f1a ""
"/usr/share/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrarytopaths.code.tex" 1775415801 11518 738408f795261b70ce8dd47459171309 ""
"/usr/share/texmf-dist/tex/generic/pgf/frontendlayer/tikz/tikz.code.tex" 1775415801 186859 0445d9a41a87648b4723e04765409541 ""
"/usr/share/texmf-dist/tex/generic/pgf/libraries/pgflibraryplothandlers.code.tex" 1775415801 32995 ac577023e12c0e4bd8aa420b2e852d1a ""
"/usr/share/texmf-dist/tex/generic/pgf/math/pgfint.code.tex" 1775415801 3063 8c415c68a0f3394e45cfeca0b65f6ee6 ""
"/usr/share/texmf-dist/tex/generic/pgf/math/pgfmath.code.tex" 1775415801 949 cea70942e7b7eddabfb3186befada2e6 ""
"/usr/share/texmf-dist/tex/generic/pgf/math/pgfmathcalc.code.tex" 1775415801 13272 7777a64fbd07131a37d276b131c17ee2 ""
"/usr/share/texmf-dist/tex/generic/pgf/math/pgfmathfloat.code.tex" 1775415801 104717 9b2393fbf004a0ce7fa688dbce423848 ""
"/usr/share/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.base.code.tex" 1775415801 10165 cec5fa73d49da442e56efc2d605ef154 ""
"/usr/share/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.basic.code.tex" 1775415801 28178 41c17713108e0795aac6fef3d275fbca ""
"/usr/share/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.code.tex" 1775415801 9649 85779d3d8d573bfd2cd4137ba8202e60 ""
"/usr/share/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.comparison.code.tex" 1775415801 3865 ac538ab80c5cf82b345016e474786549 ""
"/usr/share/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.integerarithmetics.code.tex" 1775415801 3177 27d85c44fbfe09ff3b2cf2879e3ea434 ""
"/usr/share/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.misc.code.tex" 1775415801 11024 0179538121bc2dba172013a3ef89519f ""
"/usr/share/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.random.code.tex" 1775415801 7889 d0e193914ddc35444510f5b569e26b3d ""
"/usr/share/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.round.code.tex" 1775415801 3379 781797a101f647bab82741a99944a229 ""
"/usr/share/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.trigonometric.code.tex" 1775415801 92405 f515f31275db273f97b9d8f52e1b0736 ""
"/usr/share/texmf-dist/tex/generic/pgf/math/pgfmathparser.code.tex" 1775415801 37733 0fe471ac50324723cf6ab693e5c0916c ""
"/usr/share/texmf-dist/tex/generic/pgf/math/pgfmathutil.code.tex" 1775415801 8471 c2883569d03f69e8e1cabfef4999cfd7 ""
"/usr/share/texmf-dist/tex/generic/pgf/modules/pgfmodulematrix.code.tex" 1775415801 21211 1e73ec76bd73964d84197cc3d2685b01 ""
"/usr/share/texmf-dist/tex/generic/pgf/modules/pgfmoduleplot.code.tex" 1775415801 16218 98503859deba28f16813029fd927ed8e ""
"/usr/share/texmf-dist/tex/generic/pgf/modules/pgfmoduleshapes.code.tex" 1775415801 44792 c4a5a3feba777682c1d16420f2f01a5b ""
"/usr/share/texmf-dist/tex/generic/pgf/pgf.revision.tex" 1775415801 116 760d50e6a16543bf6edb475635793673 ""
"/usr/share/texmf-dist/tex/generic/pgf/systemlayer/pgf.cfg" 1775415801 926 2963ea0dcf6cc6c0a770b69ec46a477b ""
"/usr/share/texmf-dist/tex/generic/pgf/systemlayer/pgfsys-common-pdf.def" 1775415801 5542 32f75a31ea6c3a7e1148cd6d5e93dbb7 ""
"/usr/share/texmf-dist/tex/generic/pgf/systemlayer/pgfsys-pdftex.def" 1775415801 12612 7774ba67bfd72e593c4436c2de6201e3 ""
"/usr/share/texmf-dist/tex/generic/pgf/systemlayer/pgfsys.code.tex" 1775415801 61355 39904e7552da3800a6838d41440943a5 ""
"/usr/share/texmf-dist/tex/generic/pgf/systemlayer/pgfsysprotocol.code.tex" 1775415801 1896 b8e0ca0ac371d74c0ca05583f6313c91 ""
"/usr/share/texmf-dist/tex/generic/pgf/systemlayer/pgfsyssoftpath.code.tex" 1775415801 7778 53c8b5623d80238f6a20aa1df1868e63 ""
"/usr/share/texmf-dist/tex/generic/pgf/utilities/pgffor.code.tex" 1775415801 24033 d8893a1ec4d1bfa101b172754743d340 ""
"/usr/share/texmf-dist/tex/generic/pgf/utilities/pgfkeys.code.tex" 1775415801 39784 414c54e866ebab4b801e2ad81d9b21d8 ""
"/usr/share/texmf-dist/tex/generic/pgf/utilities/pgfkeyslibraryfiltered.code.tex" 1775415801 37436 50ba7794827e363eec9ea3467c15c6d7 ""
"/usr/share/texmf-dist/tex/generic/pgf/utilities/pgfrcs.code.tex" 1775415801 4385 510565c2f07998c8a0e14f0ec07ff23c ""
"/usr/share/texmf-dist/tex/generic/pgf/utilities/pgfutil-common.tex" 1775415801 30029 c49ea8f95207c46731469c614daf4e33 ""
"/usr/share/texmf-dist/tex/generic/pgf/utilities/pgfutil-latex.def" 1775415801 7067 11553488d1600cac6a0cfca012fca111 ""
"/usr/share/texmf-dist/tex/generic/stringenc/stringenc.sty" 1775415801 21514 b7557edcee22835ef6b03ede1802dad4 "" "/usr/share/texmf-dist/tex/generic/stringenc/stringenc.sty" 1775415801 21514 b7557edcee22835ef6b03ede1802dad4 ""
"/usr/share/texmf-dist/tex/generic/uniquecounter/uniquecounter.sty" 1775415801 7008 f92eaa0a3872ed622bbf538217cd2ab7 "" "/usr/share/texmf-dist/tex/generic/uniquecounter/uniquecounter.sty" 1775415801 7008 f92eaa0a3872ed622bbf538217cd2ab7 ""
"/usr/share/texmf-dist/tex/generic/xkeyval/xkeyval.tex" 1775415801 19299 c7c03646b32f5a7caaa137673b7e76d2 ""
"/usr/share/texmf-dist/tex/generic/xkeyval/xkvutils.tex" 1775415801 7787 7dfc2f158253fc82fd655393220e6620 ""
"/usr/share/texmf-dist/tex/latex/base/fontenc.sty" 1775415801 5275 6f9d359641b36842524cdb97716ab75f "" "/usr/share/texmf-dist/tex/latex/base/fontenc.sty" 1775415801 5275 6f9d359641b36842524cdb97716ab75f ""
"/usr/share/texmf-dist/tex/latex/base/ifthen.sty" 1775415801 5525 1593ca62a2554dd7423fc8a4e5a82125 ""
"/usr/share/texmf-dist/tex/latex/base/inputenc.sty" 1775415801 5048 0270515b828149155424600fd2d58ac5 "" "/usr/share/texmf-dist/tex/latex/base/inputenc.sty" 1775415801 5048 0270515b828149155424600fd2d58ac5 ""
"/usr/share/texmf-dist/tex/latex/bookmark/bkm-pdftex.def" 1775415801 8818 aa5157b46368efebf023abff55611467 "" "/usr/share/texmf-dist/tex/latex/bookmark/bkm-pdftex.def" 1775415801 8818 aa5157b46368efebf023abff55611467 ""
"/usr/share/texmf-dist/tex/latex/bookmark/bookmark.sty" 1775415801 18245 97e6be180cf07bb6f7008cfdaaecfce5 "" "/usr/share/texmf-dist/tex/latex/bookmark/bookmark.sty" 1775415801 18245 97e6be180cf07bb6f7008cfdaaecfce5 ""
@ -85,16 +141,30 @@
"/usr/share/texmf-dist/tex/latex/kvsetkeys/kvsetkeys.sty" 1775415801 13815 760b0c02f691ea230f5359c4e1de23a7 "" "/usr/share/texmf-dist/tex/latex/kvsetkeys/kvsetkeys.sty" 1775415801 13815 760b0c02f691ea230f5359c4e1de23a7 ""
"/usr/share/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def" 1775415801 30662 bfd6e864f4ffc5018b0e2b6260c3181c "" "/usr/share/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def" 1775415801 30662 bfd6e864f4ffc5018b0e2b6260c3181c ""
"/usr/share/texmf-dist/tex/latex/latexconfig/epstopdf-sys.cfg" 1775415801 678 4792914a8f45be57bb98413425e4c7af "" "/usr/share/texmf-dist/tex/latex/latexconfig/epstopdf-sys.cfg" 1775415801 678 4792914a8f45be57bb98413425e4c7af ""
"/usr/share/texmf-dist/tex/latex/pgf/basiclayer/pgf.sty" 1775415801 1090 bae35ef70b3168089ef166db3e66f5b2 ""
"/usr/share/texmf-dist/tex/latex/pgf/basiclayer/pgfcore.sty" 1775415801 373 00b204b1d7d095b892ad31a7494b0373 ""
"/usr/share/texmf-dist/tex/latex/pgf/compatibility/pgfcomp-version-0-65.sty" 1775415801 21013 f4ff83d25bb56552493b030f27c075ae ""
"/usr/share/texmf-dist/tex/latex/pgf/compatibility/pgfcomp-version-1-18.sty" 1775415801 989 c49c8ae06d96f8b15869da7428047b1e ""
"/usr/share/texmf-dist/tex/latex/pgf/frontendlayer/tikz.sty" 1775415801 339 c2e180022e3afdb99c7d0ea5ce469b7d ""
"/usr/share/texmf-dist/tex/latex/pgf/math/pgfmath.sty" 1775415801 306 c56a323ca5bf9242f54474ced10fca71 ""
"/usr/share/texmf-dist/tex/latex/pgf/systemlayer/pgfsys.sty" 1775415801 443 8c872229db56122037e86bcda49e14f3 ""
"/usr/share/texmf-dist/tex/latex/pgf/utilities/pgffor.sty" 1775415801 348 ee405e64380c11319f0e249fed57e6c5 ""
"/usr/share/texmf-dist/tex/latex/pgf/utilities/pgfkeys.sty" 1775415801 274 5ae372b7df79135d240456a1c6f2cf9a ""
"/usr/share/texmf-dist/tex/latex/pgf/utilities/pgfrcs.sty" 1775415801 325 f9f16d12354225b7dd52a3321f085955 ""
"/usr/share/texmf-dist/tex/latex/refcount/refcount.sty" 1775415801 9878 9e94e8fa600d95f9c7731bb21dfb67a4 "" "/usr/share/texmf-dist/tex/latex/refcount/refcount.sty" 1775415801 9878 9e94e8fa600d95f9c7731bb21dfb67a4 ""
"/usr/share/texmf-dist/tex/latex/rerunfilecheck/rerunfilecheck.sty" 1775415801 9684 a33a14b82ce60d6e77cb9be689d79ee6 "" "/usr/share/texmf-dist/tex/latex/rerunfilecheck/rerunfilecheck.sty" 1775415801 9684 a33a14b82ce60d6e77cb9be689d79ee6 ""
"/usr/share/texmf-dist/tex/latex/todonotes/todonotes.sty" 1775415801 21404 916e19cbd009b6d289c8194b313d3895 ""
"/usr/share/texmf-dist/tex/latex/tools/calc.sty" 1775415801 10374 2ffd4f27c7f90b8a300608069537743c ""
"/usr/share/texmf-dist/tex/latex/url/url.sty" 1775415801 12796 8edb7d69a20b857904dd0ea757c14ec9 "" "/usr/share/texmf-dist/tex/latex/url/url.sty" 1775415801 12796 8edb7d69a20b857904dd0ea757c14ec9 ""
"/usr/share/texmf-dist/tex/latex/xcolor/xcolor.sty" 1775415801 55384 b454dec21c2d9f45ec0b793f0995b992 ""
"/usr/share/texmf-dist/tex/latex/xkeyval/xkeyval.sty" 1775415801 5006 d7e899bb5d9717c7f214e9bc0284de7b ""
"/usr/share/texmf-dist/web2c/texmf.cnf" 1775415801 43569 fd570f2fa160877d211e859f687312ba "" "/usr/share/texmf-dist/web2c/texmf.cnf" 1775415801 43569 fd570f2fa160877d211e859f687312ba ""
"/var/lib/texmf/fonts/map/pdftex/updmap/pdftex.map" 1777228096 5385779 47c0c393a77fd4a098bacfd57d66b88a "" "/var/lib/texmf/fonts/map/pdftex/updmap/pdftex.map" 1777228096 5385779 47c0c393a77fd4a098bacfd57d66b88a ""
"/var/lib/texmf/web2c/pdftex/pdflatex.fmt" 1778762763 3734533 c370cc050c4a9823a1fe1ab265afc57b "" "/var/lib/texmf/web2c/pdftex/pdflatex.fmt" 1778762763 3734533 c370cc050c4a9823a1fe1ab265afc57b ""
"Ringstats_Dokumentation.tex" 1780224029.707 10293 d82a873ee416a02207305d2436394daa "" "Ringstats_Dokumentation.tex" 1780228396.05977 16384 31f8769ea8848522618cb15632898304 ""
"assets/er-modell.png" 1778764597.46144 805989 0b7323ca4b38e6518c24fd9e5684655b "" "assets/er-modell.png" 1778764597.46144 805989 0b7323ca4b38e6518c24fd9e5684655b ""
"build/Ringstats_Dokumentation.aux" 1780224033.30808 7801 512cc0fded801ddd0f27a130c86b6e2b "pdflatex" "build/Ringstats_Dokumentation.aux" 1780228397.3228 8342 614fe975c96718f7f7d764724aa87b20 "pdflatex"
"build/Ringstats_Dokumentation.toc" 1780224033.30908 1305 3462b2bc2852c27ffc939f8273265173 "pdflatex" "build/Ringstats_Dokumentation.toc" 1780228397.3248 1305 1401ae3dd1fbee665ef3e10a49daf4b1 "pdflatex"
(generated) (generated)
"build/Ringstats_Dokumentation.aux" "build/Ringstats_Dokumentation.aux"
"build/Ringstats_Dokumentation.log" "build/Ringstats_Dokumentation.log"

View File

@ -108,6 +108,122 @@ INPUT /usr/share/texmf-dist/tex/latex/rerunfilecheck/rerunfilecheck.sty
INPUT /usr/share/texmf-dist/tex/latex/rerunfilecheck/rerunfilecheck.sty INPUT /usr/share/texmf-dist/tex/latex/rerunfilecheck/rerunfilecheck.sty
INPUT /usr/share/texmf-dist/tex/generic/uniquecounter/uniquecounter.sty INPUT /usr/share/texmf-dist/tex/generic/uniquecounter/uniquecounter.sty
INPUT /usr/share/texmf-dist/tex/generic/uniquecounter/uniquecounter.sty INPUT /usr/share/texmf-dist/tex/generic/uniquecounter/uniquecounter.sty
INPUT /usr/share/texmf-dist/tex/latex/todonotes/todonotes.sty
INPUT /usr/share/texmf-dist/tex/latex/todonotes/todonotes.sty
INPUT /usr/share/texmf-dist/tex/latex/base/ifthen.sty
INPUT /usr/share/texmf-dist/tex/latex/base/ifthen.sty
INPUT /usr/share/texmf-dist/tex/latex/xkeyval/xkeyval.sty
INPUT /usr/share/texmf-dist/tex/latex/xkeyval/xkeyval.sty
INPUT /usr/share/texmf-dist/tex/generic/xkeyval/xkeyval.tex
INPUT /usr/share/texmf-dist/tex/generic/xkeyval/xkvutils.tex
INPUT /usr/share/texmf-dist/tex/latex/xcolor/xcolor.sty
INPUT /usr/share/texmf-dist/tex/latex/xcolor/xcolor.sty
INPUT /usr/share/texmf-dist/tex/latex/graphics-cfg/color.cfg
INPUT /usr/share/texmf-dist/tex/latex/graphics-cfg/color.cfg
INPUT /usr/share/texmf-dist/tex/latex/graphics-cfg/color.cfg
INPUT /usr/share/texmf-dist/tex/latex/graphics/mathcolor.ltx
INPUT /usr/share/texmf-dist/tex/latex/graphics/mathcolor.ltx
INPUT /usr/share/texmf-dist/tex/latex/graphics/mathcolor.ltx
INPUT /usr/share/texmf-dist/tex/latex/pgf/frontendlayer/tikz.sty
INPUT /usr/share/texmf-dist/tex/latex/pgf/frontendlayer/tikz.sty
INPUT /usr/share/texmf-dist/tex/latex/pgf/basiclayer/pgf.sty
INPUT /usr/share/texmf-dist/tex/latex/pgf/basiclayer/pgf.sty
INPUT /usr/share/texmf-dist/tex/latex/pgf/utilities/pgfrcs.sty
INPUT /usr/share/texmf-dist/tex/latex/pgf/utilities/pgfrcs.sty
INPUT /usr/share/texmf-dist/tex/generic/pgf/utilities/pgfutil-common.tex
INPUT /usr/share/texmf-dist/tex/generic/pgf/utilities/pgfutil-latex.def
INPUT /usr/share/texmf-dist/tex/generic/pgf/utilities/pgfrcs.code.tex
INPUT /usr/share/texmf-dist/tex/generic/pgf/utilities/pgfrcs.code.tex
INPUT /usr/share/texmf-dist/tex/generic/pgf/utilities/pgfrcs.code.tex
INPUT /usr/share/texmf-dist/tex/generic/pgf/pgf.revision.tex
INPUT /usr/share/texmf-dist/tex/generic/pgf/pgf.revision.tex
INPUT /usr/share/texmf-dist/tex/latex/pgf/basiclayer/pgfcore.sty
INPUT /usr/share/texmf-dist/tex/latex/pgf/basiclayer/pgfcore.sty
INPUT /usr/share/texmf-dist/tex/latex/pgf/systemlayer/pgfsys.sty
INPUT /usr/share/texmf-dist/tex/latex/pgf/systemlayer/pgfsys.sty
INPUT /usr/share/texmf-dist/tex/generic/pgf/systemlayer/pgfsys.code.tex
INPUT /usr/share/texmf-dist/tex/generic/pgf/systemlayer/pgfsys.code.tex
INPUT /usr/share/texmf-dist/tex/generic/pgf/systemlayer/pgfsys.code.tex
INPUT /usr/share/texmf-dist/tex/generic/pgf/utilities/pgfkeys.code.tex
INPUT /usr/share/texmf-dist/tex/generic/pgf/utilities/pgfkeyslibraryfiltered.code.tex
INPUT /usr/share/texmf-dist/tex/generic/pgf/systemlayer/pgf.cfg
INPUT /usr/share/texmf-dist/tex/generic/pgf/systemlayer/pgfsys-pdftex.def
INPUT /usr/share/texmf-dist/tex/generic/pgf/systemlayer/pgfsys-pdftex.def
INPUT /usr/share/texmf-dist/tex/generic/pgf/systemlayer/pgfsys-common-pdf.def
INPUT /usr/share/texmf-dist/tex/generic/pgf/systemlayer/pgfsyssoftpath.code.tex
INPUT /usr/share/texmf-dist/tex/generic/pgf/systemlayer/pgfsyssoftpath.code.tex
INPUT /usr/share/texmf-dist/tex/generic/pgf/systemlayer/pgfsyssoftpath.code.tex
INPUT /usr/share/texmf-dist/tex/generic/pgf/systemlayer/pgfsysprotocol.code.tex
INPUT /usr/share/texmf-dist/tex/generic/pgf/systemlayer/pgfsysprotocol.code.tex
INPUT /usr/share/texmf-dist/tex/generic/pgf/systemlayer/pgfsysprotocol.code.tex
INPUT /usr/share/texmf-dist/tex/generic/pgf/basiclayer/pgfcore.code.tex
INPUT /usr/share/texmf-dist/tex/generic/pgf/basiclayer/pgfcore.code.tex
INPUT /usr/share/texmf-dist/tex/generic/pgf/basiclayer/pgfcore.code.tex
INPUT /usr/share/texmf-dist/tex/generic/pgf/math/pgfmath.code.tex
INPUT /usr/share/texmf-dist/tex/generic/pgf/math/pgfmathutil.code.tex
INPUT /usr/share/texmf-dist/tex/generic/pgf/math/pgfmathparser.code.tex
INPUT /usr/share/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.code.tex
INPUT /usr/share/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.basic.code.tex
INPUT /usr/share/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.trigonometric.code.tex
INPUT /usr/share/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.random.code.tex
INPUT /usr/share/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.comparison.code.tex
INPUT /usr/share/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.base.code.tex
INPUT /usr/share/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.round.code.tex
INPUT /usr/share/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.misc.code.tex
INPUT /usr/share/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.integerarithmetics.code.tex
INPUT /usr/share/texmf-dist/tex/generic/pgf/math/pgfmathcalc.code.tex
INPUT /usr/share/texmf-dist/tex/generic/pgf/math/pgfmathfloat.code.tex
INPUT /usr/share/texmf-dist/tex/generic/pgf/math/pgfint.code.tex
INPUT /usr/share/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepoints.code.tex
INPUT /usr/share/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepathconstruct.code.tex
INPUT /usr/share/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepathusage.code.tex
INPUT /usr/share/texmf-dist/tex/generic/pgf/basiclayer/pgfcorescopes.code.tex
INPUT /usr/share/texmf-dist/tex/generic/pgf/basiclayer/pgfcoregraphicstate.code.tex
INPUT /usr/share/texmf-dist/tex/generic/pgf/basiclayer/pgfcoretransformations.code.tex
INPUT /usr/share/texmf-dist/tex/generic/pgf/basiclayer/pgfcorequick.code.tex
INPUT /usr/share/texmf-dist/tex/generic/pgf/basiclayer/pgfcoreobjects.code.tex
INPUT /usr/share/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepathprocessing.code.tex
INPUT /usr/share/texmf-dist/tex/generic/pgf/basiclayer/pgfcorearrows.code.tex
INPUT /usr/share/texmf-dist/tex/generic/pgf/basiclayer/pgfcoreshade.code.tex
INPUT /usr/share/texmf-dist/tex/generic/pgf/basiclayer/pgfcoreimage.code.tex
INPUT /usr/share/texmf-dist/tex/generic/pgf/basiclayer/pgfcoreexternal.code.tex
INPUT /usr/share/texmf-dist/tex/generic/pgf/basiclayer/pgfcorelayers.code.tex
INPUT /usr/share/texmf-dist/tex/generic/pgf/basiclayer/pgfcoretransparency.code.tex
INPUT /usr/share/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepatterns.code.tex
INPUT /usr/share/texmf-dist/tex/generic/pgf/basiclayer/pgfcorerdf.code.tex
INPUT /usr/share/texmf-dist/tex/generic/pgf/modules/pgfmoduleshapes.code.tex
INPUT /usr/share/texmf-dist/tex/generic/pgf/modules/pgfmoduleplot.code.tex
INPUT /usr/share/texmf-dist/tex/latex/pgf/compatibility/pgfcomp-version-0-65.sty
INPUT /usr/share/texmf-dist/tex/latex/pgf/compatibility/pgfcomp-version-0-65.sty
INPUT /usr/share/texmf-dist/tex/latex/pgf/compatibility/pgfcomp-version-1-18.sty
INPUT /usr/share/texmf-dist/tex/latex/pgf/compatibility/pgfcomp-version-1-18.sty
INPUT /usr/share/texmf-dist/tex/latex/pgf/utilities/pgffor.sty
INPUT /usr/share/texmf-dist/tex/latex/pgf/utilities/pgffor.sty
INPUT /usr/share/texmf-dist/tex/latex/pgf/utilities/pgfkeys.sty
INPUT /usr/share/texmf-dist/tex/latex/pgf/utilities/pgfkeys.sty
INPUT /usr/share/texmf-dist/tex/generic/pgf/utilities/pgfkeys.code.tex
INPUT /usr/share/texmf-dist/tex/generic/pgf/utilities/pgfkeys.code.tex
INPUT /usr/share/texmf-dist/tex/generic/pgf/utilities/pgfkeys.code.tex
INPUT /usr/share/texmf-dist/tex/latex/pgf/math/pgfmath.sty
INPUT /usr/share/texmf-dist/tex/latex/pgf/math/pgfmath.sty
INPUT /usr/share/texmf-dist/tex/generic/pgf/math/pgfmath.code.tex
INPUT /usr/share/texmf-dist/tex/generic/pgf/math/pgfmath.code.tex
INPUT /usr/share/texmf-dist/tex/generic/pgf/math/pgfmath.code.tex
INPUT /usr/share/texmf-dist/tex/generic/pgf/utilities/pgffor.code.tex
INPUT /usr/share/texmf-dist/tex/generic/pgf/utilities/pgffor.code.tex
INPUT /usr/share/texmf-dist/tex/generic/pgf/utilities/pgffor.code.tex
INPUT /usr/share/texmf-dist/tex/generic/pgf/frontendlayer/tikz/tikz.code.tex
INPUT /usr/share/texmf-dist/tex/generic/pgf/frontendlayer/tikz/tikz.code.tex
INPUT /usr/share/texmf-dist/tex/generic/pgf/frontendlayer/tikz/tikz.code.tex
INPUT /usr/share/texmf-dist/tex/generic/pgf/libraries/pgflibraryplothandlers.code.tex
INPUT /usr/share/texmf-dist/tex/generic/pgf/libraries/pgflibraryplothandlers.code.tex
INPUT /usr/share/texmf-dist/tex/generic/pgf/modules/pgfmodulematrix.code.tex
INPUT /usr/share/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrarytopaths.code.tex
INPUT /usr/share/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrarytopaths.code.tex
INPUT /usr/share/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrarypositioning.code.tex
INPUT /usr/share/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrarypositioning.code.tex
INPUT /usr/share/texmf-dist/tex/latex/tools/calc.sty
INPUT /usr/share/texmf-dist/tex/latex/tools/calc.sty
INPUT /usr/share/texmf-dist/tex/latex/bookmark/bookmark.sty INPUT /usr/share/texmf-dist/tex/latex/bookmark/bookmark.sty
INPUT /usr/share/texmf-dist/tex/latex/bookmark/bookmark.sty INPUT /usr/share/texmf-dist/tex/latex/bookmark/bookmark.sty
INPUT /usr/share/texmf-dist/tex/latex/bookmark/bookmark.sty INPUT /usr/share/texmf-dist/tex/latex/bookmark/bookmark.sty
@ -129,13 +245,6 @@ INPUT /usr/share/texmf-dist/tex/latex/latexconfig/epstopdf-sys.cfg
INPUT /usr/share/texmf-dist/tex/latex/latexconfig/epstopdf-sys.cfg INPUT /usr/share/texmf-dist/tex/latex/latexconfig/epstopdf-sys.cfg
INPUT /usr/share/texmf-dist/tex/latex/latexconfig/epstopdf-sys.cfg INPUT /usr/share/texmf-dist/tex/latex/latexconfig/epstopdf-sys.cfg
INPUT /usr/share/texmf-dist/tex/latex/graphics/color.sty INPUT /usr/share/texmf-dist/tex/latex/graphics/color.sty
INPUT /usr/share/texmf-dist/tex/latex/graphics/color.sty
INPUT /usr/share/texmf-dist/tex/latex/graphics-cfg/color.cfg
INPUT /usr/share/texmf-dist/tex/latex/graphics-cfg/color.cfg
INPUT /usr/share/texmf-dist/tex/latex/graphics-cfg/color.cfg
INPUT /usr/share/texmf-dist/tex/latex/graphics/mathcolor.ltx
INPUT /usr/share/texmf-dist/tex/latex/graphics/mathcolor.ltx
INPUT /usr/share/texmf-dist/tex/latex/graphics/mathcolor.ltx
OUTPUT build/Ringstats_Dokumentation.pdf OUTPUT build/Ringstats_Dokumentation.pdf
INPUT /usr/share/texmf-dist/fonts/tfm/public/cm/cmr10.tfm INPUT /usr/share/texmf-dist/fonts/tfm/public/cm/cmr10.tfm
INPUT /usr/share/texmf-dist/fonts/tfm/jknappen/ec/ecss1200.tfm INPUT /usr/share/texmf-dist/fonts/tfm/jknappen/ec/ecss1200.tfm

View File

@ -1,4 +1,4 @@
This is pdfTeX, Version 3.141592653-2.6-1.40.29 (TeX Live 2026/Arch Linux) (preloaded format=pdflatex 2026.5.14) 31 MAY 2026 12:40 This is pdfTeX, Version 3.141592653-2.6-1.40.29 (TeX Live 2026/Arch Linux) (preloaded format=pdflatex 2026.5.14) 31 MAY 2026 13:53
entering extended mode entering extended mode
restricted \write18 enabled. restricted \write18 enabled.
%&-line parsing enabled. %&-line parsing enabled.
@ -330,6 +330,303 @@ Package uniquecounter Info: New unique counter `rerunfilecheck' on input line 2
) )
\Hy@SectionHShift=\skip65 \Hy@SectionHShift=\skip65
) )
(/usr/share/texmf-dist/tex/latex/todonotes/todonotes.sty
Package: todonotes 2024/01/05 v1.1.7 Todonotes source and documentation.
Package: todonotes 2024/01/05
(/usr/share/texmf-dist/tex/latex/base/ifthen.sty
Package: ifthen 2024/03/16 v1.1e Standard LaTeX ifthen package (DPC)
)
(/usr/share/texmf-dist/tex/latex/xkeyval/xkeyval.sty
Package: xkeyval 2025/11/04 v2.10 package option processing (HA)
(/usr/share/texmf-dist/tex/generic/xkeyval/xkeyval.tex
(/usr/share/texmf-dist/tex/generic/xkeyval/xkvutils.tex
\XKV@toks=\toks20
\XKV@tempa@toks=\toks21
\XKV@tempb@toks=\toks22
)
\XKV@depth=\count298
File: xkeyval.tex 2014/12/03 v2.7a key=value parser (HA)
))
(/usr/share/texmf-dist/tex/latex/xcolor/xcolor.sty
Package: xcolor 2024/09/29 v3.02 LaTeX color extensions (UK)
(/usr/share/texmf-dist/tex/latex/graphics-cfg/color.cfg
File: color.cfg 2016/01/02 v1.6 sample color configuration
)
Package xcolor Info: Driver file: pdftex.def on input line 274.
(/usr/share/texmf-dist/tex/latex/graphics/mathcolor.ltx)
Package xcolor Info: Model `cmy' substituted by `cmy0' on input line 1349.
Package xcolor Info: Model `hsb' substituted by `rgb' on input line 1353.
Package xcolor Info: Model `RGB' extended on input line 1365.
Package xcolor Info: Model `HTML' substituted by `rgb' on input line 1367.
Package xcolor Info: Model `Hsb' substituted by `hsb' on input line 1368.
Package xcolor Info: Model `tHsb' substituted by `hsb' on input line 1369.
Package xcolor Info: Model `HSB' substituted by `hsb' on input line 1370.
Package xcolor Info: Model `Gray' substituted by `gray' on input line 1371.
Package xcolor Info: Model `wave' substituted by `hsb' on input line 1372.
)
(/usr/share/texmf-dist/tex/latex/pgf/frontendlayer/tikz.sty
(/usr/share/texmf-dist/tex/latex/pgf/basiclayer/pgf.sty
(/usr/share/texmf-dist/tex/latex/pgf/utilities/pgfrcs.sty
(/usr/share/texmf-dist/tex/generic/pgf/utilities/pgfutil-common.tex
\pgfutil@everybye=\toks23
\pgfutil@tempdima=\dimen156
\pgfutil@tempdimb=\dimen157
)
(/usr/share/texmf-dist/tex/generic/pgf/utilities/pgfutil-latex.def
\pgfutil@abb=\box55
)
(/usr/share/texmf-dist/tex/generic/pgf/utilities/pgfrcs.code.tex
(/usr/share/texmf-dist/tex/generic/pgf/pgf.revision.tex)
Package: pgfrcs 2025-08-29 v3.1.11a (3.1.11a)
))
Package: pgf 2025-08-29 v3.1.11a (3.1.11a)
(/usr/share/texmf-dist/tex/latex/pgf/basiclayer/pgfcore.sty
(/usr/share/texmf-dist/tex/latex/pgf/systemlayer/pgfsys.sty
(/usr/share/texmf-dist/tex/generic/pgf/systemlayer/pgfsys.code.tex
Package: pgfsys 2025-08-29 v3.1.11a (3.1.11a)
(/usr/share/texmf-dist/tex/generic/pgf/utilities/pgfkeys.code.tex
\pgfkeys@pathtoks=\toks24
\pgfkeys@temptoks=\toks25
(/usr/share/texmf-dist/tex/generic/pgf/utilities/pgfkeyslibraryfiltered.code.te
x
\pgfkeys@tmptoks=\toks26
))
\pgf@x=\dimen158
\pgf@y=\dimen159
\pgf@xa=\dimen160
\pgf@ya=\dimen161
\pgf@xb=\dimen162
\pgf@yb=\dimen163
\pgf@xc=\dimen164
\pgf@yc=\dimen165
\pgf@xd=\dimen166
\pgf@yd=\dimen167
\w@pgf@writea=\write3
\r@pgf@reada=\read3
\c@pgf@counta=\count299
\c@pgf@countb=\count300
\c@pgf@countc=\count301
\c@pgf@countd=\count302
\t@pgf@toka=\toks27
\t@pgf@tokb=\toks28
\t@pgf@tokc=\toks29
\pgf@sys@id@count=\count303
(/usr/share/texmf-dist/tex/generic/pgf/systemlayer/pgf.cfg
File: pgf.cfg 2025-08-29 v3.1.11a (3.1.11a)
)
Driver file for pgf: pgfsys-pdftex.def
(/usr/share/texmf-dist/tex/generic/pgf/systemlayer/pgfsys-pdftex.def
File: pgfsys-pdftex.def 2025-08-29 v3.1.11a (3.1.11a)
(/usr/share/texmf-dist/tex/generic/pgf/systemlayer/pgfsys-common-pdf.def
File: pgfsys-common-pdf.def 2025-08-29 v3.1.11a (3.1.11a)
)))
(/usr/share/texmf-dist/tex/generic/pgf/systemlayer/pgfsyssoftpath.code.tex
File: pgfsyssoftpath.code.tex 2025-08-29 v3.1.11a (3.1.11a)
\pgfsyssoftpath@smallbuffer@items=\count304
\pgfsyssoftpath@bigbuffer@items=\count305
)
(/usr/share/texmf-dist/tex/generic/pgf/systemlayer/pgfsysprotocol.code.tex
File: pgfsysprotocol.code.tex 2025-08-29 v3.1.11a (3.1.11a)
))
(/usr/share/texmf-dist/tex/generic/pgf/basiclayer/pgfcore.code.tex
Package: pgfcore 2025-08-29 v3.1.11a (3.1.11a)
(/usr/share/texmf-dist/tex/generic/pgf/math/pgfmath.code.tex
(/usr/share/texmf-dist/tex/generic/pgf/math/pgfmathutil.code.tex)
(/usr/share/texmf-dist/tex/generic/pgf/math/pgfmathparser.code.tex
\pgfmath@dimen=\dimen168
\pgfmath@count=\count306
\pgfmath@box=\box56
\pgfmath@toks=\toks30
\pgfmath@stack@operand=\toks31
\pgfmath@stack@operation=\toks32
)
(/usr/share/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.code.tex)
(/usr/share/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.basic.code.tex)
(/usr/share/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.trigonometric.code
.tex)
(/usr/share/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.random.code.tex)
(/usr/share/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.comparison.code.te
x) (/usr/share/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.base.code.tex)
(/usr/share/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.round.code.tex)
(/usr/share/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.misc.code.tex)
(/usr/share/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.integerarithmetics
.code.tex) (/usr/share/texmf-dist/tex/generic/pgf/math/pgfmathcalc.code.tex)
(/usr/share/texmf-dist/tex/generic/pgf/math/pgfmathfloat.code.tex
\c@pgfmathroundto@lastzeros=\count307
))
(/usr/share/texmf-dist/tex/generic/pgf/math/pgfint.code.tex)
(/usr/share/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepoints.code.tex
File: pgfcorepoints.code.tex 2025-08-29 v3.1.11a (3.1.11a)
\pgf@picminx=\dimen169
\pgf@picmaxx=\dimen170
\pgf@picminy=\dimen171
\pgf@picmaxy=\dimen172
\pgf@pathminx=\dimen173
\pgf@pathmaxx=\dimen174
\pgf@pathminy=\dimen175
\pgf@pathmaxy=\dimen176
\pgf@xx=\dimen177
\pgf@xy=\dimen178
\pgf@yx=\dimen179
\pgf@yy=\dimen180
\pgf@zx=\dimen181
\pgf@zy=\dimen182
)
(/usr/share/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepathconstruct.code.tex
File: pgfcorepathconstruct.code.tex 2025-08-29 v3.1.11a (3.1.11a)
\pgf@path@lastx=\dimen183
\pgf@path@lasty=\dimen184
) (/usr/share/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepathusage.code.tex
File: pgfcorepathusage.code.tex 2025-08-29 v3.1.11a (3.1.11a)
\pgf@shorten@end@additional=\dimen185
\pgf@shorten@start@additional=\dimen186
)
(/usr/share/texmf-dist/tex/generic/pgf/basiclayer/pgfcorescopes.code.tex
File: pgfcorescopes.code.tex 2025-08-29 v3.1.11a (3.1.11a)
\pgfpic=\box57
\pgf@hbox=\box58
\pgf@layerbox@main=\box59
\pgf@picture@serial@count=\count308
)
(/usr/share/texmf-dist/tex/generic/pgf/basiclayer/pgfcoregraphicstate.code.tex
File: pgfcoregraphicstate.code.tex 2025-08-29 v3.1.11a (3.1.11a)
\pgflinewidth=\dimen187
)
(/usr/share/texmf-dist/tex/generic/pgf/basiclayer/pgfcoretransformations.code.t
ex
File: pgfcoretransformations.code.tex 2025-08-29 v3.1.11a (3.1.11a)
\pgf@pt@x=\dimen188
\pgf@pt@y=\dimen189
\pgf@pt@temp=\dimen190
) (/usr/share/texmf-dist/tex/generic/pgf/basiclayer/pgfcorequick.code.tex
File: pgfcorequick.code.tex 2025-08-29 v3.1.11a (3.1.11a)
)
(/usr/share/texmf-dist/tex/generic/pgf/basiclayer/pgfcoreobjects.code.tex
File: pgfcoreobjects.code.tex 2025-08-29 v3.1.11a (3.1.11a)
)
(/usr/share/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepathprocessing.code.te
x
File: pgfcorepathprocessing.code.tex 2025-08-29 v3.1.11a (3.1.11a)
) (/usr/share/texmf-dist/tex/generic/pgf/basiclayer/pgfcorearrows.code.tex
File: pgfcorearrows.code.tex 2025-08-29 v3.1.11a (3.1.11a)
\pgfarrowsep=\dimen191
)
(/usr/share/texmf-dist/tex/generic/pgf/basiclayer/pgfcoreshade.code.tex
File: pgfcoreshade.code.tex 2025-08-29 v3.1.11a (3.1.11a)
\pgf@max=\dimen192
\pgf@sys@shading@range@num=\count309
\pgf@shadingcount=\count310
)
(/usr/share/texmf-dist/tex/generic/pgf/basiclayer/pgfcoreimage.code.tex
File: pgfcoreimage.code.tex 2025-08-29 v3.1.11a (3.1.11a)
)
(/usr/share/texmf-dist/tex/generic/pgf/basiclayer/pgfcoreexternal.code.tex
File: pgfcoreexternal.code.tex 2025-08-29 v3.1.11a (3.1.11a)
\pgfexternal@startupbox=\box60
)
(/usr/share/texmf-dist/tex/generic/pgf/basiclayer/pgfcorelayers.code.tex
File: pgfcorelayers.code.tex 2025-08-29 v3.1.11a (3.1.11a)
)
(/usr/share/texmf-dist/tex/generic/pgf/basiclayer/pgfcoretransparency.code.tex
File: pgfcoretransparency.code.tex 2025-08-29 v3.1.11a (3.1.11a)
) (/usr/share/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepatterns.code.tex
File: pgfcorepatterns.code.tex 2025-08-29 v3.1.11a (3.1.11a)
)
(/usr/share/texmf-dist/tex/generic/pgf/basiclayer/pgfcorerdf.code.tex
File: pgfcorerdf.code.tex 2025-08-29 v3.1.11a (3.1.11a)
)))
(/usr/share/texmf-dist/tex/generic/pgf/modules/pgfmoduleshapes.code.tex
File: pgfmoduleshapes.code.tex 2025-08-29 v3.1.11a (3.1.11a)
\pgfnodeparttextbox=\box61
)
(/usr/share/texmf-dist/tex/generic/pgf/modules/pgfmoduleplot.code.tex
File: pgfmoduleplot.code.tex 2025-08-29 v3.1.11a (3.1.11a)
)
(/usr/share/texmf-dist/tex/latex/pgf/compatibility/pgfcomp-version-0-65.sty
Package: pgfcomp-version-0-65 2025-08-29 v3.1.11a (3.1.11a)
\pgf@nodesepstart=\dimen193
\pgf@nodesepend=\dimen194
)
(/usr/share/texmf-dist/tex/latex/pgf/compatibility/pgfcomp-version-1-18.sty
Package: pgfcomp-version-1-18 2025-08-29 v3.1.11a (3.1.11a)
))
(/usr/share/texmf-dist/tex/latex/pgf/utilities/pgffor.sty
(/usr/share/texmf-dist/tex/latex/pgf/utilities/pgfkeys.sty
(/usr/share/texmf-dist/tex/generic/pgf/utilities/pgfkeys.code.tex))
(/usr/share/texmf-dist/tex/latex/pgf/math/pgfmath.sty
(/usr/share/texmf-dist/tex/generic/pgf/math/pgfmath.code.tex))
(/usr/share/texmf-dist/tex/generic/pgf/utilities/pgffor.code.tex
Package: pgffor 2025-08-29 v3.1.11a (3.1.11a)
\pgffor@iter=\dimen195
\pgffor@skip=\dimen196
\pgffor@stack=\toks33
\pgffor@toks=\toks34
))
(/usr/share/texmf-dist/tex/generic/pgf/frontendlayer/tikz/tikz.code.tex
Package: tikz 2025-08-29 v3.1.11a (3.1.11a)
(/usr/share/texmf-dist/tex/generic/pgf/libraries/pgflibraryplothandlers.code.te
x
File: pgflibraryplothandlers.code.tex 2025-08-29 v3.1.11a (3.1.11a)
\pgf@plot@mark@count=\count311
\pgfplotmarksize=\dimen197
)
\tikz@lastx=\dimen198
\tikz@lasty=\dimen199
\tikz@lastxsaved=\dimen256
\tikz@lastysaved=\dimen257
\tikz@lastmovetox=\dimen258
\tikz@lastmovetoy=\dimen259
\tikzleveldistance=\dimen260
\tikzsiblingdistance=\dimen261
\tikz@figbox=\box62
\tikz@figbox@bg=\box63
\tikz@tempbox=\box64
\tikz@tempbox@bg=\box65
\tikztreelevel=\count312
\tikznumberofchildren=\count313
\tikznumberofcurrentchild=\count314
\tikz@fig@count=\count315
(/usr/share/texmf-dist/tex/generic/pgf/modules/pgfmodulematrix.code.tex
File: pgfmodulematrix.code.tex 2025-08-29 v3.1.11a (3.1.11a)
\pgfmatrixcurrentrow=\count316
\pgfmatrixcurrentcolumn=\count317
\pgf@matrix@numberofcolumns=\count318
)
\tikz@expandcount=\count319
(/usr/share/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrary
topaths.code.tex
File: tikzlibrarytopaths.code.tex 2025-08-29 v3.1.11a (3.1.11a)
)))
(/usr/share/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrary
positioning.code.tex
File: tikzlibrarypositioning.code.tex 2025-08-29 v3.1.11a (3.1.11a)
) (/usr/share/texmf-dist/tex/latex/tools/calc.sty
Package: calc 2025/03/01 v4.3b Infix arithmetic (KKT,FJ)
\calc@Acount=\count320
\calc@Bcount=\count321
\calc@Adimen=\dimen262
\calc@Bdimen=\dimen263
\calc@Askip=\skip66
\calc@Bskip=\skip67
LaTeX Info: Redefining \setlength on input line 86.
LaTeX Info: Redefining \addtolength on input line 87.
\calc@Ccount=\count322
\calc@Cskip=\skip68
)
\c@@todonotes@numberoftodonotes=\count323
)
Class scrartcl Info: loading recommended package `bookmark'. Class scrartcl Info: loading recommended package `bookmark'.
(scrartcl) Using `bookmark' together with `hyperref' is recommended, (scrartcl) Using `bookmark' together with `hyperref' is recommended,
(scrartcl) because of handling of possible bookmark level gaps. (scrartcl) because of handling of possible bookmark level gaps.
@ -337,7 +634,7 @@ Class scrartcl Info: loading recommended package `bookmark'.
(scrartcl) `bookmarkpackage=false' before \begin{document} and (scrartcl) `bookmarkpackage=false' before \begin{document} and
(scrartcl) you can avoid this message adding: (scrartcl) you can avoid this message adding:
(scrartcl) \usepackage{bookmark} (scrartcl) \usepackage{bookmark}
(scrartcl) before \begin{document} on input line 18. (scrartcl) before \begin{document} on input line 19.
(/usr/share/texmf-dist/tex/latex/bookmark/bookmark.sty (/usr/share/texmf-dist/tex/latex/bookmark/bookmark.sty
Package: bookmark 2023-12-10 v1.31 PDF bookmarks (HO) Package: bookmark 2023-12-10 v1.31 PDF bookmarks (HO)
@ -345,11 +642,11 @@ Package: bookmark 2023-12-10 v1.31 PDF bookmarks (HO)
(/usr/share/texmf-dist/tex/latex/bookmark/bkm-pdftex.def (/usr/share/texmf-dist/tex/latex/bookmark/bkm-pdftex.def
File: bkm-pdftex.def 2023-12-10 v1.31 bookmark driver for pdfTeX and luaTeX (HO File: bkm-pdftex.def 2023-12-10 v1.31 bookmark driver for pdfTeX and luaTeX (HO
) )
\BKM@id=\count298 \BKM@id=\count324
)) ))
(/usr/share/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def (/usr/share/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def
File: l3backend-pdftex.def 2025-10-09 L3 backend support: PDF output (pdfTeX) File: l3backend-pdftex.def 2025-10-09 L3 backend support: PDF output (pdfTeX)
\l__color_backend_stack_int=\count299 \l__color_backend_stack_int=\count325
) )
(build/Ringstats_Dokumentation.aux (build/Ringstats_Dokumentation.aux
Package babel Info: 'ngerman' activates 'german' shorthands. Package babel Info: 'ngerman' activates 'german' shorthands.
@ -357,38 +654,38 @@ Package babel Info: 'ngerman' activates 'german' shorthands.
) )
\openout1 = `Ringstats_Dokumentation.aux'. \openout1 = `Ringstats_Dokumentation.aux'.
LaTeX Font Info: Checking defaults for OML/cmm/m/it on input line 18. LaTeX Font Info: Checking defaults for OML/cmm/m/it on input line 19.
LaTeX Font Info: ... okay on input line 18. LaTeX Font Info: ... okay on input line 19.
LaTeX Font Info: Checking defaults for OMS/cmsy/m/n on input line 18. LaTeX Font Info: Checking defaults for OMS/cmsy/m/n on input line 19.
LaTeX Font Info: ... okay on input line 18. LaTeX Font Info: ... okay on input line 19.
LaTeX Font Info: Checking defaults for OT1/cmr/m/n on input line 18. LaTeX Font Info: Checking defaults for OT1/cmr/m/n on input line 19.
LaTeX Font Info: ... okay on input line 18. LaTeX Font Info: ... okay on input line 19.
LaTeX Font Info: Checking defaults for T1/cmr/m/n on input line 18. LaTeX Font Info: Checking defaults for T1/cmr/m/n on input line 19.
LaTeX Font Info: ... okay on input line 18. LaTeX Font Info: ... okay on input line 19.
LaTeX Font Info: Checking defaults for TS1/cmr/m/n on input line 18. LaTeX Font Info: Checking defaults for TS1/cmr/m/n on input line 19.
LaTeX Font Info: ... okay on input line 18. LaTeX Font Info: ... okay on input line 19.
LaTeX Font Info: Checking defaults for OMX/cmex/m/n on input line 18. LaTeX Font Info: Checking defaults for OMX/cmex/m/n on input line 19.
LaTeX Font Info: ... okay on input line 18. LaTeX Font Info: ... okay on input line 19.
LaTeX Font Info: Checking defaults for U/cmr/m/n on input line 18. LaTeX Font Info: Checking defaults for U/cmr/m/n on input line 19.
LaTeX Font Info: ... okay on input line 18. LaTeX Font Info: ... okay on input line 19.
LaTeX Font Info: Checking defaults for PD1/pdf/m/n on input line 18. LaTeX Font Info: Checking defaults for PD1/pdf/m/n on input line 19.
LaTeX Font Info: ... okay on input line 18. LaTeX Font Info: ... okay on input line 19.
LaTeX Font Info: Checking defaults for PU/pdf/m/n on input line 18. LaTeX Font Info: Checking defaults for PU/pdf/m/n on input line 19.
LaTeX Font Info: ... okay on input line 18. LaTeX Font Info: ... okay on input line 19.
(/usr/share/texmf-dist/tex/context/base/mkii/supp-pdf.mkii (/usr/share/texmf-dist/tex/context/base/mkii/supp-pdf.mkii
[Loading MPS to PDF converter (version 2006.09.02).] [Loading MPS to PDF converter (version 2006.09.02).]
\scratchcounter=\count300 \scratchcounter=\count326
\scratchdimen=\dimen156 \scratchdimen=\dimen264
\scratchbox=\box55 \scratchbox=\box66
\nofMPsegments=\count301 \nofMPsegments=\count327
\nofMParguments=\count302 \nofMParguments=\count328
\everyMPshowfont=\toks20 \everyMPshowfont=\toks35
\MPscratchCnt=\count303 \MPscratchCnt=\count329
\MPscratchDim=\dimen157 \MPscratchDim=\dimen265
\MPnumerator=\count304 \MPnumerator=\count330
\makeMPintoPDFobject=\count305 \makeMPintoPDFobject=\count331
\everyMPtoPDFconversion=\toks21 \everyMPtoPDFconversion=\toks36
) (/usr/share/texmf-dist/tex/latex/epstopdf-pkg/epstopdf-base.sty ) (/usr/share/texmf-dist/tex/latex/epstopdf-pkg/epstopdf-base.sty
Package: epstopdf-base 2020-01-24 v2.11 Base part for package epstopdf Package: epstopdf-base 2020-01-24 v2.11 Base part for package epstopdf
Package epstopdf-base Info: Redefining graphics rule for `.eps' on input line 4 Package epstopdf-base Info: Redefining graphics rule for `.eps' on input line 4
@ -398,29 +695,26 @@ Package epstopdf-base Info: Redefining graphics rule for `.eps' on input line 4
File: epstopdf-sys.cfg 2010/07/13 v1.3 Configuration of (r)epstopdf for TeX Liv File: epstopdf-sys.cfg 2010/07/13 v1.3 Configuration of (r)epstopdf for TeX Liv
e e
)) ))
(/usr/share/texmf-dist/tex/latex/graphics/color.sty Package hyperref Info: Link coloring ON on input line 19.
Package: color 2025/01/14 v1.3e Standard LaTeX Color (DPC)
(/usr/share/texmf-dist/tex/latex/graphics-cfg/color.cfg
File: color.cfg 2016/01/02 v1.6 sample color configuration
)
Package color Info: Driver file: pdftex.def on input line 149.
(/usr/share/texmf-dist/tex/latex/graphics/mathcolor.ltx)) Package todonotes Warning: The length marginparwidth is less than 2cm and will
Package hyperref Info: Link coloring ON on input line 18. most likely cause issues with the appearance of inserted todonotes. The issue c
an be solved by adding a line like \setlength {\marginparwidth }{2cm} prior to
loading the todonotes package. on input line 19.
LaTeX Font Info: External font `cmex10' loaded for size LaTeX Font Info: External font `cmex10' loaded for size
(Font) <17.28> on input line 21. (Font) <17.28> on input line 22.
LaTeX Font Info: External font `cmex10' loaded for size LaTeX Font Info: External font `cmex10' loaded for size
(Font) <12> on input line 21. (Font) <12> on input line 22.
(build/Ringstats_Dokumentation.toc (build/Ringstats_Dokumentation.toc
LaTeX Font Info: External font `cmex10' loaded for size LaTeX Font Info: External font `cmex10' loaded for size
(Font) <8> on input line 3. (Font) <8> on input line 3.
LaTeX Font Info: External font `cmex10' loaded for size LaTeX Font Info: External font `cmex10' loaded for size
(Font) <6> on input line 3. (Font) <6> on input line 3.
) )
\tf@toc=\write3 \tf@toc=\write4
\openout3 = `Ringstats_Dokumentation.toc'. \openout4 = `Ringstats_Dokumentation.toc'.
[1 [1
@ -428,30 +722,48 @@ LaTeX Font Info: External font `cmex10' loaded for size
{/var/lib/texmf/fonts/map/pdftex/updmap/pdftex.map}{/usr/share/texmf-dist/fonts {/var/lib/texmf/fonts/map/pdftex/updmap/pdftex.map}{/usr/share/texmf-dist/fonts
/enc/dvips/cm-super/cm-super-t1.enc}] /enc/dvips/cm-super/cm-super-t1.enc}]
[2] [2]
<assets/er-modell.png, id=45, 3968.8275pt x 4311.10625pt> <assets/er-modell.png, id=48, 3968.8275pt x 4311.10625pt>
File: assets/er-modell.png Graphic file (type png) File: assets/er-modell.png Graphic file (type png)
<use assets/er-modell.png> <use assets/er-modell.png>
Package pdftex.def Info: assets/er-modell.png used on input line 86. Package pdftex.def Info: assets/er-modell.png used on input line 87.
(pdftex.def) Requested size: 268.8813pt x 292.00674pt. (pdftex.def) Requested size: 268.8813pt x 292.00674pt.
[3 <./assets/er-modell.png>] [3 <./assets/er-modell.png>]
Overfull \hbox (73.65858pt too wide) in paragraph at lines 145--173 Overfull \hbox (52.12212pt too wide) in paragraph at lines 146--173
[][] [][]
[] []
[4] [5] [6] [7] [8] (build/Ringstats_Dokumentation.aux) [4] [5] [6]
Package hyperref Info: bookmark level for unknown todo defaults to 0 on input l
ine 263.
Overfull \hbox (5.15562pt too wide) in paragraph at lines 263--263
[][][]\T1/cmr/m/n/12 komplett
[]
Overfull \hbox (5.15562pt too wide) in paragraph at lines 263--263
[][][]\T1/cmr/m/n/12 komplett
[]
Overfull \hbox (9.63942pt too wide) in paragraph at lines 297--309
[][]
[]
[7] [8] [9] (build/Ringstats_Dokumentation.aux)
*********** ***********
LaTeX2e <2025-11-01> LaTeX2e <2025-11-01>
L3 programming layer <2026-01-19> L3 programming layer <2026-01-19>
*********** ***********
) )
Here is how much of TeX's memory you used: Here is how much of TeX's memory you used:
13485 strings out of 469462 24579 strings out of 469462
242906 string characters out of 5468614 480399 string characters out of 5468614
788042 words of memory out of 5000000 1010471 words of memory out of 5000000
42001 multiletter control sequences out of 15000+600000 52862 multiletter control sequences out of 15000+600000
638939 words of font info for 63 fonts, out of 8000000 for 9000 638939 words of font info for 63 fonts, out of 8000000 for 9000
14 hyphenation exceptions out of 8191 14 hyphenation exceptions out of 8191
108i,8n,107p,11253b,461s stack positions out of 10000i,1000n,20000p,200000b,200000s 108i,9n,108p,11253b,971s stack positions out of 10000i,1000n,20000p,200000b,200000s
</usr/share/texmf-dist/fonts/type1/public/cm-super/sfbx1200.pfb></usr/share/t </usr/share/texmf-dist/fonts/type1/public/cm-super/sfbx1200.pfb></usr/share/t
exmf-dist/fonts/type1/public/cm-super/sfrm1200.pfb></usr/share/texmf-dist/fonts exmf-dist/fonts/type1/public/cm-super/sfrm1200.pfb></usr/share/texmf-dist/fonts
/type1/public/cm-super/sfrm1728.pfb></usr/share/texmf-dist/fonts/type1/public/c /type1/public/cm-super/sfrm1728.pfb></usr/share/texmf-dist/fonts/type1/public/c
@ -459,10 +771,10 @@ m-super/sfsx1200.pfb></usr/share/texmf-dist/fonts/type1/public/cm-super/sfsx144
0.pfb></usr/share/texmf-dist/fonts/type1/public/cm-super/sfsx1728.pfb></usr/sha 0.pfb></usr/share/texmf-dist/fonts/type1/public/cm-super/sfsx1728.pfb></usr/sha
re/texmf-dist/fonts/type1/public/cm-super/sfsx2488.pfb></usr/share/texmf-dist/f re/texmf-dist/fonts/type1/public/cm-super/sfsx2488.pfb></usr/share/texmf-dist/f
onts/type1/public/cm-super/sftt1200.pfb> onts/type1/public/cm-super/sftt1200.pfb>
Output written on build/Ringstats_Dokumentation.pdf (8 pages, 575493 bytes). Output written on build/Ringstats_Dokumentation.pdf (9 pages, 608054 bytes).
PDF statistics: PDF statistics:
160 PDF objects out of 1000 (max. 8388607) 171 PDF objects out of 1000 (max. 8388607)
130 compressed objects within 2 object streams 140 compressed objects within 2 object streams
24 named destinations out of 1000 (max. 500000) 28 named destinations out of 1000 (max. 500000)
110 words of extra memory for PDF output out of 10000 (max. 10000000) 122 words of extra memory for PDF output out of 10000 (max. 10000000)

Binary file not shown.

View File

@ -6,10 +6,10 @@
\contentsline {subsection}{\numberline {2.1}Das konzeptionelle ER-Modell}{3}{subsection.2.1}% \contentsline {subsection}{\numberline {2.1}Das konzeptionelle ER-Modell}{3}{subsection.2.1}%
\contentsline {subsection}{\numberline {2.2}Key-Value-Modellierung}{4}{subsection.2.2}% \contentsline {subsection}{\numberline {2.2}Key-Value-Modellierung}{4}{subsection.2.2}%
\contentsline {subsection}{\numberline {2.3}Dokumentenorientierte Modellierung}{5}{subsection.2.3}% \contentsline {subsection}{\numberline {2.3}Dokumentenorientierte Modellierung}{5}{subsection.2.3}%
\contentsline {subsection}{\numberline {2.4}Graph-Datenbank-Modellierung}{6}{subsection.2.4}% \contentsline {subsection}{\numberline {2.4}Graph-Datenbank-Modellierung}{7}{subsection.2.4}%
\contentsline {section}{\numberline {3}Vergleich der Datenmodellierung}{7}{section.3}% \contentsline {section}{\numberline {3}Vergleich der Datenmodellierung}{8}{section.3}%
\contentsline {subsection}{\numberline {3.1}Vor- und Nachteile des Key-Value-Modells}{7}{subsection.3.1}% \contentsline {subsection}{\numberline {3.1}Vor- und Nachteile des Key-Value-Modells}{8}{subsection.3.1}%
\contentsline {subsection}{\numberline {3.2}Vor- und Nachteile des dokumentenorientierten Modells}{7}{subsection.3.2}% \contentsline {subsection}{\numberline {3.2}Vor- und Nachteile des dokumentenorientierten Modells}{8}{subsection.3.2}%
\contentsline {subsection}{\numberline {3.3}Vor- und Nachteile des Graph-Modells}{7}{subsection.3.3}% \contentsline {subsection}{\numberline {3.3}Vor- und Nachteile des Graph-Modells}{8}{subsection.3.3}%
\contentsline {section}{\numberline {4}Fazit}{8}{section.4}% \contentsline {section}{\numberline {4}Fazit}{9}{section.4}%
\providecommand \tocbasic@end@toc@file {}\tocbasic@end@toc@file \providecommand \tocbasic@end@toc@file {}\tocbasic@end@toc@file

1
praesentation/node_modules/.bin/acorn generated vendored Symbolic link
View File

@ -0,0 +1 @@
../acorn/bin/acorn

View File

@ -0,0 +1 @@
../baseline-browser-mapping/dist/cli.cjs

1
praesentation/node_modules/.bin/browserslist generated vendored Symbolic link
View File

@ -0,0 +1 @@
../browserslist/cli.js

1
praesentation/node_modules/.bin/cssesc generated vendored Symbolic link
View File

@ -0,0 +1 @@
../cssesc/bin/cssesc

1
praesentation/node_modules/.bin/csv2json generated vendored Symbolic link
View File

@ -0,0 +1 @@
../d3-dsv/bin/dsv2json.js

1
praesentation/node_modules/.bin/csv2tsv generated vendored Symbolic link
View File

@ -0,0 +1 @@
../d3-dsv/bin/dsv2dsv.js

1
praesentation/node_modules/.bin/dsv2dsv generated vendored Symbolic link
View File

@ -0,0 +1 @@
../d3-dsv/bin/dsv2dsv.js

1
praesentation/node_modules/.bin/dsv2json generated vendored Symbolic link
View File

@ -0,0 +1 @@
../d3-dsv/bin/dsv2json.js

1
praesentation/node_modules/.bin/esbuild generated vendored Symbolic link
View File

@ -0,0 +1 @@
../esbuild/bin/esbuild

1
praesentation/node_modules/.bin/esparse generated vendored Symbolic link
View File

@ -0,0 +1 @@
../esprima/bin/esparse.js

1
praesentation/node_modules/.bin/esvalidate generated vendored Symbolic link
View File

@ -0,0 +1 @@
../esprima/bin/esvalidate.js

1
praesentation/node_modules/.bin/giget generated vendored Symbolic link
View File

@ -0,0 +1 @@
../giget/dist/cli.mjs

1
praesentation/node_modules/.bin/he generated vendored Symbolic link
View File

@ -0,0 +1 @@
../he/bin/he

1
praesentation/node_modules/.bin/image-size generated vendored Symbolic link
View File

@ -0,0 +1 @@
../image-size/bin/image-size.js

1
praesentation/node_modules/.bin/is-docker generated vendored Symbolic link
View File

@ -0,0 +1 @@
../is-docker/cli.js

1
praesentation/node_modules/.bin/is-inside-container generated vendored Symbolic link
View File

@ -0,0 +1 @@
../is-inside-container/cli.js

1
praesentation/node_modules/.bin/jiti generated vendored Symbolic link
View File

@ -0,0 +1 @@
../jiti/lib/jiti-cli.mjs

1
praesentation/node_modules/.bin/js-yaml generated vendored Symbolic link
View File

@ -0,0 +1 @@
../js-yaml/bin/js-yaml.js

1
praesentation/node_modules/.bin/jsesc generated vendored Symbolic link
View File

@ -0,0 +1 @@
../jsesc/bin/jsesc

1
praesentation/node_modules/.bin/json2csv generated vendored Symbolic link
View File

@ -0,0 +1 @@
../d3-dsv/bin/json2dsv.js

1
praesentation/node_modules/.bin/json2dsv generated vendored Symbolic link
View File

@ -0,0 +1 @@
../d3-dsv/bin/json2dsv.js

1
praesentation/node_modules/.bin/json2tsv generated vendored Symbolic link
View File

@ -0,0 +1 @@
../d3-dsv/bin/json2dsv.js

1
praesentation/node_modules/.bin/json5 generated vendored Symbolic link
View File

@ -0,0 +1 @@
../json5/lib/cli.js

1
praesentation/node_modules/.bin/katex generated vendored Symbolic link
View File

@ -0,0 +1 @@
../katex/cli.js

1
praesentation/node_modules/.bin/lz-string generated vendored Symbolic link
View File

@ -0,0 +1 @@
../lz-string/bin/bin.js

1
praesentation/node_modules/.bin/markdown-it generated vendored Symbolic link
View File

@ -0,0 +1 @@
../markdown-it/bin/markdown-it.mjs

1
praesentation/node_modules/.bin/marked generated vendored Symbolic link
View File

@ -0,0 +1 @@
../marked/bin/marked.js

1
praesentation/node_modules/.bin/na generated vendored Symbolic link
View File

@ -0,0 +1 @@
../@antfu/ni/bin/na.mjs

1
praesentation/node_modules/.bin/nanoid generated vendored Symbolic link
View File

@ -0,0 +1 @@
../nanoid/bin/nanoid.cjs

1
praesentation/node_modules/.bin/nci generated vendored Symbolic link
View File

@ -0,0 +1 @@
../@antfu/ni/bin/nci.mjs

1
praesentation/node_modules/.bin/ni generated vendored Symbolic link
View File

@ -0,0 +1 @@
../@antfu/ni/bin/ni.mjs

1
praesentation/node_modules/.bin/nlx generated vendored Symbolic link
View File

@ -0,0 +1 @@
../@antfu/ni/bin/nlx.mjs

1
praesentation/node_modules/.bin/nr generated vendored Symbolic link
View File

@ -0,0 +1 @@
../@antfu/ni/bin/nr.mjs

1
praesentation/node_modules/.bin/nu generated vendored Symbolic link
View File

@ -0,0 +1 @@
../@antfu/ni/bin/nu.mjs

1
praesentation/node_modules/.bin/nun generated vendored Symbolic link
View File

@ -0,0 +1 @@
../@antfu/ni/bin/nun.mjs

1
praesentation/node_modules/.bin/parser generated vendored Symbolic link
View File

@ -0,0 +1 @@
../@babel/parser/bin/babel-parser.js

1
praesentation/node_modules/.bin/prettier generated vendored Symbolic link
View File

@ -0,0 +1 @@
../prettier/bin/prettier.cjs

1
praesentation/node_modules/.bin/rollup generated vendored Symbolic link
View File

@ -0,0 +1 @@
../rollup/dist/bin/rollup

1
praesentation/node_modules/.bin/semver generated vendored Symbolic link
View File

@ -0,0 +1 @@
../semver/bin/semver.js

1
praesentation/node_modules/.bin/slidev generated vendored Symbolic link
View File

@ -0,0 +1 @@
../@slidev/cli/bin/slidev.mjs

1
praesentation/node_modules/.bin/tsc generated vendored Symbolic link
View File

@ -0,0 +1 @@
../typescript/bin/tsc

1
praesentation/node_modules/.bin/tsserver generated vendored Symbolic link
View File

@ -0,0 +1 @@
../typescript/bin/tsserver

1
praesentation/node_modules/.bin/tsv2csv generated vendored Symbolic link
View File

@ -0,0 +1 @@
../d3-dsv/bin/dsv2dsv.js

1
praesentation/node_modules/.bin/tsv2json generated vendored Symbolic link
View File

@ -0,0 +1 @@
../d3-dsv/bin/dsv2json.js

1
praesentation/node_modules/.bin/tsx generated vendored Symbolic link
View File

@ -0,0 +1 @@
../tsx/dist/cli.mjs

1
praesentation/node_modules/.bin/unocss generated vendored Symbolic link
View File

@ -0,0 +1 @@
../@unocss/cli/bin/unocss.mjs

1
praesentation/node_modules/.bin/untun generated vendored Symbolic link
View File

@ -0,0 +1 @@
../untun/bin/untun.mjs

1
praesentation/node_modules/.bin/untyped generated vendored Symbolic link
View File

@ -0,0 +1 @@
../untyped/dist/cli.mjs

1
praesentation/node_modules/.bin/update-browserslist-db generated vendored Symbolic link
View File

@ -0,0 +1 @@
../update-browserslist-db/cli.js

1
praesentation/node_modules/.bin/uuid generated vendored Symbolic link
View File

@ -0,0 +1 @@
../uuid/dist-node/bin/uuid

1
praesentation/node_modules/.bin/vite generated vendored Symbolic link
View File

@ -0,0 +1 @@
../vite/bin/vite.js

1
praesentation/node_modules/.bin/yaml generated vendored Symbolic link
View File

@ -0,0 +1 @@
../yaml/bin.mjs

8514
praesentation/node_modules/.package-lock.json generated vendored Normal file

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,202 @@
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
1. Definitions.
"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.
"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.
"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.
"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.
"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.
"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).
"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.
"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."
"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.
2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.
3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.
4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:
(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and
(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and
(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and
(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.
You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.
7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.
8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.
9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.
END OF TERMS AND CONDITIONS
APPENDIX: How to apply the Apache License to your work.
To apply the Apache License to your work, attach the following
boilerplate notice, with the fields enclosed by brackets "[]"
replaced with your own identifying information. (Don't include
the brackets!) The text should be enclosed in the appropriate
comment syntax for the file format. We also recommend that a
file or class name and description of purpose be included on the
same "printed page" as the copyright notice for easier
identification within third-party archives.
Copyright [yyyy] [name of copyright owner]
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

View File

@ -0,0 +1,218 @@
# @ampproject/remapping
> Remap sequential sourcemaps through transformations to point at the original source code
Remapping allows you to take the sourcemaps generated through transforming your code and "remap"
them to the original source locations. Think "my minified code, transformed with babel and bundled
with webpack", all pointing to the correct location in your original source code.
With remapping, none of your source code transformations need to be aware of the input's sourcemap,
they only need to generate an output sourcemap. This greatly simplifies building custom
transformations (think a find-and-replace).
## Installation
```sh
npm install @ampproject/remapping
```
## Usage
```typescript
function remapping(
map: SourceMap | SourceMap[],
loader: (file: string, ctx: LoaderContext) => (SourceMap | null | undefined),
options?: { excludeContent: boolean, decodedMappings: boolean }
): SourceMap;
// LoaderContext gives the loader the importing sourcemap, tree depth, the ability to override the
// "source" location (where child sources are resolved relative to, or the location of original
// source), and the ability to override the "content" of an original source for inclusion in the
// output sourcemap.
type LoaderContext = {
readonly importer: string;
readonly depth: number;
source: string;
content: string | null | undefined;
}
```
`remapping` takes the final output sourcemap, and a `loader` function. For every source file pointer
in the sourcemap, the `loader` will be called with the resolved path. If the path itself represents
a transformed file (it has a sourcmap associated with it), then the `loader` should return that
sourcemap. If not, the path will be treated as an original, untransformed source code.
```js
// Babel transformed "helloworld.js" into "transformed.js"
const transformedMap = JSON.stringify({
file: 'transformed.js',
// 1st column of 2nd line of output file translates into the 1st source
// file, line 3, column 2
mappings: ';CAEE',
sources: ['helloworld.js'],
version: 3,
});
// Uglify minified "transformed.js" into "transformed.min.js"
const minifiedTransformedMap = JSON.stringify({
file: 'transformed.min.js',
// 0th column of 1st line of output file translates into the 1st source
// file, line 2, column 1.
mappings: 'AACC',
names: [],
sources: ['transformed.js'],
version: 3,
});
const remapped = remapping(
minifiedTransformedMap,
(file, ctx) => {
// The "transformed.js" file is an transformed file.
if (file === 'transformed.js') {
// The root importer is empty.
console.assert(ctx.importer === '');
// The depth in the sourcemap tree we're currently loading.
// The root `minifiedTransformedMap` is depth 0, and its source children are depth 1, etc.
console.assert(ctx.depth === 1);
return transformedMap;
}
// Loader will be called to load transformedMap's source file pointers as well.
console.assert(file === 'helloworld.js');
// `transformed.js`'s sourcemap points into `helloworld.js`.
console.assert(ctx.importer === 'transformed.js');
// This is a source child of `transformed`, which is a source child of `minifiedTransformedMap`.
console.assert(ctx.depth === 2);
return null;
}
);
console.log(remapped);
// {
// file: 'transpiled.min.js',
// mappings: 'AAEE',
// sources: ['helloworld.js'],
// version: 3,
// };
```
In this example, `loader` will be called twice:
1. `"transformed.js"`, the first source file pointer in the `minifiedTransformedMap`. We return the
associated sourcemap for it (its a transformed file, after all) so that sourcemap locations can
be traced through it into the source files it represents.
2. `"helloworld.js"`, our original, unmodified source code. This file does not have a sourcemap, so
we return `null`.
The `remapped` sourcemap now points from `transformed.min.js` into locations in `helloworld.js`. If
you were to read the `mappings`, it says "0th column of the first line output line points to the 1st
column of the 2nd line of the file `helloworld.js`".
### Multiple transformations of a file
As a convenience, if you have multiple single-source transformations of a file, you may pass an
array of sourcemap files in the order of most-recent transformation sourcemap first. Note that this
changes the `importer` and `depth` of each call to our loader. So our above example could have been
written as:
```js
const remapped = remapping(
[minifiedTransformedMap, transformedMap],
() => null
);
console.log(remapped);
// {
// file: 'transpiled.min.js',
// mappings: 'AAEE',
// sources: ['helloworld.js'],
// version: 3,
// };
```
### Advanced control of the loading graph
#### `source`
The `source` property can overridden to any value to change the location of the current load. Eg,
for an original source file, it allows us to change the location to the original source regardless
of what the sourcemap source entry says. And for transformed files, it allows us to change the
relative resolving location for child sources of the loaded sourcemap.
```js
const remapped = remapping(
minifiedTransformedMap,
(file, ctx) => {
if (file === 'transformed.js') {
// We pretend the transformed.js file actually exists in the 'src/' directory. When the nested
// source files are loaded, they will now be relative to `src/`.
ctx.source = 'src/transformed.js';
return transformedMap;
}
console.assert(file === 'src/helloworld.js');
// We could futher change the source of this original file, eg, to be inside a nested directory
// itself. This will be reflected in the remapped sourcemap.
ctx.source = 'src/nested/transformed.js';
return null;
}
);
console.log(remapped);
// {
// …,
// sources: ['src/nested/helloworld.js'],
// };
```
#### `content`
The `content` property can be overridden when we encounter an original source file. Eg, this allows
you to manually provide the source content of the original file regardless of whether the
`sourcesContent` field is present in the parent sourcemap. It can also be set to `null` to remove
the source content.
```js
const remapped = remapping(
minifiedTransformedMap,
(file, ctx) => {
if (file === 'transformed.js') {
// transformedMap does not include a `sourcesContent` field, so usually the remapped sourcemap
// would not include any `sourcesContent` values.
return transformedMap;
}
console.assert(file === 'helloworld.js');
// We can read the file to provide the source content.
ctx.content = fs.readFileSync(file, 'utf8');
return null;
}
);
console.log(remapped);
// {
// …,
// sourcesContent: [
// 'console.log("Hello world!")',
// ],
// };
```
### Options
#### excludeContent
By default, `excludeContent` is `false`. Passing `{ excludeContent: true }` will exclude the
`sourcesContent` field from the returned sourcemap. This is mainly useful when you want to reduce
the size out the sourcemap.
#### decodedMappings
By default, `decodedMappings` is `false`. Passing `{ decodedMappings: true }` will leave the
`mappings` field in a [decoded state](https://github.com/rich-harris/sourcemap-codec) instead of
encoding into a VLQ string.

View File

@ -0,0 +1,197 @@
import { decodedMappings, traceSegment, TraceMap } from '@jridgewell/trace-mapping';
import { GenMapping, maybeAddSegment, setSourceContent, setIgnore, toDecodedMap, toEncodedMap } from '@jridgewell/gen-mapping';
const SOURCELESS_MAPPING = /* #__PURE__ */ SegmentObject('', -1, -1, '', null, false);
const EMPTY_SOURCES = [];
function SegmentObject(source, line, column, name, content, ignore) {
return { source, line, column, name, content, ignore };
}
function Source(map, sources, source, content, ignore) {
return {
map,
sources,
source,
content,
ignore,
};
}
/**
* MapSource represents a single sourcemap, with the ability to trace mappings into its child nodes
* (which may themselves be SourceMapTrees).
*/
function MapSource(map, sources) {
return Source(map, sources, '', null, false);
}
/**
* A "leaf" node in the sourcemap tree, representing an original, unmodified source file. Recursive
* segment tracing ends at the `OriginalSource`.
*/
function OriginalSource(source, content, ignore) {
return Source(null, EMPTY_SOURCES, source, content, ignore);
}
/**
* traceMappings is only called on the root level SourceMapTree, and begins the process of
* resolving each mapping in terms of the original source files.
*/
function traceMappings(tree) {
// TODO: Eventually support sourceRoot, which has to be removed because the sources are already
// fully resolved. We'll need to make sources relative to the sourceRoot before adding them.
const gen = new GenMapping({ file: tree.map.file });
const { sources: rootSources, map } = tree;
const rootNames = map.names;
const rootMappings = decodedMappings(map);
for (let i = 0; i < rootMappings.length; i++) {
const segments = rootMappings[i];
for (let j = 0; j < segments.length; j++) {
const segment = segments[j];
const genCol = segment[0];
let traced = SOURCELESS_MAPPING;
// 1-length segments only move the current generated column, there's no source information
// to gather from it.
if (segment.length !== 1) {
const source = rootSources[segment[1]];
traced = originalPositionFor(source, segment[2], segment[3], segment.length === 5 ? rootNames[segment[4]] : '');
// If the trace is invalid, then the trace ran into a sourcemap that doesn't contain a
// respective segment into an original source.
if (traced == null)
continue;
}
const { column, line, name, content, source, ignore } = traced;
maybeAddSegment(gen, i, genCol, source, line, column, name);
if (source && content != null)
setSourceContent(gen, source, content);
if (ignore)
setIgnore(gen, source, true);
}
}
return gen;
}
/**
* originalPositionFor is only called on children SourceMapTrees. It recurses down into its own
* child SourceMapTrees, until we find the original source map.
*/
function originalPositionFor(source, line, column, name) {
if (!source.map) {
return SegmentObject(source.source, line, column, name, source.content, source.ignore);
}
const segment = traceSegment(source.map, line, column);
// If we couldn't find a segment, then this doesn't exist in the sourcemap.
if (segment == null)
return null;
// 1-length segments only move the current generated column, there's no source information
// to gather from it.
if (segment.length === 1)
return SOURCELESS_MAPPING;
return originalPositionFor(source.sources[segment[1]], segment[2], segment[3], segment.length === 5 ? source.map.names[segment[4]] : name);
}
function asArray(value) {
if (Array.isArray(value))
return value;
return [value];
}
/**
* Recursively builds a tree structure out of sourcemap files, with each node
* being either an `OriginalSource` "leaf" or a `SourceMapTree` composed of
* `OriginalSource`s and `SourceMapTree`s.
*
* Every sourcemap is composed of a collection of source files and mappings
* into locations of those source files. When we generate a `SourceMapTree` for
* the sourcemap, we attempt to load each source file's own sourcemap. If it
* does not have an associated sourcemap, it is considered an original,
* unmodified source file.
*/
function buildSourceMapTree(input, loader) {
const maps = asArray(input).map((m) => new TraceMap(m, ''));
const map = maps.pop();
for (let i = 0; i < maps.length; i++) {
if (maps[i].sources.length > 1) {
throw new Error(`Transformation map ${i} must have exactly one source file.\n` +
'Did you specify these with the most recent transformation maps first?');
}
}
let tree = build(map, loader, '', 0);
for (let i = maps.length - 1; i >= 0; i--) {
tree = MapSource(maps[i], [tree]);
}
return tree;
}
function build(map, loader, importer, importerDepth) {
const { resolvedSources, sourcesContent, ignoreList } = map;
const depth = importerDepth + 1;
const children = resolvedSources.map((sourceFile, i) => {
// The loading context gives the loader more information about why this file is being loaded
// (eg, from which importer). It also allows the loader to override the location of the loaded
// sourcemap/original source, or to override the content in the sourcesContent field if it's
// an unmodified source file.
const ctx = {
importer,
depth,
source: sourceFile || '',
content: undefined,
ignore: undefined,
};
// Use the provided loader callback to retrieve the file's sourcemap.
// TODO: We should eventually support async loading of sourcemap files.
const sourceMap = loader(ctx.source, ctx);
const { source, content, ignore } = ctx;
// If there is a sourcemap, then we need to recurse into it to load its source files.
if (sourceMap)
return build(new TraceMap(sourceMap, source), loader, source, depth);
// Else, it's an unmodified source file.
// The contents of this unmodified source file can be overridden via the loader context,
// allowing it to be explicitly null or a string. If it remains undefined, we fall back to
// the importing sourcemap's `sourcesContent` field.
const sourceContent = content !== undefined ? content : sourcesContent ? sourcesContent[i] : null;
const ignored = ignore !== undefined ? ignore : ignoreList ? ignoreList.includes(i) : false;
return OriginalSource(source, sourceContent, ignored);
});
return MapSource(map, children);
}
/**
* A SourceMap v3 compatible sourcemap, which only includes fields that were
* provided to it.
*/
class SourceMap {
constructor(map, options) {
const out = options.decodedMappings ? toDecodedMap(map) : toEncodedMap(map);
this.version = out.version; // SourceMap spec says this should be first.
this.file = out.file;
this.mappings = out.mappings;
this.names = out.names;
this.ignoreList = out.ignoreList;
this.sourceRoot = out.sourceRoot;
this.sources = out.sources;
if (!options.excludeContent) {
this.sourcesContent = out.sourcesContent;
}
}
toString() {
return JSON.stringify(this);
}
}
/**
* Traces through all the mappings in the root sourcemap, through the sources
* (and their sourcemaps), all the way back to the original source location.
*
* `loader` will be called every time we encounter a source file. If it returns
* a sourcemap, we will recurse into that sourcemap to continue the trace. If
* it returns a falsey value, that source file is treated as an original,
* unmodified source file.
*
* Pass `excludeContent` to exclude any self-containing source file content
* from the output sourcemap.
*
* Pass `decodedMappings` to receive a SourceMap with decoded (instead of
* VLQ encoded) mappings.
*/
function remapping(input, loader, options) {
const opts = typeof options === 'object' ? options : { excludeContent: !!options, decodedMappings: false };
const tree = buildSourceMapTree(input, loader);
return new SourceMap(traceMappings(tree), opts);
}
export { remapping as default };
//# sourceMappingURL=remapping.mjs.map

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,202 @@
(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('@jridgewell/trace-mapping'), require('@jridgewell/gen-mapping')) :
typeof define === 'function' && define.amd ? define(['@jridgewell/trace-mapping', '@jridgewell/gen-mapping'], factory) :
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.remapping = factory(global.traceMapping, global.genMapping));
})(this, (function (traceMapping, genMapping) { 'use strict';
const SOURCELESS_MAPPING = /* #__PURE__ */ SegmentObject('', -1, -1, '', null, false);
const EMPTY_SOURCES = [];
function SegmentObject(source, line, column, name, content, ignore) {
return { source, line, column, name, content, ignore };
}
function Source(map, sources, source, content, ignore) {
return {
map,
sources,
source,
content,
ignore,
};
}
/**
* MapSource represents a single sourcemap, with the ability to trace mappings into its child nodes
* (which may themselves be SourceMapTrees).
*/
function MapSource(map, sources) {
return Source(map, sources, '', null, false);
}
/**
* A "leaf" node in the sourcemap tree, representing an original, unmodified source file. Recursive
* segment tracing ends at the `OriginalSource`.
*/
function OriginalSource(source, content, ignore) {
return Source(null, EMPTY_SOURCES, source, content, ignore);
}
/**
* traceMappings is only called on the root level SourceMapTree, and begins the process of
* resolving each mapping in terms of the original source files.
*/
function traceMappings(tree) {
// TODO: Eventually support sourceRoot, which has to be removed because the sources are already
// fully resolved. We'll need to make sources relative to the sourceRoot before adding them.
const gen = new genMapping.GenMapping({ file: tree.map.file });
const { sources: rootSources, map } = tree;
const rootNames = map.names;
const rootMappings = traceMapping.decodedMappings(map);
for (let i = 0; i < rootMappings.length; i++) {
const segments = rootMappings[i];
for (let j = 0; j < segments.length; j++) {
const segment = segments[j];
const genCol = segment[0];
let traced = SOURCELESS_MAPPING;
// 1-length segments only move the current generated column, there's no source information
// to gather from it.
if (segment.length !== 1) {
const source = rootSources[segment[1]];
traced = originalPositionFor(source, segment[2], segment[3], segment.length === 5 ? rootNames[segment[4]] : '');
// If the trace is invalid, then the trace ran into a sourcemap that doesn't contain a
// respective segment into an original source.
if (traced == null)
continue;
}
const { column, line, name, content, source, ignore } = traced;
genMapping.maybeAddSegment(gen, i, genCol, source, line, column, name);
if (source && content != null)
genMapping.setSourceContent(gen, source, content);
if (ignore)
genMapping.setIgnore(gen, source, true);
}
}
return gen;
}
/**
* originalPositionFor is only called on children SourceMapTrees. It recurses down into its own
* child SourceMapTrees, until we find the original source map.
*/
function originalPositionFor(source, line, column, name) {
if (!source.map) {
return SegmentObject(source.source, line, column, name, source.content, source.ignore);
}
const segment = traceMapping.traceSegment(source.map, line, column);
// If we couldn't find a segment, then this doesn't exist in the sourcemap.
if (segment == null)
return null;
// 1-length segments only move the current generated column, there's no source information
// to gather from it.
if (segment.length === 1)
return SOURCELESS_MAPPING;
return originalPositionFor(source.sources[segment[1]], segment[2], segment[3], segment.length === 5 ? source.map.names[segment[4]] : name);
}
function asArray(value) {
if (Array.isArray(value))
return value;
return [value];
}
/**
* Recursively builds a tree structure out of sourcemap files, with each node
* being either an `OriginalSource` "leaf" or a `SourceMapTree` composed of
* `OriginalSource`s and `SourceMapTree`s.
*
* Every sourcemap is composed of a collection of source files and mappings
* into locations of those source files. When we generate a `SourceMapTree` for
* the sourcemap, we attempt to load each source file's own sourcemap. If it
* does not have an associated sourcemap, it is considered an original,
* unmodified source file.
*/
function buildSourceMapTree(input, loader) {
const maps = asArray(input).map((m) => new traceMapping.TraceMap(m, ''));
const map = maps.pop();
for (let i = 0; i < maps.length; i++) {
if (maps[i].sources.length > 1) {
throw new Error(`Transformation map ${i} must have exactly one source file.\n` +
'Did you specify these with the most recent transformation maps first?');
}
}
let tree = build(map, loader, '', 0);
for (let i = maps.length - 1; i >= 0; i--) {
tree = MapSource(maps[i], [tree]);
}
return tree;
}
function build(map, loader, importer, importerDepth) {
const { resolvedSources, sourcesContent, ignoreList } = map;
const depth = importerDepth + 1;
const children = resolvedSources.map((sourceFile, i) => {
// The loading context gives the loader more information about why this file is being loaded
// (eg, from which importer). It also allows the loader to override the location of the loaded
// sourcemap/original source, or to override the content in the sourcesContent field if it's
// an unmodified source file.
const ctx = {
importer,
depth,
source: sourceFile || '',
content: undefined,
ignore: undefined,
};
// Use the provided loader callback to retrieve the file's sourcemap.
// TODO: We should eventually support async loading of sourcemap files.
const sourceMap = loader(ctx.source, ctx);
const { source, content, ignore } = ctx;
// If there is a sourcemap, then we need to recurse into it to load its source files.
if (sourceMap)
return build(new traceMapping.TraceMap(sourceMap, source), loader, source, depth);
// Else, it's an unmodified source file.
// The contents of this unmodified source file can be overridden via the loader context,
// allowing it to be explicitly null or a string. If it remains undefined, we fall back to
// the importing sourcemap's `sourcesContent` field.
const sourceContent = content !== undefined ? content : sourcesContent ? sourcesContent[i] : null;
const ignored = ignore !== undefined ? ignore : ignoreList ? ignoreList.includes(i) : false;
return OriginalSource(source, sourceContent, ignored);
});
return MapSource(map, children);
}
/**
* A SourceMap v3 compatible sourcemap, which only includes fields that were
* provided to it.
*/
class SourceMap {
constructor(map, options) {
const out = options.decodedMappings ? genMapping.toDecodedMap(map) : genMapping.toEncodedMap(map);
this.version = out.version; // SourceMap spec says this should be first.
this.file = out.file;
this.mappings = out.mappings;
this.names = out.names;
this.ignoreList = out.ignoreList;
this.sourceRoot = out.sourceRoot;
this.sources = out.sources;
if (!options.excludeContent) {
this.sourcesContent = out.sourcesContent;
}
}
toString() {
return JSON.stringify(this);
}
}
/**
* Traces through all the mappings in the root sourcemap, through the sources
* (and their sourcemaps), all the way back to the original source location.
*
* `loader` will be called every time we encounter a source file. If it returns
* a sourcemap, we will recurse into that sourcemap to continue the trace. If
* it returns a falsey value, that source file is treated as an original,
* unmodified source file.
*
* Pass `excludeContent` to exclude any self-containing source file content
* from the output sourcemap.
*
* Pass `decodedMappings` to receive a SourceMap with decoded (instead of
* VLQ encoded) mappings.
*/
function remapping(input, loader, options) {
const opts = typeof options === 'object' ? options : { excludeContent: !!options, decodedMappings: false };
const tree = buildSourceMapTree(input, loader);
return new SourceMap(traceMappings(tree), opts);
}
return remapping;
}));
//# sourceMappingURL=remapping.umd.js.map

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,14 @@
import type { MapSource as MapSourceType } from './source-map-tree';
import type { SourceMapInput, SourceMapLoader } from './types';
/**
* Recursively builds a tree structure out of sourcemap files, with each node
* being either an `OriginalSource` "leaf" or a `SourceMapTree` composed of
* `OriginalSource`s and `SourceMapTree`s.
*
* Every sourcemap is composed of a collection of source files and mappings
* into locations of those source files. When we generate a `SourceMapTree` for
* the sourcemap, we attempt to load each source file's own sourcemap. If it
* does not have an associated sourcemap, it is considered an original,
* unmodified source file.
*/
export default function buildSourceMapTree(input: SourceMapInput | SourceMapInput[], loader: SourceMapLoader): MapSourceType;

View File

@ -0,0 +1,20 @@
import SourceMap from './source-map';
import type { SourceMapInput, SourceMapLoader, Options } from './types';
export type { SourceMapSegment, EncodedSourceMap, EncodedSourceMap as RawSourceMap, DecodedSourceMap, SourceMapInput, SourceMapLoader, LoaderContext, Options, } from './types';
export type { SourceMap };
/**
* Traces through all the mappings in the root sourcemap, through the sources
* (and their sourcemaps), all the way back to the original source location.
*
* `loader` will be called every time we encounter a source file. If it returns
* a sourcemap, we will recurse into that sourcemap to continue the trace. If
* it returns a falsey value, that source file is treated as an original,
* unmodified source file.
*
* Pass `excludeContent` to exclude any self-containing source file content
* from the output sourcemap.
*
* Pass `decodedMappings` to receive a SourceMap with decoded (instead of
* VLQ encoded) mappings.
*/
export default function remapping(input: SourceMapInput | SourceMapInput[], loader: SourceMapLoader, options?: boolean | Options): SourceMap;

View File

@ -0,0 +1,45 @@
import { GenMapping } from '@jridgewell/gen-mapping';
import type { TraceMap } from '@jridgewell/trace-mapping';
export declare type SourceMapSegmentObject = {
column: number;
line: number;
name: string;
source: string;
content: string | null;
ignore: boolean;
};
export declare type OriginalSource = {
map: null;
sources: Sources[];
source: string;
content: string | null;
ignore: boolean;
};
export declare type MapSource = {
map: TraceMap;
sources: Sources[];
source: string;
content: null;
ignore: false;
};
export declare type Sources = OriginalSource | MapSource;
/**
* MapSource represents a single sourcemap, with the ability to trace mappings into its child nodes
* (which may themselves be SourceMapTrees).
*/
export declare function MapSource(map: TraceMap, sources: Sources[]): MapSource;
/**
* A "leaf" node in the sourcemap tree, representing an original, unmodified source file. Recursive
* segment tracing ends at the `OriginalSource`.
*/
export declare function OriginalSource(source: string, content: string | null, ignore: boolean): OriginalSource;
/**
* traceMappings is only called on the root level SourceMapTree, and begins the process of
* resolving each mapping in terms of the original source files.
*/
export declare function traceMappings(tree: MapSource): GenMapping;
/**
* originalPositionFor is only called on children SourceMapTrees. It recurses down into its own
* child SourceMapTrees, until we find the original source map.
*/
export declare function originalPositionFor(source: Sources, line: number, column: number, name: string): SourceMapSegmentObject | null;

View File

@ -0,0 +1,18 @@
import type { GenMapping } from '@jridgewell/gen-mapping';
import type { DecodedSourceMap, EncodedSourceMap, Options } from './types';
/**
* A SourceMap v3 compatible sourcemap, which only includes fields that were
* provided to it.
*/
export default class SourceMap {
file?: string | null;
mappings: EncodedSourceMap['mappings'] | DecodedSourceMap['mappings'];
sourceRoot?: string;
names: string[];
sources: (string | null)[];
sourcesContent?: (string | null)[];
version: 3;
ignoreList: number[] | undefined;
constructor(map: GenMapping, options: Options);
toString(): string;
}

View File

@ -0,0 +1,15 @@
import type { SourceMapInput } from '@jridgewell/trace-mapping';
export type { SourceMapSegment, DecodedSourceMap, EncodedSourceMap, } from '@jridgewell/trace-mapping';
export type { SourceMapInput };
export declare type LoaderContext = {
readonly importer: string;
readonly depth: number;
source: string;
content: string | null | undefined;
ignore: boolean | undefined;
};
export declare type SourceMapLoader = (file: string, ctx: LoaderContext) => SourceMapInput | null | undefined | void;
export declare type Options = {
excludeContent?: boolean;
decodedMappings?: boolean;
};

View File

@ -0,0 +1,75 @@
{
"name": "@ampproject/remapping",
"version": "2.3.0",
"description": "Remap sequential sourcemaps through transformations to point at the original source code",
"keywords": [
"source",
"map",
"remap"
],
"main": "dist/remapping.umd.js",
"module": "dist/remapping.mjs",
"types": "dist/types/remapping.d.ts",
"exports": {
".": [
{
"types": "./dist/types/remapping.d.ts",
"browser": "./dist/remapping.umd.js",
"require": "./dist/remapping.umd.js",
"import": "./dist/remapping.mjs"
},
"./dist/remapping.umd.js"
],
"./package.json": "./package.json"
},
"files": [
"dist"
],
"author": "Justin Ridgewell <jridgewell@google.com>",
"repository": {
"type": "git",
"url": "git+https://github.com/ampproject/remapping.git"
},
"license": "Apache-2.0",
"engines": {
"node": ">=6.0.0"
},
"scripts": {
"build": "run-s -n build:*",
"build:rollup": "rollup -c rollup.config.js",
"build:ts": "tsc --project tsconfig.build.json",
"lint": "run-s -n lint:*",
"lint:prettier": "npm run test:lint:prettier -- --write",
"lint:ts": "npm run test:lint:ts -- --fix",
"prebuild": "rm -rf dist",
"prepublishOnly": "npm run preversion",
"preversion": "run-s test build",
"test": "run-s -n test:lint test:only",
"test:debug": "node --inspect-brk node_modules/.bin/jest --runInBand",
"test:lint": "run-s -n test:lint:*",
"test:lint:prettier": "prettier --check '{src,test}/**/*.ts'",
"test:lint:ts": "eslint '{src,test}/**/*.ts'",
"test:only": "jest --coverage",
"test:watch": "jest --coverage --watch"
},
"devDependencies": {
"@rollup/plugin-typescript": "8.3.2",
"@types/jest": "27.4.1",
"@typescript-eslint/eslint-plugin": "5.20.0",
"@typescript-eslint/parser": "5.20.0",
"eslint": "8.14.0",
"eslint-config-prettier": "8.5.0",
"jest": "27.5.1",
"jest-config": "27.5.1",
"npm-run-all": "4.1.5",
"prettier": "2.6.2",
"rollup": "2.70.2",
"ts-jest": "27.1.4",
"tslib": "2.4.0",
"typescript": "4.6.3"
},
"dependencies": {
"@jridgewell/gen-mapping": "^0.3.5",
"@jridgewell/trace-mapping": "^0.3.24"
}
}

21
praesentation/node_modules/@antfu/install-pkg/LICENSE generated vendored Normal file
View File

@ -0,0 +1,21 @@
MIT License
Copyright (c) 2021 Anthony Fu <https://github.com/antfu>
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

View File

@ -0,0 +1,27 @@
# install-pkg
[![NPM version](https://img.shields.io/npm/v/@antfu/install-pkg?color=a1b858&label=)](https://www.npmjs.com/package/@antfu/install-pkg)
Install package programmatically. Detect package managers automatically (`npm`, `yarn`, `bun` and `pnpm`).
```bash
npm i @antfu/install-pkg
```
```ts
import { installPackage } from '@antfu/install-pkg'
await installPackage('vite', { silent: true })
```
## Sponsors
<p align="center">
<a href="https://cdn.jsdelivr.net/gh/antfu/static/sponsors.svg">
<img src='https://cdn.jsdelivr.net/gh/antfu/static/sponsors.svg'/>
</a>
</p>
## License
[MIT](./LICENSE) License © 2021 [Anthony Fu](https://github.com/antfu)

View File

@ -0,0 +1,135 @@
"use strict";
var __create = Object.create;
var __defProp = Object.defineProperty;
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
var __getOwnPropNames = Object.getOwnPropertyNames;
var __getProtoOf = Object.getPrototypeOf;
var __hasOwnProp = Object.prototype.hasOwnProperty;
var __export = (target, all) => {
for (var name in all)
__defProp(target, name, { get: all[name], enumerable: true });
};
var __copyProps = (to, from, except, desc) => {
if (from && typeof from === "object" || typeof from === "function") {
for (let key of __getOwnPropNames(from))
if (!__hasOwnProp.call(to, key) && key !== except)
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
}
return to;
};
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
// If the importer is in node compatibility mode or this is not an ESM
// file that has been converted to a CommonJS file using a Babel-
// compatible transform (i.e. "__esModule" has not been set), then set
// "default" to the CommonJS "module.exports" for node compatibility.
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
mod
));
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
// src/index.ts
var index_exports = {};
__export(index_exports, {
detectPackageManager: () => detectPackageManager,
installPackage: () => installPackage,
uninstallPackage: () => uninstallPackage
});
module.exports = __toCommonJS(index_exports);
// src/detect.ts
var import_node_process = __toESM(require("process"), 1);
var import_detect = require("package-manager-detector/detect");
async function detectPackageManager(cwd = import_node_process.default.cwd()) {
const result = await (0, import_detect.detect)({
cwd,
onUnknown(packageManager) {
console.warn("[@antfu/install-pkg] Unknown packageManager:", packageManager);
return void 0;
}
});
return result?.agent || null;
}
// src/install.ts
var import_node_fs = require("fs");
var import_node_path = require("path");
var import_node_process2 = __toESM(require("process"), 1);
var import_tinyexec = require("tinyexec");
async function installPackage(names, options = {}) {
const detectedAgent = options.packageManager || await detectPackageManager(options.cwd) || "npm";
const [agent] = detectedAgent.split("@");
if (!Array.isArray(names))
names = [names];
const args = (typeof options.additionalArgs === "function" ? options.additionalArgs(agent, detectedAgent) : options.additionalArgs) || [];
if (options.preferOffline) {
if (detectedAgent === "yarn@berry")
args.unshift("--cached");
else
args.unshift("--prefer-offline");
}
if (agent === "pnpm") {
args.unshift(
/**
* Prevent pnpm from removing installed devDeps while `NODE_ENV` is `production`
* @see https://pnpm.io/cli/install#--prod--p
*/
"--prod=false"
);
if ((0, import_node_fs.existsSync)((0, import_node_path.resolve)(options.cwd ?? import_node_process2.default.cwd(), "pnpm-workspace.yaml"))) {
args.unshift("-w");
}
}
return (0, import_tinyexec.x)(
agent,
[
agent === "yarn" ? "add" : "install",
options.dev ? "-D" : "",
...args,
...names
].filter(Boolean),
{
nodeOptions: {
stdio: options.silent ? "ignore" : "inherit",
cwd: options.cwd
},
throwOnError: true
}
);
}
// src/uninstall.ts
var import_node_fs2 = require("fs");
var import_node_process3 = __toESM(require("process"), 1);
var import_node_path2 = require("path");
var import_tinyexec2 = require("tinyexec");
async function uninstallPackage(names, options = {}) {
const detectedAgent = options.packageManager || await detectPackageManager(options.cwd) || "npm";
const [agent] = detectedAgent.split("@");
if (!Array.isArray(names))
names = [names];
const args = options.additionalArgs || [];
if (agent === "pnpm" && (0, import_node_fs2.existsSync)((0, import_node_path2.resolve)(options.cwd ?? import_node_process3.default.cwd(), "pnpm-workspace.yaml")))
args.unshift("-w");
return (0, import_tinyexec2.x)(
agent,
[
agent === "yarn" ? "remove" : "uninstall",
options.dev ? "-D" : "",
...args,
...names
].filter(Boolean),
{
nodeOptions: {
stdio: options.silent ? "ignore" : "inherit",
cwd: options.cwd
},
throwOnError: true
}
);
}
// Annotate the CommonJS export names for ESM import in node:
0 && (module.exports = {
detectPackageManager,
installPackage,
uninstallPackage
});

View File

@ -0,0 +1,27 @@
import { Agent } from 'package-manager-detector';
export { Agent } from 'package-manager-detector';
import * as tinyexec from 'tinyexec';
type PackageManager = 'pnpm' | 'yarn' | 'npm' | 'bun';
declare function detectPackageManager(cwd?: string): Promise<Agent | null>;
interface InstallPackageOptions {
cwd?: string;
dev?: boolean;
silent?: boolean;
packageManager?: string;
preferOffline?: boolean;
additionalArgs?: string[] | ((agent: string, detectedAgent: string) => string[] | undefined);
}
declare function installPackage(names: string | string[], options?: InstallPackageOptions): Promise<tinyexec.Output>;
interface UninstallPackageOptions {
cwd?: string;
dev?: boolean;
silent?: boolean;
packageManager?: string;
additionalArgs?: string[];
}
declare function uninstallPackage(names: string | string[], options?: UninstallPackageOptions): Promise<tinyexec.Output>;
export { type InstallPackageOptions, type PackageManager, type UninstallPackageOptions, detectPackageManager, installPackage, uninstallPackage };

View File

@ -0,0 +1,27 @@
import { Agent } from 'package-manager-detector';
export { Agent } from 'package-manager-detector';
import * as tinyexec from 'tinyexec';
type PackageManager = 'pnpm' | 'yarn' | 'npm' | 'bun';
declare function detectPackageManager(cwd?: string): Promise<Agent | null>;
interface InstallPackageOptions {
cwd?: string;
dev?: boolean;
silent?: boolean;
packageManager?: string;
preferOffline?: boolean;
additionalArgs?: string[] | ((agent: string, detectedAgent: string) => string[] | undefined);
}
declare function installPackage(names: string | string[], options?: InstallPackageOptions): Promise<tinyexec.Output>;
interface UninstallPackageOptions {
cwd?: string;
dev?: boolean;
silent?: boolean;
packageManager?: string;
additionalArgs?: string[];
}
declare function uninstallPackage(names: string | string[], options?: UninstallPackageOptions): Promise<tinyexec.Output>;
export { type InstallPackageOptions, type PackageManager, type UninstallPackageOptions, detectPackageManager, installPackage, uninstallPackage };

View File

@ -0,0 +1,96 @@
// src/detect.ts
import process from "node:process";
import { detect } from "package-manager-detector/detect";
async function detectPackageManager(cwd = process.cwd()) {
const result = await detect({
cwd,
onUnknown(packageManager) {
console.warn("[@antfu/install-pkg] Unknown packageManager:", packageManager);
return void 0;
}
});
return result?.agent || null;
}
// src/install.ts
import { existsSync } from "node:fs";
import { resolve } from "node:path";
import process2 from "node:process";
import { x } from "tinyexec";
async function installPackage(names, options = {}) {
const detectedAgent = options.packageManager || await detectPackageManager(options.cwd) || "npm";
const [agent] = detectedAgent.split("@");
if (!Array.isArray(names))
names = [names];
const args = (typeof options.additionalArgs === "function" ? options.additionalArgs(agent, detectedAgent) : options.additionalArgs) || [];
if (options.preferOffline) {
if (detectedAgent === "yarn@berry")
args.unshift("--cached");
else
args.unshift("--prefer-offline");
}
if (agent === "pnpm") {
args.unshift(
/**
* Prevent pnpm from removing installed devDeps while `NODE_ENV` is `production`
* @see https://pnpm.io/cli/install#--prod--p
*/
"--prod=false"
);
if (existsSync(resolve(options.cwd ?? process2.cwd(), "pnpm-workspace.yaml"))) {
args.unshift("-w");
}
}
return x(
agent,
[
agent === "yarn" ? "add" : "install",
options.dev ? "-D" : "",
...args,
...names
].filter(Boolean),
{
nodeOptions: {
stdio: options.silent ? "ignore" : "inherit",
cwd: options.cwd
},
throwOnError: true
}
);
}
// src/uninstall.ts
import { existsSync as existsSync2 } from "node:fs";
import process3 from "node:process";
import { resolve as resolve2 } from "node:path";
import { x as x2 } from "tinyexec";
async function uninstallPackage(names, options = {}) {
const detectedAgent = options.packageManager || await detectPackageManager(options.cwd) || "npm";
const [agent] = detectedAgent.split("@");
if (!Array.isArray(names))
names = [names];
const args = options.additionalArgs || [];
if (agent === "pnpm" && existsSync2(resolve2(options.cwd ?? process3.cwd(), "pnpm-workspace.yaml")))
args.unshift("-w");
return x2(
agent,
[
agent === "yarn" ? "remove" : "uninstall",
options.dev ? "-D" : "",
...args,
...names
].filter(Boolean),
{
nodeOptions: {
stdio: options.silent ? "ignore" : "inherit",
cwd: options.cwd
},
throwOnError: true
}
);
}
export {
detectPackageManager,
installPackage,
uninstallPackage
};

View File

@ -0,0 +1,58 @@
{
"name": "@antfu/install-pkg",
"type": "module",
"version": "1.1.0",
"description": "Install package programmatically.",
"author": "Anthony Fu <anthonyfu117@hotmail.com>",
"license": "MIT",
"funding": "https://github.com/sponsors/antfu",
"homepage": "https://github.com/antfu/install-pkg#readme",
"repository": {
"type": "git",
"url": "git+https://github.com/antfu/install-pkg.git"
},
"bugs": {
"url": "https://github.com/antfu/install-pkg/issues"
},
"sideEffects": false,
"exports": {
".": {
"import": {
"types": "./dist/index.d.ts",
"default": "./dist/index.js"
},
"require": {
"types": "./dist/index.d.cts",
"default": "./dist/index.cjs"
}
}
},
"main": "dist/index.cjs",
"module": "dist/index.js",
"types": "dist/index.d.ts",
"files": [
"dist"
],
"dependencies": {
"package-manager-detector": "^1.3.0",
"tinyexec": "^1.0.1"
},
"devDependencies": {
"@antfu/eslint-config": "^4.12.1",
"@antfu/ni": "^24.3.0",
"@types/node": "^22.15.12",
"bumpp": "^10.1.0",
"eslint": "^9.26.0",
"publint": "^0.3.12",
"tsup": "^8.4.0",
"tsx": "^4.19.4",
"typescript": "^5.8.3"
},
"scripts": {
"dev": "nr build --watch",
"start": "tsx src/index.ts",
"build": "tsup src/index.ts --format cjs,esm --dts --no-splitting",
"release": "bumpp --commit --push --tag && pnpm publish",
"lint": "eslint ."
}
}

21
praesentation/node_modules/@antfu/ni/LICENSE generated vendored Normal file
View File

@ -0,0 +1,21 @@
MIT License
Copyright (c) 2020 Anthony Fu <https://github.com/antfu>
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

323
praesentation/node_modules/@antfu/ni/README.md generated vendored Normal file
View File

@ -0,0 +1,323 @@
# ni
~~*`npm i` in a yarn project, again? F\*\*k!*~~
**ni** - use the right package manager
<br>
```
npm i -g @antfu/ni
```
<a href='https://docs.npmjs.com/cli/v6/commands/npm'>npm</a> · <a href='https://yarnpkg.com'>yarn</a> · <a href='https://pnpm.io/'>pnpm</a> · <a href='https://bun.sh/'>bun</a>
<br>
### `ni` - install
```bash
ni
# npm install
# yarn install
# pnpm install
# bun install
```
```bash
ni vite
# npm i vite
# yarn add vite
# pnpm add vite
# bun add vite
```
```bash
ni @types/node -D
# npm i @types/node -D
# yarn add @types/node -D
# pnpm add -D @types/node
# bun add -d @types/node
```
```bash
ni --frozen
# npm ci
# yarn install --frozen-lockfile (Yarn 1)
# yarn install --immutable (Yarn Berry)
# pnpm install --frozen-lockfile
# bun install --frozen-lockfile
```
```bash
ni -g eslint
# npm i -g eslint
# yarn global add eslint (Yarn 1)
# pnpm add -g eslint
# bun add -g eslint
# this uses default agent, regardless your current working directory
```
```bash
ni -i
# interactively select the dependency to install
# search for packages by name
```
<br>
### `nr` - run
```bash
nr dev --port=3000
# npm run dev -- --port=3000
# yarn run dev --port=3000
# pnpm run dev --port=3000
# bun run dev --port=3000
```
```bash
nr
# interactively select the script to run
# supports https://www.npmjs.com/package/npm-scripts-info convention
```
```bash
nr -
# rerun the last command
```
<br>
### `nlx` - download & execute
```bash
nlx vitest
# npx vitest
# yarn dlx vitest
# pnpm dlx vitest
# bunx vitest
```
<br>
### `nu` - upgrade
```bash
nu
# npm upgrade
# yarn upgrade (Yarn 1)
# yarn up (Yarn Berry)
# pnpm update
# bun update
```
```bash
nu -i
# (not available for npm & bun)
# yarn upgrade-interactive (Yarn 1)
# yarn up -i (Yarn Berry)
# pnpm update -i
```
<br>
### `nun` - uninstall
```bash
nun webpack
# npm uninstall webpack
# yarn remove webpack
# pnpm remove webpack
# bun remove webpack
```
```bash
nun
# interactively select
# the dependency to remove
```
```bash
nun -m
# interactive select,
# but with multiple dependencies
```
```bash
nun -g silent
# npm uninstall -g silent
# yarn global remove silent
# pnpm remove -g silent
# bun remove -g silent
```
<br>
### `nci` - clean install
```bash
nci
# npm ci
# yarn install --frozen-lockfile
# pnpm install --frozen-lockfile
# bun install --frozen-lockfile
```
if the corresponding node manager is not present, this command will install it globally along the way.
<br>
### `na` - agent alias
```bash
na
# npm
# yarn
# pnpm
# bun
```
```bash
na run foo
# npm run foo
# yarn run foo
# pnpm run foo
# bun run foo
```
<br>
### Global Flags
```bash
# ? | Print the command execution depends on the agent
ni vite ?
# -C | Change directory before running the command
ni -C packages/foo vite
nr -C playground dev
# -v, --version | Show version number
ni -v
# -h, --help | Show help
ni -h
```
<br>
### Config
```ini
; ~/.nirc
; fallback when no lock found
defaultAgent=npm # default "prompt"
; for global installs
globalAgent=npm
```
```bash
# ~/.bashrc
# custom configuration file path
export NI_CONFIG_FILE="$HOME/.config/ni/nirc"
# environment variables have higher priority than config file if presented
export NI_DEFAULT_AGENT="npm" # default "prompt"
export NI_GLOBAL_AGENT="npm"
```
```ps
# for Windows
# custom configuration file path in PowerShell accessible within the `$profile` path
$Env:NI_CONFIG_FILE = 'C:\to\your\config\location'
```
<br>
### Integrations
#### asdf
You can also install ni via the [3rd-party asdf-plugin](https://github.com/CanRau/asdf-ni.git) maintained by [CanRau](https://github.com/CanRau)
```bash
# first add the plugin
asdf plugin add ni https://github.com/CanRau/asdf-ni.git
# then install the latest version
asdf install ni latest
# and make it globally available
asdf global ni latest
```
### How?
**ni** assumes that you work with lockfiles (and you should)
Before it runs, it will detect your `yarn.lock` / `pnpm-lock.yaml` / `package-lock.json` / `bun.lockb` to know current package manager (or `packageManager` field in your packages.json if specified), and runs the [corresponding commands](https://github.com/antfu/ni/blob/main/src/agents.ts).
### Trouble shooting
#### Conflicts with PowerShell
PowerShell comes with a built-in alias `ni` for the `New-Item` cmdlet. To remove the alias in your current PowerShell session in favor of this package, use the following command:
```PowerShell
'Remove-Item Alias:ni -Force -ErrorAction Ignore'
```
If you want to persist the changes, you can add them to your PowerShell profile. The profile path is accessible within the `$profile` variable. The ps1 profile file can normally be found at
- PowerShell 5 (Windows PowerShell): `C:\Users\USERNAME\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1`
- PowerShell 7: `C:\Users\USERNAME\Documents\PowerShell\Microsoft.PowerShell_profile.ps1`
- VSCode: `C:\Users\USERNAME\Documents\PowerShell\Microsoft.VSCode_profile.ps1`
You can use the following script to remove the alias at shell start by adding the above command to your profile:
```PowerShell
if (-not (Test-Path $profile)) {
New-Item -ItemType File -Path (Split-Path $profile) -Force -Name (Split-Path $profile -Leaf)
}
$profileEntry = 'Remove-Item Alias:ni -Force -ErrorAction Ignore'
$profileContent = Get-Content $profile
if ($profileContent -notcontains $profileEntry) {
("`n" + $profileEntry) | Out-File $profile -Append -Force -Encoding UTF8
}
```
#### `nx` and `nix` is no longer available
We renamed `nx`/`nix` to `nlx` to avoid conflicts with the other existing tools - [nx](https://nx.dev/) and [nix](https://nixos.org/). You can always alias them back on your shell configuration file (`.zshrc`, `.bashrc`, etc).
```bash
alias nx="nlx"
# or
alias nix="nlx"
```

3
praesentation/node_modules/@antfu/ni/bin/na.mjs generated vendored Executable file
View File

@ -0,0 +1,3 @@
#!/usr/bin/env node
'use strict'
import '../dist/na.mjs'

3
praesentation/node_modules/@antfu/ni/bin/nci.mjs generated vendored Executable file
View File

@ -0,0 +1,3 @@
#!/usr/bin/env node
'use strict'
import '../dist/nci.mjs'

3
praesentation/node_modules/@antfu/ni/bin/ni.mjs generated vendored Executable file
View File

@ -0,0 +1,3 @@
#!/usr/bin/env node
'use strict'
import '../dist/ni.mjs'

3
praesentation/node_modules/@antfu/ni/bin/nlx.mjs generated vendored Executable file
View File

@ -0,0 +1,3 @@
#!/usr/bin/env node
'use strict'
import '../dist/nlx.mjs'

3
praesentation/node_modules/@antfu/ni/bin/nr.mjs generated vendored Executable file
View File

@ -0,0 +1,3 @@
#!/usr/bin/env node
'use strict'
import '../dist/nr.mjs'

3
praesentation/node_modules/@antfu/ni/bin/nu.mjs generated vendored Executable file
View File

@ -0,0 +1,3 @@
#!/usr/bin/env node
'use strict'
import '../dist/nu.mjs'

3
praesentation/node_modules/@antfu/ni/bin/nun.mjs generated vendored Executable file
View File

@ -0,0 +1,3 @@
#!/usr/bin/env node
'use strict'
import '../dist/nun.mjs'

51
praesentation/node_modules/@antfu/ni/dist/index.cjs generated vendored Normal file
View File

@ -0,0 +1,51 @@
'use strict';
const runner = require('./shared/ni.C82eau-4.cjs');
require('node:path');
require('node:process');
require('readline');
require('events');
require('node:module');
require('child_process');
require('path');
require('process');
require('stream');
require('node:fs');
require('os');
require('tty');
require('node:os');
require('fs');
require('fs/promises');
require('node:fs/promises');
exports.AGENTS = runner.AGENTS;
exports.CLI_TEMP_DIR = runner.CLI_TEMP_DIR;
exports.COMMANDS = runner.COMMANDS;
exports.INSTALL_PAGE = runner.INSTALL_PAGE;
exports.LOCKS = runner.LOCKS;
exports.UnsupportedCommand = runner.UnsupportedCommand;
exports.cmdExists = runner.cmdExists;
exports.constructCommand = runner.constructCommand;
exports.detect = runner.detect;
exports.exclude = runner.exclude;
exports.formatPackageWithUrl = runner.formatPackageWithUrl;
exports.getCliCommand = runner.getCliCommand;
exports.getCommand = runner.getCommand;
exports.getConfig = runner.getConfig;
exports.getDefaultAgent = runner.getDefaultAgent;
exports.getGlobalAgent = runner.getGlobalAgent;
exports.limitText = runner.limitText;
exports.parseNa = runner.parseNa;
exports.parseNi = runner.parseNi;
exports.parseNlx = runner.parseNlx;
exports.parseNr = runner.parseNr;
exports.parseNu = runner.parseNu;
exports.parseNun = runner.parseNun;
exports.remove = runner.remove;
exports.resolveCommand = runner.resolveCommand;
exports.run = runner.run;
exports.runCli = runner.runCli;
exports.serializeCommand = runner.serializeCommand;
exports.writeFileSafe = runner.writeFileSafe;

129
praesentation/node_modules/@antfu/ni/dist/index.d.cts generated vendored Normal file
View File

@ -0,0 +1,129 @@
import { Buffer } from 'node:buffer';
type Agent = 'npm' | 'yarn' | 'yarn@berry' | 'pnpm' | 'pnpm@6' | 'bun' | 'deno';
type AgentName = 'npm' | 'yarn' | 'pnpm' | 'bun' | 'deno';
type AgentCommandValue = (string | number)[] | ((args: string[]) => string[]) | null;
interface AgentCommands {
'agent': AgentCommandValue;
'run': AgentCommandValue;
'install': AgentCommandValue;
'frozen': AgentCommandValue;
'global': AgentCommandValue;
'add': AgentCommandValue;
'upgrade': AgentCommandValue;
'upgrade-interactive': AgentCommandValue;
'execute': AgentCommandValue;
'execute-local': AgentCommandValue;
'uninstall': AgentCommandValue;
'global_uninstall': AgentCommandValue;
}
type Command = keyof AgentCommands;
interface ResolvedCommand {
/**
* CLI command.
*/
command: string;
/**
* Arguments for the CLI command, merged with user arguments.
*/
args: string[];
}
declare const COMMANDS: {
npm: AgentCommands;
yarn: AgentCommands;
'yarn@berry': AgentCommands;
pnpm: AgentCommands;
'pnpm@6': AgentCommands;
bun: AgentCommands;
deno: AgentCommands;
};
/**
* Resolve the command for the agent merging the command arguments with the provided arguments.
*
* For example, to show how to install `@antfu/ni` globally using `pnpm`:
* ```js
* import { resolveCommand } from 'package-manager-detector/commands'
* const { command, args } = resolveCommand('pnpm', 'global', ['@antfu/ni'])
* console.log(`${command} ${args.join(' ')}`) // 'pnpm add -g @antfu/ni'
* ```
*
* @param agent The agent to use.
* @param command the command to resolve.
* @param args The arguments to pass to the command.
* @returns {ResolvedCommand} The resolved command or `null` if the agent command is not found.
*/
declare function resolveCommand(agent: Agent, command: Command, args: string[]): ResolvedCommand | null;
/**
* Construct the command from the agent command merging the command arguments with the provided arguments.
* @param value {AgentCommandValue} The agent command to use.
* @param args The arguments to pass to the command.
* @returns {ResolvedCommand} The resolved command or `null` if the command is `null`.
*/
declare function constructCommand(value: AgentCommandValue, args: string[]): ResolvedCommand | null;
declare const AGENTS: Agent[];
declare const LOCKS: Record<string, AgentName>;
declare const INSTALL_PAGE: Record<Agent, string>;
interface Config {
defaultAgent: Agent | 'prompt';
globalAgent: Agent;
}
declare function getConfig(): Promise<Config>;
declare function getDefaultAgent(programmatic?: boolean): Promise<Agent | "prompt">;
declare function getGlobalAgent(): Promise<Agent>;
interface DetectOptions {
autoInstall?: boolean;
programmatic?: boolean;
cwd?: string;
/**
* Should use Volta when present
*
* @see https://volta.sh/
* @default true
*/
detectVolta?: boolean;
}
declare function detect({ autoInstall, programmatic, cwd }?: DetectOptions): Promise<Agent | undefined>;
interface RunnerContext {
programmatic?: boolean;
hasLock?: boolean;
cwd?: string;
}
type Runner = (agent: Agent, args: string[], ctx?: RunnerContext) => Promise<ResolvedCommand | undefined> | ResolvedCommand | undefined;
declare function runCli(fn: Runner, options?: DetectOptions & {
args?: string[];
}): Promise<void>;
declare function getCliCommand(fn: Runner, args: string[], options?: DetectOptions, cwd?: string): Promise<ResolvedCommand | undefined>;
declare function run(fn: Runner, args: string[], options?: DetectOptions): Promise<void>;
declare class UnsupportedCommand extends Error {
constructor({ agent, command }: {
agent: Agent;
command: Command;
});
}
declare function getCommand(agent: Agent, command: Command, args?: string[]): ResolvedCommand;
declare const parseNi: Runner;
declare const parseNr: Runner;
declare const parseNu: Runner;
declare const parseNun: Runner;
declare const parseNlx: Runner;
declare const parseNa: Runner;
declare function serializeCommand(command?: ResolvedCommand): string | undefined;
declare const CLI_TEMP_DIR: string;
declare function remove<T>(arr: T[], v: T): T[];
declare function exclude<T>(arr: T[], ...v: T[]): T[];
declare function cmdExists(cmd: string): boolean;
/**
* Write file safely avoiding conflicts
*/
declare function writeFileSafe(path: string, data?: string | Buffer): Promise<boolean>;
declare function limitText(text: string, maxWidth: number): string;
declare function formatPackageWithUrl(pkg: string, url?: string, limits?: number): string;
export { AGENTS, CLI_TEMP_DIR, COMMANDS, type DetectOptions, INSTALL_PAGE, LOCKS, type Runner, type RunnerContext, UnsupportedCommand, cmdExists, constructCommand, detect, exclude, formatPackageWithUrl, getCliCommand, getCommand, getConfig, getDefaultAgent, getGlobalAgent, limitText, parseNa, parseNi, parseNlx, parseNr, parseNu, parseNun, remove, resolveCommand, run, runCli, serializeCommand, writeFileSafe };

129
praesentation/node_modules/@antfu/ni/dist/index.d.mts generated vendored Normal file
View File

@ -0,0 +1,129 @@
import { Buffer } from 'node:buffer';
type Agent = 'npm' | 'yarn' | 'yarn@berry' | 'pnpm' | 'pnpm@6' | 'bun' | 'deno';
type AgentName = 'npm' | 'yarn' | 'pnpm' | 'bun' | 'deno';
type AgentCommandValue = (string | number)[] | ((args: string[]) => string[]) | null;
interface AgentCommands {
'agent': AgentCommandValue;
'run': AgentCommandValue;
'install': AgentCommandValue;
'frozen': AgentCommandValue;
'global': AgentCommandValue;
'add': AgentCommandValue;
'upgrade': AgentCommandValue;
'upgrade-interactive': AgentCommandValue;
'execute': AgentCommandValue;
'execute-local': AgentCommandValue;
'uninstall': AgentCommandValue;
'global_uninstall': AgentCommandValue;
}
type Command = keyof AgentCommands;
interface ResolvedCommand {
/**
* CLI command.
*/
command: string;
/**
* Arguments for the CLI command, merged with user arguments.
*/
args: string[];
}
declare const COMMANDS: {
npm: AgentCommands;
yarn: AgentCommands;
'yarn@berry': AgentCommands;
pnpm: AgentCommands;
'pnpm@6': AgentCommands;
bun: AgentCommands;
deno: AgentCommands;
};
/**
* Resolve the command for the agent merging the command arguments with the provided arguments.
*
* For example, to show how to install `@antfu/ni` globally using `pnpm`:
* ```js
* import { resolveCommand } from 'package-manager-detector/commands'
* const { command, args } = resolveCommand('pnpm', 'global', ['@antfu/ni'])
* console.log(`${command} ${args.join(' ')}`) // 'pnpm add -g @antfu/ni'
* ```
*
* @param agent The agent to use.
* @param command the command to resolve.
* @param args The arguments to pass to the command.
* @returns {ResolvedCommand} The resolved command or `null` if the agent command is not found.
*/
declare function resolveCommand(agent: Agent, command: Command, args: string[]): ResolvedCommand | null;
/**
* Construct the command from the agent command merging the command arguments with the provided arguments.
* @param value {AgentCommandValue} The agent command to use.
* @param args The arguments to pass to the command.
* @returns {ResolvedCommand} The resolved command or `null` if the command is `null`.
*/
declare function constructCommand(value: AgentCommandValue, args: string[]): ResolvedCommand | null;
declare const AGENTS: Agent[];
declare const LOCKS: Record<string, AgentName>;
declare const INSTALL_PAGE: Record<Agent, string>;
interface Config {
defaultAgent: Agent | 'prompt';
globalAgent: Agent;
}
declare function getConfig(): Promise<Config>;
declare function getDefaultAgent(programmatic?: boolean): Promise<Agent | "prompt">;
declare function getGlobalAgent(): Promise<Agent>;
interface DetectOptions {
autoInstall?: boolean;
programmatic?: boolean;
cwd?: string;
/**
* Should use Volta when present
*
* @see https://volta.sh/
* @default true
*/
detectVolta?: boolean;
}
declare function detect({ autoInstall, programmatic, cwd }?: DetectOptions): Promise<Agent | undefined>;
interface RunnerContext {
programmatic?: boolean;
hasLock?: boolean;
cwd?: string;
}
type Runner = (agent: Agent, args: string[], ctx?: RunnerContext) => Promise<ResolvedCommand | undefined> | ResolvedCommand | undefined;
declare function runCli(fn: Runner, options?: DetectOptions & {
args?: string[];
}): Promise<void>;
declare function getCliCommand(fn: Runner, args: string[], options?: DetectOptions, cwd?: string): Promise<ResolvedCommand | undefined>;
declare function run(fn: Runner, args: string[], options?: DetectOptions): Promise<void>;
declare class UnsupportedCommand extends Error {
constructor({ agent, command }: {
agent: Agent;
command: Command;
});
}
declare function getCommand(agent: Agent, command: Command, args?: string[]): ResolvedCommand;
declare const parseNi: Runner;
declare const parseNr: Runner;
declare const parseNu: Runner;
declare const parseNun: Runner;
declare const parseNlx: Runner;
declare const parseNa: Runner;
declare function serializeCommand(command?: ResolvedCommand): string | undefined;
declare const CLI_TEMP_DIR: string;
declare function remove<T>(arr: T[], v: T): T[];
declare function exclude<T>(arr: T[], ...v: T[]): T[];
declare function cmdExists(cmd: string): boolean;
/**
* Write file safely avoiding conflicts
*/
declare function writeFileSafe(path: string, data?: string | Buffer): Promise<boolean>;
declare function limitText(text: string, maxWidth: number): string;
declare function formatPackageWithUrl(pkg: string, url?: string, limits?: number): string;
export { AGENTS, CLI_TEMP_DIR, COMMANDS, type DetectOptions, INSTALL_PAGE, LOCKS, type Runner, type RunnerContext, UnsupportedCommand, cmdExists, constructCommand, detect, exclude, formatPackageWithUrl, getCliCommand, getCommand, getConfig, getDefaultAgent, getGlobalAgent, limitText, parseNa, parseNi, parseNlx, parseNr, parseNu, parseNun, remove, resolveCommand, run, runCli, serializeCommand, writeFileSafe };

129
praesentation/node_modules/@antfu/ni/dist/index.d.ts generated vendored Normal file
View File

@ -0,0 +1,129 @@
import { Buffer } from 'node:buffer';
type Agent = 'npm' | 'yarn' | 'yarn@berry' | 'pnpm' | 'pnpm@6' | 'bun' | 'deno';
type AgentName = 'npm' | 'yarn' | 'pnpm' | 'bun' | 'deno';
type AgentCommandValue = (string | number)[] | ((args: string[]) => string[]) | null;
interface AgentCommands {
'agent': AgentCommandValue;
'run': AgentCommandValue;
'install': AgentCommandValue;
'frozen': AgentCommandValue;
'global': AgentCommandValue;
'add': AgentCommandValue;
'upgrade': AgentCommandValue;
'upgrade-interactive': AgentCommandValue;
'execute': AgentCommandValue;
'execute-local': AgentCommandValue;
'uninstall': AgentCommandValue;
'global_uninstall': AgentCommandValue;
}
type Command = keyof AgentCommands;
interface ResolvedCommand {
/**
* CLI command.
*/
command: string;
/**
* Arguments for the CLI command, merged with user arguments.
*/
args: string[];
}
declare const COMMANDS: {
npm: AgentCommands;
yarn: AgentCommands;
'yarn@berry': AgentCommands;
pnpm: AgentCommands;
'pnpm@6': AgentCommands;
bun: AgentCommands;
deno: AgentCommands;
};
/**
* Resolve the command for the agent merging the command arguments with the provided arguments.
*
* For example, to show how to install `@antfu/ni` globally using `pnpm`:
* ```js
* import { resolveCommand } from 'package-manager-detector/commands'
* const { command, args } = resolveCommand('pnpm', 'global', ['@antfu/ni'])
* console.log(`${command} ${args.join(' ')}`) // 'pnpm add -g @antfu/ni'
* ```
*
* @param agent The agent to use.
* @param command the command to resolve.
* @param args The arguments to pass to the command.
* @returns {ResolvedCommand} The resolved command or `null` if the agent command is not found.
*/
declare function resolveCommand(agent: Agent, command: Command, args: string[]): ResolvedCommand | null;
/**
* Construct the command from the agent command merging the command arguments with the provided arguments.
* @param value {AgentCommandValue} The agent command to use.
* @param args The arguments to pass to the command.
* @returns {ResolvedCommand} The resolved command or `null` if the command is `null`.
*/
declare function constructCommand(value: AgentCommandValue, args: string[]): ResolvedCommand | null;
declare const AGENTS: Agent[];
declare const LOCKS: Record<string, AgentName>;
declare const INSTALL_PAGE: Record<Agent, string>;
interface Config {
defaultAgent: Agent | 'prompt';
globalAgent: Agent;
}
declare function getConfig(): Promise<Config>;
declare function getDefaultAgent(programmatic?: boolean): Promise<Agent | "prompt">;
declare function getGlobalAgent(): Promise<Agent>;
interface DetectOptions {
autoInstall?: boolean;
programmatic?: boolean;
cwd?: string;
/**
* Should use Volta when present
*
* @see https://volta.sh/
* @default true
*/
detectVolta?: boolean;
}
declare function detect({ autoInstall, programmatic, cwd }?: DetectOptions): Promise<Agent | undefined>;
interface RunnerContext {
programmatic?: boolean;
hasLock?: boolean;
cwd?: string;
}
type Runner = (agent: Agent, args: string[], ctx?: RunnerContext) => Promise<ResolvedCommand | undefined> | ResolvedCommand | undefined;
declare function runCli(fn: Runner, options?: DetectOptions & {
args?: string[];
}): Promise<void>;
declare function getCliCommand(fn: Runner, args: string[], options?: DetectOptions, cwd?: string): Promise<ResolvedCommand | undefined>;
declare function run(fn: Runner, args: string[], options?: DetectOptions): Promise<void>;
declare class UnsupportedCommand extends Error {
constructor({ agent, command }: {
agent: Agent;
command: Command;
});
}
declare function getCommand(agent: Agent, command: Command, args?: string[]): ResolvedCommand;
declare const parseNi: Runner;
declare const parseNr: Runner;
declare const parseNu: Runner;
declare const parseNun: Runner;
declare const parseNlx: Runner;
declare const parseNa: Runner;
declare function serializeCommand(command?: ResolvedCommand): string | undefined;
declare const CLI_TEMP_DIR: string;
declare function remove<T>(arr: T[], v: T): T[];
declare function exclude<T>(arr: T[], ...v: T[]): T[];
declare function cmdExists(cmd: string): boolean;
/**
* Write file safely avoiding conflicts
*/
declare function writeFileSafe(path: string, data?: string | Buffer): Promise<boolean>;
declare function limitText(text: string, maxWidth: number): string;
declare function formatPackageWithUrl(pkg: string, url?: string, limits?: number): string;
export { AGENTS, CLI_TEMP_DIR, COMMANDS, type DetectOptions, INSTALL_PAGE, LOCKS, type Runner, type RunnerContext, UnsupportedCommand, cmdExists, constructCommand, detect, exclude, formatPackageWithUrl, getCliCommand, getCommand, getConfig, getDefaultAgent, getGlobalAgent, limitText, parseNa, parseNi, parseNlx, parseNr, parseNu, parseNun, remove, resolveCommand, run, runCli, serializeCommand, writeFileSafe };

17
praesentation/node_modules/@antfu/ni/dist/index.mjs generated vendored Normal file
View File

@ -0,0 +1,17 @@
export { A as AGENTS, C as CLI_TEMP_DIR, u as COMMANDS, I as INSTALL_PAGE, L as LOCKS, U as UnsupportedCommand, o as cmdExists, v as constructCommand, d as detect, n as exclude, t as formatPackageWithUrl, k as getCliCommand, c as getCommand, g as getConfig, a as getDefaultAgent, b as getGlobalAgent, q as limitText, j as parseNa, p as parseNi, i as parseNlx, e as parseNr, f as parseNu, h as parseNun, m as remove, x as resolveCommand, l as run, r as runCli, s as serializeCommand, w as writeFileSafe } from './shared/ni.CtJepYoh.mjs';
import 'node:path';
import 'node:process';
import 'readline';
import 'events';
import 'node:module';
import 'child_process';
import 'path';
import 'process';
import 'stream';
import 'node:fs';
import 'os';
import 'tty';
import 'node:os';
import 'fs';
import 'fs/promises';
import 'node:fs/promises';

Some files were not shown because too many files have changed in this diff Show More