From c8fab711f59c3aedd51bba3f0b4b218642ca9b93 Mon Sep 17 00:00:00 2001 From: Cobalt Date: Tue, 6 Sep 2022 20:23:41 +0200 Subject: [PATCH 01/27] chore: Migrate code base with first pages --- .gitignore | 31 +- .prettierrc.js | 11 + README.md | 54 +- astro.config.ts | 31 + features.md | 3 - mdsvex.config.js | 39 - package.json | 100 +- pnpm-lock.yaml | 7232 +++++++++-------- postcss.config.cjs => postcss.config.js | 4 +- prettier.config.cjs | 7 - public/favicon.ico | Bin 0 -> 4286 bytes ...n-racket-sportive-sports-tennis_108746.png | Bin ...ucation-flask-science-test-tube_108750.png | Bin ...tor-finance-maths-technological_108748.png | Bin ...nch-rocket-ship-space-transport_108766.png | Bin ...cology-flask-laboratory-science_108761.png | Bin ...-sound-technology-vintage-voice_108745.png | Bin ...very-man-phone-shipping-support_108751.png | Bin {static => public}/images/CoderDojo.png | Bin {static => public}/images/Git-logo.png | Bin {static => public}/images/Git-logo.svg | 0 {static => public}/images/Matrix-logo.svg | 0 {static => public}/images/Noma_Dojo.jpg | Bin {static => public}/images/PyCharm_Icon.svg | 0 {static => public}/images/SolarpanelBp.jpeg | Bin ...nasignalobservatoryradio-115839_115790.png | Bin {static => public}/images/arcarde_1.png | Bin .../images/audio_book_icon_182964.png | Bin {static => public}/images/brand.svg | 0 .../images/children-593313_1280.jpg | Bin {static => public}/images/exploding_head.png | Bin {static => public}/images/favicon.ico | Bin .../images/help-2444110_1280.png | Bin {static => public}/images/html_code.png | Bin .../images/idea_icon_182952.png | Bin {static => public}/images/kyo-6/Git-logo.png | Bin {static => public}/images/kyo-6/Pygame.png | Bin .../images/kyo-6/Pygame_logo.gif | Bin {static => public}/images/kyo-6/Tux.png | Bin .../images/kyo-6/attiny/1-attiny.jpg | Bin .../images/kyo-6/attiny/1-attiny_th.jpg | Bin .../images/kyo-6/attiny/10-konnektor.jpg | Bin .../images/kyo-6/attiny/10-konnektor_th.jpg | Bin .../images/kyo-6/attiny/11-konnektor.jpg | Bin .../images/kyo-6/attiny/11-konnektor_th.jpg | Bin .../images/kyo-6/attiny/12-abisolieren.jpg | Bin .../images/kyo-6/attiny/12-abisolieren_th.jpg | Bin .../images/kyo-6/attiny/126A2639.MOV | Bin .../images/kyo-6/attiny/126A2657.JPG | Bin .../images/kyo-6/attiny/13-loetkolben.jpg | Bin .../images/kyo-6/attiny/13-loetkolben_th.jpg | Bin .../images/kyo-6/attiny/14-verzinnen.jpg | Bin .../images/kyo-6/attiny/14-verzinnen_th.jpg | Bin .../images/kyo-6/attiny/15-stripe.jpg | Bin .../images/kyo-6/attiny/15-stripe_th.jpg | Bin .../images/kyo-6/attiny/16-stripe.jpg | Bin .../images/kyo-6/attiny/16-stripe_th.jpg | Bin .../images/kyo-6/attiny/17-programmer.jpg | Bin .../images/kyo-6/attiny/17-programmer_th.jpg | Bin .../images/kyo-6/attiny/18-haende.jpg | Bin .../images/kyo-6/attiny/18-haende_th.jpg | Bin .../images/kyo-6/attiny/2-programmer.jpg | Bin .../images/kyo-6/attiny/2-programmer_th.jpg | Bin .../images/kyo-6/attiny/3-zeichnung.jpg | Bin .../images/kyo-6/attiny/3-zeichnung.png | Bin .../images/kyo-6/attiny/3-zeichnung_th.jpg | Bin .../kyo-6/attiny/4-breadboard-verbinden.jpg | Bin .../attiny/4-breadboard-verbinden_th.jpg | Bin .../kyo-6/attiny/5-breadboard-verbinden.jpg | Bin .../attiny/5-breadboard-verbinden_th.jpg | Bin .../kyo-6/attiny/6-breadboard-verbinden.jpg | Bin .../attiny/6-breadboard-verbinden_th.jpg | Bin .../images/kyo-6/attiny/7-LED.jpg | Bin .../images/kyo-6/attiny/7-LED_th.jpg | Bin .../images/kyo-6/attiny/8-LED.jpg | Bin .../images/kyo-6/attiny/8-LED_th.jpg | Bin .../images/kyo-6/attiny/9-stripe.jpg | Bin .../images/kyo-6/attiny/9-stripe_th.jpg | Bin .../images/kyo-6/git-2-branch-main-crop.png | Bin .../kyo-6/git-2-branch-test-loop-crop.png | Bin .../images/kyo-6/git-2-choose-branch-crop.png | Bin .../images/kyo-6/git-2-helloWorld-crop.png | Bin .../images/kyo-6/git-2-klonen-crop.png | Bin .../kyo-6/git-2-new-pull-request-crop.png | Bin .../images/kyo-6/git-2-pull-request-crop.png | Bin .../images/kyo-6/shell-ohne.pdf | Bin .../images/kyo-7/8-1-Pycharm-1.png | Bin .../images/kyo-7/8-1-Pycharm-1a.png | Bin .../images/kyo-7/8-1-Pycharm-1b.png | Bin .../images/kyo-7/8-1-Pycharm-2.jpg | Bin .../images/kyo-7/8-1-Pycharm-2.png | Bin .../images/kyo-7/8-1-Pycharm-3.jpg | Bin .../images/kyo-7/8-1-Pycharm-3.png | Bin .../images/kyo-7/8-1-Pycharm-4.jpg | Bin .../images/kyo-7/8-1-Pycharm-4.png | Bin .../images/kyo-7/8-1-Pycharm-5.jpg | Bin .../images/kyo-7/8-1-Pycharm-5.png | Bin .../images/kyo-7/8-1-Pycharm-6.png | Bin .../images/kyo-7/8-1-Pycharm-7.png | Bin .../images/kyo-7/8.1-Pycharm-3.png | Bin .../images/kyo-7/Batteriekasten.jpg | Bin {static => public}/images/kyo-7/Brave.png | Bin .../images/kyo-7/Code-Kommentare.jpg | Bin .../images/kyo-7/Cyber4EDU_sticker.png | Bin .../images/kyo-7/Haltepunkt.png | Bin .../images/kyo-7/LED-Schaltung.png | Bin .../images/kyo-7/LED-falsch.jpg | Bin .../images/kyo-7/LED-richtig.jpg | Bin .../images/kyo-7/Leiterbahnen_ziehen.jpg | Bin .../images/kyo-7/Lochraster_loeten.jpg | Bin .../images/kyo-7/Matrix-logo.png | Bin .../images/kyo-7/Python_string_int.jpg | Bin .../images/kyo-7/SolarpanelBp_a.jpeg | Bin .../images/kyo-7/Tie_shoelace.png | Bin .../images/kyo-7/Widerstand.jpg | Bin {static => public}/images/kyo-7/brand.svg | 0 .../images/kyo-7/capsized-31696_1280_s.png | Bin .../images/kyo-7/children-593313_s.jpg | Bin .../images/kyo-7/derMicha_Soldering.jpg | Bin .../images/kyo-7/derMicha_Soldering_th.jpg | Bin .../images/kyo-7/help-2444110_1280_a.png | Bin {static => public}/images/kyo-7/ls | 0 .../images/kyo-info/JJS_Dojo_s.jpg | Bin .../images/kyo-info/capsized-31696_1280_s.png | Bin .../images/kyo-info/fantasy-fractal.jpg | Bin .../images/kyo-info/karate-2717178_1280_s.jpg | Bin .../images/kyo-info/martial-83009_1280_s.jpg | Bin {static => public}/images/kyus/trinity-1.svg | 0 {static => public}/images/kyus/trinity-2.svg | 0 {static => public}/images/kyus/trinity-3.svg | 0 {static => public}/images/kyus/trinity-4.svg | 0 {static => public}/images/kyus/trinity-5.svg | 0 {static => public}/images/kyus/trinity-6.svg | 0 {static => public}/images/kyus/trinity.svg | 0 {static => public}/images/logo-editor-url.svg | 0 {static => public}/images/logo-editor.svg | 0 .../images/logo/android-chrome-144x144.png | Bin .../images/logo/android-chrome-192x192.png | Bin .../images/logo/android-chrome-256x256.png | Bin .../images/logo/android-chrome-36x36.png | Bin .../images/logo/android-chrome-384x384.png | Bin .../images/logo/android-chrome-48x48.png | Bin .../images/logo/android-chrome-512x512.png | Bin .../images/logo/android-chrome-72x72.png | Bin .../images/logo/android-chrome-96x96.png | Bin .../images/logo/apple-touch-icon-120x120.png | Bin .../images/logo/apple-touch-icon-152x152.png | Bin .../images/logo/apple-touch-icon-180x180.png | Bin .../images/logo/apple-touch-icon-60x60.png | Bin .../images/logo/apple-touch-icon-76x76.png | Bin .../images/logo/apple-touch-icon.png | Bin .../images/logo/browserconfig.xml | 0 .../images/logo/favicon-16x16.png | Bin .../images/logo/favicon-32x32.png | Bin .../images/logo/mstile-144x144.png | Bin .../images/logo/mstile-150x150.png | Bin .../images/logo/mstile-310x150.png | Bin .../images/logo/mstile-310x310.png | Bin .../images/logo/mstile-70x70.png | Bin .../images/logo/safari-pinned-tab.svg | 0 .../images/logo/site.webmanifest | 0 {static => public}/images/man_muesste.jpg | Bin {static => public}/images/math_book.png | Bin {static => public}/images/matrix-front-g.jpg | Bin {static => public}/images/matrix-front.jpg | Bin {static => public}/images/memo.txt | 0 {static => public}/images/python-snake.jpg | Bin {static => public}/images/python.jpg | Bin .../images/science_book_icon_182960.png | Bin public/robots.txt | 3 + src/app.d.ts | 12 - src/app.html | 11 - src/{ => assets/styles}/app.css | 3 +- .../styles}/styles/admonitions.css | 0 src/{ => assets/styles}/styles/base.css | 0 src/{ => assets/styles}/styles/components.css | 80 +- src/{ => assets/styles}/styles/duotone.css | 19 +- src/{ => assets/styles}/styles/utilities.css | 0 src/{lib => }/components/Avatar.svelte | 0 src/{lib => }/components/Belt.svelte | 0 src/components/Button.svelte | 37 + src/components/Figure.astro | 23 + src/components/Footer.astro | 49 + src/components/Logo.astro | 94 + src/components/Logo.svelte | 94 + src/components/Meta.astro | 115 + src/components/Navbar.svelte | 99 + .../NewsCard.astro} | 20 +- src/components/Placeholder.astro | 12 + src/{lib => }/components/TocDropdown.svelte | 9 +- src/components/TocList.astro | 14 + src/components/WIP.astro | 10 + src/layouts/Base.astro | 32 + src/layouts/Page.astro | 76 + src/layouts/Prose.astro | 25 + src/lib/Placeholder.svelte | 18 - src/lib/admonition-shim.js | 56 + src/lib/codetitle.js | 77 - src/lib/components/AttributionCard.svelte | 46 - src/lib/components/Audio.svelte | 29 - src/lib/components/Button.svelte | 76 - src/lib/components/DescriptionList.svelte | 18 - src/lib/components/Figure.svelte | 35 - src/lib/components/Logo.svelte | 100 - src/lib/components/Meta.svelte | 60 - src/lib/components/TocList.svelte | 16 - src/lib/compress-html.cjs | 53 - src/lib/config.ts | 5 + src/lib/{constants.js => constants.ts} | 4 +- src/lib/escape.js | 17 - src/lib/feed.js | 32 - src/lib/icons.js | 12 - src/lib/licenses.json | 78 - src/lib/mdsvex.layout.svelte | 112 - src/lib/navigation/Footer.svelte | 66 - src/lib/navigation/Navbar.svelte | 106 - src/lib/navigation/WIP.svelte | 14 - src/lib/posts.ts | 73 + src/lib/section-ids.js | 66 - src/lib/toc-loader.ts | 42 + src/lib/toc.js | 29 +- src/pages/403.astro | 8 + src/pages/404.astro | 8 + src/{routes/about.md => pages/about.mdx} | 54 +- src/pages/index.astro | 58 + src/pages/posts/dojo.mdx | 0 .../posts/kyo-6/01-pygame.mdx} | 20 +- .../posts/kyo-6/02-kultur-2-netzwerk.mdx} | 30 +- .../posts/kyo-6/03-git-2-mqtt.mdx} | 107 +- .../posts/kyo-6/04-loeten.mdx} | 56 +- .../index.md => pages/posts/kyo-6/index.mdx} | 25 +- .../posts/kyo-7/01-schleifen.mdx} | 23 +- .../posts/kyo-7/02-variablennamen.mdx} | 17 +- .../posts/kyo-7/03-rechnen.mdx} | 19 +- .../posts/kyo-7/04-eingaben.mdx} | 17 +- .../posts/kyo-7/05-bedingungen.mdx} | 19 +- .../posts/kyo-7/06-variablentypen.mdx} | 29 +- .../posts/kyo-7/07-browser.mdx} | 26 +- .../posts/kyo-7/08-schleifen-binden.mdx} | 19 +- .../posts/kyo-7/09-debugger.mdx} | 22 +- .../posts/kyo-7/10-loeten.mdx} | 46 +- .../posts/kyo-7/11-listen.mdx} | 19 +- .../posts/kyo-7/12-kultur.mdx} | 19 +- .../posts/kyo-7/13-funtionen.mdx} | 20 +- .../posts/kyo-7/14-exceptions.mdx} | 21 +- .../posts/kyo-7/15-html.mdx} | 21 +- .../posts/kyo-7/16-hilfen.mdx} | 24 +- .../posts/kyo-7/17-gurtpruefung.mdx} | 19 +- .../posts/kyo-7/18-zusammenfassung.mdx} | 19 +- .../index.md => pages/posts/kyo-7/index.mdx} | 27 +- src/pages/posts/kyus.astro | 54 + src/pages/posts/news/2021-08-06.mdx | 16 + .../posts/news/2021-11-27.mdx} | 19 +- .../posts/news/2021-12-12.mdx} | 17 +- .../posts/news/2022-01-06.mdx} | 17 +- .../posts/news/2022-01-10.mdx} | 17 +- .../posts/news/2022-01-11.mdx} | 17 +- .../posts/news/2022-01-13.mdx} | 17 +- .../posts/news/2022-01-20.mdx} | 17 +- .../posts/news/2022-01-27.mdx} | 17 +- .../posts/news/2022-02-03.mdx} | 19 +- .../posts/news/2022-02-24.mdx} | 17 +- .../posts/news/2022-02-26.mdx} | 15 +- src/pages/posts/news/2022-03-17.mdx | 17 + src/pages/posts/news/2022-08-25.mdx | 18 + .../posts/news/2022-08-27.mdx} | 21 +- .../posts/news/2022-09-03.mdx} | 21 +- .../posts/news/2022-10-02.mdx} | 25 +- .../posts/news/featured.mdx} | 21 +- src/pages/posts/news/index.astro | 46 + .../news/rc3.md => pages/posts/news/rc3.mdx} | 23 +- src/pages/posts/workshops/html.mdx | 24 + src/pages/posts/workshops/index.mdx | 23 + src/pages/posts/workshops/python.mdx | 17 + src/{routes/privacy.md => pages/privacy.mdx} | 9 +- src/routes/403.svelte | 8 - src/routes/404.svelte | 9 - src/routes/__layout.svelte | 89 - src/routes/atom.xml.js | 11 - src/routes/calendar.svelte | 8 - src/routes/contact.md | 19 - src/routes/copyright.md | 76 - src/routes/imprint.md | 27 - src/routes/index.svelte | 52 - src/routes/posts/dojo.md | 186 - src/routes/posts/kyo-6/02-kultur.md | 23 - src/routes/posts/kyo-6/05-mqtt.md | 95 - src/routes/posts/kyus.svelte | 50 - src/routes/posts/news/2021-08-06.md | 25 - src/routes/posts/news/2022-03-17.md | 14 - src/routes/posts/news/2022-08-25.md | 29 - src/routes/posts/news/2022-09-01.md | 27 - src/routes/posts/news/index.svelte | 34 - src/routes/posts/news/news.json.ts | 60 - src/routes/posts/workshops/html.md | 15 - src/routes/posts/workshops/index.md | 43 - src/routes/posts/workshops/python.md | 21 - src/routes/rss.xml.js | 11 - static/belt-mod.svg | 47 - static/fonts/belt.ttf | Bin 1836 -> 0 bytes static/fonts/belt.woff | Bin 1220 -> 0 bytes static/robots.txt | 3 - svelte.config.js | 37 - tailwind.config.cjs | 22 +- tsconfig.json | 30 +- vite.config.js | 8 - 306 files changed, 5728 insertions(+), 6256 deletions(-) create mode 100644 .prettierrc.js create mode 100644 astro.config.ts delete mode 100644 features.md delete mode 100644 mdsvex.config.js rename postcss.config.cjs => postcss.config.js (80%) delete mode 100644 prettier.config.cjs create mode 100644 public/favicon.ico rename {static => public}/images/3700458-ball-competition-racket-sportive-sports-tennis_108746.png (100%) rename {static => public}/images/3700459-chemical-chemistry-education-flask-science-test-tube_108750.png (100%) rename {static => public}/images/3700465-business-calculating-calculator-finance-maths-technological_108748.png (100%) rename {static => public}/images/3700467-launch-rocket-ship-space-transport_108766.png (100%) rename {static => public}/images/3700472-biology-chemical-chemistry-ecology-flask-laboratory-science_108761.png (100%) rename {static => public}/images/3700480-microphone-radio-recording-sound-technology-vintage-voice_108745.png (100%) rename {static => public}/images/3700484-call-delivery-man-phone-shipping-support_108751.png (100%) rename {static => public}/images/CoderDojo.png (100%) rename {static => public}/images/Git-logo.png (100%) rename {static => public}/images/Git-logo.svg (100%) rename {static => public}/images/Matrix-logo.svg (100%) rename {static => public}/images/Noma_Dojo.jpg (100%) rename {static => public}/images/PyCharm_Icon.svg (100%) rename {static => public}/images/SolarpanelBp.jpeg (100%) rename {static => public}/images/antennasignalobservatoryradio-115839_115790.png (100%) rename {static => public}/images/arcarde_1.png (100%) rename {static => public}/images/audio_book_icon_182964.png (100%) rename {static => public}/images/brand.svg (100%) rename {static => public}/images/children-593313_1280.jpg (100%) rename {static => public}/images/exploding_head.png (100%) rename {static => public}/images/favicon.ico (100%) rename {static => public}/images/help-2444110_1280.png (100%) rename {static => public}/images/html_code.png (100%) rename {static => public}/images/idea_icon_182952.png (100%) rename {static => public}/images/kyo-6/Git-logo.png (100%) rename {static => public}/images/kyo-6/Pygame.png (100%) rename {static => public}/images/kyo-6/Pygame_logo.gif (100%) rename {static => public}/images/kyo-6/Tux.png (100%) rename {static => public}/images/kyo-6/attiny/1-attiny.jpg (100%) rename {static => public}/images/kyo-6/attiny/1-attiny_th.jpg (100%) rename {static => public}/images/kyo-6/attiny/10-konnektor.jpg (100%) rename {static => public}/images/kyo-6/attiny/10-konnektor_th.jpg (100%) rename {static => public}/images/kyo-6/attiny/11-konnektor.jpg (100%) rename {static => public}/images/kyo-6/attiny/11-konnektor_th.jpg (100%) rename {static => public}/images/kyo-6/attiny/12-abisolieren.jpg (100%) rename {static => public}/images/kyo-6/attiny/12-abisolieren_th.jpg (100%) rename {static => public}/images/kyo-6/attiny/126A2639.MOV (100%) rename {static => public}/images/kyo-6/attiny/126A2657.JPG (100%) rename {static => public}/images/kyo-6/attiny/13-loetkolben.jpg (100%) rename {static => public}/images/kyo-6/attiny/13-loetkolben_th.jpg (100%) rename {static => public}/images/kyo-6/attiny/14-verzinnen.jpg (100%) rename {static => public}/images/kyo-6/attiny/14-verzinnen_th.jpg (100%) rename {static => public}/images/kyo-6/attiny/15-stripe.jpg (100%) rename {static => public}/images/kyo-6/attiny/15-stripe_th.jpg (100%) rename {static => public}/images/kyo-6/attiny/16-stripe.jpg (100%) rename {static => public}/images/kyo-6/attiny/16-stripe_th.jpg (100%) rename {static => public}/images/kyo-6/attiny/17-programmer.jpg (100%) rename {static => public}/images/kyo-6/attiny/17-programmer_th.jpg (100%) rename {static => public}/images/kyo-6/attiny/18-haende.jpg (100%) rename {static => public}/images/kyo-6/attiny/18-haende_th.jpg (100%) rename {static => public}/images/kyo-6/attiny/2-programmer.jpg (100%) rename {static => public}/images/kyo-6/attiny/2-programmer_th.jpg (100%) rename {static => public}/images/kyo-6/attiny/3-zeichnung.jpg (100%) rename {static => public}/images/kyo-6/attiny/3-zeichnung.png (100%) rename {static => public}/images/kyo-6/attiny/3-zeichnung_th.jpg (100%) rename {static => public}/images/kyo-6/attiny/4-breadboard-verbinden.jpg (100%) rename {static => public}/images/kyo-6/attiny/4-breadboard-verbinden_th.jpg (100%) rename {static => public}/images/kyo-6/attiny/5-breadboard-verbinden.jpg (100%) rename {static => public}/images/kyo-6/attiny/5-breadboard-verbinden_th.jpg (100%) rename {static => public}/images/kyo-6/attiny/6-breadboard-verbinden.jpg (100%) rename {static => public}/images/kyo-6/attiny/6-breadboard-verbinden_th.jpg (100%) rename {static => public}/images/kyo-6/attiny/7-LED.jpg (100%) rename {static => public}/images/kyo-6/attiny/7-LED_th.jpg (100%) rename {static => public}/images/kyo-6/attiny/8-LED.jpg (100%) rename {static => public}/images/kyo-6/attiny/8-LED_th.jpg (100%) rename {static => public}/images/kyo-6/attiny/9-stripe.jpg (100%) rename {static => public}/images/kyo-6/attiny/9-stripe_th.jpg (100%) rename {static => public}/images/kyo-6/git-2-branch-main-crop.png (100%) rename {static => public}/images/kyo-6/git-2-branch-test-loop-crop.png (100%) rename {static => public}/images/kyo-6/git-2-choose-branch-crop.png (100%) rename {static => public}/images/kyo-6/git-2-helloWorld-crop.png (100%) rename {static => public}/images/kyo-6/git-2-klonen-crop.png (100%) rename {static => public}/images/kyo-6/git-2-new-pull-request-crop.png (100%) rename {static => public}/images/kyo-6/git-2-pull-request-crop.png (100%) rename {static => public}/images/kyo-6/shell-ohne.pdf (100%) rename {static => public}/images/kyo-7/8-1-Pycharm-1.png (100%) rename {static => public}/images/kyo-7/8-1-Pycharm-1a.png (100%) rename {static => public}/images/kyo-7/8-1-Pycharm-1b.png (100%) rename {static => public}/images/kyo-7/8-1-Pycharm-2.jpg (100%) rename {static => public}/images/kyo-7/8-1-Pycharm-2.png (100%) rename {static => public}/images/kyo-7/8-1-Pycharm-3.jpg (100%) rename {static => public}/images/kyo-7/8-1-Pycharm-3.png (100%) rename {static => public}/images/kyo-7/8-1-Pycharm-4.jpg (100%) rename {static => public}/images/kyo-7/8-1-Pycharm-4.png (100%) rename {static => public}/images/kyo-7/8-1-Pycharm-5.jpg (100%) rename {static => public}/images/kyo-7/8-1-Pycharm-5.png (100%) rename {static => public}/images/kyo-7/8-1-Pycharm-6.png (100%) rename {static => public}/images/kyo-7/8-1-Pycharm-7.png (100%) rename {static => public}/images/kyo-7/8.1-Pycharm-3.png (100%) rename {static => public}/images/kyo-7/Batteriekasten.jpg (100%) rename {static => public}/images/kyo-7/Brave.png (100%) rename {static => public}/images/kyo-7/Code-Kommentare.jpg (100%) rename {static => public}/images/kyo-7/Cyber4EDU_sticker.png (100%) rename {static => public}/images/kyo-7/Haltepunkt.png (100%) rename {static => public}/images/kyo-7/LED-Schaltung.png (100%) rename {static => public}/images/kyo-7/LED-falsch.jpg (100%) rename {static => public}/images/kyo-7/LED-richtig.jpg (100%) rename {static => public}/images/kyo-7/Leiterbahnen_ziehen.jpg (100%) rename {static => public}/images/kyo-7/Lochraster_loeten.jpg (100%) rename {static => public}/images/kyo-7/Matrix-logo.png (100%) rename {static => public}/images/kyo-7/Python_string_int.jpg (100%) rename {static => public}/images/kyo-7/SolarpanelBp_a.jpeg (100%) rename {static => public}/images/kyo-7/Tie_shoelace.png (100%) rename {static => public}/images/kyo-7/Widerstand.jpg (100%) rename {static => public}/images/kyo-7/brand.svg (100%) rename {static => public}/images/kyo-7/capsized-31696_1280_s.png (100%) rename {static => public}/images/kyo-7/children-593313_s.jpg (100%) rename {static => public}/images/kyo-7/derMicha_Soldering.jpg (100%) rename {static => public}/images/kyo-7/derMicha_Soldering_th.jpg (100%) rename {static => public}/images/kyo-7/help-2444110_1280_a.png (100%) rename {static => public}/images/kyo-7/ls (100%) rename {static => public}/images/kyo-info/JJS_Dojo_s.jpg (100%) rename {static => public}/images/kyo-info/capsized-31696_1280_s.png (100%) rename {static => public}/images/kyo-info/fantasy-fractal.jpg (100%) rename {static => public}/images/kyo-info/karate-2717178_1280_s.jpg (100%) rename {static => public}/images/kyo-info/martial-83009_1280_s.jpg (100%) rename {static => public}/images/kyus/trinity-1.svg (100%) rename {static => public}/images/kyus/trinity-2.svg (100%) rename {static => public}/images/kyus/trinity-3.svg (100%) rename {static => public}/images/kyus/trinity-4.svg (100%) rename {static => public}/images/kyus/trinity-5.svg (100%) rename {static => public}/images/kyus/trinity-6.svg (100%) rename {static => public}/images/kyus/trinity.svg (100%) rename {static => public}/images/logo-editor-url.svg (100%) rename {static => public}/images/logo-editor.svg (100%) rename {static => public}/images/logo/android-chrome-144x144.png (100%) rename {static => public}/images/logo/android-chrome-192x192.png (100%) rename {static => public}/images/logo/android-chrome-256x256.png (100%) rename {static => public}/images/logo/android-chrome-36x36.png (100%) rename {static => public}/images/logo/android-chrome-384x384.png (100%) rename {static => public}/images/logo/android-chrome-48x48.png (100%) rename {static => public}/images/logo/android-chrome-512x512.png (100%) rename {static => public}/images/logo/android-chrome-72x72.png (100%) rename {static => public}/images/logo/android-chrome-96x96.png (100%) rename {static => public}/images/logo/apple-touch-icon-120x120.png (100%) rename {static => public}/images/logo/apple-touch-icon-152x152.png (100%) rename {static => public}/images/logo/apple-touch-icon-180x180.png (100%) rename {static => public}/images/logo/apple-touch-icon-60x60.png (100%) rename {static => public}/images/logo/apple-touch-icon-76x76.png (100%) rename {static => public}/images/logo/apple-touch-icon.png (100%) rename {static => public}/images/logo/browserconfig.xml (100%) rename {static => public}/images/logo/favicon-16x16.png (100%) rename {static => public}/images/logo/favicon-32x32.png (100%) rename {static => public}/images/logo/mstile-144x144.png (100%) rename {static => public}/images/logo/mstile-150x150.png (100%) rename {static => public}/images/logo/mstile-310x150.png (100%) rename {static => public}/images/logo/mstile-310x310.png (100%) rename {static => public}/images/logo/mstile-70x70.png (100%) rename {static => public}/images/logo/safari-pinned-tab.svg (100%) rename {static => public}/images/logo/site.webmanifest (100%) rename {static => public}/images/man_muesste.jpg (100%) rename {static => public}/images/math_book.png (100%) rename {static => public}/images/matrix-front-g.jpg (100%) rename {static => public}/images/matrix-front.jpg (100%) rename {static => public}/images/memo.txt (100%) rename {static => public}/images/python-snake.jpg (100%) rename {static => public}/images/python.jpg (100%) rename {static => public}/images/science_book_icon_182960.png (100%) create mode 100644 public/robots.txt delete mode 100644 src/app.d.ts delete mode 100644 src/app.html rename src/{ => assets/styles}/app.css (73%) rename src/{ => assets/styles}/styles/admonitions.css (100%) rename src/{ => assets/styles}/styles/base.css (100%) rename src/{ => assets/styles}/styles/components.css (78%) rename src/{ => assets/styles}/styles/duotone.css (88%) rename src/{ => assets/styles}/styles/utilities.css (100%) rename src/{lib => }/components/Avatar.svelte (100%) rename src/{lib => }/components/Belt.svelte (100%) create mode 100644 src/components/Button.svelte create mode 100644 src/components/Figure.astro create mode 100644 src/components/Footer.astro create mode 100644 src/components/Logo.astro create mode 100644 src/components/Logo.svelte create mode 100644 src/components/Meta.astro create mode 100644 src/components/Navbar.svelte rename src/{lib/components/NewsCard.svelte => components/NewsCard.astro} (71%) create mode 100644 src/components/Placeholder.astro rename src/{lib => }/components/TocDropdown.svelte (83%) create mode 100644 src/components/TocList.astro create mode 100644 src/components/WIP.astro create mode 100644 src/layouts/Base.astro create mode 100644 src/layouts/Page.astro create mode 100644 src/layouts/Prose.astro delete mode 100644 src/lib/Placeholder.svelte create mode 100644 src/lib/admonition-shim.js delete mode 100644 src/lib/codetitle.js delete mode 100644 src/lib/components/AttributionCard.svelte delete mode 100644 src/lib/components/Audio.svelte delete mode 100644 src/lib/components/Button.svelte delete mode 100644 src/lib/components/DescriptionList.svelte delete mode 100644 src/lib/components/Figure.svelte delete mode 100644 src/lib/components/Logo.svelte delete mode 100644 src/lib/components/Meta.svelte delete mode 100644 src/lib/components/TocList.svelte delete mode 100644 src/lib/compress-html.cjs create mode 100644 src/lib/config.ts rename src/lib/{constants.js => constants.ts} (85%) delete mode 100644 src/lib/escape.js delete mode 100644 src/lib/feed.js delete mode 100644 src/lib/icons.js delete mode 100644 src/lib/licenses.json delete mode 100644 src/lib/mdsvex.layout.svelte delete mode 100644 src/lib/navigation/Footer.svelte delete mode 100644 src/lib/navigation/Navbar.svelte delete mode 100644 src/lib/navigation/WIP.svelte create mode 100644 src/lib/posts.ts delete mode 100644 src/lib/section-ids.js create mode 100644 src/lib/toc-loader.ts create mode 100644 src/pages/403.astro create mode 100644 src/pages/404.astro rename src/{routes/about.md => pages/about.mdx} (62%) create mode 100644 src/pages/index.astro create mode 100644 src/pages/posts/dojo.mdx rename src/{routes/posts/kyo-6/01-pygame.md => pages/posts/kyo-6/01-pygame.mdx} (98%) rename src/{routes/posts/kyo-6/03-netzwerk.md => pages/posts/kyo-6/02-kultur-2-netzwerk.mdx} (92%) rename src/{routes/posts/kyo-6/04-git.md => pages/posts/kyo-6/03-git-2-mqtt.mdx} (50%) rename src/{routes/posts/kyo-6/06-loeten.md => pages/posts/kyo-6/04-loeten.mdx} (90%) rename src/{routes/posts/kyo-6/index.md => pages/posts/kyo-6/index.mdx} (98%) rename src/{routes/posts/kyo-7/01-schleifen.md => pages/posts/kyo-7/01-schleifen.mdx} (95%) rename src/{routes/posts/kyo-7/02-variablennamen.md => pages/posts/kyo-7/02-variablennamen.mdx} (94%) rename src/{routes/posts/kyo-7/03-rechnen.md => pages/posts/kyo-7/03-rechnen.mdx} (90%) rename src/{routes/posts/kyo-7/04-eingaben.md => pages/posts/kyo-7/04-eingaben.mdx} (88%) rename src/{routes/posts/kyo-7/05-bedingungen.md => pages/posts/kyo-7/05-bedingungen.mdx} (96%) rename src/{routes/posts/kyo-7/06-variablentypen.md => pages/posts/kyo-7/06-variablentypen.mdx} (95%) rename src/{routes/posts/kyo-7/07-browser.md => pages/posts/kyo-7/07-browser.mdx} (94%) rename src/{routes/posts/kyo-7/08-schleifen-binden.md => pages/posts/kyo-7/08-schleifen-binden.mdx} (96%) rename src/{routes/posts/kyo-7/09-debugger.md => pages/posts/kyo-7/09-debugger.mdx} (87%) rename src/{routes/posts/kyo-7/10-loeten.md => pages/posts/kyo-7/10-loeten.mdx} (89%) rename src/{routes/posts/kyo-7/11-listen.md => pages/posts/kyo-7/11-listen.mdx} (97%) rename src/{routes/posts/kyo-7/12-kultur.md => pages/posts/kyo-7/12-kultur.mdx} (95%) rename src/{routes/posts/kyo-7/13-funtionen.md => pages/posts/kyo-7/13-funtionen.mdx} (96%) rename src/{routes/posts/kyo-7/14-html.md => pages/posts/kyo-7/14-exceptions.mdx} (72%) rename src/{routes/posts/kyo-7/15-exceptions.md => pages/posts/kyo-7/15-html.mdx} (94%) rename src/{routes/posts/kyo-7/16-hilfen.md => pages/posts/kyo-7/16-hilfen.mdx} (94%) rename src/{routes/posts/kyo-7/17-gurtpruefung.md => pages/posts/kyo-7/17-gurtpruefung.mdx} (92%) rename src/{routes/posts/kyo-7/18-zusammenfassung.md => pages/posts/kyo-7/18-zusammenfassung.mdx} (87%) rename src/{routes/posts/kyo-7/index.md => pages/posts/kyo-7/index.mdx} (93%) create mode 100644 src/pages/posts/kyus.astro create mode 100644 src/pages/posts/news/2021-08-06.mdx rename src/{routes/posts/news/2021-11-27.md => pages/posts/news/2021-11-27.mdx} (70%) rename src/{routes/posts/news/2021-12-12.md => pages/posts/news/2021-12-12.mdx} (71%) rename src/{routes/posts/news/2022-01-06.md => pages/posts/news/2022-01-06.mdx} (74%) rename src/{routes/posts/news/2022-01-10.md => pages/posts/news/2022-01-10.mdx} (76%) rename src/{routes/posts/news/2022-01-11.md => pages/posts/news/2022-01-11.mdx} (74%) rename src/{routes/posts/news/2022-01-13.md => pages/posts/news/2022-01-13.mdx} (76%) rename src/{routes/posts/news/2022-01-20.md => pages/posts/news/2022-01-20.mdx} (83%) rename src/{routes/posts/news/2022-01-27.md => pages/posts/news/2022-01-27.mdx} (92%) rename src/{routes/posts/news/2022-02-03.md => pages/posts/news/2022-02-03.mdx} (72%) rename src/{routes/posts/news/2022-02-24.md => pages/posts/news/2022-02-24.mdx} (75%) rename src/{routes/posts/news/2022-02-26.md => pages/posts/news/2022-02-26.mdx} (91%) create mode 100644 src/pages/posts/news/2022-03-17.mdx create mode 100644 src/pages/posts/news/2022-08-25.mdx rename src/{routes/posts/news/2022-08-27.md => pages/posts/news/2022-08-27.mdx} (62%) rename src/{routes/posts/news/2022-09-03.md => pages/posts/news/2022-09-03.mdx} (67%) rename src/{routes/posts/news/2022-10-02.md => pages/posts/news/2022-10-02.mdx} (67%) rename src/{routes/posts/news/featured.md => pages/posts/news/featured.mdx} (73%) create mode 100644 src/pages/posts/news/index.astro rename src/{routes/posts/news/rc3.md => pages/posts/news/rc3.mdx} (94%) create mode 100644 src/pages/posts/workshops/html.mdx create mode 100644 src/pages/posts/workshops/index.mdx create mode 100644 src/pages/posts/workshops/python.mdx rename src/{routes/privacy.md => pages/privacy.mdx} (98%) delete mode 100644 src/routes/403.svelte delete mode 100644 src/routes/404.svelte delete mode 100644 src/routes/__layout.svelte delete mode 100644 src/routes/atom.xml.js delete mode 100644 src/routes/calendar.svelte delete mode 100644 src/routes/contact.md delete mode 100644 src/routes/copyright.md delete mode 100644 src/routes/imprint.md delete mode 100644 src/routes/index.svelte delete mode 100644 src/routes/posts/dojo.md delete mode 100644 src/routes/posts/kyo-6/02-kultur.md delete mode 100644 src/routes/posts/kyo-6/05-mqtt.md delete mode 100644 src/routes/posts/kyus.svelte delete mode 100644 src/routes/posts/news/2021-08-06.md delete mode 100644 src/routes/posts/news/2022-03-17.md delete mode 100644 src/routes/posts/news/2022-08-25.md delete mode 100644 src/routes/posts/news/2022-09-01.md delete mode 100644 src/routes/posts/news/index.svelte delete mode 100644 src/routes/posts/news/news.json.ts delete mode 100644 src/routes/posts/workshops/html.md delete mode 100644 src/routes/posts/workshops/index.md delete mode 100644 src/routes/posts/workshops/python.md delete mode 100644 src/routes/rss.xml.js delete mode 100644 static/belt-mod.svg delete mode 100644 static/fonts/belt.ttf delete mode 100644 static/fonts/belt.woff delete mode 100644 static/robots.txt delete mode 100644 svelte.config.js delete mode 100644 vite.config.js diff --git a/.gitignore b/.gitignore index b9de4ca..89cf524 100644 --- a/.gitignore +++ b/.gitignore @@ -1,12 +1,25 @@ +# Utility scripts encode.py -.DS_Store -node_modules -/build -.toc-cache.json -/.svelte-kit -/package -.env +test.py + +# build output +dist/ + +# dependencies +node_modules/ + +# logs +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* + +# environment variables .env.* -!.env.example -.output +.env + +# macOS-specific files +.DS_Store + +# JetBrains artifacts .idea/ diff --git a/.prettierrc.js b/.prettierrc.js new file mode 100644 index 0000000..4dc2549 --- /dev/null +++ b/.prettierrc.js @@ -0,0 +1,11 @@ +module.exports = { + plugins: [require.resolve("prettier-plugin-astro")], + overrides: [ + { + files: "*.astro", + options: { + parser: "astro", + }, + }, + ], +}; diff --git a/README.md b/README.md index 83216e6..62b3f46 100644 --- a/README.md +++ b/README.md @@ -1,31 +1,45 @@ -[![Website Status for coderdojo.red](https://img.shields.io/website?down_color=gray&down_message=DOWN&label=Red&logo=nginx&style=flat-square&up_color=red&up_message=UP&url=https%3A%2F%2Fcoderdojo.red)](https://coderdojo.red) -[![Website Status for coderdojo.blue](https://img.shields.io/website?down_color=gray&down_message=DOWN&label=Blue&logo=nginx&style=flat-square&up_color=blue&up_message=UP&url=https%3A%2F%2Fcoderdojo.blue)](https://coderdojo.blue) -[![Pipeline Status](https://img.shields.io/gitlab/pipeline/coderdojo/coderdojo-website/koneko?gitlab_url=https%3A%2F%2Fgitlab.cobalt.rocks&label=Build&logo=gitlab&style=flat-square)](https://gitlab.cobalt.rocks/coderdojo/coderdojo-website/-/pipelines) -[![code style: prettier](https://img.shields.io/badge/code_style-prettier-ff69b4.svg?style=flat-square&logo=prettier)](https://github.com/prettier/prettier) +# Astro Starter Kit: Minimal -# Website for CoderDōjō Red and Blue +``` +npm init astro -- --template minimal +``` -Code for [coderdojo.red](https://coderdojo.red) and [coderdojo.blue](https://coderdojo.blue). +[![Open in StackBlitz](https://developer.stackblitz.com/img/open_in_stackblitz.svg)](https://stackblitz.com/github/withastro/astro/tree/latest/examples/minimal) -## Issues +> 🧑‍🚀 **Seasoned astronaut?** Delete this file. Have fun! -We track issues over the [Codeberg](https://codeberg.org/c0balt/coderdojo-website-mirror) and -[GitHub](https://github.com/Chaostheorie/coderdojo-website-mirror) push mirrors. You are welcome to open an issue in -those repositories. We are grateful for any feedback. +## 🚀 Project Structure -## Documentation +Inside of your Astro project, you'll see the following folders and files: -> Documentation updates are in the review stage. Any feedback is welcome :) +``` +/ +├── public/ +├── src/ +│ └── pages/ +│ └── index.astro +└── package.json +``` -See [the Wiki](https://gitlab.cobalt.rocks/coderdojo/coderdojo-website/-/wikis/home) for documentation. +Astro looks for `.astro` or `.md` files in the `src/pages/` directory. Each page is exposed as a route based on its file name. -## Contributing +There's nothing special about `src/components/`, but that's where we like to put any Astro/React/Vue/Svelte/Preact components. -All contributions are welcome. If you want to contribute or report a bug, fell free to open an issue on our -[Codeberg Mirror](https://codeberg.org/c0balt/coderdojo-website-mirror). If you want to get direct access to a GitLab -Account, please contact [Cobalt](https://cobalt.rocks/content/contact/). +Any static assets, like images, can be placed in the `public/` directory. -## Licensing +## 🧞 Commands -The content is licensend under [CC-BY-NC 4.0](https://creativecommons.org/licenses/by-nc/4.0/legalcode.de) while the -code is licensed under [AGPL 3.0](https://www.gnu.org/licenses/agpl-3.0.en.html). +All commands are run from the root of the project, from a terminal: + +| Command | Action | +| :--------------------- | :----------------------------------------------- | +| `npm install` | Installs dependencies | +| `npm run dev` | Starts local dev server at `localhost:3000` | +| `npm run build` | Build your production site to `./dist/` | +| `npm run preview` | Preview your build locally, before deploying | +| `npm run astro ...` | Run CLI commands like `astro add`, `astro check` | +| `npm run astro --help` | Get help using the Astro CLI | + +## 👀 Want to learn more? + +Feel free to check [our documentation](https://docs.astro.build) or jump into our [Discord server](https://astro.build/chat). diff --git a/astro.config.ts b/astro.config.ts new file mode 100644 index 0000000..6e1c7e0 --- /dev/null +++ b/astro.config.ts @@ -0,0 +1,31 @@ +import { defineConfig } from "astro/config"; +import tailwind from "@astrojs/tailwind"; +import svelte from "@astrojs/svelte"; +import sitemap from "@astrojs/sitemap"; +import image from "@astrojs/image"; +import { SITE } from "./src/lib/config"; +import remarkMath from "remark-math"; +import { admonitionPlugin } from "./src/lib/admonition-shim.js"; +import remarkSlug from "remark-slug"; +import remarkDirectives from "remark-directive"; +import remarkGfm from "remark-gfm"; +import rehypeAutolinkHeadings from "rehype-autolink-headings"; +import remarkSmartpants from "remark-smartypants"; +import rehypeKatex from "rehype-katex"; +import remarkFrontmatter from "remark-frontmatter"; +import remarkMdxFrontmatter from "remark-mdx-frontmatter"; +import mdx from "@astrojs/mdx"; + + +// https://astro.build/config +export default defineConfig({ + // passthrough domain for current build target + site: SITE.domain, + // all the sweet integrations + integrations: [tailwind(), svelte(), sitemap(), mdx({ + remarkPlugins: [remarkFrontmatter, remarkMdxFrontmatter, remarkSmartpants, remarkGfm, remarkDirectives, admonitionPlugin, remarkMath, remarkSlug], + rehypePlugins: [rehypeKatex, rehypeAutolinkHeadings] + }), image()], + // we need static output + output: "static" +}); diff --git a/features.md b/features.md deleted file mode 100644 index d8ae745..0000000 --- a/features.md +++ /dev/null @@ -1,3 +0,0 @@ -- Code Bloecke die eine externe Datei verlinken - - Dabei hat jede Seite eine verbundenes repository und der Dateiname eines Codeblocks berwist auf die Datei in dem Git Repositiory - - Jeder Codeblock hat einen zusatzlichen Button der einen Link auf die volle Datei hat diff --git a/mdsvex.config.js b/mdsvex.config.js deleted file mode 100644 index 4e99da2..0000000 --- a/mdsvex.config.js +++ /dev/null @@ -1,39 +0,0 @@ -import { defineMDSveXConfig as defineConfig } from "mdsvex"; -import { parse as load } from "@iarna/toml"; -import { escapePlugin } from "./src/lib/escape.js"; -import { tocPlugin } from "./src/lib/toc.js"; -import rehypeKatexSvelte from "rehype-katex-svelte"; -import remarkMath from "remark-math"; -import remarkAdmonitions from "remark-admonitions"; -import remarkSlug from "remark-slug"; -import remarkGfm from "remark-gfm"; -import rehypeAutolinkHeadings from "rehype-autolink-headings"; -import { highlight } from "./src/lib/codetitle.js"; - -const config = defineConfig({ - extensions: [".svelte.md", ".md"], - layout: { - _: "./src/lib/mdsvex.layout.svelte" - }, - smartypants: { - dashes: "oldschool", - backticks: true, - ellipses: true - }, - frontmatter: { - marker: "+", - type: "toml", - parse(frontmatter, messages) { - try { - return { ...load(frontmatter) }; - } catch (e) { - messages.push(e.message); - } - } - }, - highlight: { highlighter: highlight, alias: { py: "python" } }, - remarkPlugins: [escapePlugin, remarkMath, remarkSlug, remarkAdmonitions, tocPlugin, remarkGfm], - rehypePlugins: [rehypeKatexSvelte, rehypeAutolinkHeadings] -}); - -export default config; diff --git a/package.json b/package.json index ee5b580..9a912fa 100644 --- a/package.json +++ b/package.json @@ -1,83 +1,59 @@ { - "name": "coderdojo-koneko", + "name": "@example/minimal", "version": "0.0.1", + "private": true, "scripts": { - "dev": "vite dev", - "build": "vite build", - "preview": "vite preview", - "prepare": "svelte-kit sync", - "check": "svelte-check --tsconfig ./tsconfig.json", - "check:watch": "svelte-check --tsconfig ./tsconfig.json --watch", + "dev": "cross-env TELEMETRY_DISABLED=1 ASTRO_TELEMETRY_DISABLED=1 NODE_ENV=dev astro dev", + "build": "cross-env TELEMETRY_DISABLED=1 ASTRO_TELEMETRY_DISABLED=1 NODE_ENV=dev astro check && tsc --noEmit && cross-env TELEMETRY_DISABLED=1 ASTRO_TELEMETRY_DISABLED=1 NODE_ENV=prod astro build", "lint": "prettier --ignore-path .gitignore --check --plugin-search-dir=. .", - "lib:lint": "eslint ./src/**/*.{js,svelte,ts} --ignore-path .gitignore", "format": "prettier --ignore-path .gitignore --write --plugin-search-dir=. .", - "minify": "pnpm minify:jpeg & pnpm minify:png & pnpm minify:svg & pnpm minify:html", - "minify:jpeg": "find build/ -regex '.*/.*\\.jp[eg]?' -exec sh -c 'cp \"$0\" \"$0.tmp\" && jpegtran -optimize -progressive -copy none \"$0.tmp\" > $0 && rm \"$0.tmp\"' {} \\;", - "minify:png": "pngquant --force --skip-if-larger --speed 1 --strip --quality 60-90 build/**/*.png", - "minify:svg": "svgo build/**/*.svg", - "minify:html": "node src/lib/compress-html.cjs", - "license-checker": "license-checker --direct --json --production --out src/lib/licenses.json --excludePrivatePackages --customPath license-format.config.json" + "preview": "cross-env TELEMETRY_DISABLED=1 ASTRO_TELEMETRY_DISABLED=1 NODE_ENV=prod astro preview" }, "devDependencies": { - "@iarna/toml": "^2.2.5", - "@sveltejs/adapter-static": "next", - "@sveltejs/kit": "next", - "@tailwindcss/typography": "^0.5.4", - "@types/prismjs": "^1.26.0", - "@types/unist": "^2.0.6", - "@typescript-eslint/eslint-plugin": "^5.32.0", - "@typescript-eslint/parser": "^5.32.0", + "@astrojs/image": "^0.3.4", + "@astrojs/mdx": "^0.10.0", + "@astrojs/sitemap": "^1.0.0", + "@astrojs/svelte": "^1.0.0", + "@astrojs/tailwind": "^1.0.0", + "@types/glob": "^7.2.0", + "@types/mdx": "^2.0.2", + "@types/node": "^18.7.13", + "astro": "^1.0.6", + "astro-imagetools": "^0.6.10", "autoprefixer": "^10.4.8", - "esbuild": "^0.14.53", - "eslint": "^8.21.0", - "eslint-config-airbnb-typescript": "^17.0.0", - "eslint-config-prettier": "^8.5.0", - "eslint-import-resolver-typescript": "^3.4.0", - "eslint-plugin-eslint-comments": "^3.2.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-promise": "^6.0.0", - "eslint-plugin-svelte3": "^4.0.0", - "eslint-plugin-tsdoc": "^0.2.16", - "glob": "^8.0.3", - "html-minifier": "^4.0.0", - "katex": "^0.16.0", - "license-checker": "^25.0.1", - "mdast-util-to-string": "^3.1.0", - "mdsvex": "^0.10.6", - "postcss": "^8.4.14", + "cross-env": "^7.0.3", + "fast-glob": "^3.2.11", + "hastscript": "^7.0.2", + "postcss": "^8.4.16", "postcss-import": "^14.1.0", "postcss-load-config": "^4.0.1", "prettier": "^2.7.1", - "prettier-plugin-svelte": "^2.7.0", + "prettier-plugin-astro": "^0.5.0", "prettier-plugin-tailwindcss": "^0.1.13", - "prismjs": "^1.28.0", "rehype-autolink-headings": "^6.1.1", - "rehype-katex-svelte": "^1.1.2", - "rehype-slug": "^5.0.1", - "remark-emoji": "^3.0.2", + "rehype-katex": "^6.0.2", + "remark-admonitions": "^1.2.1", + "remark-directive": "^2.0.1", + "remark-frontmatter": "^4.0.1", "remark-gfm": "^3.0.1", - "remark-math": "3.0.1", + "remark-math": "^5.1.1", + "remark-mdx-frontmatter": "^2.0.3", + "remark-rehype": "^10.1.0", "remark-slug": "^7.0.1", + "remark-smartypants": "^2.0.0", + "rollup": "^2.78.1", "svelte": "^3.49.0", - "svelte-check": "^2.8.0", "svelte-preprocess": "^4.10.7", - "tailwindcss": "^3.1.8", - "tslib": "^2.4.0", - "typescript": "~4.7.4", - "unified": "^10.1.2", - "unist-util-find-after": "^4.0.0", - "unist-util-visit": "^4.1.0", - "unist-util-visit-parents": "^5.1.0", - "vite": "^3.0.4" + "svelte2tsx": "^0.5.14", + "typescript": "^4.7.4", + "unified": "^10.1.2" }, - "type": "module", "dependencies": { - "@fontsource/fira-mono": "^4.5.8", - "feed": "^4.2.2", - "ical.js": "^1.5.0", - "phosphor-svelte": "^1.2.1", - "remark-admonitions": "^1.2.1", - "remark-parse": "^10.0.1", - "shikwasa": "^2.1.4" + "@fontsource/fira-mono": "^4.5.9", + "@tailwindcss/typography": "^0.5.4", + "phosphor-icons": "^1.4.2", + "reading-time": "^1.5.0", + "shikwasa": "^2.1.4", + "tailwindcss": "^3.1.8" } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 26b52aa..2523249 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1,280 +1,1028 @@ lockfileVersion: 5.4 specifiers: - "@fontsource/fira-mono": ^4.5.8 - "@iarna/toml": ^2.2.5 - "@sveltejs/adapter-static": next - "@sveltejs/kit": next - "@tailwindcss/typography": ^0.5.4 - "@types/prismjs": ^1.26.0 - "@types/unist": ^2.0.6 - "@typescript-eslint/eslint-plugin": ^5.32.0 - "@typescript-eslint/parser": ^5.32.0 + '@astrojs/image': ^0.3.4 + '@astrojs/mdx': ^0.10.0 + '@astrojs/sitemap': ^1.0.0 + '@astrojs/svelte': ^1.0.0 + '@astrojs/tailwind': ^1.0.0 + '@fontsource/fira-mono': ^4.5.9 + '@tailwindcss/typography': ^0.5.4 + '@types/glob': ^7.2.0 + '@types/mdx': ^2.0.2 + '@types/node': ^18.7.13 + astro: ^1.0.6 + astro-imagetools: ^0.6.10 autoprefixer: ^10.4.8 - esbuild: ^0.14.53 - eslint: ^8.21.0 - eslint-config-airbnb-typescript: ^17.0.0 - eslint-config-prettier: ^8.5.0 - eslint-import-resolver-typescript: ^3.4.0 - eslint-plugin-eslint-comments: ^3.2.0 - eslint-plugin-import: ^2.26.0 - eslint-plugin-promise: ^6.0.0 - eslint-plugin-svelte3: ^4.0.0 - eslint-plugin-tsdoc: ^0.2.16 - feed: ^4.2.2 - glob: ^8.0.3 - html-minifier: ^4.0.0 - ical.js: ^1.5.0 - katex: ^0.16.0 - license-checker: ^25.0.1 - mdast-util-to-string: ^3.1.0 - mdsvex: ^0.10.6 - phosphor-svelte: ^1.2.1 - postcss: ^8.4.14 + cross-env: ^7.0.3 + fast-glob: ^3.2.11 + hastscript: ^7.0.2 + phosphor-icons: ^1.4.2 + postcss: ^8.4.16 postcss-import: ^14.1.0 postcss-load-config: ^4.0.1 prettier: ^2.7.1 - prettier-plugin-svelte: ^2.7.0 + prettier-plugin-astro: ^0.5.0 prettier-plugin-tailwindcss: ^0.1.13 - prismjs: ^1.28.0 + reading-time: ^1.5.0 rehype-autolink-headings: ^6.1.1 - rehype-katex-svelte: ^1.1.2 - rehype-slug: ^5.0.1 + rehype-katex: ^6.0.2 remark-admonitions: ^1.2.1 - remark-emoji: ^3.0.2 + remark-directive: ^2.0.1 + remark-frontmatter: ^4.0.1 remark-gfm: ^3.0.1 - remark-math: 3.0.1 - remark-parse: ^10.0.1 + remark-math: ^5.1.1 + remark-mdx-frontmatter: ^2.0.3 + remark-rehype: ^10.1.0 remark-slug: ^7.0.1 + remark-smartypants: ^2.0.0 + rollup: ^2.78.1 shikwasa: ^2.1.4 svelte: ^3.49.0 - svelte-check: ^2.8.0 svelte-preprocess: ^4.10.7 + svelte2tsx: ^0.5.14 tailwindcss: ^3.1.8 - tslib: ^2.4.0 - typescript: ~4.7.4 + typescript: ^4.7.4 unified: ^10.1.2 - unist-util-find-after: ^4.0.0 - unist-util-visit: ^4.1.0 - unist-util-visit-parents: ^5.1.0 - vite: ^3.0.4 dependencies: - "@fontsource/fira-mono": 4.5.8 - feed: 4.2.2 - ical.js: 1.5.0 - phosphor-svelte: 1.2.1_svelte@3.49.0 - remark-admonitions: 1.2.1 - remark-parse: 10.0.1 + '@fontsource/fira-mono': 4.5.9 + '@tailwindcss/typography': 0.5.4_tailwindcss@3.1.8 + phosphor-icons: 1.4.2 + reading-time: 1.5.0 shikwasa: 2.1.4 + tailwindcss: 3.1.8_postcss@8.4.16 + +devDependencies: + '@astrojs/image': 0.3.4 + '@astrojs/mdx': 0.10.0_rollup@2.78.1 + '@astrojs/sitemap': 1.0.0 + '@astrojs/svelte': 1.0.0_fje22ktja5v2dh6nbkissncqme + '@astrojs/tailwind': 1.0.0 + '@types/glob': 7.2.0 + '@types/mdx': 2.0.2 + '@types/node': 18.7.13 + astro: 1.0.6 + astro-imagetools: 0.6.10_astro@1.0.6 + autoprefixer: 10.4.8_postcss@8.4.16 + cross-env: 7.0.3 + fast-glob: 3.2.11 + hastscript: 7.0.2 + postcss: 8.4.16 + postcss-import: 14.1.0_postcss@8.4.16 + postcss-load-config: 4.0.1_postcss@8.4.16 + prettier: 2.7.1 + prettier-plugin-astro: 0.5.0 + prettier-plugin-tailwindcss: 0.1.13_prettier@2.7.1 + rehype-autolink-headings: 6.1.1 + rehype-katex: 6.0.2 + remark-admonitions: 1.2.1 + remark-directive: 2.0.1 + remark-frontmatter: 4.0.1 + remark-gfm: 3.0.1 + remark-math: 5.1.1 + remark-mdx-frontmatter: 2.0.3 + remark-rehype: 10.1.0 + remark-slug: 7.0.1 + remark-smartypants: 2.0.0 + rollup: 2.78.1 + svelte: 3.49.0 + svelte-preprocess: 4.10.7_2gxycpxbczdceodty77wdrmyia + svelte2tsx: 0.5.14_uslzfc62di2n2otc2tvfklnwji + typescript: 4.7.4 + unified: 10.1.2 + +packages: + + /@ampproject/remapping/2.2.0: + resolution: {integrity: sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==} + engines: {node: '>=6.0.0'} + dependencies: + '@jridgewell/gen-mapping': 0.1.1 + '@jridgewell/trace-mapping': 0.3.15 + dev: true + + /@astrojs/compiler/0.19.0: + resolution: {integrity: sha512-8nvyxZTfCXLyRmYfTttpJT6EPhfBRg0/q4J/Jj3/pNPLzp+vs05ZdktsY6QxAREaOMAnNEtSqcrB4S5DsXOfRg==} + dev: true + + /@astrojs/compiler/0.23.3: + resolution: {integrity: sha512-eBWo0d3DoRDeg2Di1/5YJtOXh5eGFSjJMp1wVoVfoITHR4egdUGgsrDHZTzj0a25M/S9W5S6SpXCyNWcqi8jOA==} + dev: true + + /@astrojs/image/0.3.4: + resolution: {integrity: sha512-eggNQTRqWE2cxhJeVFYkRKKN5SMyMuHxcq/JaT6KfMEJY2ULGKiYa3ulKr3/kAIXGcU3hrOpv0U7GirMVKlhZg==} + dependencies: + etag: 1.8.1 + image-size: 1.0.2 + mrmime: 1.0.1 + sharp: 0.30.7 + slash: 4.0.0 + tiny-glob: 0.2.9 + dev: true + + /@astrojs/language-server/0.20.3: + resolution: {integrity: sha512-MuzTsSpUjtmMXfrBThtZwgO39Jc+Bbl5hLevumkp01N/YCKE+Iipd3ELSdbk7+TPiuBV+/SKrVmaQPvJBnWPkA==} + hasBin: true + dependencies: + '@vscode/emmet-helper': 2.8.4 + source-map: 0.7.4 + typescript: 4.6.4 + vscode-css-languageservice: 6.0.1 + vscode-html-languageservice: 5.0.1 + vscode-languageserver: 8.0.2 + vscode-languageserver-protocol: 3.17.2 + vscode-languageserver-textdocument: 1.0.5 + vscode-languageserver-types: 3.17.2 + vscode-uri: 3.0.3 + dev: true + + /@astrojs/markdown-remark/1.0.0: + resolution: {integrity: sha512-yQIMvVjSMs4ZQHffT2nBgXiqVHKOwIgd6xC0o5XkcbXxyspxjRGpHyiAp/WKEdKsUeXwjVuL8b+6lhAYByd+lw==} + dependencies: + '@astrojs/micromark-extension-mdx-jsx': 1.0.3 + '@astrojs/prism': 1.0.1 + acorn: 8.8.0 + acorn-jsx: 5.3.2_acorn@8.8.0 + github-slugger: 1.4.0 + mdast-util-mdx-expression: 1.3.0 + mdast-util-mdx-jsx: 1.2.0 + micromark-extension-mdx-expression: 1.0.3 + micromark-extension-mdx-md: 1.0.0 + micromark-util-combine-extensions: 1.0.0 + rehype-raw: 6.1.1 + rehype-stringify: 9.0.3 + remark-gfm: 3.0.1 + remark-parse: 10.0.1 + remark-rehype: 10.1.0 + remark-smartypants: 2.0.0 + shiki: 0.10.1 + unified: 10.1.2 + unist-util-map: 3.1.1 + unist-util-visit: 4.1.1 + vfile: 5.3.4 + transitivePeerDependencies: + - supports-color + dev: true + + /@astrojs/mdx/0.10.0_rollup@2.78.1: + resolution: {integrity: sha512-nQcYzjPB8p0KWyP8g/8V6Rnxd7+5/VzNP4JLvQWUFs6mo7Akq98y4i+QjOl9/k5erzikl96Uul70MS/rjBheNQ==} + engines: {node: ^14.18.0 || >=16.12.0} + dependencies: + '@astrojs/prism': 1.0.1 + '@mdx-js/mdx': 2.1.3 + '@mdx-js/rollup': 2.1.3_rollup@2.78.1 + acorn: 8.8.0 + es-module-lexer: 0.10.5 + github-slugger: 1.4.0 + gray-matter: 4.0.3 + rehype-raw: 6.1.1 + remark-frontmatter: 4.0.1 + remark-gfm: 3.0.1 + remark-smartypants: 2.0.0 + shiki: 0.10.1 + unist-util-visit: 4.1.1 + vfile: 5.3.4 + transitivePeerDependencies: + - rollup + - supports-color + dev: true + + /@astrojs/micromark-extension-mdx-jsx/1.0.3: + resolution: {integrity: sha512-O15+i2DGG0qb1R/1SYbFXgOKDGbYdV8iJMtuboVb1S9YFQfMOJxaCMco0bhXQI7PmZcQ4pZWIjT5oZ64dXUtRA==} + dependencies: + '@types/acorn': 4.0.6 + estree-util-is-identifier-name: 2.0.1 + micromark-factory-mdx-expression: 1.0.6 + micromark-factory-space: 1.0.0 + micromark-util-character: 1.1.0 + micromark-util-symbol: 1.0.1 + micromark-util-types: 1.0.2 + uvu: 0.5.6 + vfile-message: 3.1.2 + dev: true + + /@astrojs/prism/1.0.1: + resolution: {integrity: sha512-HxEFslvbv+cfOs51q/C7aMVFuW3EAGg0d1xXU/0e/QeScDzfrp5Ra4SOb8mV082SgENVjtVvet4zR84t3at4VQ==} + engines: {node: ^14.18.0 || >=16.12.0} + dependencies: + prismjs: 1.28.0 + dev: true + + /@astrojs/sitemap/1.0.0: + resolution: {integrity: sha512-42GxuF5FP7RaKXZrwGLBLOX3hPv+Wl7ExJC43O0J5e34ojJkLeKf7QfwN1UwrJlqH0Ywi0Fm4/xGe482G09+wg==} + dependencies: + sitemap: 7.1.1 + zod: 3.18.0 + dev: true + + /@astrojs/svelte/1.0.0_fje22ktja5v2dh6nbkissncqme: + resolution: {integrity: sha512-WmvcEe86j/3wL2xWURo1Kxtgh+s0CVys2j7xQboHr0ZeH9TBlkQuacAT8mWccD1/MikhDVqL/1hnF/n+vRKuGw==} + engines: {node: ^14.18.0 || >=16.12.0} + peerDependencies: + svelte: ^3.46.4 + dependencies: + '@sveltejs/vite-plugin-svelte': 1.0.1_svelte@3.49.0+vite@3.0.9 + postcss-load-config: 3.1.4_postcss@8.4.16 + svelte: 3.49.0 + svelte-preprocess: 4.10.7_l7q3nrlpy44fkjv4575d7e5a4m + svelte2tsx: 0.5.14_uslzfc62di2n2otc2tvfklnwji + vite: 3.0.9 + transitivePeerDependencies: + - '@babel/core' + - coffeescript + - diff-match-patch + - less + - node-sass + - postcss + - pug + - sass + - stylus + - sugarss + - supports-color + - terser + - ts-node + - typescript + dev: true + + /@astrojs/tailwind/1.0.0: + resolution: {integrity: sha512-hEpvKBJKCStaxRZt3ENDacQlzUTOvW1D7dfIUyTf7jMUK4O+y8Q7gdTjERf1HBEi/YXrYNX1zhAElwp6lvW5oQ==} + dependencies: + '@proload/core': 0.3.2 + autoprefixer: 10.4.8_postcss@8.4.16 + postcss: 8.4.16 + tailwindcss: 3.1.8_postcss@8.4.16 + transitivePeerDependencies: + - ts-node + dev: true + + /@astrojs/telemetry/1.0.0: + resolution: {integrity: sha512-a8edSHK2CpWrGubLp2RR2D/uC9Paa614hQM/lS4In2lhmcCjaQA9ZyYT6l44peuDwUNt1V82DqXk3TFiDBWM8g==} + engines: {node: ^14.18.0 || >=16.12.0} + dependencies: + ci-info: 3.3.2 + debug: 4.3.4 + dlv: 1.1.3 + dset: 3.1.2 + is-docker: 3.0.0 + is-wsl: 2.2.0 + node-fetch: 3.2.10 + which-pm-runs: 1.1.0 + transitivePeerDependencies: + - supports-color + dev: true + + /@astrojs/webapi/1.0.0: + resolution: {integrity: sha512-+klQ75oQbRdAMEbvAgrKE14hxh6GVHsQWZE4j/eJ2qhnvMSu7pw13MVQtFaAV96+pUkcYSjwWd1k+Oxoxkuo3g==} + dependencies: + node-fetch: 3.2.10 + dev: true + + /@astropub/codecs/0.4.4: + resolution: {integrity: sha512-jHmdZK2B7dfelTsVzkWVb93WPjuKkHz07xUcyg5WtUxTeCCxdDVLnvZlsB5PC2r7HmJLf03TP1QYb1ZgrEebyQ==} + dev: true + + /@babel/code-frame/7.18.6: + resolution: {integrity: sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/highlight': 7.18.6 + dev: true + + /@babel/compat-data/7.18.8: + resolution: {integrity: sha512-HSmX4WZPPK3FUxYp7g2T6EyO8j96HlZJlxmKPSh6KAcqwyDrfx7hKjXpAW/0FhFfTJsR0Yt4lAjLI2coMptIHQ==} + engines: {node: '>=6.9.0'} + dev: true + + /@babel/core/7.18.10: + resolution: {integrity: sha512-JQM6k6ENcBFKVtWvLavlvi/mPcpYZ3+R+2EySDEMSMbp7Mn4FexlbbJVrx2R7Ijhr01T8gyqrOaABWIOgxeUyw==} + engines: {node: '>=6.9.0'} + dependencies: + '@ampproject/remapping': 2.2.0 + '@babel/code-frame': 7.18.6 + '@babel/generator': 7.18.12 + '@babel/helper-compilation-targets': 7.18.9_@babel+core@7.18.10 + '@babel/helper-module-transforms': 7.18.9 + '@babel/helpers': 7.18.9 + '@babel/parser': 7.18.11 + '@babel/template': 7.18.10 + '@babel/traverse': 7.18.11 + '@babel/types': 7.18.10 + convert-source-map: 1.8.0 + debug: 4.3.4 + gensync: 1.0.0-beta.2 + json5: 2.2.1 + semver: 6.3.0 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/generator/7.18.12: + resolution: {integrity: sha512-dfQ8ebCN98SvyL7IxNMCUtZQSq5R7kxgN+r8qYTGDmmSion1hX2C0zq2yo1bsCDhXixokv1SAWTZUMYbO/V5zg==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.18.10 + '@jridgewell/gen-mapping': 0.3.2 + jsesc: 2.5.2 + dev: true + + /@babel/helper-annotate-as-pure/7.18.6: + resolution: {integrity: sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.18.10 + dev: true + + /@babel/helper-compilation-targets/7.18.9_@babel+core@7.18.10: + resolution: {integrity: sha512-tzLCyVmqUiFlcFoAPLA/gL9TeYrF61VLNtb+hvkuVaB5SUjW7jcfrglBIX1vUIoT7CLP3bBlIMeyEsIl2eFQNg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/compat-data': 7.18.8 + '@babel/core': 7.18.10 + '@babel/helper-validator-option': 7.18.6 + browserslist: 4.21.3 + semver: 6.3.0 + dev: true + + /@babel/helper-environment-visitor/7.18.9: + resolution: {integrity: sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==} + engines: {node: '>=6.9.0'} + dev: true + + /@babel/helper-function-name/7.18.9: + resolution: {integrity: sha512-fJgWlZt7nxGksJS9a0XdSaI4XvpExnNIgRP+rVefWh5U7BL8pPuir6SJUmFKRfjWQ51OtWSzwOxhaH/EBWWc0A==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/template': 7.18.10 + '@babel/types': 7.18.10 + dev: true + + /@babel/helper-hoist-variables/7.18.6: + resolution: {integrity: sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.18.10 + dev: true + + /@babel/helper-module-imports/7.18.6: + resolution: {integrity: sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.18.10 + dev: true + + /@babel/helper-module-transforms/7.18.9: + resolution: {integrity: sha512-KYNqY0ICwfv19b31XzvmI/mfcylOzbLtowkw+mfvGPAQ3kfCnMLYbED3YecL5tPd8nAYFQFAd6JHp2LxZk/J1g==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-environment-visitor': 7.18.9 + '@babel/helper-module-imports': 7.18.6 + '@babel/helper-simple-access': 7.18.6 + '@babel/helper-split-export-declaration': 7.18.6 + '@babel/helper-validator-identifier': 7.18.6 + '@babel/template': 7.18.10 + '@babel/traverse': 7.18.11 + '@babel/types': 7.18.10 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/helper-plugin-utils/7.18.9: + resolution: {integrity: sha512-aBXPT3bmtLryXaoJLyYPXPlSD4p1ld9aYeR+sJNOZjJJGiOpb+fKfh3NkcCu7J54nUJwCERPBExCCpyCOHnu/w==} + engines: {node: '>=6.9.0'} + dev: true + + /@babel/helper-simple-access/7.18.6: + resolution: {integrity: sha512-iNpIgTgyAvDQpDj76POqg+YEt8fPxx3yaNBg3S30dxNKm2SWfYhD0TGrK/Eu9wHpUW63VQU894TsTg+GLbUa1g==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.18.10 + dev: true + + /@babel/helper-split-export-declaration/7.18.6: + resolution: {integrity: sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.18.10 + dev: true + + /@babel/helper-string-parser/7.18.10: + resolution: {integrity: sha512-XtIfWmeNY3i4t7t4D2t02q50HvqHybPqW2ki1kosnvWCwuCMeo81Jf0gwr85jy/neUdg5XDdeFE/80DXiO+njw==} + engines: {node: '>=6.9.0'} + dev: true + + /@babel/helper-validator-identifier/7.18.6: + resolution: {integrity: sha512-MmetCkz9ej86nJQV+sFCxoGGrUbU3q02kgLciwkrt9QqEB7cP39oKEY0PakknEO0Gu20SskMRi+AYZ3b1TpN9g==} + engines: {node: '>=6.9.0'} + dev: true + + /@babel/helper-validator-option/7.18.6: + resolution: {integrity: sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==} + engines: {node: '>=6.9.0'} + dev: true + + /@babel/helpers/7.18.9: + resolution: {integrity: sha512-Jf5a+rbrLoR4eNdUmnFu8cN5eNJT6qdTdOg5IHIzq87WwyRw9PwguLFOWYgktN/60IP4fgDUawJvs7PjQIzELQ==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/template': 7.18.10 + '@babel/traverse': 7.18.11 + '@babel/types': 7.18.10 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/highlight/7.18.6: + resolution: {integrity: sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-validator-identifier': 7.18.6 + chalk: 2.4.2 + js-tokens: 4.0.0 + dev: true + + /@babel/parser/7.18.11: + resolution: {integrity: sha512-9JKn5vN+hDt0Hdqn1PiJ2guflwP+B6Ga8qbDuoF0PzzVhrzsKIJo8yGqVk6CmMHiMei9w1C1Bp9IMJSIK+HPIQ==} + engines: {node: '>=6.0.0'} + hasBin: true + dependencies: + '@babel/types': 7.18.10 + dev: true + + /@babel/plugin-syntax-jsx/7.18.6_@babel+core@7.18.10: + resolution: {integrity: sha512-6mmljtAedFGTWu2p/8WIORGwy+61PLgOMPOdazc7YoJ9ZCWUyFy3A6CpPkRKLKD1ToAesxX8KGEViAiLo9N+7Q==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.18.10 + '@babel/helper-plugin-utils': 7.18.9 + dev: true + + /@babel/plugin-transform-react-jsx/7.18.10_@babel+core@7.18.10: + resolution: {integrity: sha512-gCy7Iikrpu3IZjYZolFE4M1Sm+nrh1/6za2Ewj77Z+XirT4TsbJcvOFOyF+fRPwU6AKKK136CZxx6L8AbSFG6A==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.18.10 + '@babel/helper-annotate-as-pure': 7.18.6 + '@babel/helper-module-imports': 7.18.6 + '@babel/helper-plugin-utils': 7.18.9 + '@babel/plugin-syntax-jsx': 7.18.6_@babel+core@7.18.10 + '@babel/types': 7.18.10 + dev: true + + /@babel/runtime/7.18.9: + resolution: {integrity: sha512-lkqXDcvlFT5rvEjiu6+QYO+1GXrEHRo2LOtS7E4GtX5ESIZOgepqsZBVIj6Pv+a6zqsya9VCgiK1KAK4BvJDAw==} + engines: {node: '>=6.9.0'} + dependencies: + regenerator-runtime: 0.13.9 + dev: true + + /@babel/template/7.18.10: + resolution: {integrity: sha512-TI+rCtooWHr3QJ27kJxfjutghu44DLnasDMwpDqCXVTal9RLp3RSYNh4NdBrRP2cQAoG9A8juOQl6P6oZG4JxA==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/code-frame': 7.18.6 + '@babel/parser': 7.18.11 + '@babel/types': 7.18.10 + dev: true + + /@babel/traverse/7.18.11: + resolution: {integrity: sha512-TG9PiM2R/cWCAy6BPJKeHzNbu4lPzOSZpeMfeNErskGpTJx6trEvFaVCbDvpcxwy49BKWmEPwiW8mrysNiDvIQ==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/code-frame': 7.18.6 + '@babel/generator': 7.18.12 + '@babel/helper-environment-visitor': 7.18.9 + '@babel/helper-function-name': 7.18.9 + '@babel/helper-hoist-variables': 7.18.6 + '@babel/helper-split-export-declaration': 7.18.6 + '@babel/parser': 7.18.11 + '@babel/types': 7.18.10 + debug: 4.3.4 + globals: 11.12.0 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/types/7.18.10: + resolution: {integrity: sha512-MJvnbEiiNkpjo+LknnmRrqbY1GPUUggjv+wQVjetM/AONoupqRALB7I6jGqNUAZsKcRIEu2J6FRFvsczljjsaQ==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-string-parser': 7.18.10 + '@babel/helper-validator-identifier': 7.18.6 + to-fast-properties: 2.0.0 + dev: true + + /@emmetio/abbreviation/2.2.3: + resolution: {integrity: sha512-87pltuCPt99aL+y9xS6GPZ+Wmmyhll2WXH73gG/xpGcQ84DRnptBsI2r0BeIQ0EB/SQTOe2ANPqFqj3Rj5FOGA==} + dependencies: + '@emmetio/scanner': 1.0.0 + dev: true + + /@emmetio/css-abbreviation/2.1.4: + resolution: {integrity: sha512-qk9L60Y+uRtM5CPbB0y+QNl/1XKE09mSO+AhhSauIfr2YOx/ta3NJw2d8RtCFxgzHeRqFRr8jgyzThbu+MZ4Uw==} + dependencies: + '@emmetio/scanner': 1.0.0 + dev: true + + /@emmetio/scanner/1.0.0: + resolution: {integrity: sha512-8HqW8EVqjnCmWXVpqAOZf+EGESdkR27odcMMMGefgKXtar00SoYNSryGv//TELI4T3QFsECo78p+0lmalk/CFA==} + dev: true + + /@esbuild/linux-loong64/0.14.54: + resolution: {integrity: sha512-bZBrLAIX1kpWelV0XemxBZllyRmM6vgFQQG2GdNb+r3Fkp0FOh1NJSvekXDs7jq70k4euu1cryLMfU+mTXlEpw==} + engines: {node: '>=12'} + cpu: [loong64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@fontsource/fira-mono/4.5.9: + resolution: {integrity: sha512-DDhkRUjPHwPK/wB7GM/7LzGkcEC5JyTZM93YnFoP2Qfjffq3qX1asnXNqfglgZxXHXVmu3RI8OjRf87I97XCfA==} + dev: false + + /@jimp/bmp/0.14.0_@jimp+custom@0.14.0: + resolution: {integrity: sha512-5RkX6tSS7K3K3xNEb2ygPuvyL9whjanhoaB/WmmXlJS6ub4DjTqrapu8j4qnIWmO4YYtFeTbDTXV6v9P1yMA5A==} + peerDependencies: + '@jimp/custom': '>=0.3.5' + dependencies: + '@babel/runtime': 7.18.9 + '@jimp/custom': 0.14.0 + '@jimp/utils': 0.14.0 + bmp-js: 0.1.0 + dev: true + + /@jimp/core/0.14.0: + resolution: {integrity: sha512-S62FcKdtLtj3yWsGfJRdFXSutjvHg7aQNiFogMbwq19RP4XJWqS2nOphu7ScB8KrSlyy5nPF2hkWNhLRLyD82w==} + dependencies: + '@babel/runtime': 7.18.9 + '@jimp/utils': 0.14.0 + any-base: 1.1.0 + buffer: 5.7.1 + exif-parser: 0.1.12 + file-type: 9.0.0 + load-bmfont: 1.4.1 + mkdirp: 0.5.6 + phin: 2.9.3 + pixelmatch: 4.0.2 + tinycolor2: 1.4.2 + dev: true + + /@jimp/custom/0.14.0: + resolution: {integrity: sha512-kQJMeH87+kWJdVw8F9GQhtsageqqxrvzg7yyOw3Tx/s7v5RToe8RnKyMM+kVtBJtNAG+Xyv/z01uYQ2jiZ3GwA==} + dependencies: + '@babel/runtime': 7.18.9 + '@jimp/core': 0.14.0 + dev: true + + /@jimp/gif/0.14.0_@jimp+custom@0.14.0: + resolution: {integrity: sha512-DHjoOSfCaCz72+oGGEh8qH0zE6pUBaBxPxxmpYJjkNyDZP7RkbBkZJScIYeQ7BmJxmGN4/dZn+MxamoQlr+UYg==} + peerDependencies: + '@jimp/custom': '>=0.3.5' + dependencies: + '@babel/runtime': 7.18.9 + '@jimp/custom': 0.14.0 + '@jimp/utils': 0.14.0 + gifwrap: 0.9.4 + omggif: 1.0.10 + dev: true + + /@jimp/jpeg/0.14.0_@jimp+custom@0.14.0: + resolution: {integrity: sha512-561neGbr+87S/YVQYnZSTyjWTHBm9F6F1obYHiyU3wVmF+1CLbxY3FQzt4YolwyQHIBv36Bo0PY2KkkU8BEeeQ==} + peerDependencies: + '@jimp/custom': '>=0.3.5' + dependencies: + '@babel/runtime': 7.18.9 + '@jimp/custom': 0.14.0 + '@jimp/utils': 0.14.0 + jpeg-js: 0.4.4 + dev: true + + /@jimp/plugin-blit/0.14.0_@jimp+custom@0.14.0: + resolution: {integrity: sha512-YoYOrnVHeX3InfgbJawAU601iTZMwEBZkyqcP1V/S33Qnz9uzH1Uj1NtC6fNgWzvX6I4XbCWwtr4RrGFb5CFrw==} + peerDependencies: + '@jimp/custom': '>=0.3.5' + dependencies: + '@babel/runtime': 7.18.9 + '@jimp/custom': 0.14.0 + '@jimp/utils': 0.14.0 + dev: true + + /@jimp/plugin-blur/0.14.0_@jimp+custom@0.14.0: + resolution: {integrity: sha512-9WhZcofLrT0hgI7t0chf7iBQZib//0gJh9WcQMUt5+Q1Bk04dWs8vTgLNj61GBqZXgHSPzE4OpCrrLDBG8zlhQ==} + peerDependencies: + '@jimp/custom': '>=0.3.5' + dependencies: + '@babel/runtime': 7.18.9 + '@jimp/custom': 0.14.0 + '@jimp/utils': 0.14.0 + dev: true + + /@jimp/plugin-circle/0.14.0_@jimp+custom@0.14.0: + resolution: {integrity: sha512-o5L+wf6QA44tvTum5HeLyLSc5eVfIUd5ZDVi5iRfO4o6GT/zux9AxuTSkKwnjhsG8bn1dDmywAOQGAx7BjrQVA==} + peerDependencies: + '@jimp/custom': '>=0.3.5' + dependencies: + '@babel/runtime': 7.18.9 + '@jimp/custom': 0.14.0 + '@jimp/utils': 0.14.0 + dev: true + + /@jimp/plugin-color/0.14.0_@jimp+custom@0.14.0: + resolution: {integrity: sha512-JJz512SAILYV0M5LzBb9sbOm/XEj2fGElMiHAxb7aLI6jx+n0agxtHpfpV/AePTLm1vzzDxx6AJxXbKv355hBQ==} + peerDependencies: + '@jimp/custom': '>=0.3.5' + dependencies: + '@babel/runtime': 7.18.9 + '@jimp/custom': 0.14.0 + '@jimp/utils': 0.14.0 + tinycolor2: 1.4.2 + dev: true + + /@jimp/plugin-contain/0.14.0_atzow7c7z3rxphgj3ycbcfc7du: + resolution: {integrity: sha512-RX2q233lGyaxiMY6kAgnm9ScmEkNSof0hdlaJAVDS1OgXphGAYAeSIAwzESZN4x3ORaWvkFefeVH9O9/698Evg==} + peerDependencies: + '@jimp/custom': '>=0.3.5' + '@jimp/plugin-blit': '>=0.3.5' + '@jimp/plugin-resize': '>=0.3.5' + '@jimp/plugin-scale': '>=0.3.5' + dependencies: + '@babel/runtime': 7.18.9 + '@jimp/custom': 0.14.0 + '@jimp/plugin-blit': 0.14.0_@jimp+custom@0.14.0 + '@jimp/plugin-resize': 0.14.0_@jimp+custom@0.14.0 + '@jimp/plugin-scale': 0.14.0_dnjajzlrw7tj7gkph5zzcsobsa + '@jimp/utils': 0.14.0 + dev: true + + /@jimp/plugin-cover/0.14.0_cmwkwndotcukelhzzy7qfggfhq: + resolution: {integrity: sha512-0P/5XhzWES4uMdvbi3beUgfvhn4YuQ/ny8ijs5kkYIw6K8mHcl820HahuGpwWMx56DJLHRl1hFhJwo9CeTRJtQ==} + peerDependencies: + '@jimp/custom': '>=0.3.5' + '@jimp/plugin-crop': '>=0.3.5' + '@jimp/plugin-resize': '>=0.3.5' + '@jimp/plugin-scale': '>=0.3.5' + dependencies: + '@babel/runtime': 7.18.9 + '@jimp/custom': 0.14.0 + '@jimp/plugin-crop': 0.14.0_@jimp+custom@0.14.0 + '@jimp/plugin-resize': 0.14.0_@jimp+custom@0.14.0 + '@jimp/plugin-scale': 0.14.0_dnjajzlrw7tj7gkph5zzcsobsa + '@jimp/utils': 0.14.0 + dev: true + + /@jimp/plugin-crop/0.14.0_@jimp+custom@0.14.0: + resolution: {integrity: sha512-Ojtih+XIe6/XSGtpWtbAXBozhCdsDMmy+THUJAGu2x7ZgKrMS0JotN+vN2YC3nwDpYkM+yOJImQeptSfZb2Sug==} + peerDependencies: + '@jimp/custom': '>=0.3.5' + dependencies: + '@babel/runtime': 7.18.9 + '@jimp/custom': 0.14.0 + '@jimp/utils': 0.14.0 + dev: true + + /@jimp/plugin-displace/0.14.0_@jimp+custom@0.14.0: + resolution: {integrity: sha512-c75uQUzMgrHa8vegkgUvgRL/PRvD7paFbFJvzW0Ugs8Wl+CDMGIPYQ3j7IVaQkIS+cAxv+NJ3TIRBQyBrfVEOg==} + peerDependencies: + '@jimp/custom': '>=0.3.5' + dependencies: + '@babel/runtime': 7.18.9 + '@jimp/custom': 0.14.0 + '@jimp/utils': 0.14.0 + dev: true + + /@jimp/plugin-dither/0.14.0_@jimp+custom@0.14.0: + resolution: {integrity: sha512-g8SJqFLyYexXQQsoh4dc1VP87TwyOgeTElBcxSXX2LaaMZezypmxQfLTzOFzZoK8m39NuaoH21Ou1Ftsq7LzVQ==} + peerDependencies: + '@jimp/custom': '>=0.3.5' + dependencies: + '@babel/runtime': 7.18.9 + '@jimp/custom': 0.14.0 + '@jimp/utils': 0.14.0 + dev: true + + /@jimp/plugin-fisheye/0.14.0_@jimp+custom@0.14.0: + resolution: {integrity: sha512-BFfUZ64EikCaABhCA6mR3bsltWhPpS321jpeIQfJyrILdpFsZ/OccNwCgpW1XlbldDHIoNtXTDGn3E+vCE7vDg==} + peerDependencies: + '@jimp/custom': '>=0.3.5' + dependencies: + '@babel/runtime': 7.18.9 + '@jimp/custom': 0.14.0 + '@jimp/utils': 0.14.0 + dev: true + + /@jimp/plugin-flip/0.14.0_egz5qy63qcuglqunvauxsismu4: + resolution: {integrity: sha512-WtL1hj6ryqHhApih+9qZQYA6Ye8a4HAmdTzLbYdTMrrrSUgIzFdiZsD0WeDHpgS/+QMsWwF+NFmTZmxNWqKfXw==} + peerDependencies: + '@jimp/custom': '>=0.3.5' + '@jimp/plugin-rotate': '>=0.3.5' + dependencies: + '@babel/runtime': 7.18.9 + '@jimp/custom': 0.14.0 + '@jimp/plugin-rotate': 0.14.0_nitfkm2iiqsjd5dqctkqjdhryu + '@jimp/utils': 0.14.0 + dev: true + + /@jimp/plugin-gaussian/0.14.0_@jimp+custom@0.14.0: + resolution: {integrity: sha512-uaLwQ0XAQoydDlF9tlfc7iD9drYPriFe+jgYnWm8fbw5cN+eOIcnneEX9XCOOzwgLPkNCxGox6Kxjn8zY6GxtQ==} + peerDependencies: + '@jimp/custom': '>=0.3.5' + dependencies: + '@babel/runtime': 7.18.9 + '@jimp/custom': 0.14.0 + '@jimp/utils': 0.14.0 + dev: true + + /@jimp/plugin-invert/0.14.0_@jimp+custom@0.14.0: + resolution: {integrity: sha512-UaQW9X9vx8orQXYSjT5VcITkJPwDaHwrBbxxPoDG+F/Zgv4oV9fP+udDD6qmkgI9taU+44Fy+zm/J/gGcMWrdg==} + peerDependencies: + '@jimp/custom': '>=0.3.5' + dependencies: + '@babel/runtime': 7.18.9 + '@jimp/custom': 0.14.0 + '@jimp/utils': 0.14.0 + dev: true + + /@jimp/plugin-mask/0.14.0_@jimp+custom@0.14.0: + resolution: {integrity: sha512-tdiGM69OBaKtSPfYSQeflzFhEpoRZ+BvKfDEoivyTjauynbjpRiwB1CaiS8En1INTDwzLXTT0Be9SpI3LkJoEA==} + peerDependencies: + '@jimp/custom': '>=0.3.5' + dependencies: + '@babel/runtime': 7.18.9 + '@jimp/custom': 0.14.0 + '@jimp/utils': 0.14.0 + dev: true + + /@jimp/plugin-normalize/0.14.0_@jimp+custom@0.14.0: + resolution: {integrity: sha512-AfY8sqlsbbdVwFGcyIPy5JH/7fnBzlmuweb+Qtx2vn29okq6+HelLjw2b+VT2btgGUmWWHGEHd86oRGSoWGyEQ==} + peerDependencies: + '@jimp/custom': '>=0.3.5' + dependencies: + '@babel/runtime': 7.18.9 + '@jimp/custom': 0.14.0 + '@jimp/utils': 0.14.0 + dev: true + + /@jimp/plugin-print/0.14.0_lhhsyseurtfetoblh726nyhfha: + resolution: {integrity: sha512-MwP3sH+VS5AhhSTXk7pui+tEJFsxnTKFY3TraFJb8WFbA2Vo2qsRCZseEGwpTLhENB7p/JSsLvWoSSbpmxhFAQ==} + peerDependencies: + '@jimp/custom': '>=0.3.5' + '@jimp/plugin-blit': '>=0.3.5' + dependencies: + '@babel/runtime': 7.18.9 + '@jimp/custom': 0.14.0 + '@jimp/plugin-blit': 0.14.0_@jimp+custom@0.14.0 + '@jimp/utils': 0.14.0 + load-bmfont: 1.4.1 + dev: true + + /@jimp/plugin-resize/0.14.0_@jimp+custom@0.14.0: + resolution: {integrity: sha512-qFeMOyXE/Bk6QXN0GQo89+CB2dQcXqoxUcDb2Ah8wdYlKqpi53skABkgVy5pW3EpiprDnzNDboMltdvDslNgLQ==} + peerDependencies: + '@jimp/custom': '>=0.3.5' + dependencies: + '@babel/runtime': 7.18.9 + '@jimp/custom': 0.14.0 + '@jimp/utils': 0.14.0 + dev: true + + /@jimp/plugin-rotate/0.14.0_nitfkm2iiqsjd5dqctkqjdhryu: + resolution: {integrity: sha512-aGaicts44bvpTcq5Dtf93/8TZFu5pMo/61lWWnYmwJJU1RqtQlxbCLEQpMyRhKDNSfPbuP8nyGmaqXlM/82J0Q==} + peerDependencies: + '@jimp/custom': '>=0.3.5' + '@jimp/plugin-blit': '>=0.3.5' + '@jimp/plugin-crop': '>=0.3.5' + '@jimp/plugin-resize': '>=0.3.5' + dependencies: + '@babel/runtime': 7.18.9 + '@jimp/custom': 0.14.0 + '@jimp/plugin-blit': 0.14.0_@jimp+custom@0.14.0 + '@jimp/plugin-crop': 0.14.0_@jimp+custom@0.14.0 + '@jimp/plugin-resize': 0.14.0_@jimp+custom@0.14.0 + '@jimp/utils': 0.14.0 + dev: true + + /@jimp/plugin-scale/0.14.0_dnjajzlrw7tj7gkph5zzcsobsa: + resolution: {integrity: sha512-ZcJk0hxY5ZKZDDwflqQNHEGRblgaR+piePZm7dPwPUOSeYEH31P0AwZ1ziceR74zd8N80M0TMft+e3Td6KGBHw==} + peerDependencies: + '@jimp/custom': '>=0.3.5' + '@jimp/plugin-resize': '>=0.3.5' + dependencies: + '@babel/runtime': 7.18.9 + '@jimp/custom': 0.14.0 + '@jimp/plugin-resize': 0.14.0_@jimp+custom@0.14.0 + '@jimp/utils': 0.14.0 + dev: true -devDependencies: - "@iarna/toml": 2.2.5 - "@sveltejs/adapter-static": 1.0.0-next.38 - "@sveltejs/kit": 1.0.0-next.403_svelte@3.49.0+vite@3.0.4 - "@tailwindcss/typography": 0.5.4_tailwindcss@3.1.8 - "@types/prismjs": 1.26.0 - "@types/unist": 2.0.6 - "@typescript-eslint/eslint-plugin": 5.32.0_iosr3hrei2tubxveewluhu5lhy - "@typescript-eslint/parser": 5.32.0_qugx7qdu5zevzvxaiqyxfiwquq - autoprefixer: 10.4.8_postcss@8.4.14 - esbuild: 0.14.53 - eslint: 8.21.0 - eslint-config-airbnb-typescript: 17.0.0_77qpyedo2u2m7zy3x6o2xs2i5u - eslint-config-prettier: 8.5.0_eslint@8.21.0 - eslint-import-resolver-typescript: 3.4.0_jatgrcxl4x7ywe7ak6cnjca2ae - eslint-plugin-eslint-comments: 3.2.0_eslint@8.21.0 - eslint-plugin-import: 2.26.0_klqlxqqxnpnfpttri4irupweri - eslint-plugin-promise: 6.0.0_eslint@8.21.0 - eslint-plugin-svelte3: 4.0.0_a7wk4ghvg4hia4trwaglu7p6cq - eslint-plugin-tsdoc: 0.2.16 - glob: 8.0.3 - html-minifier: 4.0.0 - katex: 0.16.0 - license-checker: 25.0.1 - mdast-util-to-string: 3.1.0 - mdsvex: 0.10.6_svelte@3.49.0 - postcss: 8.4.14 - postcss-import: 14.1.0_postcss@8.4.14 - postcss-load-config: 4.0.1_postcss@8.4.14 - prettier: 2.7.1 - prettier-plugin-svelte: 2.7.0_o3ioganyptcsrh6x4hnxvjkpqi - prettier-plugin-tailwindcss: 0.1.13_prettier@2.7.1 - prismjs: 1.28.0 - rehype-autolink-headings: 6.1.1 - rehype-katex-svelte: 1.1.2 - rehype-slug: 5.0.1 - remark-emoji: 3.0.2 - remark-gfm: 3.0.1 - remark-math: 3.0.1 - remark-slug: 7.0.1 - svelte: 3.49.0 - svelte-check: 2.8.0_blrkfmplrezk6jx3arz7bdc3pa - svelte-preprocess: 4.10.7_6avtyouqcdws46kxwsvk4vhxre - tailwindcss: 3.1.8 - tslib: 2.4.0 - typescript: 4.7.4 - unified: 10.1.2 - unist-util-find-after: 4.0.0 - unist-util-visit: 4.1.0 - unist-util-visit-parents: 5.1.0 - vite: 3.0.4 + /@jimp/plugin-shadow/0.14.0_jhz7k2d2s3ip6ssk34veacb4wy: + resolution: {integrity: sha512-p2igcEr/iGrLiTu0YePNHyby0WYAXM14c5cECZIVnq/UTOOIQ7xIcWZJ1lRbAEPxVVXPN1UibhZAbr3HAb5BjQ==} + peerDependencies: + '@jimp/custom': '>=0.3.5' + '@jimp/plugin-blur': '>=0.3.5' + '@jimp/plugin-resize': '>=0.3.5' + dependencies: + '@babel/runtime': 7.18.9 + '@jimp/custom': 0.14.0 + '@jimp/plugin-blur': 0.14.0_@jimp+custom@0.14.0 + '@jimp/plugin-resize': 0.14.0_@jimp+custom@0.14.0 + '@jimp/utils': 0.14.0 + dev: true -packages: - /@esbuild/linux-loong64/0.14.53: - resolution: - { - integrity: sha512-W2dAL6Bnyn4xa/QRSU3ilIK4EzD5wgYXKXJiS1HDF5vU3675qc2bvFyLwbUcdmssDveyndy7FbitrCoiV/eMLg== - } - engines: { node: ">=12" } - cpu: [loong64] - os: [linux] - requiresBuild: true + /@jimp/plugin-threshold/0.14.0_yvpuowyu3hipklrsdaf6scfd4u: + resolution: {integrity: sha512-N4BlDgm/FoOMV/DQM2rSpzsgqAzkP0DXkWZoqaQrlRxQBo4zizQLzhEL00T/YCCMKnddzgEhnByaocgaaa0fKw==} + peerDependencies: + '@jimp/custom': '>=0.3.5' + '@jimp/plugin-color': '>=0.8.0' + '@jimp/plugin-resize': '>=0.8.0' + dependencies: + '@babel/runtime': 7.18.9 + '@jimp/custom': 0.14.0 + '@jimp/plugin-color': 0.14.0_@jimp+custom@0.14.0 + '@jimp/plugin-resize': 0.14.0_@jimp+custom@0.14.0 + '@jimp/utils': 0.14.0 dev: true - optional: true - /@eslint/eslintrc/1.3.0: - resolution: - { - integrity: sha512-UWW0TMTmk2d7hLcWD1/e2g5HDM/HQ3csaLSqXCfqwh4uNDuNqlaKWXmEsL4Cs41Z0KnILNvwbHAah3C2yt06kw== - } - engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } + /@jimp/plugins/0.14.0_@jimp+custom@0.14.0: + resolution: {integrity: sha512-vDO3XT/YQlFlFLq5TqNjQkISqjBHT8VMhpWhAfJVwuXIpilxz5Glu4IDLK6jp4IjPR6Yg2WO8TmRY/HI8vLrOw==} + peerDependencies: + '@jimp/custom': '>=0.3.5' + dependencies: + '@babel/runtime': 7.18.9 + '@jimp/custom': 0.14.0 + '@jimp/plugin-blit': 0.14.0_@jimp+custom@0.14.0 + '@jimp/plugin-blur': 0.14.0_@jimp+custom@0.14.0 + '@jimp/plugin-circle': 0.14.0_@jimp+custom@0.14.0 + '@jimp/plugin-color': 0.14.0_@jimp+custom@0.14.0 + '@jimp/plugin-contain': 0.14.0_atzow7c7z3rxphgj3ycbcfc7du + '@jimp/plugin-cover': 0.14.0_cmwkwndotcukelhzzy7qfggfhq + '@jimp/plugin-crop': 0.14.0_@jimp+custom@0.14.0 + '@jimp/plugin-displace': 0.14.0_@jimp+custom@0.14.0 + '@jimp/plugin-dither': 0.14.0_@jimp+custom@0.14.0 + '@jimp/plugin-fisheye': 0.14.0_@jimp+custom@0.14.0 + '@jimp/plugin-flip': 0.14.0_egz5qy63qcuglqunvauxsismu4 + '@jimp/plugin-gaussian': 0.14.0_@jimp+custom@0.14.0 + '@jimp/plugin-invert': 0.14.0_@jimp+custom@0.14.0 + '@jimp/plugin-mask': 0.14.0_@jimp+custom@0.14.0 + '@jimp/plugin-normalize': 0.14.0_@jimp+custom@0.14.0 + '@jimp/plugin-print': 0.14.0_lhhsyseurtfetoblh726nyhfha + '@jimp/plugin-resize': 0.14.0_@jimp+custom@0.14.0 + '@jimp/plugin-rotate': 0.14.0_nitfkm2iiqsjd5dqctkqjdhryu + '@jimp/plugin-scale': 0.14.0_dnjajzlrw7tj7gkph5zzcsobsa + '@jimp/plugin-shadow': 0.14.0_jhz7k2d2s3ip6ssk34veacb4wy + '@jimp/plugin-threshold': 0.14.0_yvpuowyu3hipklrsdaf6scfd4u + timm: 1.7.1 + dev: true + + /@jimp/png/0.14.0_@jimp+custom@0.14.0: + resolution: {integrity: sha512-0RV/mEIDOrPCcNfXSPmPBqqSZYwGADNRVUTyMt47RuZh7sugbYdv/uvKmQSiqRdR0L1sfbCBMWUEa5G/8MSbdA==} + peerDependencies: + '@jimp/custom': '>=0.3.5' dependencies: - ajv: 6.12.6 - debug: 4.3.4 - espree: 9.3.3 - globals: 13.17.0 - ignore: 5.2.0 - import-fresh: 3.3.0 - js-yaml: 4.1.0 - minimatch: 3.1.2 - strip-json-comments: 3.1.1 - transitivePeerDependencies: - - supports-color + '@babel/runtime': 7.18.9 + '@jimp/custom': 0.14.0 + '@jimp/utils': 0.14.0 + pngjs: 3.4.0 dev: true - /@fontsource/fira-mono/4.5.8: - resolution: - { - integrity: sha512-sFuSPB/Km8B1fy3CH0NqO5Nb4GmVMzp3XFaw6MwK293xhm3OnB68QJawwTTjLewcrS78wOTAhTUB058qxurJoQ== - } - dev: false + /@jimp/tiff/0.14.0_@jimp+custom@0.14.0: + resolution: {integrity: sha512-zBYDTlutc7j88G/7FBCn3kmQwWr0rmm1e0FKB4C3uJ5oYfT8645lftUsvosKVUEfkdmOaMAnhrf4ekaHcb5gQw==} + peerDependencies: + '@jimp/custom': '>=0.3.5' + dependencies: + '@babel/runtime': 7.18.9 + '@jimp/custom': 0.14.0 + utif: 2.0.1 + dev: true - /@humanwhocodes/config-array/0.10.4: - resolution: - { - integrity: sha512-mXAIHxZT3Vcpg83opl1wGlVZ9xydbfZO3r5YfRSH6Gpp2J/PfdBP0wbDa2sO6/qRbcalpoevVyW6A/fI6LfeMw== - } - engines: { node: ">=10.10.0" } + /@jimp/types/0.14.0_@jimp+custom@0.14.0: + resolution: {integrity: sha512-hx3cXAW1KZm+b+XCrY3LXtdWy2U+hNtq0rPyJ7NuXCjU7lZR3vIkpz1DLJ3yDdS70hTi5QDXY3Cd9kd6DtloHQ==} + peerDependencies: + '@jimp/custom': '>=0.3.5' dependencies: - "@humanwhocodes/object-schema": 1.2.1 - debug: 4.3.4 - minimatch: 3.1.2 - transitivePeerDependencies: - - supports-color + '@babel/runtime': 7.18.9 + '@jimp/bmp': 0.14.0_@jimp+custom@0.14.0 + '@jimp/custom': 0.14.0 + '@jimp/gif': 0.14.0_@jimp+custom@0.14.0 + '@jimp/jpeg': 0.14.0_@jimp+custom@0.14.0 + '@jimp/png': 0.14.0_@jimp+custom@0.14.0 + '@jimp/tiff': 0.14.0_@jimp+custom@0.14.0 + timm: 1.7.1 dev: true - /@humanwhocodes/gitignore-to-minimatch/1.0.2: - resolution: - { - integrity: sha512-rSqmMJDdLFUsyxR6FMtD00nfQKKLFb1kv+qBbOVKqErvloEIJLo5bDTJTQNTYgeyp78JsA7u/NPi5jT1GR/MuA== - } + /@jimp/utils/0.14.0: + resolution: {integrity: sha512-MY5KFYUru0y74IsgM/9asDwb3ERxWxXEu3CRCZEvE7DtT86y1bR1XgtlSliMrptjz4qbivNGMQSvUBpEFJDp1A==} + dependencies: + '@babel/runtime': 7.18.9 + regenerator-runtime: 0.13.9 dev: true - /@humanwhocodes/object-schema/1.2.1: - resolution: - { - integrity: sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA== - } + /@jridgewell/gen-mapping/0.1.1: + resolution: {integrity: sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==} + engines: {node: '>=6.0.0'} + dependencies: + '@jridgewell/set-array': 1.1.2 + '@jridgewell/sourcemap-codec': 1.4.14 dev: true - /@iarna/toml/2.2.5: - resolution: - { - integrity: sha512-trnsAYxU3xnS1gPHPyU961coFyLkh4gAD/0zQ5mymY4yOZ+CYvsPqUbOFSw0aDM4y0tV7tiFxL/1XfXPNC6IPg== - } + /@jridgewell/gen-mapping/0.3.2: + resolution: {integrity: sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==} + engines: {node: '>=6.0.0'} + dependencies: + '@jridgewell/set-array': 1.1.2 + '@jridgewell/sourcemap-codec': 1.4.14 + '@jridgewell/trace-mapping': 0.3.15 dev: true /@jridgewell/resolve-uri/3.1.0: - resolution: - { - integrity: sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w== - } - engines: { node: ">=6.0.0" } + resolution: {integrity: sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==} + engines: {node: '>=6.0.0'} + dev: true + + /@jridgewell/set-array/1.1.2: + resolution: {integrity: sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==} + engines: {node: '>=6.0.0'} dev: true /@jridgewell/sourcemap-codec/1.4.14: - resolution: - { - integrity: sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw== - } + resolution: {integrity: sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==} dev: true - /@jridgewell/trace-mapping/0.3.14: - resolution: - { - integrity: sha512-bJWEfQ9lPTvm3SneWwRFVLzrh6nhjwqw7TUFFBEMzwvg7t7PCDenf2lDwqo4NQXzdpgBXyFgDWnQA+2vkruksQ== - } + /@jridgewell/trace-mapping/0.3.15: + resolution: {integrity: sha512-oWZNOULl+UbhsgB51uuZzglikfIKSUBO/M9W2OfEjn7cmqoAiCgmv9lyACTUacZwBz0ITnJ2NqjU8Tx0DHL88g==} dependencies: - "@jridgewell/resolve-uri": 3.1.0 - "@jridgewell/sourcemap-codec": 1.4.14 + '@jridgewell/resolve-uri': 3.1.0 + '@jridgewell/sourcemap-codec': 1.4.14 + dev: true + + /@ljharb/has-package-exports-patterns/0.0.2: + resolution: {integrity: sha512-4/RWEeXDO6bocPONheFe6gX/oQdP/bEpv0oL4HqjPP5DCenBSt0mHgahppY49N0CpsaqffdwPq+TlX9CYOq2Dw==} dev: true - /@microsoft/tsdoc-config/0.16.1: - resolution: - { - integrity: sha512-2RqkwiD4uN6MLnHFljqBlZIXlt/SaUT6cuogU1w2ARw4nKuuppSmR0+s+NC+7kXBQykd9zzu0P4HtBpZT5zBpQ== - } + /@mdx-js/mdx/2.1.3: + resolution: {integrity: sha512-ahbb47HJIJ4xnifaL06tDJiSyLEy1EhFAStO7RZIm3GTa7yGW3NGhZaj+GUCveFgl5oI54pY4BgiLmYm97y+zg==} dependencies: - "@microsoft/tsdoc": 0.14.1 - ajv: 6.12.6 - jju: 1.4.0 - resolve: 1.19.0 + '@types/estree-jsx': 1.0.0 + '@types/mdx': 2.0.2 + estree-util-build-jsx: 2.2.0 + estree-util-is-identifier-name: 2.0.1 + estree-util-to-js: 1.1.0 + estree-walker: 3.0.1 + hast-util-to-estree: 2.1.0 + markdown-extensions: 1.1.1 + periscopic: 3.0.4 + remark-mdx: 2.1.3 + remark-parse: 10.0.1 + remark-rehype: 10.1.0 + unified: 10.1.2 + unist-util-position-from-estree: 1.1.1 + unist-util-stringify-position: 3.0.2 + unist-util-visit: 4.1.1 + vfile: 5.3.4 + transitivePeerDependencies: + - supports-color dev: true - /@microsoft/tsdoc/0.14.1: - resolution: - { - integrity: sha512-6Wci+Tp3CgPt/B9B0a3J4s3yMgLNSku6w5TV6mN+61C71UqsRBv2FUibBf3tPGlNxebgPHMEUzKpb1ggE8KCKw== - } + /@mdx-js/rollup/2.1.3_rollup@2.78.1: + resolution: {integrity: sha512-KaX9GcZ63TDaLNH9UYYE94+naZQldV2IUzmMkDVOlPxDtTh8kcEn8l6/4W1P79wxZZbakSOFejTuaYmcstl5sA==} + peerDependencies: + rollup: '>=2' + dependencies: + '@mdx-js/mdx': 2.1.3 + '@rollup/pluginutils': 4.2.1 + rollup: 2.78.1 + source-map: 0.7.4 + vfile: 5.3.4 + transitivePeerDependencies: + - supports-color dev: true /@nodelib/fs.scandir/2.1.5: - resolution: - { - integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g== - } - engines: { node: ">= 8" } + resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} + engines: {node: '>= 8'} dependencies: - "@nodelib/fs.stat": 2.0.5 + '@nodelib/fs.stat': 2.0.5 run-parallel: 1.2.0 - dev: true /@nodelib/fs.stat/2.0.5: - resolution: - { - integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== - } - engines: { node: ">= 8" } - dev: true + resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} + engines: {node: '>= 8'} /@nodelib/fs.walk/1.2.8: - resolution: - { - integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== - } - engines: { node: ">= 8" } + resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} + engines: {node: '>= 8'} dependencies: - "@nodelib/fs.scandir": 2.1.5 + '@nodelib/fs.scandir': 2.1.5 fastq: 1.13.0 - dev: true /@pkgr/utils/2.3.0: - resolution: - { - integrity: sha512-7dIJ9CRVzBnqyEl7diUHPUFJf/oty2SeoVzcMocc5PeOUDK9KGzvgIBjGRRzzlRDaOjh3ADwH0WeibQvi3ls2Q== - } - engines: { node: ^12.20.0 || ^14.18.0 || >=16.0.0 } + resolution: {integrity: sha512-7dIJ9CRVzBnqyEl7diUHPUFJf/oty2SeoVzcMocc5PeOUDK9KGzvgIBjGRRzzlRDaOjh3ADwH0WeibQvi3ls2Q==} + engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} dependencies: cross-spawn: 7.0.3 is-glob: 4.0.3 @@ -284,54 +1032,37 @@ packages: tslib: 2.4.0 dev: true - /@rollup/pluginutils/4.2.1: - resolution: - { - integrity: sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ== - } - engines: { node: ">= 8.0.0" } - dependencies: - estree-walker: 2.0.2 - picomatch: 2.3.1 + /@polka/url/1.0.0-next.21: + resolution: {integrity: sha512-a5Sab1C4/icpTZVzZc5Ghpz88yQtGOyNqYXcZgOssB2uuAr+wF/MvN6bgtW32q7HHrvBki+BsZ0OuNv6EV3K9g==} dev: true - /@sveltejs/adapter-static/1.0.0-next.38: - resolution: - { - integrity: sha512-O1b264K62E3OrUnsFxMjKn3CUJF50fxGcW0rWk8fa5kjzskPsSyTxS3jnWNryFaVJ3oSUtx57m4qFW43S1910Q== - } + /@proload/core/0.3.2: + resolution: {integrity: sha512-4ga4HpS0ieVYWVMS+F62W++6SNACBu0lkw8snw3tEdH6AeqZu8i8262n3I81jWAWXVcg3sMfhb+kBexrfGrTUQ==} dependencies: - tiny-glob: 0.2.9 + deepmerge: 4.2.2 + escalade: 3.1.1 dev: true - /@sveltejs/kit/1.0.0-next.403_svelte@3.49.0+vite@3.0.4: - resolution: - { - integrity: sha512-pKlmthl1SZkbx671Jp+LBoRne0vNzsjSgta9iRhqW/bt/0mx/IjlMd/NOeLuJGo30dAJdefrySoSamiaq47M/g== - } - engines: { node: ">=16.9" } - hasBin: true - requiresBuild: true + /@proload/plugin-tsm/0.2.1_@proload+core@0.3.2: + resolution: {integrity: sha512-Ex1sL2BxU+g8MHdAdq9SZKz+pU34o8Zcl9PHWo2WaG9hrnlZme607PU6gnpoAYsDBpHX327+eu60wWUk+d/b+A==} peerDependencies: - svelte: ^3.44.0 - vite: ^3.0.0 + '@proload/core': ^0.3.2 dependencies: - "@sveltejs/vite-plugin-svelte": 1.0.1_svelte@3.49.0+vite@3.0.4 - chokidar: 3.5.3 - sade: 1.8.1 - svelte: 3.49.0 - vite: 3.0.4 - transitivePeerDependencies: - - diff-match-patch - - supports-color + '@proload/core': 0.3.2 + tsm: 2.2.2 + dev: true + + /@rollup/pluginutils/4.2.1: + resolution: {integrity: sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ==} + engines: {node: '>= 8.0.0'} + dependencies: + estree-walker: 2.0.2 + picomatch: 2.3.1 dev: true - /@sveltejs/vite-plugin-svelte/1.0.1_svelte@3.49.0+vite@3.0.4: - resolution: - { - integrity: sha512-PorCgUounn0VXcpeJu+hOweZODKmGuLHsLomwqSj+p26IwjjGffmYQfVHtiTWq+NqaUuuHWWG7vPge6UFw4Aeg== - } - engines: { node: ^14.18.0 || >= 16 } + /@sveltejs/vite-plugin-svelte/1.0.1_svelte@3.49.0+vite@3.0.9: + resolution: {integrity: sha512-PorCgUounn0VXcpeJu+hOweZODKmGuLHsLomwqSj+p26IwjjGffmYQfVHtiTWq+NqaUuuHWWG7vPge6UFw4Aeg==} + engines: {node: ^14.18.0 || >= 16} peerDependencies: diff-match-patch: ^1.0.5 svelte: ^3.44.0 @@ -340,275 +1071,163 @@ packages: diff-match-patch: optional: true dependencies: - "@rollup/pluginutils": 4.2.1 + '@rollup/pluginutils': 4.2.1 debug: 4.3.4 deepmerge: 4.2.2 kleur: 4.1.5 magic-string: 0.26.2 svelte: 3.49.0 svelte-hmr: 0.14.12_svelte@3.49.0 - vite: 3.0.4 + vite: 3.0.9 transitivePeerDependencies: - supports-color dev: true /@tailwindcss/typography/0.5.4_tailwindcss@3.1.8: - resolution: - { - integrity: sha512-QEdg40EmGvE7kKoDei8zr5sf4D1pIayHj4R31bH3lX8x2BtTiR+jNejYPOkhbmy3DXgkMF9jC8xqNiGFAuL9Sg== - } + resolution: {integrity: sha512-QEdg40EmGvE7kKoDei8zr5sf4D1pIayHj4R31bH3lX8x2BtTiR+jNejYPOkhbmy3DXgkMF9jC8xqNiGFAuL9Sg==} peerDependencies: - tailwindcss: ">=3.0.0 || insiders" + tailwindcss: '>=3.0.0 || insiders' dependencies: lodash.castarray: 4.4.0 lodash.isplainobject: 4.0.6 lodash.merge: 4.6.2 - tailwindcss: 3.1.8 + tailwindcss: 3.1.8_postcss@8.4.16 + dev: false + + /@tokenizer/token/0.3.0: + resolution: {integrity: sha512-OvjF+z51L3ov0OyAU0duzsYuvO01PH7x4t6DJx+guahgTnBHkhJdG7soQeTSFLWN3efnHyibZ4Z8l2EuWwJN3A==} + dev: true + + /@types/acorn/4.0.6: + resolution: {integrity: sha512-veQTnWP+1D/xbxVrPC3zHnCZRjSrKfhbMUlEA43iMZLu7EsnTtkJklIuwrCPbOi8YkvDQAiW05VQQFvvz9oieQ==} + dependencies: + '@types/estree': 1.0.0 dev: true /@types/debug/4.1.7: - resolution: - { - integrity: sha512-9AonUzyTjXXhEOa0DnqpzZi6VHlqKMswga9EXjpXnnqxwLtdvPPtlO8evrI5D9S6asFRCQ6v+wpiUKbw+vKqyg== - } + resolution: {integrity: sha512-9AonUzyTjXXhEOa0DnqpzZi6VHlqKMswga9EXjpXnnqxwLtdvPPtlO8evrI5D9S6asFRCQ6v+wpiUKbw+vKqyg==} + dependencies: + '@types/ms': 0.7.31 + dev: true + + /@types/estree-jsx/0.0.1: + resolution: {integrity: sha512-gcLAYiMfQklDCPjQegGn0TBAn9it05ISEsEhlKQUddIk7o2XDokOcTN7HBO8tznM0D9dGezvHEfRZBfZf6me0A==} + dependencies: + '@types/estree': 1.0.0 + dev: true + + /@types/estree-jsx/1.0.0: + resolution: {integrity: sha512-3qvGd0z8F2ENTGr/GG1yViqfiKmRfrXVx5sJyHGFu3z7m5g5utCQtGp/g29JnjflhtQJBv1WDQukHiT58xPcYQ==} dependencies: - "@types/ms": 0.7.31 + '@types/estree': 1.0.0 + dev: true + + /@types/estree/1.0.0: + resolution: {integrity: sha512-WulqXMDUTYAXCjZnk6JtIHPigp55cVtDgDrO2gHRwhyJto21+1zbVCtOYB2L1F9w4qCQ0rOGWBnBe0FNTiEJIQ==} + dev: true + + /@types/glob/7.2.0: + resolution: {integrity: sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==} + dependencies: + '@types/minimatch': 3.0.5 + '@types/node': 18.7.13 + dev: true /@types/hast/2.3.4: - resolution: - { - integrity: sha512-wLEm0QvaoawEDoTRwzTXp4b4jpwiJDvR5KMnFnVodm3scufTlBOWRD6N1OBf9TZMhjlNsSfcO5V+7AF4+Vy+9g== - } + resolution: {integrity: sha512-wLEm0QvaoawEDoTRwzTXp4b4jpwiJDvR5KMnFnVodm3scufTlBOWRD6N1OBf9TZMhjlNsSfcO5V+7AF4+Vy+9g==} dependencies: - "@types/unist": 2.0.6 + '@types/unist': 2.0.6 dev: true - /@types/json-schema/7.0.11: - resolution: - { - integrity: sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ== - } + /@types/json5/0.0.30: + resolution: {integrity: sha512-sqm9g7mHlPY/43fcSNrCYfOeX9zkTTK+euO5E6+CVijSMm5tTjkVdwdqRkY3ljjIAf8679vps5jKUoJBCLsMDA==} dev: true - /@types/json5/0.0.29: - resolution: - { - integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ== - } + /@types/katex/0.11.1: + resolution: {integrity: sha512-DUlIj2nk0YnJdlWgsFuVKcX27MLW0KbKmGVoUHmFr+74FYYNUDAaj9ZqTADvsbE8rfxuVmSFc7KczYn5Y09ozg==} dev: true /@types/mdast/3.0.10: - resolution: - { - integrity: sha512-W864tg/Osz1+9f4lrGTZpCSO5/z4608eUp19tbozkq2HJK6i3z1kT0H9tlADXuYIb1YYOBByU4Jsqkk75q48qA== - } + resolution: {integrity: sha512-W864tg/Osz1+9f4lrGTZpCSO5/z4608eUp19tbozkq2HJK6i3z1kT0H9tlADXuYIb1YYOBByU4Jsqkk75q48qA==} dependencies: - "@types/unist": 2.0.6 + '@types/unist': 2.0.6 + dev: true - /@types/ms/0.7.31: - resolution: - { - integrity: sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA== - } + /@types/mdurl/1.0.2: + resolution: {integrity: sha512-eC4U9MlIcu2q0KQmXszyn5Akca/0jrQmwDRgpAMJai7qBWq4amIQhZyNau4VYGtCeALvW1/NtjzJJ567aZxfKA==} + dev: true - /@types/node/18.6.4: - resolution: - { - integrity: sha512-I4BD3L+6AWiUobfxZ49DlU43gtI+FTHSv9pE2Zekg6KjMpre4ByusaljW3vYSLJrvQ1ck1hUaeVu8HVlY3vzHg== - } + /@types/mdx/2.0.2: + resolution: {integrity: sha512-mJGfgj4aWpiKb8C0nnJJchs1sHBHn0HugkVfqqyQi7Wn6mBRksLeQsPOFvih/Pu8L1vlDzfe/LidhVHBeUk3aQ==} dev: true - /@types/prismjs/1.26.0: - resolution: - { - integrity: sha512-ZTaqn/qSqUuAq1YwvOFQfVW1AR/oQJlLSZVustdjwI+GZ8kr0MSHBj0tsXPW1EqHubx50gtBEjbPGsdZwQwCjQ== - } + /@types/minimatch/3.0.5: + resolution: {integrity: sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==} dev: true - /@types/pug/2.0.6: - resolution: - { - integrity: sha512-SnHmG9wN1UVmagJOnyo/qkk0Z7gejYxOYYmaAwr5u2yFYfsupN3sg10kyzN8Hep/2zbHxCnsumxOoRIRMBwKCg== - } + /@types/ms/0.7.31: + resolution: {integrity: sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA==} dev: true - /@types/sass/1.43.1: - resolution: - { - integrity: sha512-BPdoIt1lfJ6B7rw35ncdwBZrAssjcwzI5LByIrYs+tpXlj/CAkuVdRsgZDdP4lq5EjyWzwxZCqAoFyHKFwp32g== - } + /@types/nlcst/1.0.0: + resolution: {integrity: sha512-3TGCfOcy8R8mMQ4CNSNOe3PG66HttvjcLzCoOpvXvDtfWOTi+uT/rxeOKm/qEwbM4SNe1O/PjdiBK2YcTjU4OQ==} dependencies: - "@types/node": 18.6.4 + '@types/unist': 2.0.6 dev: true - /@types/unist/2.0.6: - resolution: - { - integrity: sha512-PBjIUxZHOuj0R15/xuwJYjFi+KZdNFrehocChv4g5hu6aFroHue8m0lBP0POdK2nKzbw0cgV1mws8+V/JAcEkQ== - } - - /@typescript-eslint/eslint-plugin/5.32.0_iosr3hrei2tubxveewluhu5lhy: - resolution: - { - integrity: sha512-CHLuz5Uz7bHP2WgVlvoZGhf0BvFakBJKAD/43Ty0emn4wXWv5k01ND0C0fHcl/Im8Td2y/7h44E9pca9qAu2ew== - } - engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } - peerDependencies: - "@typescript-eslint/parser": ^5.0.0 - eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 - typescript: "*" - peerDependenciesMeta: - typescript: - optional: true - dependencies: - "@typescript-eslint/parser": 5.32.0_qugx7qdu5zevzvxaiqyxfiwquq - "@typescript-eslint/scope-manager": 5.32.0 - "@typescript-eslint/type-utils": 5.32.0_qugx7qdu5zevzvxaiqyxfiwquq - "@typescript-eslint/utils": 5.32.0_qugx7qdu5zevzvxaiqyxfiwquq - debug: 4.3.4 - eslint: 8.21.0 - functional-red-black-tree: 1.0.1 - ignore: 5.2.0 - regexpp: 3.2.0 - semver: 7.3.7 - tsutils: 3.21.0_typescript@4.7.4 - typescript: 4.7.4 - transitivePeerDependencies: - - supports-color + /@types/node/16.9.1: + resolution: {integrity: sha512-QpLcX9ZSsq3YYUUnD3nFDY8H7wctAhQj/TFKL8Ya8v5fMm3CFXxo8zStsLAl780ltoYoo1WvKUVGBQK+1ifr7g==} dev: true - /@typescript-eslint/parser/5.32.0_qugx7qdu5zevzvxaiqyxfiwquq: - resolution: - { - integrity: sha512-IxRtsehdGV9GFQ35IGm5oKKR2OGcazUoiNBxhRV160iF9FoyuXxjY+rIqs1gfnd+4eL98OjeGnMpE7RF/NBb3A== - } - engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } - peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 - typescript: "*" - peerDependenciesMeta: - typescript: - optional: true - dependencies: - "@typescript-eslint/scope-manager": 5.32.0 - "@typescript-eslint/types": 5.32.0 - "@typescript-eslint/typescript-estree": 5.32.0_typescript@4.7.4 - debug: 4.3.4 - eslint: 8.21.0 - typescript: 4.7.4 - transitivePeerDependencies: - - supports-color + /@types/node/17.0.45: + resolution: {integrity: sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw==} dev: true - /@typescript-eslint/scope-manager/5.32.0: - resolution: - { - integrity: sha512-KyAE+tUON0D7tNz92p1uetRqVJiiAkeluvwvZOqBmW9z2XApmk5WSMV9FrzOroAcVxJZB3GfUwVKr98Dr/OjOg== - } - engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } - dependencies: - "@typescript-eslint/types": 5.32.0 - "@typescript-eslint/visitor-keys": 5.32.0 + /@types/node/18.7.13: + resolution: {integrity: sha512-46yIhxSe5xEaJZXWdIBP7GU4HDTG8/eo0qd9atdiL+lFpA03y8KS+lkTN834TWJj5767GbWv4n/P6efyTFt1Dw==} dev: true - /@typescript-eslint/type-utils/5.32.0_qugx7qdu5zevzvxaiqyxfiwquq: - resolution: - { - integrity: sha512-0gSsIhFDduBz3QcHJIp3qRCvVYbqzHg8D6bHFsDMrm0rURYDj+skBK2zmYebdCp+4nrd9VWd13egvhYFJj/wZg== - } - engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } - peerDependencies: - eslint: "*" - typescript: "*" - peerDependenciesMeta: - typescript: - optional: true - dependencies: - "@typescript-eslint/utils": 5.32.0_qugx7qdu5zevzvxaiqyxfiwquq - debug: 4.3.4 - eslint: 8.21.0 - tsutils: 3.21.0_typescript@4.7.4 - typescript: 4.7.4 - transitivePeerDependencies: - - supports-color + /@types/parse5/6.0.3: + resolution: {integrity: sha512-SuT16Q1K51EAVPz1K29DJ/sXjhSQ0zjvsypYJ6tlwVsRV9jwW5Adq2ch8Dq8kDBCkYnELS7N7VNCSB5nC56t/g==} dev: true - /@typescript-eslint/types/5.32.0: - resolution: - { - integrity: sha512-EBUKs68DOcT/EjGfzywp+f8wG9Zw6gj6BjWu7KV/IYllqKJFPlZlLSYw/PTvVyiRw50t6wVbgv4p9uE2h6sZrQ== - } - engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } + /@types/pug/2.0.6: + resolution: {integrity: sha512-SnHmG9wN1UVmagJOnyo/qkk0Z7gejYxOYYmaAwr5u2yFYfsupN3sg10kyzN8Hep/2zbHxCnsumxOoRIRMBwKCg==} dev: true - /@typescript-eslint/typescript-estree/5.32.0_typescript@4.7.4: - resolution: - { - integrity: sha512-ZVAUkvPk3ITGtCLU5J4atCw9RTxK+SRc6hXqLtllC2sGSeMFWN+YwbiJR9CFrSFJ3w4SJfcWtDwNb/DmUIHdhg== - } - engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } - peerDependencies: - typescript: "*" - peerDependenciesMeta: - typescript: - optional: true - dependencies: - "@typescript-eslint/types": 5.32.0 - "@typescript-eslint/visitor-keys": 5.32.0 - debug: 4.3.4 - globby: 11.1.0 - is-glob: 4.0.3 - semver: 7.3.7 - tsutils: 3.21.0_typescript@4.7.4 - typescript: 4.7.4 - transitivePeerDependencies: - - supports-color + /@types/resolve/1.20.2: + resolution: {integrity: sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==} dev: true - /@typescript-eslint/utils/5.32.0_qugx7qdu5zevzvxaiqyxfiwquq: - resolution: - { - integrity: sha512-W7lYIAI5Zlc5K082dGR27Fczjb3Q57ECcXefKU/f0ajM5ToM0P+N9NmJWip8GmGu/g6QISNT+K6KYB+iSHjXCQ== - } - engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } - peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 - dependencies: - "@types/json-schema": 7.0.11 - "@typescript-eslint/scope-manager": 5.32.0 - "@typescript-eslint/types": 5.32.0 - "@typescript-eslint/typescript-estree": 5.32.0_typescript@4.7.4 - eslint: 8.21.0 - eslint-scope: 5.1.1 - eslint-utils: 3.0.0_eslint@8.21.0 - transitivePeerDependencies: - - supports-color - - typescript + /@types/sass/1.43.1: + resolution: {integrity: sha512-BPdoIt1lfJ6B7rw35ncdwBZrAssjcwzI5LByIrYs+tpXlj/CAkuVdRsgZDdP4lq5EjyWzwxZCqAoFyHKFwp32g==} + dependencies: + '@types/node': 18.7.13 dev: true - /@typescript-eslint/visitor-keys/5.32.0: - resolution: - { - integrity: sha512-S54xOHZgfThiZ38/ZGTgB2rqx51CMJ5MCfVT2IplK4Q7hgzGfe0nLzLCcenDnc/cSjP568hdeKfeDcBgqNHD/g== - } - engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } + /@types/sax/1.2.4: + resolution: {integrity: sha512-pSAff4IAxJjfAXUG6tFkO7dsSbTmf8CtUpfhhZ5VhkRpC4628tJhh3+V6H1E+/Gs9piSzYKT5yzHO5M4GG9jkw==} dependencies: - "@typescript-eslint/types": 5.32.0 - eslint-visitor-keys: 3.3.0 + '@types/node': 18.7.13 dev: true - /abbrev/1.1.1: - resolution: - { - integrity: sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q== - } + /@types/unist/2.0.6: + resolution: {integrity: sha512-PBjIUxZHOuj0R15/xuwJYjFi+KZdNFrehocChv4g5hu6aFroHue8m0lBP0POdK2nKzbw0cgV1mws8+V/JAcEkQ==} + dev: true + + /@vscode/emmet-helper/2.8.4: + resolution: {integrity: sha512-lUki5QLS47bz/U8IlG9VQ+1lfxMtxMZENmU5nu4Z71eOD5j9FK0SmYGL5NiVJg9WBWeAU0VxRADMY2Qpq7BfVg==} + dependencies: + emmet: 2.3.6 + jsonc-parser: 2.3.1 + vscode-languageserver-textdocument: 1.0.5 + vscode-languageserver-types: 3.17.2 + vscode-nls: 5.1.0 + vscode-uri: 2.1.2 dev: true /acorn-jsx/5.3.2_acorn@8.8.0: - resolution: - { - integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== - } + resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} peerDependencies: acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: @@ -616,331 +1235,325 @@ packages: dev: true /acorn-node/1.8.2: - resolution: - { - integrity: sha512-8mt+fslDufLYntIoPAaIMUe/lrbrehIiwmR3t2k9LljIzoigEPF27eLk2hy8zSGzmR/ogr7zbRKINMo1u0yh5A== - } + resolution: {integrity: sha512-8mt+fslDufLYntIoPAaIMUe/lrbrehIiwmR3t2k9LljIzoigEPF27eLk2hy8zSGzmR/ogr7zbRKINMo1u0yh5A==} dependencies: acorn: 7.4.1 acorn-walk: 7.2.0 xtend: 4.0.2 - dev: true /acorn-walk/7.2.0: - resolution: - { - integrity: sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA== - } - engines: { node: ">=0.4.0" } - dev: true + resolution: {integrity: sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==} + engines: {node: '>=0.4.0'} /acorn/7.4.1: - resolution: - { - integrity: sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== - } - engines: { node: ">=0.4.0" } + resolution: {integrity: sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==} + engines: {node: '>=0.4.0'} hasBin: true - dev: true /acorn/8.8.0: - resolution: - { - integrity: sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w== - } - engines: { node: ">=0.4.0" } + resolution: {integrity: sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w==} + engines: {node: '>=0.4.0'} hasBin: true dev: true - /ajv/6.12.6: - resolution: - { - integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== - } + /ansi-align/3.0.1: + resolution: {integrity: sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==} dependencies: - fast-deep-equal: 3.1.3 - fast-json-stable-stringify: 2.1.0 - json-schema-traverse: 0.4.1 - uri-js: 4.4.1 + string-width: 4.2.3 dev: true /ansi-regex/5.0.1: - resolution: - { - integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== - } - engines: { node: ">=8" } + resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} + engines: {node: '>=8'} + dev: true + + /ansi-regex/6.0.1: + resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==} + engines: {node: '>=12'} dev: true /ansi-styles/3.2.1: - resolution: - { - integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== - } - engines: { node: ">=4" } + resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} + engines: {node: '>=4'} dependencies: color-convert: 1.9.3 dev: true /ansi-styles/4.3.0: - resolution: - { - integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== - } - engines: { node: ">=8" } + resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} + engines: {node: '>=8'} dependencies: color-convert: 2.0.1 dev: true + /ansi-styles/6.1.0: + resolution: {integrity: sha512-VbqNsoz55SYGczauuup0MFUyXNQviSpFTj1RQtFzmQLk18qbVSpTFFGMT293rmDaQuKCT6InmbuEyUne4mTuxQ==} + engines: {node: '>=12'} + dev: true + + /any-base/1.1.0: + resolution: {integrity: sha512-uMgjozySS8adZZYePpaWs8cxB9/kdzmpX6SgJZ+wbz1K5eYk5QMYDVJaZKhxyIHUdnnJkfR7SVgStgH7LkGUyg==} + dev: true + /anymatch/3.1.2: - resolution: - { - integrity: sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg== - } - engines: { node: ">= 8" } + resolution: {integrity: sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==} + engines: {node: '>= 8'} dependencies: normalize-path: 3.0.0 picomatch: 2.3.1 - dev: true /arg/5.0.2: - resolution: - { - integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg== - } - dev: true - - /argparse/2.0.1: - resolution: - { - integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== - } - dev: true - - /array-find-index/1.0.2: - resolution: - { - integrity: sha512-M1HQyIXcBGtVywBt8WVdim+lrNaK7VHp99Qt5pSNziXznKHViIBbXWtfRTpEFpF/c4FdfxNAsCCwPp5phBYJtw== - } - engines: { node: ">=0.10.0" } - dev: true - - /array-includes/3.1.5: - resolution: - { - integrity: sha512-iSDYZMMyTPkiFasVqfuAQnWAYcvO/SeBSCGKePoEthjp4LEMTe4uLc7b025o4jAZpHhihh8xPo99TNWUWWkGDQ== - } - engines: { node: ">= 0.4" } - dependencies: - call-bind: 1.0.2 - define-properties: 1.1.4 - es-abstract: 1.20.1 - get-intrinsic: 1.1.2 - is-string: 1.0.7 - dev: true - - /array-union/2.1.0: - resolution: - { - integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== - } - engines: { node: ">=8" } - dev: true - - /array.prototype.flat/1.3.0: - resolution: - { - integrity: sha512-12IUEkHsAhA4DY5s0FPgNXIdc8VRSqD9Zp78a5au9abH/SOBrsp082JOWFNTjkMozh8mqcdiKuaLGhPeYztxSw== - } - engines: { node: ">= 0.4" } - dependencies: - call-bind: 1.0.2 - define-properties: 1.1.4 - es-abstract: 1.20.1 - es-shim-unscopables: 1.0.0 - dev: true - - /asap/2.0.6: - resolution: - { - integrity: sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA== - } - dev: true - - /autoprefixer/10.4.8_postcss@8.4.14: - resolution: - { - integrity: sha512-75Jr6Q/XpTqEf6D2ltS5uMewJIx5irCU1oBYJrWjFenq/m12WRRrz6g15L1EIoYvPLXTbEry7rDOwrcYNj77xw== - } - engines: { node: ^10 || ^12 || >=14 } + resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==} + + /argparse/1.0.10: + resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} + dependencies: + sprintf-js: 1.0.3 + dev: true + + /array-iterate/1.1.4: + resolution: {integrity: sha512-sNRaPGh9nnmdC8Zf+pT3UqP8rnWj5Hf9wiFGsX3wUQ2yVSIhO2ShFwCoceIPpB41QF6i2OEmrHmCo36xronCVA==} + dev: true + + /ast-types/0.14.2: + resolution: {integrity: sha512-O0yuUDnZeQDL+ncNGlJ78BiO4jnYI3bvMsD5prT0/nsgijG/LpNBIr63gTjVTNsiGkgQhiyCShTgxt8oXOrklA==} + engines: {node: '>=4'} + dependencies: + tslib: 2.4.0 + dev: true + + /astring/1.8.3: + resolution: {integrity: sha512-sRpyiNrx2dEYIMmUXprS8nlpRg2Drs8m9ElX9vVEXaCB4XEAJhKfs7IcX0IwShjuOAjLR6wzIrgoptz1n19i1A==} + hasBin: true + dev: true + + /astro-imagetools/0.6.10_astro@1.0.6: + resolution: {integrity: sha512-b3+vCkud6HeWe3brUI7Rq/RXUPOtuv3GV/ENhd1+4mflISWgCWAEIFSTr+56R6/LUpMdh+ZlLjOQaCG5Ig1v7g==} + engines: {node: ^14.15.0 || >=16.0.0} + peerDependencies: + astro: '>=0.26 || >=1.0.0-beta' + dependencies: + '@astropub/codecs': 0.4.4 + astro: 1.0.6 + file-type: 17.1.1 + find-cache-dir: 3.3.2 + find-up: 6.3.0 + object-hash: 3.0.0 + potrace: 2.1.8 + optionalDependencies: + imagetools-core: 3.0.2 + dev: true + + /astro/1.0.6: + resolution: {integrity: sha512-QAkdkzP3PbauiO4YnOgVTWY6z26heKruoXW9TnN8Bbmwtf7DUFIchi6CFSAVYSONX8XtRnj+p6fCkk06OWfJ4w==} + engines: {node: ^14.18.0 || >=16.12.0, npm: '>=6.14.0'} + hasBin: true + dependencies: + '@astrojs/compiler': 0.23.3 + '@astrojs/language-server': 0.20.3 + '@astrojs/markdown-remark': 1.0.0 + '@astrojs/telemetry': 1.0.0 + '@astrojs/webapi': 1.0.0 + '@babel/core': 7.18.10 + '@babel/generator': 7.18.12 + '@babel/parser': 7.18.11 + '@babel/plugin-transform-react-jsx': 7.18.10_@babel+core@7.18.10 + '@babel/traverse': 7.18.11 + '@babel/types': 7.18.10 + '@proload/core': 0.3.2 + '@proload/plugin-tsm': 0.2.1_@proload+core@0.3.2 + ast-types: 0.14.2 + boxen: 6.2.1 + ci-info: 3.3.2 + common-ancestor-path: 1.0.1 + debug: 4.3.4 + diff: 5.1.0 + eol: 0.9.1 + es-module-lexer: 0.10.5 + esbuild: 0.14.54 + execa: 6.1.0 + fast-glob: 3.2.11 + github-slugger: 1.4.0 + gray-matter: 4.0.3 + html-entities: 2.3.3 + html-escaper: 3.0.3 + kleur: 4.1.5 + magic-string: 0.25.9 + mime: 3.0.0 + ora: 6.1.2 + path-browserify: 1.0.1 + path-to-regexp: 6.2.1 + postcss: 8.4.16 + postcss-load-config: 3.1.4_postcss@8.4.16 + preferred-pm: 3.0.3 + prompts: 2.4.2 + recast: 0.20.5 + rehype: 12.0.1 + resolve: 1.22.1 + rollup: 2.78.1 + semver: 7.3.7 + shiki: 0.10.1 + sirv: 2.0.2 + slash: 4.0.0 + string-width: 5.1.2 + strip-ansi: 7.0.1 + supports-esm: 1.0.0 + tsconfig-resolver: 3.0.1 + unist-util-visit: 4.1.1 + vfile: 5.3.4 + vite: 3.0.5 + yargs-parser: 21.1.1 + zod: 3.18.0 + transitivePeerDependencies: + - less + - sass + - stylus + - supports-color + - terser + - ts-node + dev: true + + /autoprefixer/10.4.8_postcss@8.4.16: + resolution: {integrity: sha512-75Jr6Q/XpTqEf6D2ltS5uMewJIx5irCU1oBYJrWjFenq/m12WRRrz6g15L1EIoYvPLXTbEry7rDOwrcYNj77xw==} + engines: {node: ^10 || ^12 || >=14} hasBin: true peerDependencies: postcss: ^8.1.0 dependencies: browserslist: 4.21.3 - caniuse-lite: 1.0.30001374 + caniuse-lite: 1.0.30001380 fraction.js: 4.2.0 normalize-range: 0.1.2 picocolors: 1.0.0 - postcss: 8.4.14 + postcss: 8.4.16 postcss-value-parser: 4.2.0 dev: true /bail/1.0.5: - resolution: - { - integrity: sha512-xFbRxM1tahm08yHBP16MMjVUAvDaBMD38zsM9EMAUN61omwLmKlOpB/Zku5QkjZ8TZ4vn53pj+t518cH0S03RQ== - } - dev: false + resolution: {integrity: sha512-xFbRxM1tahm08yHBP16MMjVUAvDaBMD38zsM9EMAUN61omwLmKlOpB/Zku5QkjZ8TZ4vn53pj+t518cH0S03RQ==} + dev: true /bail/2.0.2: - resolution: - { - integrity: sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw== - } + resolution: {integrity: sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==} + dev: true /balanced-match/1.0.2: - resolution: - { - integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== - } + resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} dev: true - /bcp-47-match/2.0.2: - resolution: - { - integrity: sha512-zy5swVXwQ25ttElhoN9Dgnqm6VFlMkeDNljvHSGqGNr4zClUosdFzxD+fQHJVmx3g3KY+r//wV/fmBHsa1ErnA== - } + /base64-js/1.5.1: + resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} dev: true /binary-extensions/2.2.0: - resolution: - { - integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== - } - engines: { node: ">=8" } + resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==} + engines: {node: '>=8'} + + /bl/4.1.0: + resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==} + dependencies: + buffer: 5.7.1 + inherits: 2.0.4 + readable-stream: 3.6.0 + dev: true + + /bl/5.0.0: + resolution: {integrity: sha512-8vxFNZ0pflFfi0WXA3WQXlj6CaMEwsmh63I1CNp0q+wWv8sD0ARx1KovSQd0l2GkwrMIOyedq0EF1FxI+RCZLQ==} + dependencies: + buffer: 6.0.3 + inherits: 2.0.4 + readable-stream: 3.6.0 dev: true - /boolbase/1.0.0: - resolution: - { - integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww== - } + /bmp-js/0.1.0: + resolution: {integrity: sha512-vHdS19CnY3hwiNdkaqk93DvjVLfbEcI8mys4UjuWrlX1haDmroo8o4xCzh4wD6DGV6HxRCyauwhHRqMTfERtjw==} dev: true - /brace-expansion/1.1.11: - resolution: - { - integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== - } + /boxen/6.2.1: + resolution: {integrity: sha512-H4PEsJXfFI/Pt8sjDWbHlQPx4zL/bvSQjcilJmaulGt5mLDorHOHpmdXAJcBcmru7PhYSp/cDMWRko4ZUMFkSw==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dependencies: - balanced-match: 1.0.2 - concat-map: 0.0.1 + ansi-align: 3.0.1 + camelcase: 6.3.0 + chalk: 4.1.2 + cli-boxes: 3.0.0 + string-width: 5.1.2 + type-fest: 2.18.1 + widest-line: 4.0.1 + wrap-ansi: 8.0.1 dev: true - /brace-expansion/2.0.1: - resolution: - { - integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA== - } + /brace-expansion/1.1.11: + resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} dependencies: balanced-match: 1.0.2 + concat-map: 0.0.1 dev: true /braces/3.0.2: - resolution: - { - integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== - } - engines: { node: ">=8" } + resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} + engines: {node: '>=8'} dependencies: fill-range: 7.0.1 - dev: true /browserslist/4.21.3: - resolution: - { - integrity: sha512-898rgRXLAyRkM1GryrrBHGkqA5hlpkV5MhtZwg9QXeiyLUYs2k00Un05aX5l2/yJIOObYKOpS2JNo8nJDE7fWQ== - } - engines: { node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7 } + resolution: {integrity: sha512-898rgRXLAyRkM1GryrrBHGkqA5hlpkV5MhtZwg9QXeiyLUYs2k00Un05aX5l2/yJIOObYKOpS2JNo8nJDE7fWQ==} + engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true dependencies: - caniuse-lite: 1.0.30001374 - electron-to-chromium: 1.4.211 + caniuse-lite: 1.0.30001380 + electron-to-chromium: 1.4.225 node-releases: 2.0.6 update-browserslist-db: 1.0.5_browserslist@4.21.3 dev: true /buffer-crc32/0.2.13: - resolution: - { - integrity: sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ== - } + resolution: {integrity: sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==} dev: true - /call-bind/1.0.2: - resolution: - { - integrity: sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA== - } - dependencies: - function-bind: 1.1.1 - get-intrinsic: 1.1.2 + /buffer-equal/0.0.1: + resolution: {integrity: sha512-RgSV6InVQ9ODPdLWJ5UAqBqJBOg370Nz6ZQtRzpt6nUjc8v0St97uJ4PYC6NztqIScrAXafKM3mZPMygSe1ggA==} + engines: {node: '>=0.4.0'} dev: true - /callsites/3.1.0: - resolution: - { - integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== - } - engines: { node: ">=6" } + /buffer/5.7.1: + resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==} + dependencies: + base64-js: 1.5.1 + ieee754: 1.2.1 dev: true - /camel-case/3.0.0: - resolution: - { - integrity: sha512-+MbKztAYHXPr1jNTSKQF52VpcFjwY5RkR7fxksV8Doo4KAYc5Fl4UJRgthBbTmEx8C54DqahhbLJkDwjI3PI/w== - } + /buffer/6.0.3: + resolution: {integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==} dependencies: - no-case: 2.3.2 - upper-case: 1.1.3 + base64-js: 1.5.1 + ieee754: 1.2.1 dev: true /camelcase-css/2.0.1: - resolution: - { - integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA== - } - engines: { node: ">= 6" } + resolution: {integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==} + engines: {node: '>= 6'} + + /camelcase/6.3.0: + resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} + engines: {node: '>=10'} dev: true - /caniuse-lite/1.0.30001374: - resolution: - { - integrity: sha512-mWvzatRx3w+j5wx/mpFN5v5twlPrabG8NqX2c6e45LCpymdoGqNvRkRutFUqpRTXKFQFNQJasvK0YT7suW6/Hw== - } + /caniuse-lite/1.0.30001380: + resolution: {integrity: sha512-OO+pPubxx16lkI7TVrbFpde8XHz66SMwstl1YWpg6uMGw56XnhYVwtPIjvX4kYpzwMwQKr4DDce394E03dQPGg==} dev: true /ccount/1.1.0: - resolution: - { - integrity: sha512-vlNK021QdI7PNeiUh/lKkC/mNHHfV0m/Ad5JoI0TYtlBnJAslM/JIkm/tGC88bkLIwO6OQ5uV6ztS6kVAtCDlg== - } - dev: false + resolution: {integrity: sha512-vlNK021QdI7PNeiUh/lKkC/mNHHfV0m/Ad5JoI0TYtlBnJAslM/JIkm/tGC88bkLIwO6OQ5uV6ztS6kVAtCDlg==} + dev: true /ccount/2.0.1: - resolution: - { - integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg== - } + resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==} dev: true /chalk/2.4.2: - resolution: - { - integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== - } - engines: { node: ">=4" } + resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} + engines: {node: '>=4'} dependencies: ansi-styles: 3.2.1 escape-string-regexp: 1.0.5 @@ -948,28 +1561,37 @@ packages: dev: true /chalk/4.1.2: - resolution: - { - integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== - } - engines: { node: ">=10" } + resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} + engines: {node: '>=10'} dependencies: ansi-styles: 4.3.0 supports-color: 7.2.0 dev: true + /chalk/5.0.1: + resolution: {integrity: sha512-Fo07WOYGqMfCWHOzSXOt2CxDbC6skS/jO9ynEcmpANMoPrD+W1r1K6Vx7iNm+AQmETU1Xr2t+n8nzkV9t6xh3w==} + engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} + dev: true + + /character-entities-html4/2.1.0: + resolution: {integrity: sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==} + dev: true + + /character-entities-legacy/3.0.0: + resolution: {integrity: sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==} + dev: true + /character-entities/2.0.2: - resolution: - { - integrity: sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ== - } + resolution: {integrity: sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==} + dev: true + + /character-reference-invalid/2.0.1: + resolution: {integrity: sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw==} + dev: true /chokidar/3.5.3: - resolution: - { - integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw== - } - engines: { node: ">= 8.10.0" } + resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==} + engines: {node: '>= 8.10.0'} dependencies: anymatch: 3.1.2 braces: 3.0.2 @@ -980,1303 +1602,755 @@ packages: readdirp: 3.6.0 optionalDependencies: fsevents: 2.3.2 + + /chownr/1.1.4: + resolution: {integrity: sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==} + dev: true + + /ci-info/3.3.2: + resolution: {integrity: sha512-xmDt/QIAdeZ9+nfdPsaBCpMvHNLFiLdjj59qjqn+6iPe6YmHGQ35sBnQ8uslRBXFmXkiZQOJRjvQeoGppoTjjg==} dev: true - /clean-css/4.2.4: - resolution: - { - integrity: sha512-EJUDT7nDVFDvaQgAo2G/PJvxmp1o/c6iXLbswsBbUFXi1Nr+AjA2cKmfbKDMjMvzEe75g3P6JkaDDAKk96A85A== - } - engines: { node: ">= 4.0" } + /cli-boxes/3.0.0: + resolution: {integrity: sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g==} + engines: {node: '>=10'} + dev: true + + /cli-cursor/4.0.0: + resolution: {integrity: sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dependencies: - source-map: 0.6.1 + restore-cursor: 4.0.0 + dev: true + + /cli-spinners/2.7.0: + resolution: {integrity: sha512-qu3pN8Y3qHNgE2AFweciB1IfMnmZ/fsNTEE+NOFjmGB2F/7rLhnhzppvpCnN4FovtP26k8lHyy9ptEbNwWFLzw==} + engines: {node: '>=6'} + dev: true + + /clone/1.0.4: + resolution: {integrity: sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==} + engines: {node: '>=0.8'} dev: true /color-convert/1.9.3: - resolution: - { - integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== - } + resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} dependencies: color-name: 1.1.3 dev: true /color-convert/2.0.1: - resolution: - { - integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== - } - engines: { node: ">=7.0.0" } + resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} + engines: {node: '>=7.0.0'} dependencies: color-name: 1.1.4 dev: true /color-name/1.1.3: - resolution: - { - integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== - } + resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} dev: true /color-name/1.1.4: - resolution: - { - integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== - } + resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} + + /color-string/1.9.1: + resolution: {integrity: sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==} + dependencies: + color-name: 1.1.4 + simple-swizzle: 0.2.2 + dev: true + + /color/4.2.3: + resolution: {integrity: sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==} + engines: {node: '>=12.5.0'} + dependencies: + color-convert: 2.0.1 + color-string: 1.9.1 dev: true /comma-separated-tokens/1.0.8: - resolution: - { - integrity: sha512-GHuDRO12Sypu2cV70d1dkA2EUmXHgntrzbpvOB+Qy+49ypNfGgFQIC2fhhXbnyrJRynDCAARsT7Ou0M6hirpfw== - } - dev: false + resolution: {integrity: sha512-GHuDRO12Sypu2cV70d1dkA2EUmXHgntrzbpvOB+Qy+49ypNfGgFQIC2fhhXbnyrJRynDCAARsT7Ou0M6hirpfw==} + dev: true /comma-separated-tokens/2.0.2: - resolution: - { - integrity: sha512-G5yTt3KQN4Yn7Yk4ed73hlZ1evrFKXeUW3086p3PRFNp7m2vIjI6Pg+Kgb+oyzhd9F2qdcoj67+y3SdxL5XWsg== - } + resolution: {integrity: sha512-G5yTt3KQN4Yn7Yk4ed73hlZ1evrFKXeUW3086p3PRFNp7m2vIjI6Pg+Kgb+oyzhd9F2qdcoj67+y3SdxL5XWsg==} dev: true - /commander/2.20.3: - resolution: - { - integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== - } + /commander/8.3.0: + resolution: {integrity: sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==} + engines: {node: '>= 12'} dev: true - /commander/8.3.0: - resolution: - { - integrity: sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww== - } - engines: { node: ">= 12" } + /common-ancestor-path/1.0.1: + resolution: {integrity: sha512-L3sHRo1pXXEqX8VU28kfgUY+YGsk09hPqZiZmLacNib6XNTCM8ubYeT7ryXQw8asB1sKgcU5lkB7ONug08aB8w==} + dev: true + + /commondir/1.0.1: + resolution: {integrity: sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==} dev: true /concat-map/0.0.1: - resolution: { integrity: sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= } + resolution: {integrity: sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=} dev: true - /confusing-browser-globals/1.0.11: - resolution: - { - integrity: sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA== - } + /convert-source-map/1.8.0: + resolution: {integrity: sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==} + dependencies: + safe-buffer: 5.1.2 + dev: true + + /cross-env/7.0.3: + resolution: {integrity: sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw==} + engines: {node: '>=10.14', npm: '>=6', yarn: '>=1'} + hasBin: true + dependencies: + cross-spawn: 7.0.3 dev: true /cross-spawn/7.0.3: - resolution: - { - integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== - } - engines: { node: ">= 8" } + resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} + engines: {node: '>= 8'} dependencies: path-key: 3.1.1 shebang-command: 2.0.0 which: 2.0.2 dev: true - /css-selector-parser/1.4.1: - resolution: - { - integrity: sha512-HYPSb7y/Z7BNDCOrakL4raGO2zltZkbeXyAd6Tg9obzix6QhzxCotdBl6VT0Dv4vZfJGVz3WL/xaEI9Ly3ul0g== - } - dev: true - /cssesc/3.0.0: - resolution: - { - integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== - } - engines: { node: ">=4" } + resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} + engines: {node: '>=4'} hasBin: true - dev: true - - /debug/2.6.9: - resolution: - { - integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== - } - peerDependencies: - supports-color: "*" - peerDependenciesMeta: - supports-color: - optional: true - dependencies: - ms: 2.0.0 - dev: true - /debug/3.2.7: - resolution: - { - integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== - } - peerDependencies: - supports-color: "*" - peerDependenciesMeta: - supports-color: - optional: true - dependencies: - ms: 2.1.3 + /data-uri-to-buffer/4.0.0: + resolution: {integrity: sha512-Vr3mLBA8qWmcuschSLAOogKgQ/Jwxulv3RNE4FXnYWRGujzrRWQI4m12fQqRkwX06C0KanhLr4hK+GydchZsaA==} + engines: {node: '>= 12'} dev: true /debug/4.3.4: - resolution: - { - integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== - } - engines: { node: ">=6.0" } + resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} + engines: {node: '>=6.0'} peerDependencies: - supports-color: "*" + supports-color: '*' peerDependenciesMeta: supports-color: optional: true dependencies: ms: 2.1.2 - - /debuglog/1.0.1: - resolution: - { - integrity: sha512-syBZ+rnAK3EgMsH2aYEOLUW7mZSY9Gb+0wUMCFsZvcmiz+HigA0LOcq/HoQqVuGG+EKykunc7QG2bzrponfaSw== - } dev: true /decode-named-character-reference/1.0.2: - resolution: - { - integrity: sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg== - } + resolution: {integrity: sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg==} dependencies: character-entities: 2.0.2 + dev: true + + /decompress-response/6.0.0: + resolution: {integrity: sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==} + engines: {node: '>=10'} + dependencies: + mimic-response: 3.1.0 + dev: true - /deep-is/0.1.4: - resolution: - { - integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== - } + /dedent-js/1.0.1: + resolution: {integrity: sha512-OUepMozQULMLUmhxS95Vudo0jb0UchLimi3+pQ2plj61Fcy8axbP9hbiD4Sz6DPqn6XG3kfmziVfQ1rSys5AJQ==} dev: true - /deepmerge/4.2.2: - resolution: - { - integrity: sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg== - } - engines: { node: ">=0.10.0" } + /deep-extend/0.6.0: + resolution: {integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==} + engines: {node: '>=4.0.0'} dev: true - /define-lazy-prop/2.0.0: - resolution: - { - integrity: sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og== - } - engines: { node: ">=8" } + /deepmerge/4.2.2: + resolution: {integrity: sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==} + engines: {node: '>=0.10.0'} dev: true - /define-properties/1.1.4: - resolution: - { - integrity: sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA== - } - engines: { node: ">= 0.4" } + /defaults/1.0.3: + resolution: {integrity: sha512-s82itHOnYrN0Ib8r+z7laQz3sdE+4FP3d9Q7VLO7U+KRT+CR0GsWuyHxzdAY82I7cXv0G/twrqomTJLOssO5HA==} dependencies: - has-property-descriptors: 1.0.0 - object-keys: 1.1.1 + clone: 1.0.4 dev: true - /defined/1.0.0: - resolution: - { - integrity: sha512-Y2caI5+ZwS5c3RiNDJ6u53VhQHv+hHKwhkI1iHvceKUHw9Df6EK2zRLfjejRgMuCuxK7PfSWIMwWecceVvThjQ== - } + /define-lazy-prop/2.0.0: + resolution: {integrity: sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==} + engines: {node: '>=8'} dev: true + /defined/1.0.0: + resolution: {integrity: sha512-Y2caI5+ZwS5c3RiNDJ6u53VhQHv+hHKwhkI1iHvceKUHw9Df6EK2zRLfjejRgMuCuxK7PfSWIMwWecceVvThjQ==} + /dequal/2.0.3: - resolution: - { - integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA== - } - engines: { node: ">=6" } + resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} + engines: {node: '>=6'} + dev: true /detect-indent/6.1.0: - resolution: - { - integrity: sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA== - } - engines: { node: ">=8" } + resolution: {integrity: sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==} + engines: {node: '>=8'} + dev: true + + /detect-libc/1.0.3: + resolution: {integrity: sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==} + engines: {node: '>=0.10'} + hasBin: true + dev: true + optional: true + + /detect-libc/2.0.1: + resolution: {integrity: sha512-463v3ZeIrcWtdgIg6vI6XUncguvr2TnGl4SzDXinkt9mSLpBJKXT3mW6xT3VQdDN11+WVs29pgvivTc4Lp8v+w==} + engines: {node: '>=8'} dev: true /detective/5.2.1: - resolution: - { - integrity: sha512-v9XE1zRnz1wRtgurGu0Bs8uHKFSTdteYZNbIPFVhUZ39L/S79ppMpdmVOZAnoz1jfEFodc48n6MX483Xo3t1yw== - } - engines: { node: ">=0.8.0" } + resolution: {integrity: sha512-v9XE1zRnz1wRtgurGu0Bs8uHKFSTdteYZNbIPFVhUZ39L/S79ppMpdmVOZAnoz1jfEFodc48n6MX483Xo3t1yw==} + engines: {node: '>=0.8.0'} hasBin: true dependencies: acorn-node: 1.8.2 defined: 1.0.0 minimist: 1.2.6 - dev: true - - /dezalgo/1.0.4: - resolution: - { - integrity: sha512-rXSP0bf+5n0Qonsb+SVVfNfIsimO4HEtmnIpPHY8Q1UCzKlQrDMfdobr8nJOOsRgWCyMRqeSBQzmWUMq7zvVig== - } - dependencies: - asap: 2.0.6 - wrappy: 1.0.2 - dev: true /didyoumean/1.2.2: - resolution: - { - integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw== - } - dev: true + resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==} /diff/5.1.0: - resolution: - { - integrity: sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw== - } - engines: { node: ">=0.3.1" } - - /dir-glob/3.0.1: - resolution: - { - integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA== - } - engines: { node: ">=8" } - dependencies: - path-type: 4.0.0 - dev: true - - /direction/2.0.1: - resolution: - { - integrity: sha512-9S6m9Sukh1cZNknO1CWAr2QAWsbKLafQiyM5gZ7VgXHeuaoUwffKN4q6NC4A/Mf9iiPlOXQEKW/Mv/mh9/3YFA== - } - hasBin: true + resolution: {integrity: sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw==} + engines: {node: '>=0.3.1'} dev: true /dlv/1.1.3: - resolution: - { - integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA== - } + resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==} + + /dom-walk/0.1.2: + resolution: {integrity: sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w==} dev: true - /doctrine/2.1.0: - resolution: - { - integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw== - } - engines: { node: ">=0.10.0" } - dependencies: - esutils: 2.0.3 + /dset/3.1.2: + resolution: {integrity: sha512-g/M9sqy3oHe477Ar4voQxWtaPIFw1jTdKZuomOjhCcBx9nHUNn0pu6NopuFFrTh/TRZIKEj+76vLWFu9BNKk+Q==} + engines: {node: '>=4'} + dev: true + + /eastasianwidth/0.2.0: + resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} + dev: true + + /electron-to-chromium/1.4.225: + resolution: {integrity: sha512-ICHvGaCIQR3P88uK8aRtx8gmejbVJyC6bB4LEC3anzBrIzdzC7aiZHY4iFfXhN4st6I7lMO0x4sgBHf/7kBvRw==} dev: true - /doctrine/3.0.0: - resolution: - { - integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w== - } - engines: { node: ">=6.0.0" } + /emmet/2.3.6: + resolution: {integrity: sha512-pLS4PBPDdxuUAmw7Me7+TcHbykTsBKN/S9XJbUOMFQrNv9MoshzyMFK/R57JBm94/6HSL4vHnDeEmxlC82NQ4A==} dependencies: - esutils: 2.0.3 + '@emmetio/abbreviation': 2.2.3 + '@emmetio/css-abbreviation': 2.1.4 dev: true - /electron-to-chromium/1.4.211: - resolution: - { - integrity: sha512-BZSbMpyFQU0KBJ1JG26XGeFI3i4op+qOYGxftmZXFZoHkhLgsSv4DHDJfl8ogII3hIuzGt51PaZ195OVu0yJ9A== - } + /emoji-regex/8.0.0: + resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} dev: true - /emoticon/4.0.1: - resolution: - { - integrity: sha512-dqx7eA9YaqyvYtUhJwT4rC1HIp82j5ybS1/vQ42ur+jBe17dJMwZE4+gvL1XadSFfxaPFFGt3Xsw+Y8akThDlw== - } + /emoji-regex/9.2.2: + resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} dev: true - /enhanced-resolve/5.10.0: - resolution: - { - integrity: sha512-T0yTFjdpldGY8PmuXXR0PyQ1ufZpEGiHVrp7zHKB7jdR4qlmZHhONVM5AQOAWXuF/w3dnHbEQVrNptJgt7F+cQ== - } - engines: { node: ">=10.13.0" } + /end-of-stream/1.4.4: + resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==} dependencies: - graceful-fs: 4.2.10 - tapable: 2.2.1 + once: 1.4.0 dev: true - /es-abstract/1.20.1: - resolution: - { - integrity: sha512-WEm2oBhfoI2sImeM4OF2zE2V3BYdSF+KnSi9Sidz51fQHd7+JuF8Xgcj9/0o+OWeIeIS/MiuNnlruQrJf16GQA== - } - engines: { node: ">= 0.4" } - dependencies: - call-bind: 1.0.2 - es-to-primitive: 1.2.1 - function-bind: 1.1.1 - function.prototype.name: 1.1.5 - get-intrinsic: 1.1.2 - get-symbol-description: 1.0.0 - has: 1.0.3 - has-property-descriptors: 1.0.0 - has-symbols: 1.0.3 - internal-slot: 1.0.3 - is-callable: 1.2.4 - is-negative-zero: 2.0.2 - is-regex: 1.1.4 - is-shared-array-buffer: 1.0.2 - is-string: 1.0.7 - is-weakref: 1.0.2 - object-inspect: 1.12.2 - object-keys: 1.1.1 - object.assign: 4.1.3 - regexp.prototype.flags: 1.4.3 - string.prototype.trimend: 1.0.5 - string.prototype.trimstart: 1.0.5 - unbox-primitive: 1.0.2 - dev: true - - /es-shim-unscopables/1.0.0: - resolution: - { - integrity: sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w== - } - dependencies: - has: 1.0.3 + /eol/0.9.1: + resolution: {integrity: sha512-Ds/TEoZjwggRoz/Q2O7SE3i4Jm66mqTDfmdHdq/7DKVk3bro9Q8h6WdXKdPqFLMoqxrDK5SVRzHVPOS6uuGtrg==} dev: true - /es-to-primitive/1.2.1: - resolution: - { - integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA== - } - engines: { node: ">= 0.4" } - dependencies: - is-callable: 1.2.4 - is-date-object: 1.0.5 - is-symbol: 1.0.4 + /es-module-lexer/0.10.5: + resolution: {integrity: sha512-+7IwY/kiGAacQfY+YBhKMvEmyAJnw5grTUgjG85Pe7vcUI/6b7pZjZG8nQ7+48YhzEAEqrEgD2dCz/JIK+AYvw==} dev: true /es6-promise/3.3.1: - resolution: - { - integrity: sha512-SOp9Phqvqn7jtEUxPWdWfWoLmyt2VaJ6MpvP9Comy1MceMXqE6bxvaTu4iaxpYYPzhny28Lc+M87/c2cPK6lDg== - } - dev: true - - /esbuild-android-64/0.14.53: - resolution: - { - integrity: sha512-fIL93sOTnEU+NrTAVMIKiAw0YH22HWCAgg4N4Z6zov2t0kY9RAJ50zY9ZMCQ+RT6bnOfDt8gCTnt/RaSNA2yRA== - } - engines: { node: ">=12" } + resolution: {integrity: sha512-SOp9Phqvqn7jtEUxPWdWfWoLmyt2VaJ6MpvP9Comy1MceMXqE6bxvaTu4iaxpYYPzhny28Lc+M87/c2cPK6lDg==} + dev: true + + /esbuild-android-64/0.14.54: + resolution: {integrity: sha512-Tz2++Aqqz0rJ7kYBfz+iqyE3QMycD4vk7LBRyWaAVFgFtQ/O8EJOnVmTOiDWYZ/uYzB4kvP+bqejYdVKzE5lAQ==} + engines: {node: '>=12'} cpu: [x64] os: [android] requiresBuild: true dev: true optional: true - /esbuild-android-arm64/0.14.53: - resolution: - { - integrity: sha512-PC7KaF1v0h/nWpvlU1UMN7dzB54cBH8qSsm7S9mkwFA1BXpaEOufCg8hdoEI1jep0KeO/rjZVWrsH8+q28T77A== - } - engines: { node: ">=12" } + /esbuild-android-arm64/0.14.54: + resolution: {integrity: sha512-F9E+/QDi9sSkLaClO8SOV6etqPd+5DgJje1F9lOWoNncDdOBL2YF59IhsWATSt0TLZbYCf3pNlTHvVV5VfHdvg==} + engines: {node: '>=12'} cpu: [arm64] os: [android] requiresBuild: true dev: true optional: true - /esbuild-darwin-64/0.14.53: - resolution: - { - integrity: sha512-gE7P5wlnkX4d4PKvLBUgmhZXvL7lzGRLri17/+CmmCzfncIgq8lOBvxGMiQ4xazplhxq+72TEohyFMZLFxuWvg== - } - engines: { node: ">=12" } + /esbuild-darwin-64/0.14.54: + resolution: {integrity: sha512-jtdKWV3nBviOd5v4hOpkVmpxsBy90CGzebpbO9beiqUYVMBtSc0AL9zGftFuBon7PNDcdvNCEuQqw2x0wP9yug==} + engines: {node: '>=12'} cpu: [x64] os: [darwin] requiresBuild: true dev: true optional: true - /esbuild-darwin-arm64/0.14.53: - resolution: - { - integrity: sha512-otJwDU3hnI15Q98PX4MJbknSZ/WSR1I45il7gcxcECXzfN4Mrpft5hBDHXNRnCh+5858uPXBXA1Vaz2jVWLaIA== - } - engines: { node: ">=12" } + /esbuild-darwin-arm64/0.14.54: + resolution: {integrity: sha512-OPafJHD2oUPyvJMrsCvDGkRrVCar5aVyHfWGQzY1dWnzErjrDuSETxwA2HSsyg2jORLY8yBfzc1MIpUkXlctmw==} + engines: {node: '>=12'} cpu: [arm64] os: [darwin] requiresBuild: true dev: true optional: true - /esbuild-freebsd-64/0.14.53: - resolution: - { - integrity: sha512-WkdJa8iyrGHyKiPF4lk0MiOF87Q2SkE+i+8D4Cazq3/iqmGPJ6u49je300MFi5I2eUsQCkaOWhpCVQMTKGww2w== - } - engines: { node: ">=12" } + /esbuild-freebsd-64/0.14.54: + resolution: {integrity: sha512-OKwd4gmwHqOTp4mOGZKe/XUlbDJ4Q9TjX0hMPIDBUWWu/kwhBAudJdBoxnjNf9ocIB6GN6CPowYpR/hRCbSYAg==} + engines: {node: '>=12'} cpu: [x64] os: [freebsd] requiresBuild: true dev: true optional: true - /esbuild-freebsd-arm64/0.14.53: - resolution: - { - integrity: sha512-9T7WwCuV30NAx0SyQpw8edbKvbKELnnm1FHg7gbSYaatH+c8WJW10g/OdM7JYnv7qkimw2ZTtSA+NokOLd2ydQ== - } - engines: { node: ">=12" } + /esbuild-freebsd-arm64/0.14.54: + resolution: {integrity: sha512-sFwueGr7OvIFiQT6WeG0jRLjkjdqWWSrfbVwZp8iMP+8UHEHRBvlaxL6IuKNDwAozNUmbb8nIMXa7oAOARGs1Q==} + engines: {node: '>=12'} cpu: [arm64] os: [freebsd] requiresBuild: true dev: true optional: true - /esbuild-linux-32/0.14.53: - resolution: - { - integrity: sha512-VGanLBg5en2LfGDgLEUxQko2lqsOS7MTEWUi8x91YmsHNyzJVT/WApbFFx3MQGhkf+XdimVhpyo5/G0PBY91zg== - } - engines: { node: ">=12" } + /esbuild-linux-32/0.14.54: + resolution: {integrity: sha512-1ZuY+JDI//WmklKlBgJnglpUL1owm2OX+8E1syCD6UAxcMM/XoWd76OHSjl/0MR0LisSAXDqgjT3uJqT67O3qw==} + engines: {node: '>=12'} cpu: [ia32] os: [linux] requiresBuild: true dev: true optional: true - /esbuild-linux-64/0.14.53: - resolution: - { - integrity: sha512-pP/FA55j/fzAV7N9DF31meAyjOH6Bjuo3aSKPh26+RW85ZEtbJv9nhoxmGTd9FOqjx59Tc1ZbrJabuiXlMwuZQ== - } - engines: { node: ">=12" } + /esbuild-linux-64/0.14.54: + resolution: {integrity: sha512-EgjAgH5HwTbtNsTqQOXWApBaPVdDn7XcK+/PtJwZLT1UmpLoznPd8c5CxqsH2dQK3j05YsB3L17T8vE7cp4cCg==} + engines: {node: '>=12'} cpu: [x64] os: [linux] requiresBuild: true dev: true optional: true - /esbuild-linux-arm/0.14.53: - resolution: - { - integrity: sha512-/u81NGAVZMopbmzd21Nu/wvnKQK3pT4CrvQ8BTje1STXcQAGnfyKgQlj3m0j2BzYbvQxSy+TMck4TNV2onvoPA== - } - engines: { node: ">=12" } + /esbuild-linux-arm/0.14.54: + resolution: {integrity: sha512-qqz/SjemQhVMTnvcLGoLOdFpCYbz4v4fUo+TfsWG+1aOu70/80RV6bgNpR2JCrppV2moUQkww+6bWxXRL9YMGw==} + engines: {node: '>=12'} cpu: [arm] os: [linux] requiresBuild: true dev: true optional: true - /esbuild-linux-arm64/0.14.53: - resolution: - { - integrity: sha512-GDmWITT+PMsjCA6/lByYk7NyFssW4Q6in32iPkpjZ/ytSyH+xeEx8q7HG3AhWH6heemEYEWpTll/eui3jwlSnw== - } - engines: { node: ">=12" } + /esbuild-linux-arm64/0.14.54: + resolution: {integrity: sha512-WL71L+0Rwv+Gv/HTmxTEmpv0UgmxYa5ftZILVi2QmZBgX3q7+tDeOQNqGtdXSdsL8TQi1vIaVFHUPDe0O0kdig==} + engines: {node: '>=12'} cpu: [arm64] os: [linux] requiresBuild: true dev: true optional: true - /esbuild-linux-mips64le/0.14.53: - resolution: - { - integrity: sha512-d6/XHIQW714gSSp6tOOX2UscedVobELvQlPMkInhx1NPz4ThZI9uNLQ4qQJHGBGKGfu+rtJsxM4NVHLhnNRdWQ== - } - engines: { node: ">=12" } + /esbuild-linux-mips64le/0.14.54: + resolution: {integrity: sha512-qTHGQB8D1etd0u1+sB6p0ikLKRVuCWhYQhAHRPkO+OF3I/iSlTKNNS0Lh2Oc0g0UFGguaFZZiPJdJey3AGpAlw==} + engines: {node: '>=12'} cpu: [mips64el] os: [linux] requiresBuild: true dev: true optional: true - /esbuild-linux-ppc64le/0.14.53: - resolution: - { - integrity: sha512-ndnJmniKPCB52m+r6BtHHLAOXw+xBCWIxNnedbIpuREOcbSU/AlyM/2dA3BmUQhsHdb4w3amD5U2s91TJ3MzzA== - } - engines: { node: ">=12" } + /esbuild-linux-ppc64le/0.14.54: + resolution: {integrity: sha512-j3OMlzHiqwZBDPRCDFKcx595XVfOfOnv68Ax3U4UKZ3MTYQB5Yz3X1mn5GnodEVYzhtZgxEBidLWeIs8FDSfrQ==} + engines: {node: '>=12'} cpu: [ppc64] os: [linux] requiresBuild: true dev: true optional: true - /esbuild-linux-riscv64/0.14.53: - resolution: - { - integrity: sha512-yG2sVH+QSix6ct4lIzJj329iJF3MhloLE6/vKMQAAd26UVPVkhMFqFopY+9kCgYsdeWvXdPgmyOuKa48Y7+/EQ== - } - engines: { node: ">=12" } + /esbuild-linux-riscv64/0.14.54: + resolution: {integrity: sha512-y7Vt7Wl9dkOGZjxQZnDAqqn+XOqFD7IMWiewY5SPlNlzMX39ocPQlOaoxvT4FllA5viyV26/QzHtvTjVNOxHZg==} + engines: {node: '>=12'} cpu: [riscv64] os: [linux] requiresBuild: true dev: true optional: true - /esbuild-linux-s390x/0.14.53: - resolution: - { - integrity: sha512-OCJlgdkB+XPYndHmw6uZT7jcYgzmx9K+28PVdOa/eLjdoYkeAFvH5hTwX4AXGLZLH09tpl4bVsEtvuyUldaNCg== - } - engines: { node: ">=12" } + /esbuild-linux-s390x/0.14.54: + resolution: {integrity: sha512-zaHpW9dziAsi7lRcyV4r8dhfG1qBidQWUXweUjnw+lliChJqQr+6XD71K41oEIC3Mx1KStovEmlzm+MkGZHnHA==} + engines: {node: '>=12'} cpu: [s390x] os: [linux] requiresBuild: true dev: true optional: true - /esbuild-netbsd-64/0.14.53: - resolution: - { - integrity: sha512-gp2SB+Efc7MhMdWV2+pmIs/Ja/Mi5rjw+wlDmmbIn68VGXBleNgiEZG+eV2SRS0kJEUyHNedDtwRIMzaohWedQ== - } - engines: { node: ">=12" } + /esbuild-netbsd-64/0.14.54: + resolution: {integrity: sha512-PR01lmIMnfJTgeU9VJTDY9ZerDWVFIUzAtJuDHwwceppW7cQWjBBqP48NdeRtoP04/AtO9a7w3viI+PIDr6d+w==} + engines: {node: '>=12'} cpu: [x64] os: [netbsd] requiresBuild: true dev: true optional: true - /esbuild-openbsd-64/0.14.53: - resolution: - { - integrity: sha512-eKQ30ZWe+WTZmteDYg8S+YjHV5s4iTxeSGhJKJajFfQx9TLZJvsJX0/paqwP51GicOUruFpSUAs2NCc0a4ivQQ== - } - engines: { node: ">=12" } + /esbuild-openbsd-64/0.14.54: + resolution: {integrity: sha512-Qyk7ikT2o7Wu76UsvvDS5q0amJvmRzDyVlL0qf5VLsLchjCa1+IAvd8kTBgUxD7VBUUVgItLkk609ZHUc1oCaw==} + engines: {node: '>=12'} cpu: [x64] os: [openbsd] requiresBuild: true dev: true optional: true - /esbuild-sunos-64/0.14.53: - resolution: - { - integrity: sha512-OWLpS7a2FrIRukQqcgQqR1XKn0jSJoOdT+RlhAxUoEQM/IpytS3FXzCJM6xjUYtpO5GMY0EdZJp+ur2pYdm39g== - } - engines: { node: ">=12" } + /esbuild-sunos-64/0.14.54: + resolution: {integrity: sha512-28GZ24KmMSeKi5ueWzMcco6EBHStL3B6ubM7M51RmPwXQGLe0teBGJocmWhgwccA1GeFXqxzILIxXpHbl9Q/Kw==} + engines: {node: '>=12'} cpu: [x64] os: [sunos] requiresBuild: true dev: true optional: true - /esbuild-windows-32/0.14.53: - resolution: - { - integrity: sha512-m14XyWQP5rwGW0tbEfp95U6A0wY0DYPInWBB7D69FAXUpBpBObRoGTKRv36lf2RWOdE4YO3TNvj37zhXjVL5xg== - } - engines: { node: ">=12" } + /esbuild-windows-32/0.14.54: + resolution: {integrity: sha512-T+rdZW19ql9MjS7pixmZYVObd9G7kcaZo+sETqNH4RCkuuYSuv9AGHUVnPoP9hhuE1WM1ZimHz1CIBHBboLU7w==} + engines: {node: '>=12'} cpu: [ia32] os: [win32] requiresBuild: true dev: true optional: true - /esbuild-windows-64/0.14.53: - resolution: - { - integrity: sha512-s9skQFF0I7zqnQ2K8S1xdLSfZFsPLuOGmSx57h2btSEswv0N0YodYvqLcJMrNMXh6EynOmWD7rz+0rWWbFpIHQ== - } - engines: { node: ">=12" } + /esbuild-windows-64/0.14.54: + resolution: {integrity: sha512-AoHTRBUuYwXtZhjXZbA1pGfTo8cJo3vZIcWGLiUcTNgHpJJMC1rVA44ZereBHMJtotyN71S8Qw0npiCIkW96cQ==} + engines: {node: '>=12'} cpu: [x64] os: [win32] requiresBuild: true dev: true optional: true - /esbuild-windows-arm64/0.14.53: - resolution: - { - integrity: sha512-E+5Gvb+ZWts+00T9II6wp2L3KG2r3iGxByqd/a1RmLmYWVsSVUjkvIxZuJ3hYTIbhLkH5PRwpldGTKYqVz0nzQ== - } - engines: { node: ">=12" } + /esbuild-windows-arm64/0.14.54: + resolution: {integrity: sha512-M0kuUvXhot1zOISQGXwWn6YtS+Y/1RT9WrVIOywZnJHo3jCDyewAc79aKNQWFCQm+xNHVTq9h8dZKvygoXQQRg==} + engines: {node: '>=12'} cpu: [arm64] os: [win32] requiresBuild: true dev: true optional: true - /esbuild/0.14.53: - resolution: - { - integrity: sha512-ohO33pUBQ64q6mmheX1mZ8mIXj8ivQY/L4oVuAshr+aJI+zLl+amrp3EodrUNDNYVrKJXGPfIHFGhO8slGRjuw== - } - engines: { node: ">=12" } + /esbuild/0.14.54: + resolution: {integrity: sha512-Cy9llcy8DvET5uznocPyqL3BFRrFXSVqbgpMJ9Wz8oVjZlh/zUSNbPRbov0VX7VxN2JH1Oa0uNxZ7eLRb62pJA==} + engines: {node: '>=12'} hasBin: true requiresBuild: true optionalDependencies: - "@esbuild/linux-loong64": 0.14.53 - esbuild-android-64: 0.14.53 - esbuild-android-arm64: 0.14.53 - esbuild-darwin-64: 0.14.53 - esbuild-darwin-arm64: 0.14.53 - esbuild-freebsd-64: 0.14.53 - esbuild-freebsd-arm64: 0.14.53 - esbuild-linux-32: 0.14.53 - esbuild-linux-64: 0.14.53 - esbuild-linux-arm: 0.14.53 - esbuild-linux-arm64: 0.14.53 - esbuild-linux-mips64le: 0.14.53 - esbuild-linux-ppc64le: 0.14.53 - esbuild-linux-riscv64: 0.14.53 - esbuild-linux-s390x: 0.14.53 - esbuild-netbsd-64: 0.14.53 - esbuild-openbsd-64: 0.14.53 - esbuild-sunos-64: 0.14.53 - esbuild-windows-32: 0.14.53 - esbuild-windows-64: 0.14.53 - esbuild-windows-arm64: 0.14.53 + '@esbuild/linux-loong64': 0.14.54 + esbuild-android-64: 0.14.54 + esbuild-android-arm64: 0.14.54 + esbuild-darwin-64: 0.14.54 + esbuild-darwin-arm64: 0.14.54 + esbuild-freebsd-64: 0.14.54 + esbuild-freebsd-arm64: 0.14.54 + esbuild-linux-32: 0.14.54 + esbuild-linux-64: 0.14.54 + esbuild-linux-arm: 0.14.54 + esbuild-linux-arm64: 0.14.54 + esbuild-linux-mips64le: 0.14.54 + esbuild-linux-ppc64le: 0.14.54 + esbuild-linux-riscv64: 0.14.54 + esbuild-linux-s390x: 0.14.54 + esbuild-netbsd-64: 0.14.54 + esbuild-openbsd-64: 0.14.54 + esbuild-sunos-64: 0.14.54 + esbuild-windows-32: 0.14.54 + esbuild-windows-64: 0.14.54 + esbuild-windows-arm64: 0.14.54 dev: true /escalade/3.1.1: - resolution: - { - integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== - } - engines: { node: ">=6" } + resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} + engines: {node: '>=6'} dev: true /escape-string-regexp/1.0.5: - resolution: - { - integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== - } - engines: { node: ">=0.8.0" } - dev: true - - /escape-string-regexp/4.0.0: - resolution: - { - integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== - } - engines: { node: ">=10" } + resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} + engines: {node: '>=0.8.0'} dev: true /escape-string-regexp/5.0.0: - resolution: - { - integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw== - } - engines: { node: ">=12" } - dev: true - - /eslint-config-airbnb-base/15.0.0_jatgrcxl4x7ywe7ak6cnjca2ae: - resolution: - { - integrity: sha512-xaX3z4ZZIcFLvh2oUNvcX5oEofXda7giYmuplVxoOg5A7EXJMrUyqRgR+mhDhPK8LZ4PttFOBvCYDbX3sUoUig== - } - engines: { node: ^10.12.0 || >=12.0.0 } - peerDependencies: - eslint: ^7.32.0 || ^8.2.0 - eslint-plugin-import: ^2.25.2 - dependencies: - confusing-browser-globals: 1.0.11 - eslint: 8.21.0 - eslint-plugin-import: 2.26.0_klqlxqqxnpnfpttri4irupweri - object.assign: 4.1.3 - object.entries: 1.1.5 - semver: 6.3.0 + resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==} + engines: {node: '>=12'} dev: true - /eslint-config-airbnb-typescript/17.0.0_77qpyedo2u2m7zy3x6o2xs2i5u: - resolution: - { - integrity: sha512-elNiuzD0kPAPTXjFWg+lE24nMdHMtuxgYoD30OyMD6yrW1AhFZPAg27VX7d3tzOErw+dgJTNWfRSDqEcXb4V0g== - } - peerDependencies: - "@typescript-eslint/eslint-plugin": ^5.13.0 - "@typescript-eslint/parser": ^5.0.0 - eslint: ^7.32.0 || ^8.2.0 - eslint-plugin-import: ^2.25.3 - dependencies: - "@typescript-eslint/eslint-plugin": 5.32.0_iosr3hrei2tubxveewluhu5lhy - "@typescript-eslint/parser": 5.32.0_qugx7qdu5zevzvxaiqyxfiwquq - eslint: 8.21.0 - eslint-config-airbnb-base: 15.0.0_jatgrcxl4x7ywe7ak6cnjca2ae - eslint-plugin-import: 2.26.0_klqlxqqxnpnfpttri4irupweri - dev: true - - /eslint-config-prettier/8.5.0_eslint@8.21.0: - resolution: - { - integrity: sha512-obmWKLUNCnhtQRKc+tmnYuQl0pFU1ibYJQ5BGhTVB08bHe9wC8qUeG7c08dj9XX+AuPj1YSGSQIHl1pnDHZR0Q== - } + /esprima/4.0.1: + resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} + engines: {node: '>=4'} hasBin: true - peerDependencies: - eslint: ">=7.0.0" - dependencies: - eslint: 8.21.0 - dev: true - - /eslint-import-resolver-node/0.3.6: - resolution: - { - integrity: sha512-0En0w03NRVMn9Uiyn8YRPDKvWjxCWkslUEhGNTdGx15RvPJYQ+lbOlqrlNI2vEAs4pDYK4f/HN2TbDmk5TP0iw== - } - dependencies: - debug: 3.2.7 - resolve: 1.22.1 - transitivePeerDependencies: - - supports-color - dev: true - - /eslint-import-resolver-typescript/3.4.0_jatgrcxl4x7ywe7ak6cnjca2ae: - resolution: - { - integrity: sha512-rBCgiEovwX/HQ8ESWV+XIWZaFiRtDeAXNZdcTATB8UbMuadc9qfGOlIP+vy+c7nsgfEBN4NTwy5qunGNptDP0Q== - } - engines: { node: ^12.20.0 || ^14.18.0 || >=16.0.0 } - peerDependencies: - eslint: "*" - eslint-plugin-import: "*" - dependencies: - debug: 4.3.4 - enhanced-resolve: 5.10.0 - eslint: 8.21.0 - eslint-plugin-import: 2.26.0_klqlxqqxnpnfpttri4irupweri - get-tsconfig: 4.2.0 - globby: 13.1.2 - is-core-module: 2.10.0 - is-glob: 4.0.3 - synckit: 0.8.1 - transitivePeerDependencies: - - supports-color - dev: true - - /eslint-module-utils/2.7.3_dirjbmf3bsnpt3git34hjh5rju: - resolution: - { - integrity: sha512-088JEC7O3lDZM9xGe0RerkOMd0EjFl+Yvd1jPWIkMT5u3H9+HC34mWWPnqPrN13gieT9pBOO+Qt07Nb/6TresQ== - } - engines: { node: ">=4" } - peerDependencies: - "@typescript-eslint/parser": "*" - eslint-import-resolver-node: "*" - eslint-import-resolver-typescript: "*" - eslint-import-resolver-webpack: "*" - peerDependenciesMeta: - "@typescript-eslint/parser": - optional: true - eslint-import-resolver-node: - optional: true - eslint-import-resolver-typescript: - optional: true - eslint-import-resolver-webpack: - optional: true - dependencies: - "@typescript-eslint/parser": 5.32.0_qugx7qdu5zevzvxaiqyxfiwquq - debug: 3.2.7 - eslint-import-resolver-node: 0.3.6 - eslint-import-resolver-typescript: 3.4.0_jatgrcxl4x7ywe7ak6cnjca2ae - find-up: 2.1.0 - transitivePeerDependencies: - - supports-color dev: true - /eslint-plugin-eslint-comments/3.2.0_eslint@8.21.0: - resolution: - { - integrity: sha512-0jkOl0hfojIHHmEHgmNdqv4fmh7300NdpA9FFpF7zaoLvB/QeXOGNLIo86oAveJFrfB1p05kC8hpEMHM8DwWVQ== - } - engines: { node: ">=6.5.0" } - peerDependencies: - eslint: ">=4.19.1" - dependencies: - escape-string-regexp: 1.0.5 - eslint: 8.21.0 - ignore: 5.2.0 - dev: true - - /eslint-plugin-import/2.26.0_klqlxqqxnpnfpttri4irupweri: - resolution: - { - integrity: sha512-hYfi3FXaM8WPLf4S1cikh/r4IxnO6zrhZbEGz2b660EJRbuxgpDS5gkCuYgGWg2xxh2rBuIr4Pvhve/7c31koA== - } - engines: { node: ">=4" } - peerDependencies: - "@typescript-eslint/parser": "*" - eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 - peerDependenciesMeta: - "@typescript-eslint/parser": - optional: true + /estree-util-attach-comments/2.1.0: + resolution: {integrity: sha512-rJz6I4L0GaXYtHpoMScgDIwM0/Vwbu5shbMeER596rB2D1EWF6+Gj0e0UKzJPZrpoOc87+Q2kgVFHfjAymIqmw==} dependencies: - "@typescript-eslint/parser": 5.32.0_qugx7qdu5zevzvxaiqyxfiwquq - array-includes: 3.1.5 - array.prototype.flat: 1.3.0 - debug: 2.6.9 - doctrine: 2.1.0 - eslint: 8.21.0 - eslint-import-resolver-node: 0.3.6 - eslint-module-utils: 2.7.3_dirjbmf3bsnpt3git34hjh5rju - has: 1.0.3 - is-core-module: 2.10.0 - is-glob: 4.0.3 - minimatch: 3.1.2 - object.values: 1.1.5 - resolve: 1.22.1 - tsconfig-paths: 3.14.1 - transitivePeerDependencies: - - eslint-import-resolver-typescript - - eslint-import-resolver-webpack - - supports-color + '@types/estree': 1.0.0 dev: true - /eslint-plugin-promise/6.0.0_eslint@8.21.0: - resolution: - { - integrity: sha512-7GPezalm5Bfi/E22PnQxDWH2iW9GTvAlUNTztemeHb6c1BniSyoeTrM87JkC0wYdi6aQrZX9p2qEiAno8aTcbw== - } - engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } - peerDependencies: - eslint: ^7.0.0 || ^8.0.0 + /estree-util-build-jsx/2.2.0: + resolution: {integrity: sha512-apsfRxF9uLrqosApvHVtYZjISPvTJ+lBiIydpC+9wE6cF6ssbhnjyQLqaIjgzGxvC2Hbmec1M7g91PoBayYoQQ==} dependencies: - eslint: 8.21.0 + '@types/estree-jsx': 1.0.0 + estree-util-is-identifier-name: 2.0.1 + estree-walker: 3.0.1 dev: true - /eslint-plugin-svelte3/4.0.0_a7wk4ghvg4hia4trwaglu7p6cq: - resolution: - { - integrity: sha512-OIx9lgaNzD02+MDFNLw0GEUbuovNcglg+wnd/UY0fbZmlQSz7GlQiQ1f+yX0XvC07XPcDOnFcichqI3xCwp71g== - } - peerDependencies: - eslint: ">=8.0.0" - svelte: ^3.2.0 - dependencies: - eslint: 8.21.0 - svelte: 3.49.0 + /estree-util-is-identifier-name/2.0.1: + resolution: {integrity: sha512-rxZj1GkQhY4x1j/CSnybK9cGuMFQYFPLq0iNyopqf14aOVLFtMv7Esika+ObJWPWiOHuMOAHz3YkWoLYYRnzWQ==} dev: true - /eslint-plugin-tsdoc/0.2.16: - resolution: - { - integrity: sha512-F/RWMnyDQuGlg82vQEFHQtGyWi7++XJKdYNn0ulIbyMOFqYIjoJOUdE6olORxgwgLkpJxsCJpJbTHgxJ/ggfXw== - } + /estree-util-to-js/1.1.0: + resolution: {integrity: sha512-490lbfCcpLk+ofK6HCgqDfYs4KAfq6QVvDw3+Bm1YoKRgiOjKiKYGAVQE1uwh7zVxBgWhqp4FDtp5SqunpUk1A==} dependencies: - "@microsoft/tsdoc": 0.14.1 - "@microsoft/tsdoc-config": 0.16.1 + '@types/estree-jsx': 1.0.0 + astring: 1.8.3 + source-map: 0.7.4 dev: true - /eslint-scope/5.1.1: - resolution: - { - integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw== - } - engines: { node: ">=8.0.0" } + /estree-util-value-to-estree/1.3.0: + resolution: {integrity: sha512-Y+ughcF9jSUJvncXwqRageavjrNPAI+1M/L3BI3PyLp1nmgYTGUXU6t5z1Y7OWuThoDdhPME07bQU+d5LxdJqw==} + engines: {node: '>=12.0.0'} dependencies: - esrecurse: 4.3.0 - estraverse: 4.3.0 + is-plain-obj: 3.0.0 dev: true - /eslint-scope/7.1.1: - resolution: - { - integrity: sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw== - } - engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } + /estree-util-visit/1.2.0: + resolution: {integrity: sha512-wdsoqhWueuJKsh5hqLw3j8lwFqNStm92VcwtAOAny8g/KS/l5Y8RISjR4k5W6skCj3Nirag/WUCMS0Nfy3sgsg==} dependencies: - esrecurse: 4.3.0 - estraverse: 5.3.0 + '@types/estree-jsx': 1.0.0 + '@types/unist': 2.0.6 dev: true - /eslint-utils/3.0.0_eslint@8.21.0: - resolution: - { - integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA== - } - engines: { node: ^10.0.0 || ^12.0.0 || >= 14.0.0 } - peerDependencies: - eslint: ">=5" - dependencies: - eslint: 8.21.0 - eslint-visitor-keys: 2.1.0 + /estree-walker/2.0.2: + resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} dev: true - /eslint-visitor-keys/2.1.0: - resolution: - { - integrity: sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw== - } - engines: { node: ">=10" } + /estree-walker/3.0.1: + resolution: {integrity: sha512-woY0RUD87WzMBUiZLx8NsYr23N5BKsOMZHhu2hoNRVh6NXGfoiT1KOL8G3UHlJAnEDGmfa5ubNA/AacfG+Kb0g==} dev: true - /eslint-visitor-keys/3.3.0: - resolution: - { - integrity: sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA== - } - engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } + /etag/1.8.1: + resolution: {integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==} + engines: {node: '>= 0.6'} dev: true - /eslint/8.21.0: - resolution: - { - integrity: sha512-/XJ1+Qurf1T9G2M5IHrsjp+xrGT73RZf23xA1z5wB1ZzzEAWSZKvRwhWxTFp1rvkvCfwcvAUNAP31bhKTTGfDA== - } - engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } - hasBin: true + /execa/6.1.0: + resolution: {integrity: sha512-QVWlX2e50heYJcCPG0iWtf8r0xjEYfz/OYLGDYH+IyjWezzPNxz63qNFOu0l4YftGWuizFVZHHs8PrLU5p2IDA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dependencies: - "@eslint/eslintrc": 1.3.0 - "@humanwhocodes/config-array": 0.10.4 - "@humanwhocodes/gitignore-to-minimatch": 1.0.2 - ajv: 6.12.6 - chalk: 4.1.2 cross-spawn: 7.0.3 - debug: 4.3.4 - doctrine: 3.0.0 - escape-string-regexp: 4.0.0 - eslint-scope: 7.1.1 - eslint-utils: 3.0.0_eslint@8.21.0 - eslint-visitor-keys: 3.3.0 - espree: 9.3.3 - esquery: 1.4.0 - esutils: 2.0.3 - fast-deep-equal: 3.1.3 - file-entry-cache: 6.0.1 - find-up: 5.0.0 - functional-red-black-tree: 1.0.1 - glob-parent: 6.0.2 - globals: 13.17.0 - globby: 11.1.0 - grapheme-splitter: 1.0.4 - ignore: 5.2.0 - import-fresh: 3.3.0 - imurmurhash: 0.1.4 - is-glob: 4.0.3 - js-yaml: 4.1.0 - json-stable-stringify-without-jsonify: 1.0.1 - levn: 0.4.1 - lodash.merge: 4.6.2 - minimatch: 3.1.2 - natural-compare: 1.4.0 - optionator: 0.9.1 - regexpp: 3.2.0 - strip-ansi: 6.0.1 - strip-json-comments: 3.1.1 - text-table: 0.2.0 - v8-compile-cache: 2.3.0 - transitivePeerDependencies: - - supports-color + get-stream: 6.0.1 + human-signals: 3.0.1 + is-stream: 3.0.0 + merge-stream: 2.0.0 + npm-run-path: 5.1.0 + onetime: 6.0.0 + signal-exit: 3.0.7 + strip-final-newline: 3.0.0 dev: true - /espree/9.3.3: - resolution: - { - integrity: sha512-ORs1Rt/uQTqUKjDdGCyrtYxbazf5umATSf/K4qxjmZHORR6HJk+2s/2Pqe+Kk49HHINC/xNIrGfgh8sZcll0ng== - } - engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } - dependencies: - acorn: 8.8.0 - acorn-jsx: 5.3.2_acorn@8.8.0 - eslint-visitor-keys: 3.3.0 + /exif-parser/0.1.12: + resolution: {integrity: sha512-c2bQfLNbMzLPmzQuOr8fy0csy84WmwnER81W88DzTp9CYNPJ6yzOj2EZAh9pywYpqHnshVLHQJ8WzldAyfY+Iw==} dev: true - /esquery/1.4.0: - resolution: - { - integrity: sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w== - } - engines: { node: ">=0.10" } - dependencies: - estraverse: 5.3.0 + /expand-template/2.0.3: + resolution: {integrity: sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==} + engines: {node: '>=6'} dev: true - /esrecurse/4.3.0: - resolution: - { - integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== - } - engines: { node: ">=4.0" } + /extend-shallow/2.0.1: + resolution: {integrity: sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==} + engines: {node: '>=0.10.0'} dependencies: - estraverse: 5.3.0 - dev: true - - /estraverse/4.3.0: - resolution: - { - integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== - } - engines: { node: ">=4.0" } - dev: true - - /estraverse/5.3.0: - resolution: - { - integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== - } - engines: { node: ">=4.0" } - dev: true - - /estree-walker/2.0.2: - resolution: - { - integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w== - } - dev: true - - /esutils/2.0.3: - resolution: - { - integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== - } - engines: { node: ">=0.10.0" } + is-extendable: 0.1.1 dev: true /extend/3.0.2: - resolution: - { - integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== - } - - /fast-deep-equal/3.1.3: - resolution: - { - integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== - } + resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==} dev: true /fast-glob/3.2.11: - resolution: - { - integrity: sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew== - } - engines: { node: ">=8.6.0" } - dependencies: - "@nodelib/fs.stat": 2.0.5 - "@nodelib/fs.walk": 1.2.8 + resolution: {integrity: sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==} + engines: {node: '>=8.6.0'} + dependencies: + '@nodelib/fs.stat': 2.0.5 + '@nodelib/fs.walk': 1.2.8 glob-parent: 5.1.2 merge2: 1.4.1 micromatch: 4.0.5 - dev: true - - /fast-json-stable-stringify/2.1.0: - resolution: - { - integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== - } - dev: true - - /fast-levenshtein/2.0.6: - resolution: - { - integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw== - } - dev: true /fastq/1.13.0: - resolution: - { - integrity: sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw== - } + resolution: {integrity: sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==} dependencies: reusify: 1.0.4 + + /fault/2.0.1: + resolution: {integrity: sha512-WtySTkS4OKev5JtpHXnib4Gxiurzh5NCGvWrFaZ34m6JehfTUhKZvn9njTfw48t6JumVQOmrKqpmGcdwxnhqBQ==} + dependencies: + format: 0.2.2 dev: true - /feed/4.2.2: - resolution: - { - integrity: sha512-u5/sxGfiMfZNtJ3OvQpXcvotFpYkL0n9u9mM2vkui2nGo8b4wvDkJ8gAkYqbA8QpGyFCv3RK0Z+Iv+9veCS9bQ== - } - engines: { node: ">=0.4.0" } + /fetch-blob/3.2.0: + resolution: {integrity: sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==} + engines: {node: ^12.20 || >= 14.13} dependencies: - xml-js: 1.6.11 - dev: false + node-domexception: 1.0.0 + web-streams-polyfill: 3.2.1 + dev: true - /file-entry-cache/6.0.1: - resolution: - { - integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg== - } - engines: { node: ^10.12.0 || >=12.0.0 } + /file-type/17.1.1: + resolution: {integrity: sha512-heRUMZHby2Qj6wZAA3YHeMlRmZNQTcb6VxctkGmM+mcM6ROQKvHpr7SS6EgdfEhH+s25LDshBjvPx/Ecm+bOVQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dependencies: - flat-cache: 3.0.4 + readable-web-to-node-stream: 3.0.2 + strtok3: 7.0.0 + token-types: 5.0.1 + dev: true + + /file-type/9.0.0: + resolution: {integrity: sha512-Qe/5NJrgIOlwijpq3B7BEpzPFcgzggOTagZmkXQY4LA6bsXKTUstK7Wp12lEJ/mLKTpvIZxmIuRcLYWT6ov9lw==} + engines: {node: '>=6'} dev: true /fill-range/7.0.1: - resolution: - { - integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== - } - engines: { node: ">=8" } + resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} + engines: {node: '>=8'} dependencies: to-regex-range: 5.0.1 + + /find-cache-dir/3.3.2: + resolution: {integrity: sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==} + engines: {node: '>=8'} + dependencies: + commondir: 1.0.1 + make-dir: 3.1.0 + pkg-dir: 4.2.0 dev: true - /find-up/2.1.0: - resolution: - { - integrity: sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ== - } - engines: { node: ">=4" } + /find-up/4.1.0: + resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} + engines: {node: '>=8'} dependencies: - locate-path: 2.0.0 + locate-path: 5.0.0 + path-exists: 4.0.0 dev: true /find-up/5.0.0: - resolution: - { - integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== - } - engines: { node: ">=10" } + resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} + engines: {node: '>=10'} dependencies: locate-path: 6.0.0 path-exists: 4.0.0 dev: true - /flat-cache/3.0.4: - resolution: - { - integrity: sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg== - } - engines: { node: ^10.12.0 || >=12.0.0 } + /find-up/6.3.0: + resolution: {integrity: sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + locate-path: 7.1.1 + path-exists: 5.0.0 + dev: true + + /find-yarn-workspace-root2/1.2.16: + resolution: {integrity: sha512-hr6hb1w8ePMpPVUK39S4RlwJzi+xPLuVuG8XlwXU3KD5Yn3qgBWVfy3AzNlDhWvE1EORCE65/Qm26rFQt3VLVA==} dependencies: - flatted: 3.2.6 - rimraf: 3.0.2 + micromatch: 4.0.5 + pkg-dir: 4.2.0 + dev: true + + /format/0.2.2: + resolution: {integrity: sha512-wzsgA6WOq+09wrU1tsJ09udeR/YZRaeArL9e1wPbFg3GG2yDnC2ldKpxs4xunpFF9DgqCqOIra3bc1HWrJ37Ww==} + engines: {node: '>=0.4.x'} dev: true - /flatted/3.2.6: - resolution: - { - integrity: sha512-0sQoMh9s0BYsm+12Huy/rkKxVu4R1+r96YX5cG44rHV0pQ6iC3Q+mkoMFaGWObMFYQxCVT+ssG1ksneA2MI9KQ== - } + /formdata-polyfill/4.0.10: + resolution: {integrity: sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==} + engines: {node: '>=12.20.0'} + dependencies: + fetch-blob: 3.2.0 dev: true /fraction.js/4.2.0: - resolution: - { - integrity: sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA== - } + resolution: {integrity: sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==} + dev: true + + /fs-constants/1.0.0: + resolution: {integrity: sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==} dev: true /fs.realpath/1.0.0: - resolution: - { - integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== - } + resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} dev: true /fsevents/2.3.2: - resolution: - { - integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== - } - engines: { node: ^8.16.0 || ^10.6.0 || >=11.0.0 } + resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==} + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} os: [darwin] requiresBuild: true - dev: true optional: true /function-bind/1.1.1: - resolution: - { - integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== - } - dev: true - - /function.prototype.name/1.1.5: - resolution: - { - integrity: sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA== - } - engines: { node: ">= 0.4" } - dependencies: - call-bind: 1.0.2 - define-properties: 1.1.4 - es-abstract: 1.20.1 - functions-have-names: 1.2.3 - dev: true + resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==} - /functional-red-black-tree/1.0.1: - resolution: - { - integrity: sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g== - } + /gensync/1.0.0-beta.2: + resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} + engines: {node: '>=6.9.0'} dev: true - /functions-have-names/1.2.3: - resolution: - { - integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ== - } - dev: true - - /get-intrinsic/1.1.2: - resolution: - { - integrity: sha512-Jfm3OyCxHh9DJyc28qGk+JmfkpO41A4XkneDSujN9MDXrm4oDKdHvndhZ2dN94+ERNfkYJWDclW6k2L/ZGHjXA== - } - dependencies: - function-bind: 1.1.1 - has: 1.0.3 - has-symbols: 1.0.3 + /get-stream/6.0.1: + resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} + engines: {node: '>=10'} dev: true - /get-symbol-description/1.0.0: - resolution: - { - integrity: sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw== - } - engines: { node: ">= 0.4" } + /gifwrap/0.9.4: + resolution: {integrity: sha512-MDMwbhASQuVeD4JKd1fKgNgCRL3fGqMM4WaqpNhWO0JiMOAjbQdumbs4BbBZEy9/M00EHEjKN3HieVhCUlwjeQ==} dependencies: - call-bind: 1.0.2 - get-intrinsic: 1.1.2 + image-q: 4.0.0 + omggif: 1.0.10 dev: true - /get-tsconfig/4.2.0: - resolution: - { - integrity: sha512-X8u8fREiYOE6S8hLbq99PeykTDoLVnxvF4DjWKJmz9xy2nNRdUcV8ZN9tniJFeKyTU3qnC9lL8n4Chd6LmVKHg== - } + /github-from-package/0.0.0: + resolution: {integrity: sha1-l/tdlr/eiXMxPyDoKI75oWf6ZM4=} dev: true /github-slugger/1.4.0: - resolution: - { - integrity: sha512-w0dzqw/nt51xMVmlaV1+JRzN+oCa1KfcgGEWhxUG16wbdA+Xnt/yoFO8Z8x/V82ZcZ0wy6ln9QDup5avbhiDhQ== - } + resolution: {integrity: sha512-w0dzqw/nt51xMVmlaV1+JRzN+oCa1KfcgGEWhxUG16wbdA+Xnt/yoFO8Z8x/V82ZcZ0wy6ln9QDup5avbhiDhQ==} dev: true /glob-parent/5.1.2: - resolution: - { - integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== - } - engines: { node: ">= 6" } + resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} + engines: {node: '>= 6'} dependencies: is-glob: 4.0.3 - dev: true /glob-parent/6.0.2: - resolution: - { - integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A== - } - engines: { node: ">=10.13.0" } + resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} + engines: {node: '>=10.13.0'} dependencies: is-glob: 4.0.3 - dev: true /glob/7.2.3: - resolution: - { - integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== - } + resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} dependencies: fs.realpath: 1.0.0 inflight: 1.0.6 @@ -2286,780 +2360,629 @@ packages: path-is-absolute: 1.0.1 dev: true - /glob/8.0.3: - resolution: - { - integrity: sha512-ull455NHSHI/Y1FqGaaYFaLGkNMMJbavMrEGFXG/PGrg6y7sutWHUHrz6gy6WEBH6akM1M414dWKCNs+IhKdiQ== - } - engines: { node: ">=12" } + /global/4.4.0: + resolution: {integrity: sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w==} dependencies: - fs.realpath: 1.0.0 - inflight: 1.0.6 - inherits: 2.0.4 - minimatch: 5.1.0 - once: 1.4.0 + min-document: 2.19.0 + process: 0.11.10 dev: true - /globals/13.17.0: - resolution: - { - integrity: sha512-1C+6nQRb1GwGMKm2dH/E7enFAMxGTmGI7/dEdhy/DNelv85w9B72t3uc5frtMNXIbzrarJJ/lTCjcaZwbLJmyw== - } - engines: { node: ">=8" } - dependencies: - type-fest: 0.20.2 + /globals/11.12.0: + resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} + engines: {node: '>=4'} dev: true /globalyzer/0.1.0: - resolution: - { - integrity: sha512-40oNTM9UfG6aBmuKxk/giHn5nQ8RVz/SS4Ir6zgzOv9/qC3kKZ9v4etGTcJbEl/NyVQH7FGU7d+X1egr57Md2Q== - } - dev: true - - /globby/11.1.0: - resolution: - { - integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g== - } - engines: { node: ">=10" } - dependencies: - array-union: 2.1.0 - dir-glob: 3.0.1 - fast-glob: 3.2.11 - ignore: 5.2.0 - merge2: 1.4.1 - slash: 3.0.0 - dev: true - - /globby/13.1.2: - resolution: - { - integrity: sha512-LKSDZXToac40u8Q1PQtZihbNdTYSNMuWe+K5l+oa6KgDzSvVrHXlJy40hUP522RjAIoNLJYBJi7ow+rbFpIhHQ== - } - engines: { node: ^12.20.0 || ^14.13.1 || >=16.0.0 } - dependencies: - dir-glob: 3.0.1 - fast-glob: 3.2.11 - ignore: 5.2.0 - merge2: 1.4.1 - slash: 4.0.0 + resolution: {integrity: sha512-40oNTM9UfG6aBmuKxk/giHn5nQ8RVz/SS4Ir6zgzOv9/qC3kKZ9v4etGTcJbEl/NyVQH7FGU7d+X1egr57Md2Q==} dev: true /globrex/0.1.2: - resolution: - { - integrity: sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg== - } + resolution: {integrity: sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==} dev: true /graceful-fs/4.2.10: - resolution: - { - integrity: sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA== - } - dev: true - - /grapheme-splitter/1.0.4: - resolution: - { - integrity: sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ== - } + resolution: {integrity: sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==} dev: true - /has-bigints/1.0.2: - resolution: - { - integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ== - } + /gray-matter/4.0.3: + resolution: {integrity: sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q==} + engines: {node: '>=6.0'} + dependencies: + js-yaml: 3.14.1 + kind-of: 6.0.3 + section-matter: 1.0.0 + strip-bom-string: 1.0.0 dev: true /has-flag/3.0.0: - resolution: - { - integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw== - } - engines: { node: ">=4" } + resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} + engines: {node: '>=4'} dev: true /has-flag/4.0.0: - resolution: - { - integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== - } - engines: { node: ">=8" } - dev: true - - /has-property-descriptors/1.0.0: - resolution: - { - integrity: sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ== - } - dependencies: - get-intrinsic: 1.1.2 - dev: true - - /has-symbols/1.0.3: - resolution: - { - integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== - } - engines: { node: ">= 0.4" } + resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} + engines: {node: '>=8'} dev: true - /has-tostringtag/1.0.0: - resolution: - { - integrity: sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ== - } - engines: { node: ">= 0.4" } + /has-package-exports/1.3.0: + resolution: {integrity: sha512-e9OeXPQnmPhYoJ63lXC4wWe34TxEGZDZ3OQX9XRqp2VwsfLl3bQBy7VehLnd34g3ef8CmYlBLGqEMKXuz8YazQ==} dependencies: - has-symbols: 1.0.3 + '@ljharb/has-package-exports-patterns': 0.0.2 dev: true /has/1.0.3: - resolution: - { - integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== - } - engines: { node: ">= 0.4.0" } + resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==} + engines: {node: '>= 0.4.0'} dependencies: function-bind: 1.1.1 + + /hast-to-hyperscript/10.0.1: + resolution: {integrity: sha512-dhIVGoKCQVewFi+vz3Vt567E4ejMppS1haBRL6TEmeLeJVB1i/FJIIg/e6s1Bwn0g5qtYojHEKvyGA+OZuyifw==} + dependencies: + '@types/unist': 2.0.6 + comma-separated-tokens: 2.0.2 + property-information: 6.1.1 + space-separated-tokens: 2.0.1 + style-to-object: 0.3.0 + unist-util-is: 5.1.1 + web-namespaces: 2.0.1 dev: true /hast-util-from-parse5/5.0.3: - resolution: - { - integrity: sha512-gOc8UB99F6eWVWFtM9jUikjN7QkWxB3nY0df5Z0Zq1/Nkwl5V4hAAsl0tmwlgWl/1shlTF8DnNYLO8X6wRV9pA== - } + resolution: {integrity: sha512-gOc8UB99F6eWVWFtM9jUikjN7QkWxB3nY0df5Z0Zq1/Nkwl5V4hAAsl0tmwlgWl/1shlTF8DnNYLO8X6wRV9pA==} dependencies: ccount: 1.1.0 hastscript: 5.1.2 property-information: 5.6.0 web-namespaces: 1.1.4 xtend: 4.0.2 - dev: false + dev: true - /hast-util-from-string/2.0.0: - resolution: - { - integrity: sha512-9JlBGWh+RXbT8PDrdwYZloN6poib8xg7Vq+LgN5TTqnaMDO0YqfX4EyZd3Myel6yIXlDsgysiRB1CTjH2K+1Dg== - } + /hast-util-from-parse5/7.1.0: + resolution: {integrity: sha512-m8yhANIAccpU4K6+121KpPP55sSl9/samzQSQGpb0mTExcNh2WlvjtMwSWFhg6uqD4Rr6Nfa8N6TMypQM51rzQ==} dependencies: - "@types/hast": 2.3.4 + '@types/hast': 2.3.4 + '@types/parse5': 6.0.3 + '@types/unist': 2.0.6 + hastscript: 7.0.2 + property-information: 6.1.1 + vfile: 5.3.4 + vfile-location: 4.0.1 + web-namespaces: 2.0.1 dev: true /hast-util-has-property/2.0.0: - resolution: - { - integrity: sha512-4Qf++8o5v14us4Muv3HRj+Er6wTNGA/N9uCaZMty4JWvyFKLdhULrv4KE1b65AthsSO9TXSZnjuxS8ecIyhb0w== - } + resolution: {integrity: sha512-4Qf++8o5v14us4Muv3HRj+Er6wTNGA/N9uCaZMty4JWvyFKLdhULrv4KE1b65AthsSO9TXSZnjuxS8ecIyhb0w==} dev: true /hast-util-heading-rank/2.1.0: - resolution: - { - integrity: sha512-w+Rw20Q/iWp2Bcnr6uTrYU6/ftZLbHKhvc8nM26VIWpDqDMlku2iXUVTeOlsdoih/UKQhY7PHQ+vZ0Aqq8bxtQ== - } + resolution: {integrity: sha512-w+Rw20Q/iWp2Bcnr6uTrYU6/ftZLbHKhvc8nM26VIWpDqDMlku2iXUVTeOlsdoih/UKQhY7PHQ+vZ0Aqq8bxtQ==} dependencies: - "@types/hast": 2.3.4 + '@types/hast': 2.3.4 dev: true /hast-util-is-element/2.1.2: - resolution: - { - integrity: sha512-thjnlGAnwP8ef/GSO1Q8BfVk2gundnc2peGQqEg2kUt/IqesiGg/5mSwN2fE7nLzy61pg88NG6xV+UrGOrx9EA== - } + resolution: {integrity: sha512-thjnlGAnwP8ef/GSO1Q8BfVk2gundnc2peGQqEg2kUt/IqesiGg/5mSwN2fE7nLzy61pg88NG6xV+UrGOrx9EA==} dependencies: - "@types/hast": 2.3.4 - "@types/unist": 2.0.6 + '@types/hast': 2.3.4 + '@types/unist': 2.0.6 dev: true /hast-util-parse-selector/2.2.5: - resolution: - { - integrity: sha512-7j6mrk/qqkSehsM92wQjdIgWM2/BW61u/53G6xmC8i1OmEdKLHbk419QKQUjz6LglWsfqoiHmyMRkP1BGjecNQ== - } - dev: false + resolution: {integrity: sha512-7j6mrk/qqkSehsM92wQjdIgWM2/BW61u/53G6xmC8i1OmEdKLHbk419QKQUjz6LglWsfqoiHmyMRkP1BGjecNQ==} + dev: true + + /hast-util-parse-selector/3.1.0: + resolution: {integrity: sha512-AyjlI2pTAZEOeu7GeBPZhROx0RHBnydkQIXlhnFzDi0qfXTmGUWoCYZtomHbrdrheV4VFUlPcfJ6LMF5T6sQzg==} + dependencies: + '@types/hast': 2.3.4 + dev: true + + /hast-util-raw/7.2.2: + resolution: {integrity: sha512-0x3BhhdlBcqRIKyc095lBSDvmQNMY3Eulj2PLsT5XCyKYrxssI5yr3P4Kv/PBo1s/DMkZy2voGkMXECnFCZRLQ==} + dependencies: + '@types/hast': 2.3.4 + '@types/parse5': 6.0.3 + hast-util-from-parse5: 7.1.0 + hast-util-to-parse5: 7.0.0 + html-void-elements: 2.0.1 + parse5: 6.0.1 + unist-util-position: 4.0.3 + unist-util-visit: 4.1.1 + vfile: 5.3.4 + web-namespaces: 2.0.1 + zwitch: 2.0.2 + dev: true - /hast-util-select/5.0.2: - resolution: - { - integrity: sha512-QGN5o7N8gq1BhUX96ApLE8izOXlf+IPkOVGXcp9Dskdd3w0OqZrn6faPAmS0/oVogwJOd0lWFSYmBK75e+030g== - } + /hast-util-to-estree/2.1.0: + resolution: {integrity: sha512-Vwch1etMRmm89xGgz+voWXvVHba2iiMdGMKmaMfYt35rbVtFDq8JNwwAIvi8zHMkO6Gvqo9oTMwJTmzVRfXh4g==} dependencies: - "@types/hast": 2.3.4 - "@types/unist": 2.0.6 - bcp-47-match: 2.0.2 + '@types/estree': 1.0.0 + '@types/estree-jsx': 1.0.0 + '@types/hast': 2.3.4 + '@types/unist': 2.0.6 + comma-separated-tokens: 2.0.2 + estree-util-attach-comments: 2.1.0 + estree-util-is-identifier-name: 2.0.1 + hast-util-whitespace: 2.0.0 + mdast-util-mdx-expression: 1.3.0 + mdast-util-mdxjs-esm: 1.3.0 + property-information: 6.1.1 + space-separated-tokens: 2.0.1 + style-to-object: 0.3.0 + unist-util-position: 4.0.3 + zwitch: 2.0.2 + transitivePeerDependencies: + - supports-color + dev: true + + /hast-util-to-html/8.0.3: + resolution: {integrity: sha512-/D/E5ymdPYhHpPkuTHOUkSatxr4w1ZKrZsG0Zv/3C2SRVT0JFJG53VS45AMrBtYk0wp5A7ksEhiC8QaOZM95+A==} + dependencies: + '@types/hast': 2.3.4 + ccount: 2.0.1 comma-separated-tokens: 2.0.2 - css-selector-parser: 1.4.1 - direction: 2.0.1 - hast-util-has-property: 2.0.0 hast-util-is-element: 2.1.2 - hast-util-to-string: 2.0.0 hast-util-whitespace: 2.0.0 - not: 0.1.0 - nth-check: 2.1.1 + html-void-elements: 2.0.1 property-information: 6.1.1 space-separated-tokens: 2.0.1 - unist-util-visit: 4.1.0 + stringify-entities: 4.0.3 + unist-util-is: 5.1.1 + dev: true + + /hast-util-to-parse5/7.0.0: + resolution: {integrity: sha512-YHiS6aTaZ3N0Q3nxaY/Tj98D6kM8QX5Q8xqgg8G45zR7PvWnPGPP0vcKCgb/moIydEJ/QWczVrX0JODCVeoV7A==} + dependencies: + '@types/hast': 2.3.4 + '@types/parse5': 6.0.3 + hast-to-hyperscript: 10.0.1 + property-information: 6.1.1 + web-namespaces: 2.0.1 zwitch: 2.0.2 dev: true - /hast-util-to-string/2.0.0: - resolution: - { - integrity: sha512-02AQ3vLhuH3FisaMM+i/9sm4OXGSq1UhOOCpTLLQtHdL3tZt7qil69r8M8iDkZYyC0HCFylcYoP+8IO7ddta1A== - } + /hast-util-to-text/3.1.1: + resolution: {integrity: sha512-7S3mOBxACy8syL45hCn3J7rHqYaXkxRfsX6LXEU5Shz4nt4GxdjtMUtG+T6G/ZLUHd7kslFAf14kAN71bz30xA==} dependencies: - "@types/hast": 2.3.4 + '@types/hast': 2.3.4 + hast-util-is-element: 2.1.2 + unist-util-find-after: 4.0.0 dev: true /hast-util-whitespace/2.0.0: - resolution: - { - integrity: sha512-Pkw+xBHuV6xFeJprJe2BBEoDV+AvQySaz3pPDRUs5PNZEMQjpXJJueqrpcHIXxnWTcAGi/UOCgVShlkY6kLoqg== - } + resolution: {integrity: sha512-Pkw+xBHuV6xFeJprJe2BBEoDV+AvQySaz3pPDRUs5PNZEMQjpXJJueqrpcHIXxnWTcAGi/UOCgVShlkY6kLoqg==} dev: true /hastscript/5.1.2: - resolution: - { - integrity: sha512-WlztFuK+Lrvi3EggsqOkQ52rKbxkXL3RwB6t5lwoa8QLMemoWfBuL43eDrwOamJyR7uKQKdmKYaBH1NZBiIRrQ== - } + resolution: {integrity: sha512-WlztFuK+Lrvi3EggsqOkQ52rKbxkXL3RwB6t5lwoa8QLMemoWfBuL43eDrwOamJyR7uKQKdmKYaBH1NZBiIRrQ==} dependencies: comma-separated-tokens: 1.0.8 hast-util-parse-selector: 2.2.5 property-information: 5.6.0 space-separated-tokens: 1.1.5 - dev: false + dev: true - /he/1.2.0: - resolution: - { - integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== - } - hasBin: true + /hastscript/7.0.2: + resolution: {integrity: sha512-uA8ooUY4ipaBvKcMuPehTAB/YfFLSSzCwFSwT6ltJbocFUKH/GDHLN+tflq7lSRf9H86uOuxOFkh1KgIy3Gg2g==} + dependencies: + '@types/hast': 2.3.4 + comma-separated-tokens: 2.0.2 + hast-util-parse-selector: 3.1.0 + property-information: 6.1.1 + space-separated-tokens: 2.0.1 dev: true - /hosted-git-info/2.8.9: - resolution: - { - integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw== - } + /html-entities/2.3.3: + resolution: {integrity: sha512-DV5Ln36z34NNTDgnz0EWGBLZENelNAtkiFA4kyNOG2tDI6Mz1uSWiq1wAKdyjnJwyDiDO7Fa2SO1CTxPXL8VxA==} dev: true - /html-minifier/4.0.0: - resolution: - { - integrity: sha512-aoGxanpFPLg7MkIl/DDFYtb0iWz7jMFGqFhvEDZga6/4QTjneiD8I/NXL1x5aaoCp7FSIT6h/OhykDdPsbtMig== - } - engines: { node: ">=6" } - hasBin: true - dependencies: - camel-case: 3.0.0 - clean-css: 4.2.4 - commander: 2.20.3 - he: 1.2.0 - param-case: 2.1.1 - relateurl: 0.2.7 - uglify-js: 3.16.3 + /html-escaper/3.0.3: + resolution: {integrity: sha512-RuMffC89BOWQoY0WKGpIhn5gX3iI54O6nRA0yC124NYVtzjmFWBIiFd8M0x+ZdX0P9R4lADg1mgP8C7PxGOWuQ==} dev: true - /ical.js/1.5.0: - resolution: - { - integrity: sha512-7ZxMkogUkkaCx810yp0ZGKvq1ZpRgJeornPttpoxe6nYZ3NLesZe1wWMXDdwTkj/b5NtXT+Y16Aakph/ao98ZQ== - } - dev: false + /html-void-elements/2.0.1: + resolution: {integrity: sha512-0quDb7s97CfemeJAnW9wC0hw78MtW7NU3hqtCD75g2vFlDLt36llsYD7uB7SUzojLMP24N5IatXf7ylGXiGG9A==} + dev: true + + /human-signals/3.0.1: + resolution: {integrity: sha512-rQLskxnM/5OCldHo+wNXbpVgDn5A17CUoKX+7Sokwaknlq7CdSnphy0W39GU8dw59XiCXmFXDg4fRuckQRKewQ==} + engines: {node: '>=12.20.0'} + dev: true + + /ieee754/1.2.1: + resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} + dev: true - /ignore/5.2.0: - resolution: - { - integrity: sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ== - } - engines: { node: ">= 4" } + /image-q/4.0.0: + resolution: {integrity: sha512-PfJGVgIfKQJuq3s0tTDOKtztksibuUEbJQIYT3by6wctQo+Rdlh7ef4evJ5NCdxY4CfMbvFkocEwbl4BF8RlJw==} + dependencies: + '@types/node': 16.9.1 dev: true - /import-fresh/3.3.0: - resolution: - { - integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== - } - engines: { node: ">=6" } + /image-size/1.0.2: + resolution: {integrity: sha512-xfOoWjceHntRb3qFCrh5ZFORYH8XCdYpASltMhZ/Q0KZiOwjdE/Yl2QCiWdwD+lygV5bMCvauzgu5PxBX/Yerg==} + engines: {node: '>=14.0.0'} + hasBin: true dependencies: - parent-module: 1.0.1 - resolve-from: 4.0.0 + queue: 6.0.2 dev: true - /imurmurhash/0.1.4: - resolution: - { - integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA== - } - engines: { node: ">=0.8.19" } + /imagetools-core/3.0.2: + resolution: {integrity: sha512-DlArpNiefCc1syIqvOONcE8L8IahN8GjwaEjm6wIJIvuKoFoI1RcKmWWfS2dYxSlTiSp2X5b3JnHDjUXmWqlVA==} + engines: {node: '>=12.0.0'} + requiresBuild: true + dependencies: + sharp: 0.29.3 dev: true + optional: true /inflight/1.0.6: - resolution: - { - integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== - } + resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} dependencies: once: 1.4.0 wrappy: 1.0.2 dev: true /inherits/2.0.4: - resolution: - { - integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== - } + resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} dev: true - /internal-slot/1.0.3: - resolution: - { - integrity: sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA== - } - engines: { node: ">= 0.4" } - dependencies: - get-intrinsic: 1.1.2 - has: 1.0.3 - side-channel: 1.0.4 + /ini/1.3.8: + resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==} dev: true - /is-bigint/1.0.4: - resolution: - { - integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg== - } - dependencies: - has-bigints: 1.0.2 + /inline-style-parser/0.1.1: + resolution: {integrity: sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q==} dev: true - /is-binary-path/2.1.0: - resolution: - { - integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== - } - engines: { node: ">=8" } - dependencies: - binary-extensions: 2.2.0 + /is-alphabetical/2.0.1: + resolution: {integrity: sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==} dev: true - /is-boolean-object/1.1.2: - resolution: - { - integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA== - } - engines: { node: ">= 0.4" } + /is-alphanumerical/2.0.1: + resolution: {integrity: sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw==} dependencies: - call-bind: 1.0.2 - has-tostringtag: 1.0.0 + is-alphabetical: 2.0.1 + is-decimal: 2.0.1 dev: true - /is-buffer/2.0.5: - resolution: - { - integrity: sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ== - } - engines: { node: ">=4" } + /is-arrayish/0.3.2: + resolution: {integrity: sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==} + dev: true + + /is-binary-path/2.1.0: + resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} + engines: {node: '>=8'} + dependencies: + binary-extensions: 2.2.0 - /is-callable/1.2.4: - resolution: - { - integrity: sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w== - } - engines: { node: ">= 0.4" } + /is-buffer/2.0.5: + resolution: {integrity: sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==} + engines: {node: '>=4'} dev: true /is-core-module/2.10.0: - resolution: - { - integrity: sha512-Erxj2n/LDAZ7H8WNJXd9tw38GYM3dv8rk8Zcs+jJuxYTW7sozH+SS8NtrSjVL1/vpLvWi1hxy96IzjJ3EHTJJg== - } + resolution: {integrity: sha512-Erxj2n/LDAZ7H8WNJXd9tw38GYM3dv8rk8Zcs+jJuxYTW7sozH+SS8NtrSjVL1/vpLvWi1hxy96IzjJ3EHTJJg==} dependencies: has: 1.0.3 - dev: true - /is-date-object/1.0.5: - resolution: - { - integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ== - } - engines: { node: ">= 0.4" } - dependencies: - has-tostringtag: 1.0.0 + /is-decimal/2.0.1: + resolution: {integrity: sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==} dev: true /is-docker/2.2.1: - resolution: - { - integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ== - } - engines: { node: ">=8" } + resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==} + engines: {node: '>=8'} hasBin: true dev: true + /is-docker/3.0.0: + resolution: {integrity: sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + hasBin: true + dev: true + + /is-extendable/0.1.1: + resolution: {integrity: sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==} + engines: {node: '>=0.10.0'} + dev: true + /is-extglob/2.1.1: - resolution: - { - integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== - } - engines: { node: ">=0.10.0" } + resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} + engines: {node: '>=0.10.0'} + + /is-fullwidth-code-point/3.0.0: + resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} + engines: {node: '>=8'} + dev: true + + /is-function/1.0.2: + resolution: {integrity: sha512-lw7DUp0aWXYg+CBCN+JKkcE0Q2RayZnSvnZBlwgxHBQhqt5pZNVy4Ri7H9GmmXkdu7LUthszM+Tor1u/2iBcpQ==} dev: true /is-glob/4.0.3: - resolution: - { - integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== - } - engines: { node: ">=0.10.0" } + resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} + engines: {node: '>=0.10.0'} dependencies: is-extglob: 2.1.1 - dev: true - /is-negative-zero/2.0.2: - resolution: - { - integrity: sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA== - } - engines: { node: ">= 0.4" } + /is-hexadecimal/2.0.1: + resolution: {integrity: sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==} dev: true - /is-number-object/1.0.7: - resolution: - { - integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ== - } - engines: { node: ">= 0.4" } - dependencies: - has-tostringtag: 1.0.0 + /is-interactive/2.0.0: + resolution: {integrity: sha512-qP1vozQRI+BMOPcjFzrjXuQvdak2pHNUMZoeG2eRbiSqyvbEf/wQtEOTOX1guk6E3t36RkaqiSt8A/6YElNxLQ==} + engines: {node: '>=12'} dev: true /is-number/7.0.0: - resolution: - { - integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== - } - engines: { node: ">=0.12.0" } - dev: true + resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} + engines: {node: '>=0.12.0'} /is-plain-obj/2.1.0: - resolution: - { - integrity: sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA== - } - engines: { node: ">=8" } - dev: false - - /is-plain-obj/4.1.0: - resolution: - { - integrity: sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg== - } - engines: { node: ">=12" } + resolution: {integrity: sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==} + engines: {node: '>=8'} + dev: true - /is-regex/1.1.4: - resolution: - { - integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg== - } - engines: { node: ">= 0.4" } - dependencies: - call-bind: 1.0.2 - has-tostringtag: 1.0.0 + /is-plain-obj/3.0.0: + resolution: {integrity: sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==} + engines: {node: '>=10'} dev: true - /is-shared-array-buffer/1.0.2: - resolution: - { - integrity: sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA== - } - dependencies: - call-bind: 1.0.2 + /is-plain-obj/4.1.0: + resolution: {integrity: sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==} + engines: {node: '>=12'} dev: true - /is-string/1.0.7: - resolution: - { - integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg== - } - engines: { node: ">= 0.4" } + /is-reference/3.0.0: + resolution: {integrity: sha512-Eo1W3wUoHWoCoVM4GVl/a+K0IgiqE5aIo4kJABFyMum1ZORlPkC+UC357sSQUL5w5QCE5kCC9upl75b7+7CY/Q==} dependencies: - has-tostringtag: 1.0.0 + '@types/estree': 1.0.0 dev: true - /is-symbol/1.0.4: - resolution: - { - integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg== - } - engines: { node: ">= 0.4" } - dependencies: - has-symbols: 1.0.3 + /is-stream/3.0.0: + resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dev: true - /is-weakref/1.0.2: - resolution: - { - integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ== - } - dependencies: - call-bind: 1.0.2 + /is-unicode-supported/1.2.0: + resolution: {integrity: sha512-wH+U77omcRzevfIG8dDhTS0V9zZyweakfD01FULl97+0EHiJTTZtJqxPSkIIo/SDPv/i07k/C9jAPY+jwLLeUQ==} + engines: {node: '>=12'} dev: true /is-wsl/2.2.0: - resolution: - { - integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww== - } - engines: { node: ">=8" } + resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==} + engines: {node: '>=8'} dependencies: is-docker: 2.2.1 dev: true /isexe/2.0.0: - resolution: - { - integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== - } + resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} dev: true - /jju/1.4.0: - resolution: - { - integrity: sha512-8wb9Yw966OSxApiCt0K3yNJL8pnNeIv+OEq2YMidz4FKP6nonSRoOXc80iXY4JaN2FC11B9qsNmDsm+ZOfMROA== - } + /jimp/0.14.0: + resolution: {integrity: sha512-8BXU+J8+SPmwwyq9ELihpSV4dWPTiOKBWCEgtkbnxxAVMjXdf3yGmyaLSshBfXc8sP/JQ9OZj5R8nZzz2wPXgA==} + dependencies: + '@babel/runtime': 7.18.9 + '@jimp/custom': 0.14.0 + '@jimp/plugins': 0.14.0_@jimp+custom@0.14.0 + '@jimp/types': 0.14.0_@jimp+custom@0.14.0 + regenerator-runtime: 0.13.9 + dev: true + + /jpeg-js/0.4.4: + resolution: {integrity: sha512-WZzeDOEtTOBK4Mdsar0IqEU5sMr3vSV2RqkAIzUEV2BHnUfKGyswWFPFwK5EeDo93K3FohSHbLAjj0s1Wzd+dg==} + dev: true + + /js-tokens/4.0.0: + resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} dev: true - /js-yaml/4.1.0: - resolution: - { - integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== - } + /js-yaml/3.14.1: + resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==} hasBin: true dependencies: - argparse: 2.0.1 + argparse: 1.0.10 + esprima: 4.0.1 dev: true - /json-parse-even-better-errors/2.3.1: - resolution: - { - integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== - } + /jsesc/2.5.2: + resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==} + engines: {node: '>=4'} + hasBin: true dev: true - /json-schema-traverse/0.4.1: - resolution: - { - integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== - } + /json5/2.2.1: + resolution: {integrity: sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==} + engines: {node: '>=6'} + hasBin: true dev: true - /json-stable-stringify-without-jsonify/1.0.1: - resolution: - { - integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw== - } + /jsonc-parser/2.3.1: + resolution: {integrity: sha512-H8jvkz1O50L3dMZCsLqiuB2tA7muqbSg1AtGEkN0leAqGjsUzDJir3Zwr02BhqdcITPg3ei3mZ+HjMocAknhhg==} dev: true - /json5/1.0.1: - resolution: - { - integrity: sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow== - } - hasBin: true - dependencies: - minimist: 1.2.6 + /jsonc-parser/3.1.0: + resolution: {integrity: sha512-DRf0QjnNeCUds3xTjKlQQ3DpJD51GvDjJfnxUVWg6PZTo2otSm+slzNAxU/35hF8/oJIKoG9slq30JYOsF2azg==} dev: true - /katex/0.15.6: - resolution: - { - integrity: sha512-UpzJy4yrnqnhXvRPhjEuLA4lcPn6eRngixW7Q3TJErjg3Aw2PuLFBzTkdUb89UtumxjhHTqL3a5GDGETMSwgJA== - } + /katex/0.13.24: + resolution: {integrity: sha512-jZxYuKCma3VS5UuxOx/rFV1QyGSl3Uy/i0kTJF3HgQ5xMinCQVF8Zd4bMY/9aI9b9A2pjIBOsjSSm68ykTAr8w==} hasBin: true dependencies: commander: 8.3.0 dev: true - /katex/0.16.0: - resolution: - { - integrity: sha512-wPRB4iUPysfH97wTgG5/tRLYxmKVq6Q4jRAWRVOUxXB1dsiv4cvcNjqabHkrOvJHM1Bpk3WrgmllSO1vIvP24w== - } + /katex/0.15.6: + resolution: {integrity: sha512-UpzJy4yrnqnhXvRPhjEuLA4lcPn6eRngixW7Q3TJErjg3Aw2PuLFBzTkdUb89UtumxjhHTqL3a5GDGETMSwgJA==} hasBin: true dependencies: commander: 8.3.0 dev: true + /kind-of/6.0.3: + resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==} + engines: {node: '>=0.10.0'} + dev: true + + /kleur/3.0.3: + resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==} + engines: {node: '>=6'} + dev: true + /kleur/4.1.5: - resolution: - { - integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ== - } - engines: { node: ">=6" } - - /levn/0.4.1: - resolution: - { - integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ== - } - engines: { node: ">= 0.8.0" } - dependencies: - prelude-ls: 1.2.1 - type-check: 0.4.0 - dev: true - - /license-checker/25.0.1: - resolution: - { - integrity: sha512-mET5AIwl7MR2IAKYYoVBBpV0OnkKQ1xGj2IMMeEFIs42QAkEVjRtFZGWmQ28WeU7MP779iAgOaOy93Mn44mn6g== - } - hasBin: true - dependencies: - chalk: 2.4.2 - debug: 3.2.7 - mkdirp: 0.5.6 - nopt: 4.0.3 - read-installed: 4.0.3 - semver: 5.7.1 - spdx-correct: 3.1.1 - spdx-expression-parse: 3.0.1 - spdx-satisfies: 4.0.1 - treeify: 1.1.0 - transitivePeerDependencies: - - supports-color + resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==} + engines: {node: '>=6'} dev: true /lilconfig/2.0.6: - resolution: - { - integrity: sha512-9JROoBW7pobfsx+Sq2JsASvCo6Pfo6WWoUW79HuB1BCoBXD4PLWJPqDF6fNj67pqBYTbAHkE57M1kS/+L1neOg== - } - engines: { node: ">=10" } + resolution: {integrity: sha512-9JROoBW7pobfsx+Sq2JsASvCo6Pfo6WWoUW79HuB1BCoBXD4PLWJPqDF6fNj67pqBYTbAHkE57M1kS/+L1neOg==} + engines: {node: '>=10'} + + /load-bmfont/1.4.1: + resolution: {integrity: sha512-8UyQoYmdRDy81Brz6aLAUhfZLwr5zV0L3taTQ4hju7m6biuwiWiJXjPhBJxbUQJA8PrkvJ/7Enqmwk2sM14soA==} + dependencies: + buffer-equal: 0.0.1 + mime: 1.6.0 + parse-bmfont-ascii: 1.0.6 + parse-bmfont-binary: 1.0.6 + parse-bmfont-xml: 1.1.4 + phin: 2.9.3 + xhr: 2.6.0 + xtend: 4.0.2 + dev: true + + /load-yaml-file/0.2.0: + resolution: {integrity: sha512-OfCBkGEw4nN6JLtgRidPX6QxjBQGQf72q3si2uvqyFEMbycSFFHwAZeXx6cJgFM9wmLrf9zBwCP3Ivqa+LLZPw==} + engines: {node: '>=6'} + dependencies: + graceful-fs: 4.2.10 + js-yaml: 3.14.1 + pify: 4.0.1 + strip-bom: 3.0.0 dev: true - /locate-path/2.0.0: - resolution: - { - integrity: sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA== - } - engines: { node: ">=4" } + /locate-path/5.0.0: + resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} + engines: {node: '>=8'} dependencies: - p-locate: 2.0.0 - path-exists: 3.0.0 + p-locate: 4.1.0 dev: true /locate-path/6.0.0: - resolution: - { - integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw== - } - engines: { node: ">=10" } + resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} + engines: {node: '>=10'} dependencies: p-locate: 5.0.0 dev: true - /lodash.castarray/4.4.0: - resolution: - { - integrity: sha512-aVx8ztPv7/2ULbArGJ2Y42bG1mEQ5mGjpdvrbJcJFU3TbYybe+QlLS4pst9zV52ymy2in1KpFPiZnAOATxD4+Q== - } + /locate-path/7.1.1: + resolution: {integrity: sha512-vJXaRMJgRVD3+cUZs3Mncj2mxpt5mP0EmNOsxRSZRMlbqjvxzDEOIUWXGmavo0ZC9+tNZCBLQ66reA11nbpHZg==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + p-locate: 6.0.0 dev: true + /lodash.castarray/4.4.0: + resolution: {integrity: sha512-aVx8ztPv7/2ULbArGJ2Y42bG1mEQ5mGjpdvrbJcJFU3TbYybe+QlLS4pst9zV52ymy2in1KpFPiZnAOATxD4+Q==} + dev: false + /lodash.isplainobject/4.0.6: - resolution: - { - integrity: sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA== - } - dev: true + resolution: {integrity: sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==} + dev: false /lodash.merge/4.6.2: - resolution: - { - integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== - } - dev: true + resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} + dev: false - /lodash/4.17.21: - resolution: - { - integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== - } + /log-symbols/5.1.0: + resolution: {integrity: sha512-l0x2DvrW294C9uDCoQe1VSU4gf529FkSZ6leBl4TiqZH/e+0R7hSfHQBNut2mNygDgHwvYHfFLn6Oxb3VWj2rA==} + engines: {node: '>=12'} + dependencies: + chalk: 5.0.1 + is-unicode-supported: 1.2.0 dev: true /longest-streak/3.0.1: - resolution: - { - integrity: sha512-cHlYSUpL2s7Fb3394mYxwTYj8niTaNHUCLr0qdiCXQfSjfuA7CKofpX2uSwEfFDQ0EB7JcnMnm+GjbqqoinYYg== - } + resolution: {integrity: sha512-cHlYSUpL2s7Fb3394mYxwTYj8niTaNHUCLr0qdiCXQfSjfuA7CKofpX2uSwEfFDQ0EB7JcnMnm+GjbqqoinYYg==} dev: true - /lower-case/1.1.4: - resolution: - { - integrity: sha512-2Fgx1Ycm599x+WGpIYwJOvsjmXFzTSc34IwDWALRA/8AopUKAVPwfJ+h5+f85BCp0PWmmJcWzEpxOpoXycMpdA== - } + /lower-case/2.0.2: + resolution: {integrity: sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==} + dependencies: + tslib: 2.4.0 dev: true /lru-cache/6.0.0: - resolution: - { - integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== - } - engines: { node: ">=10" } + resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} + engines: {node: '>=10'} dependencies: yallist: 4.0.0 dev: true /magic-string/0.25.9: - resolution: - { - integrity: sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ== - } + resolution: {integrity: sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==} dependencies: sourcemap-codec: 1.4.8 dev: true /magic-string/0.26.2: - resolution: - { - integrity: sha512-NzzlXpclt5zAbmo6h6jNc8zl2gNRGHvmsZW4IvZhTC4W7k4OlLP+S5YLussa/r3ixNT66KOQfNORlXHSOy/X4A== - } - engines: { node: ">=12" } + resolution: {integrity: sha512-NzzlXpclt5zAbmo6h6jNc8zl2gNRGHvmsZW4IvZhTC4W7k4OlLP+S5YLussa/r3ixNT66KOQfNORlXHSOy/X4A==} + engines: {node: '>=12'} dependencies: sourcemap-codec: 1.4.8 dev: true + /make-dir/3.1.0: + resolution: {integrity: sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==} + engines: {node: '>=8'} + dependencies: + semver: 6.3.0 + dev: true + + /markdown-extensions/1.1.1: + resolution: {integrity: sha512-WWC0ZuMzCyDHYCasEGs4IPvLyTGftYwh6wIEOULOF0HXcqZlhwRzrK0w2VUlxWA98xnvb/jszw4ZSkJ6ADpM6Q==} + engines: {node: '>=0.10.0'} + dev: true + /markdown-table/3.0.2: - resolution: - { - integrity: sha512-y8j3a5/DkJCmS5x4dMCQL+OR0+2EAq3DOtio1COSHsmW2BGXnNCK3v12hJt1LrUz5iZH5g0LmuYOjDdI+czghA== - } + resolution: {integrity: sha512-y8j3a5/DkJCmS5x4dMCQL+OR0+2EAq3DOtio1COSHsmW2BGXnNCK3v12hJt1LrUz5iZH5g0LmuYOjDdI+czghA==} + dev: true + + /mdast-util-definitions/5.1.1: + resolution: {integrity: sha512-rQ+Gv7mHttxHOBx2dkF4HWTg+EE+UR78ptQWDylzPKaQuVGdG4HIoY3SrS/pCp80nZ04greFvXbVFHT+uf0JVQ==} + dependencies: + '@types/mdast': 3.0.10 + '@types/unist': 2.0.6 + unist-util-visit: 4.1.1 + dev: true + + /mdast-util-directive/2.2.1: + resolution: {integrity: sha512-yZRRuaulzc6bM4IOyZfkOrVs+9Sf1BC+rldRXJyl/Ej6S/6ewQQ9jt75HvEoqZZ4m9ealVTHiS4MP2GRUE7INA==} + dependencies: + '@types/mdast': 3.0.10 + '@types/unist': 2.0.6 + mdast-util-to-markdown: 1.3.0 + parse-entities: 4.0.0 + stringify-entities: 4.0.3 + unist-util-visit-parents: 5.1.1 dev: true /mdast-util-find-and-replace/2.2.1: - resolution: - { - integrity: sha512-SobxkQXFAdd4b5WmEakmkVoh18icjQRxGy5OWTCzgsLRm1Fu/KCtwD1HIQSsmq5ZRjVH0Ehwg6/Fn3xIUk+nKw== - } + resolution: {integrity: sha512-SobxkQXFAdd4b5WmEakmkVoh18icjQRxGy5OWTCzgsLRm1Fu/KCtwD1HIQSsmq5ZRjVH0Ehwg6/Fn3xIUk+nKw==} dependencies: escape-string-regexp: 5.0.0 unist-util-is: 5.1.1 - unist-util-visit-parents: 5.1.0 + unist-util-visit-parents: 5.1.1 dev: true /mdast-util-from-markdown/1.2.0: - resolution: - { - integrity: sha512-iZJyyvKD1+K7QX1b5jXdE7Sc5dtoTry1vzV28UZZe8Z1xVnB/czKntJ7ZAkG0tANqRnBF6p3p7GpU1y19DTf2Q== - } + resolution: {integrity: sha512-iZJyyvKD1+K7QX1b5jXdE7Sc5dtoTry1vzV28UZZe8Z1xVnB/czKntJ7ZAkG0tANqRnBF6p3p7GpU1y19DTf2Q==} dependencies: - "@types/mdast": 3.0.10 - "@types/unist": 2.0.6 + '@types/mdast': 3.0.10 + '@types/unist': 2.0.6 decode-named-character-reference: 1.0.2 mdast-util-to-string: 3.1.0 micromark: 3.0.10 @@ -3072,45 +2995,40 @@ packages: uvu: 0.5.6 transitivePeerDependencies: - supports-color + dev: true + + /mdast-util-frontmatter/1.0.0: + resolution: {integrity: sha512-7itKvp0arEVNpCktOET/eLFAYaZ+0cNjVtFtIPxgQ5tV+3i+D4SDDTjTzPWl44LT59PC+xdx+glNTawBdF98Mw==} + dependencies: + micromark-extension-frontmatter: 1.0.0 + dev: true /mdast-util-gfm-autolink-literal/1.0.2: - resolution: - { - integrity: sha512-FzopkOd4xTTBeGXhXSBU0OCDDh5lUj2rd+HQqG92Ld+jL4lpUfgX2AT2OHAVP9aEeDKp7G92fuooSZcYJA3cRg== - } + resolution: {integrity: sha512-FzopkOd4xTTBeGXhXSBU0OCDDh5lUj2rd+HQqG92Ld+jL4lpUfgX2AT2OHAVP9aEeDKp7G92fuooSZcYJA3cRg==} dependencies: - "@types/mdast": 3.0.10 + '@types/mdast': 3.0.10 ccount: 2.0.1 mdast-util-find-and-replace: 2.2.1 micromark-util-character: 1.1.0 dev: true /mdast-util-gfm-footnote/1.0.1: - resolution: - { - integrity: sha512-p+PrYlkw9DeCRkTVw1duWqPRHX6Ywh2BNKJQcZbCwAuP/59B0Lk9kakuAd7KbQprVO4GzdW8eS5++A9PUSqIyw== - } + resolution: {integrity: sha512-p+PrYlkw9DeCRkTVw1duWqPRHX6Ywh2BNKJQcZbCwAuP/59B0Lk9kakuAd7KbQprVO4GzdW8eS5++A9PUSqIyw==} dependencies: - "@types/mdast": 3.0.10 + '@types/mdast': 3.0.10 mdast-util-to-markdown: 1.3.0 micromark-util-normalize-identifier: 1.0.0 dev: true /mdast-util-gfm-strikethrough/1.0.1: - resolution: - { - integrity: sha512-zKJbEPe+JP6EUv0mZ0tQUyLQOC+FADt0bARldONot/nefuISkaZFlmVK4tU6JgfyZGrky02m/I6PmehgAgZgqg== - } + resolution: {integrity: sha512-zKJbEPe+JP6EUv0mZ0tQUyLQOC+FADt0bARldONot/nefuISkaZFlmVK4tU6JgfyZGrky02m/I6PmehgAgZgqg==} dependencies: - "@types/mdast": 3.0.10 + '@types/mdast': 3.0.10 mdast-util-to-markdown: 1.3.0 dev: true /mdast-util-gfm-table/1.0.4: - resolution: - { - integrity: sha512-aEuoPwZyP4iIMkf2cLWXxx3EQ6Bmh2yKy9MVCg4i6Sd3cX80dcLEfXO/V4ul3pGH9czBK4kp+FAl+ZHmSUt9/w== - } + resolution: {integrity: sha512-aEuoPwZyP4iIMkf2cLWXxx3EQ6Bmh2yKy9MVCg4i6Sd3cX80dcLEfXO/V4ul3pGH9czBK4kp+FAl+ZHmSUt9/w==} dependencies: markdown-table: 3.0.2 mdast-util-from-markdown: 1.2.0 @@ -3120,20 +3038,14 @@ packages: dev: true /mdast-util-gfm-task-list-item/1.0.1: - resolution: - { - integrity: sha512-KZ4KLmPdABXOsfnM6JHUIjxEvcx2ulk656Z/4Balw071/5qgnhz+H1uGtf2zIGnrnvDC8xR4Fj9uKbjAFGNIeA== - } + resolution: {integrity: sha512-KZ4KLmPdABXOsfnM6JHUIjxEvcx2ulk656Z/4Balw071/5qgnhz+H1uGtf2zIGnrnvDC8xR4Fj9uKbjAFGNIeA==} dependencies: - "@types/mdast": 3.0.10 + '@types/mdast': 3.0.10 mdast-util-to-markdown: 1.3.0 dev: true /mdast-util-gfm/2.0.1: - resolution: - { - integrity: sha512-42yHBbfWIFisaAfV1eixlabbsa6q7vHeSPY+cg+BBjX51M8xhgMacqH9g6TftB/9+YkcI0ooV4ncfrJslzm/RQ== - } + resolution: {integrity: sha512-42yHBbfWIFisaAfV1eixlabbsa6q7vHeSPY+cg+BBjX51M8xhgMacqH9g6TftB/9+YkcI0ooV4ncfrJslzm/RQ==} dependencies: mdast-util-from-markdown: 1.2.0 mdast-util-gfm-autolink-literal: 1.0.2 @@ -3146,55 +3058,122 @@ packages: - supports-color dev: true + /mdast-util-math/2.0.1: + resolution: {integrity: sha512-ZZtjyRwobsiVg4bY0Q5CzAZztpbjRIA7ZlMMb0PNkwTXOnJTUoHvzBhVG95LIuek5Mlj1l2P+jBvWviqW7G+0A==} + dependencies: + '@types/mdast': 3.0.10 + longest-streak: 3.0.1 + mdast-util-to-markdown: 1.3.0 + dev: true + + /mdast-util-mdx-expression/1.3.0: + resolution: {integrity: sha512-9kTO13HaL/ChfzVCIEfDRdp1m5hsvsm6+R8yr67mH+KS2ikzZ0ISGLPTbTswOFpLLlgVHO9id3cul4ajutCvCA==} + dependencies: + '@types/estree-jsx': 1.0.0 + '@types/hast': 2.3.4 + '@types/mdast': 3.0.10 + mdast-util-from-markdown: 1.2.0 + mdast-util-to-markdown: 1.3.0 + transitivePeerDependencies: + - supports-color + dev: true + + /mdast-util-mdx-jsx/1.2.0: + resolution: {integrity: sha512-5+ot/kfxYd3ChgEMwsMUO71oAfYjyRI3pADEK4I7xTmWLGQ8Y7ghm1CG36zUoUvDPxMlIYwQV/9DYHAUWdG4dA==} + dependencies: + '@types/estree-jsx': 0.0.1 + '@types/mdast': 3.0.10 + mdast-util-to-markdown: 1.3.0 + parse-entities: 4.0.0 + stringify-entities: 4.0.3 + unist-util-remove-position: 4.0.1 + unist-util-stringify-position: 3.0.2 + vfile-message: 3.1.2 + dev: true + + /mdast-util-mdx-jsx/2.1.0: + resolution: {integrity: sha512-KzgzfWMhdteDkrY4mQtyvTU5bc/W4ppxhe9SzelO6QUUiwLAM+Et2Dnjjprik74a336kHdo0zKm7Tp+n6FFeRg==} + dependencies: + '@types/estree-jsx': 1.0.0 + '@types/hast': 2.3.4 + '@types/mdast': 3.0.10 + ccount: 2.0.1 + mdast-util-to-markdown: 1.3.0 + parse-entities: 4.0.0 + stringify-entities: 4.0.3 + unist-util-remove-position: 4.0.1 + unist-util-stringify-position: 3.0.2 + vfile-message: 3.1.2 + dev: true + + /mdast-util-mdx/2.0.0: + resolution: {integrity: sha512-M09lW0CcBT1VrJUaF/PYxemxxHa7SLDHdSn94Q9FhxjCQfuW7nMAWKWimTmA3OyDMSTH981NN1csW1X+HPSluw==} + dependencies: + mdast-util-mdx-expression: 1.3.0 + mdast-util-mdx-jsx: 2.1.0 + mdast-util-mdxjs-esm: 1.3.0 + transitivePeerDependencies: + - supports-color + dev: true + + /mdast-util-mdxjs-esm/1.3.0: + resolution: {integrity: sha512-7N5ihsOkAEGjFotIX9p/YPdl4TqUoMxL4ajNz7PbT89BqsdWJuBC9rvgt6wpbwTZqWWR0jKWqQbwsOWDBUZv4g==} + dependencies: + '@types/estree-jsx': 1.0.0 + '@types/hast': 2.3.4 + '@types/mdast': 3.0.10 + mdast-util-from-markdown: 1.2.0 + mdast-util-to-markdown: 1.3.0 + transitivePeerDependencies: + - supports-color + dev: true + + /mdast-util-to-hast/12.2.0: + resolution: {integrity: sha512-YDwT5KhGzLgPpSnQhAlK1+WpCW4gsPmNNAxUNMkMTDhxQyPp2eX86WOelnKnLKEvSpfxqJbPbInHFkefXZBhEA==} + dependencies: + '@types/hast': 2.3.4 + '@types/mdast': 3.0.10 + '@types/mdurl': 1.0.2 + mdast-util-definitions: 5.1.1 + mdurl: 1.0.1 + micromark-util-sanitize-uri: 1.0.0 + trim-lines: 3.0.1 + unist-builder: 3.0.0 + unist-util-generated: 2.0.0 + unist-util-position: 4.0.3 + unist-util-visit: 4.1.1 + dev: true + /mdast-util-to-markdown/1.3.0: - resolution: - { - integrity: sha512-6tUSs4r+KK4JGTTiQ7FfHmVOaDrLQJPmpjD6wPMlHGUVXoG9Vjc3jIeP+uyBWRf8clwB2blM+W7+KrlMYQnftA== - } + resolution: {integrity: sha512-6tUSs4r+KK4JGTTiQ7FfHmVOaDrLQJPmpjD6wPMlHGUVXoG9Vjc3jIeP+uyBWRf8clwB2blM+W7+KrlMYQnftA==} dependencies: - "@types/mdast": 3.0.10 - "@types/unist": 2.0.6 + '@types/mdast': 3.0.10 + '@types/unist': 2.0.6 longest-streak: 3.0.1 mdast-util-to-string: 3.1.0 micromark-util-decode-string: 1.0.2 - unist-util-visit: 4.1.0 + unist-util-visit: 4.1.1 zwitch: 2.0.2 dev: true /mdast-util-to-string/3.1.0: - resolution: - { - integrity: sha512-n4Vypz/DZgwo0iMHLQL49dJzlp7YtAJP+N07MZHpjPf/5XJuHUWstviF4Mn2jEiR/GNmtnRRqnwsXExk3igfFA== - } - - /mdsvex/0.10.6_svelte@3.49.0: - resolution: - { - integrity: sha512-aGRDY0r5jx9+OOgFdyB9Xm3EBr9OUmcrTDPWLB7a7g8VPRxzPy4MOBmcVYgz7ErhAJ7bZ/coUoj6aHio3x/2mA== - } - peerDependencies: - svelte: 3.x - dependencies: - "@types/unist": 2.0.6 - prism-svelte: 0.4.7 - prismjs: 1.28.0 - svelte: 3.49.0 - vfile-message: 2.0.4 + resolution: {integrity: sha512-n4Vypz/DZgwo0iMHLQL49dJzlp7YtAJP+N07MZHpjPf/5XJuHUWstviF4Mn2jEiR/GNmtnRRqnwsXExk3igfFA==} dev: true - /merge2/1.4.1: - resolution: - { - integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== - } - engines: { node: ">= 8" } + /mdurl/1.0.1: + resolution: {integrity: sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g==} dev: true + /merge-stream/2.0.0: + resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} + dev: true + + /merge2/1.4.1: + resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} + engines: {node: '>= 8'} + /micromark-core-commonmark/1.0.6: - resolution: - { - integrity: sha512-K+PkJTxqjFfSNkfAhp4GB+cZPfQd6dxtTXnf+RjZOV7T4EEXnvgzOcnp+eSTmpGk9d1S9sL6/lqrgSNn/s0HZA== - } + resolution: {integrity: sha512-K+PkJTxqjFfSNkfAhp4GB+cZPfQd6dxtTXnf+RjZOV7T4EEXnvgzOcnp+eSTmpGk9d1S9sL6/lqrgSNn/s0HZA==} dependencies: decode-named-character-reference: 1.0.2 micromark-factory-destination: 1.0.0 @@ -3212,12 +3191,30 @@ packages: micromark-util-symbol: 1.0.1 micromark-util-types: 1.0.2 uvu: 0.5.6 + dev: true + + /micromark-extension-directive/2.1.1: + resolution: {integrity: sha512-+7MYZ3a10cpPrQRg3530srFMSBx0EL7gQaJ3ekguOQFSlJHLikW15AphBmNxvCNdRSWTX1R8RepzjKQra8INQw==} + dependencies: + micromark-factory-space: 1.0.0 + micromark-factory-whitespace: 1.0.0 + micromark-util-character: 1.1.0 + micromark-util-symbol: 1.0.1 + micromark-util-types: 1.0.2 + parse-entities: 4.0.0 + uvu: 0.5.6 + dev: true + + /micromark-extension-frontmatter/1.0.0: + resolution: {integrity: sha512-EXjmRnupoX6yYuUJSQhrQ9ggK0iQtQlpi6xeJzVD5xscyAI+giqco5fdymayZhJMbIFecjnE2yz85S9NzIgQpg==} + dependencies: + fault: 2.0.1 + micromark-util-character: 1.1.0 + micromark-util-symbol: 1.0.1 + dev: true /micromark-extension-gfm-autolink-literal/1.0.3: - resolution: - { - integrity: sha512-i3dmvU0htawfWED8aHMMAzAVp/F0Z+0bPh3YrbTPPL1v4YAlCZpy5rBO5p0LPYiZo0zFVkoYh7vDU7yQSiCMjg== - } + resolution: {integrity: sha512-i3dmvU0htawfWED8aHMMAzAVp/F0Z+0bPh3YrbTPPL1v4YAlCZpy5rBO5p0LPYiZo0zFVkoYh7vDU7yQSiCMjg==} dependencies: micromark-util-character: 1.1.0 micromark-util-sanitize-uri: 1.0.0 @@ -3227,10 +3224,7 @@ packages: dev: true /micromark-extension-gfm-footnote/1.0.4: - resolution: - { - integrity: sha512-E/fmPmDqLiMUP8mLJ8NbJWJ4bTw6tS+FEQS8CcuDtZpILuOb2kjLqPEeAePF1djXROHXChM/wPJw0iS4kHCcIg== - } + resolution: {integrity: sha512-E/fmPmDqLiMUP8mLJ8NbJWJ4bTw6tS+FEQS8CcuDtZpILuOb2kjLqPEeAePF1djXROHXChM/wPJw0iS4kHCcIg==} dependencies: micromark-core-commonmark: 1.0.6 micromark-factory-space: 1.0.0 @@ -3243,10 +3237,7 @@ packages: dev: true /micromark-extension-gfm-strikethrough/1.0.4: - resolution: - { - integrity: sha512-/vjHU/lalmjZCT5xt7CcHVJGq8sYRm80z24qAKXzaHzem/xsDYb2yLL+NNVbYvmpLx3O7SYPuGL5pzusL9CLIQ== - } + resolution: {integrity: sha512-/vjHU/lalmjZCT5xt7CcHVJGq8sYRm80z24qAKXzaHzem/xsDYb2yLL+NNVbYvmpLx3O7SYPuGL5pzusL9CLIQ==} dependencies: micromark-util-chunked: 1.0.0 micromark-util-classify-character: 1.0.0 @@ -3257,10 +3248,7 @@ packages: dev: true /micromark-extension-gfm-table/1.0.5: - resolution: - { - integrity: sha512-xAZ8J1X9W9K3JTJTUL7G6wSKhp2ZYHrFk5qJgY/4B33scJzE2kpfRL6oiw/veJTbt7jiM/1rngLlOKPWr1G+vg== - } + resolution: {integrity: sha512-xAZ8J1X9W9K3JTJTUL7G6wSKhp2ZYHrFk5qJgY/4B33scJzE2kpfRL6oiw/veJTbt7jiM/1rngLlOKPWr1G+vg==} dependencies: micromark-factory-space: 1.0.0 micromark-util-character: 1.1.0 @@ -3270,19 +3258,13 @@ packages: dev: true /micromark-extension-gfm-tagfilter/1.0.1: - resolution: - { - integrity: sha512-Ty6psLAcAjboRa/UKUbbUcwjVAv5plxmpUTy2XC/3nJFL37eHej8jrHrRzkqcpipJliuBH30DTs7+3wqNcQUVA== - } + resolution: {integrity: sha512-Ty6psLAcAjboRa/UKUbbUcwjVAv5plxmpUTy2XC/3nJFL37eHej8jrHrRzkqcpipJliuBH30DTs7+3wqNcQUVA==} dependencies: micromark-util-types: 1.0.2 dev: true /micromark-extension-gfm-task-list-item/1.0.3: - resolution: - { - integrity: sha512-PpysK2S1Q/5VXi72IIapbi/jliaiOFzv7THH4amwXeYXLq3l1uo8/2Be0Ac1rEwK20MQEsGH2ltAZLNY2KI/0Q== - } + resolution: {integrity: sha512-PpysK2S1Q/5VXi72IIapbi/jliaiOFzv7THH4amwXeYXLq3l1uo8/2Be0Ac1rEwK20MQEsGH2ltAZLNY2KI/0Q==} dependencies: micromark-factory-space: 1.0.0 micromark-util-character: 1.1.0 @@ -3292,10 +3274,7 @@ packages: dev: true /micromark-extension-gfm/2.0.1: - resolution: - { - integrity: sha512-p2sGjajLa0iYiGQdT0oelahRYtMWvLjy8J9LOCxzIQsllMCGLbsLW+Nc+N4vi02jcRJvedVJ68cjelKIO6bpDA== - } + resolution: {integrity: sha512-p2sGjajLa0iYiGQdT0oelahRYtMWvLjy8J9LOCxzIQsllMCGLbsLW+Nc+N4vi02jcRJvedVJ68cjelKIO6bpDA==} dependencies: micromark-extension-gfm-autolink-literal: 1.0.3 micromark-extension-gfm-footnote: 1.0.4 @@ -3307,182 +3286,236 @@ packages: micromark-util-types: 1.0.2 dev: true + /micromark-extension-math/2.0.2: + resolution: {integrity: sha512-cFv2B/E4pFPBBFuGgLHkkNiFAIQv08iDgPH2HCuR2z3AUgMLecES5Cq7AVtwOtZeRrbA80QgMUk8VVW0Z+D2FA==} + dependencies: + '@types/katex': 0.11.1 + katex: 0.13.24 + micromark-factory-space: 1.0.0 + micromark-util-character: 1.1.0 + micromark-util-symbol: 1.0.1 + micromark-util-types: 1.0.2 + uvu: 0.5.6 + dev: true + + /micromark-extension-mdx-expression/1.0.3: + resolution: {integrity: sha512-TjYtjEMszWze51NJCZmhv7MEBcgYRgb3tJeMAJ+HQCAaZHHRBaDCccqQzGizR/H4ODefP44wRTgOn2vE5I6nZA==} + dependencies: + micromark-factory-mdx-expression: 1.0.6 + micromark-factory-space: 1.0.0 + micromark-util-character: 1.1.0 + micromark-util-events-to-acorn: 1.2.0 + micromark-util-symbol: 1.0.1 + micromark-util-types: 1.0.2 + uvu: 0.5.6 + dev: true + + /micromark-extension-mdx-jsx/1.0.3: + resolution: {integrity: sha512-VfA369RdqUISF0qGgv2FfV7gGjHDfn9+Qfiv5hEwpyr1xscRj/CiVRkU7rywGFCO7JwJ5L0e7CJz60lY52+qOA==} + dependencies: + '@types/acorn': 4.0.6 + estree-util-is-identifier-name: 2.0.1 + micromark-factory-mdx-expression: 1.0.6 + micromark-factory-space: 1.0.0 + micromark-util-character: 1.1.0 + micromark-util-symbol: 1.0.1 + micromark-util-types: 1.0.2 + uvu: 0.5.6 + vfile-message: 3.1.2 + dev: true + + /micromark-extension-mdx-md/1.0.0: + resolution: {integrity: sha512-xaRAMoSkKdqZXDAoSgp20Azm0aRQKGOl0RrS81yGu8Hr/JhMsBmfs4wR7m9kgVUIO36cMUQjNyiyDKPrsv8gOw==} + dependencies: + micromark-util-types: 1.0.2 + dev: true + + /micromark-extension-mdxjs-esm/1.0.3: + resolution: {integrity: sha512-2N13ol4KMoxb85rdDwTAC6uzs8lMX0zeqpcyx7FhS7PxXomOnLactu8WI8iBNXW8AVyea3KIJd/1CKnUmwrK9A==} + dependencies: + micromark-core-commonmark: 1.0.6 + micromark-util-character: 1.1.0 + micromark-util-events-to-acorn: 1.2.0 + micromark-util-symbol: 1.0.1 + micromark-util-types: 1.0.2 + unist-util-position-from-estree: 1.1.1 + uvu: 0.5.6 + vfile-message: 3.1.2 + dev: true + + /micromark-extension-mdxjs/1.0.0: + resolution: {integrity: sha512-TZZRZgeHvtgm+IhtgC2+uDMR7h8eTKF0QUX9YsgoL9+bADBpBY6SiLvWqnBlLbCEevITmTqmEuY3FoxMKVs1rQ==} + dependencies: + acorn: 8.8.0 + acorn-jsx: 5.3.2_acorn@8.8.0 + micromark-extension-mdx-expression: 1.0.3 + micromark-extension-mdx-jsx: 1.0.3 + micromark-extension-mdx-md: 1.0.0 + micromark-extension-mdxjs-esm: 1.0.3 + micromark-util-combine-extensions: 1.0.0 + micromark-util-types: 1.0.2 + dev: true + /micromark-factory-destination/1.0.0: - resolution: - { - integrity: sha512-eUBA7Rs1/xtTVun9TmV3gjfPz2wEwgK5R5xcbIM5ZYAtvGF6JkyaDsj0agx8urXnO31tEO6Ug83iVH3tdedLnw== - } + resolution: {integrity: sha512-eUBA7Rs1/xtTVun9TmV3gjfPz2wEwgK5R5xcbIM5ZYAtvGF6JkyaDsj0agx8urXnO31tEO6Ug83iVH3tdedLnw==} dependencies: micromark-util-character: 1.1.0 micromark-util-symbol: 1.0.1 micromark-util-types: 1.0.2 + dev: true /micromark-factory-label/1.0.2: - resolution: - { - integrity: sha512-CTIwxlOnU7dEshXDQ+dsr2n+yxpP0+fn271pu0bwDIS8uqfFcumXpj5mLn3hSC8iw2MUr6Gx8EcKng1dD7i6hg== - } + resolution: {integrity: sha512-CTIwxlOnU7dEshXDQ+dsr2n+yxpP0+fn271pu0bwDIS8uqfFcumXpj5mLn3hSC8iw2MUr6Gx8EcKng1dD7i6hg==} + dependencies: + micromark-util-character: 1.1.0 + micromark-util-symbol: 1.0.1 + micromark-util-types: 1.0.2 + uvu: 0.5.6 + dev: true + + /micromark-factory-mdx-expression/1.0.6: + resolution: {integrity: sha512-WRQIc78FV7KrCfjsEf/sETopbYjElh3xAmNpLkd1ODPqxEngP42eVRGbiPEQWpRV27LzqW+XVTvQAMIIRLPnNA==} dependencies: + micromark-factory-space: 1.0.0 micromark-util-character: 1.1.0 + micromark-util-events-to-acorn: 1.2.0 micromark-util-symbol: 1.0.1 micromark-util-types: 1.0.2 + unist-util-position-from-estree: 1.1.1 uvu: 0.5.6 + vfile-message: 3.1.2 + dev: true /micromark-factory-space/1.0.0: - resolution: - { - integrity: sha512-qUmqs4kj9a5yBnk3JMLyjtWYN6Mzfcx8uJfi5XAveBniDevmZasdGBba5b4QsvRcAkmvGo5ACmSUmyGiKTLZew== - } + resolution: {integrity: sha512-qUmqs4kj9a5yBnk3JMLyjtWYN6Mzfcx8uJfi5XAveBniDevmZasdGBba5b4QsvRcAkmvGo5ACmSUmyGiKTLZew==} dependencies: micromark-util-character: 1.1.0 micromark-util-types: 1.0.2 + dev: true /micromark-factory-title/1.0.2: - resolution: - { - integrity: sha512-zily+Nr4yFqgMGRKLpTVsNl5L4PMu485fGFDOQJQBl2NFpjGte1e86zC0da93wf97jrc4+2G2GQudFMHn3IX+A== - } + resolution: {integrity: sha512-zily+Nr4yFqgMGRKLpTVsNl5L4PMu485fGFDOQJQBl2NFpjGte1e86zC0da93wf97jrc4+2G2GQudFMHn3IX+A==} dependencies: micromark-factory-space: 1.0.0 micromark-util-character: 1.1.0 micromark-util-symbol: 1.0.1 micromark-util-types: 1.0.2 uvu: 0.5.6 + dev: true /micromark-factory-whitespace/1.0.0: - resolution: - { - integrity: sha512-Qx7uEyahU1lt1RnsECBiuEbfr9INjQTGa6Err+gF3g0Tx4YEviPbqqGKNv/NrBaE7dVHdn1bVZKM/n5I/Bak7A== - } + resolution: {integrity: sha512-Qx7uEyahU1lt1RnsECBiuEbfr9INjQTGa6Err+gF3g0Tx4YEviPbqqGKNv/NrBaE7dVHdn1bVZKM/n5I/Bak7A==} dependencies: micromark-factory-space: 1.0.0 micromark-util-character: 1.1.0 micromark-util-symbol: 1.0.1 micromark-util-types: 1.0.2 + dev: true /micromark-util-character/1.1.0: - resolution: - { - integrity: sha512-agJ5B3unGNJ9rJvADMJ5ZiYjBRyDpzKAOk01Kpi1TKhlT1APx3XZk6eN7RtSz1erbWHC2L8T3xLZ81wdtGRZzg== - } + resolution: {integrity: sha512-agJ5B3unGNJ9rJvADMJ5ZiYjBRyDpzKAOk01Kpi1TKhlT1APx3XZk6eN7RtSz1erbWHC2L8T3xLZ81wdtGRZzg==} dependencies: micromark-util-symbol: 1.0.1 micromark-util-types: 1.0.2 + dev: true /micromark-util-chunked/1.0.0: - resolution: - { - integrity: sha512-5e8xTis5tEZKgesfbQMKRCyzvffRRUX+lK/y+DvsMFdabAicPkkZV6gO+FEWi9RfuKKoxxPwNL+dFF0SMImc1g== - } + resolution: {integrity: sha512-5e8xTis5tEZKgesfbQMKRCyzvffRRUX+lK/y+DvsMFdabAicPkkZV6gO+FEWi9RfuKKoxxPwNL+dFF0SMImc1g==} dependencies: micromark-util-symbol: 1.0.1 + dev: true /micromark-util-classify-character/1.0.0: - resolution: - { - integrity: sha512-F8oW2KKrQRb3vS5ud5HIqBVkCqQi224Nm55o5wYLzY/9PwHGXC01tr3d7+TqHHz6zrKQ72Okwtvm/xQm6OVNZA== - } + resolution: {integrity: sha512-F8oW2KKrQRb3vS5ud5HIqBVkCqQi224Nm55o5wYLzY/9PwHGXC01tr3d7+TqHHz6zrKQ72Okwtvm/xQm6OVNZA==} dependencies: micromark-util-character: 1.1.0 micromark-util-symbol: 1.0.1 micromark-util-types: 1.0.2 + dev: true /micromark-util-combine-extensions/1.0.0: - resolution: - { - integrity: sha512-J8H058vFBdo/6+AsjHp2NF7AJ02SZtWaVUjsayNFeAiydTxUwViQPxN0Hf8dp4FmCQi0UUFovFsEyRSUmFH3MA== - } + resolution: {integrity: sha512-J8H058vFBdo/6+AsjHp2NF7AJ02SZtWaVUjsayNFeAiydTxUwViQPxN0Hf8dp4FmCQi0UUFovFsEyRSUmFH3MA==} dependencies: micromark-util-chunked: 1.0.0 micromark-util-types: 1.0.2 + dev: true /micromark-util-decode-numeric-character-reference/1.0.0: - resolution: - { - integrity: sha512-OzO9AI5VUtrTD7KSdagf4MWgHMtET17Ua1fIpXTpuhclCqD8egFWo85GxSGvxgkGS74bEahvtM0WP0HjvV0e4w== - } + resolution: {integrity: sha512-OzO9AI5VUtrTD7KSdagf4MWgHMtET17Ua1fIpXTpuhclCqD8egFWo85GxSGvxgkGS74bEahvtM0WP0HjvV0e4w==} dependencies: micromark-util-symbol: 1.0.1 + dev: true /micromark-util-decode-string/1.0.2: - resolution: - { - integrity: sha512-DLT5Ho02qr6QWVNYbRZ3RYOSSWWFuH3tJexd3dgN1odEuPNxCngTCXJum7+ViRAd9BbdxCvMToPOD/IvVhzG6Q== - } + resolution: {integrity: sha512-DLT5Ho02qr6QWVNYbRZ3RYOSSWWFuH3tJexd3dgN1odEuPNxCngTCXJum7+ViRAd9BbdxCvMToPOD/IvVhzG6Q==} dependencies: decode-named-character-reference: 1.0.2 micromark-util-character: 1.1.0 micromark-util-decode-numeric-character-reference: 1.0.0 micromark-util-symbol: 1.0.1 + dev: true /micromark-util-encode/1.0.1: - resolution: - { - integrity: sha512-U2s5YdnAYexjKDel31SVMPbfi+eF8y1U4pfiRW/Y8EFVCy/vgxk/2wWTxzcqE71LHtCuCzlBDRU2a5CQ5j+mQA== - } + resolution: {integrity: sha512-U2s5YdnAYexjKDel31SVMPbfi+eF8y1U4pfiRW/Y8EFVCy/vgxk/2wWTxzcqE71LHtCuCzlBDRU2a5CQ5j+mQA==} + dev: true + + /micromark-util-events-to-acorn/1.2.0: + resolution: {integrity: sha512-WWp3bf7xT9MppNuw3yPjpnOxa8cj5ACivEzXJKu0WwnjBYfzaBvIAT9KfeyI0Qkll+bfQtfftSwdgTH6QhTOKw==} + dependencies: + '@types/acorn': 4.0.6 + '@types/estree': 1.0.0 + estree-util-visit: 1.2.0 + micromark-util-types: 1.0.2 + uvu: 0.5.6 + vfile-location: 4.0.1 + vfile-message: 3.1.2 + dev: true /micromark-util-html-tag-name/1.1.0: - resolution: - { - integrity: sha512-BKlClMmYROy9UiV03SwNmckkjn8QHVaWkqoAqzivabvdGcwNGMMMH/5szAnywmsTBUzDsU57/mFi0sp4BQO6dA== - } + resolution: {integrity: sha512-BKlClMmYROy9UiV03SwNmckkjn8QHVaWkqoAqzivabvdGcwNGMMMH/5szAnywmsTBUzDsU57/mFi0sp4BQO6dA==} + dev: true /micromark-util-normalize-identifier/1.0.0: - resolution: - { - integrity: sha512-yg+zrL14bBTFrQ7n35CmByWUTFsgst5JhA4gJYoty4Dqzj4Z4Fr/DHekSS5aLfH9bdlfnSvKAWsAgJhIbogyBg== - } + resolution: {integrity: sha512-yg+zrL14bBTFrQ7n35CmByWUTFsgst5JhA4gJYoty4Dqzj4Z4Fr/DHekSS5aLfH9bdlfnSvKAWsAgJhIbogyBg==} dependencies: micromark-util-symbol: 1.0.1 + dev: true /micromark-util-resolve-all/1.0.0: - resolution: - { - integrity: sha512-CB/AGk98u50k42kvgaMM94wzBqozSzDDaonKU7P7jwQIuH2RU0TeBqGYJz2WY1UdihhjweivStrJ2JdkdEmcfw== - } + resolution: {integrity: sha512-CB/AGk98u50k42kvgaMM94wzBqozSzDDaonKU7P7jwQIuH2RU0TeBqGYJz2WY1UdihhjweivStrJ2JdkdEmcfw==} dependencies: micromark-util-types: 1.0.2 + dev: true /micromark-util-sanitize-uri/1.0.0: - resolution: - { - integrity: sha512-cCxvBKlmac4rxCGx6ejlIviRaMKZc0fWm5HdCHEeDWRSkn44l6NdYVRyU+0nT1XC72EQJMZV8IPHF+jTr56lAg== - } + resolution: {integrity: sha512-cCxvBKlmac4rxCGx6ejlIviRaMKZc0fWm5HdCHEeDWRSkn44l6NdYVRyU+0nT1XC72EQJMZV8IPHF+jTr56lAg==} dependencies: micromark-util-character: 1.1.0 micromark-util-encode: 1.0.1 micromark-util-symbol: 1.0.1 + dev: true /micromark-util-subtokenize/1.0.2: - resolution: - { - integrity: sha512-d90uqCnXp/cy4G881Ub4psE57Sf8YD0pim9QdjCRNjfas2M1u6Lbt+XZK9gnHL2XFhnozZiEdCa9CNfXSfQ6xA== - } + resolution: {integrity: sha512-d90uqCnXp/cy4G881Ub4psE57Sf8YD0pim9QdjCRNjfas2M1u6Lbt+XZK9gnHL2XFhnozZiEdCa9CNfXSfQ6xA==} dependencies: micromark-util-chunked: 1.0.0 micromark-util-symbol: 1.0.1 micromark-util-types: 1.0.2 uvu: 0.5.6 + dev: true /micromark-util-symbol/1.0.1: - resolution: - { - integrity: sha512-oKDEMK2u5qqAptasDAwWDXq0tG9AssVwAx3E9bBF3t/shRIGsWIRG+cGafs2p/SnDSOecnt6hZPCE2o6lHfFmQ== - } + resolution: {integrity: sha512-oKDEMK2u5qqAptasDAwWDXq0tG9AssVwAx3E9bBF3t/shRIGsWIRG+cGafs2p/SnDSOecnt6hZPCE2o6lHfFmQ==} + dev: true /micromark-util-types/1.0.2: - resolution: - { - integrity: sha512-DCfg/T8fcrhrRKTPjRrw/5LLvdGV7BHySf/1LOZx7TzWZdYRjogNtyNq885z3nNallwr3QUKARjqvHqX1/7t+w== - } + resolution: {integrity: sha512-DCfg/T8fcrhrRKTPjRrw/5LLvdGV7BHySf/1LOZx7TzWZdYRjogNtyNq885z3nNallwr3QUKARjqvHqX1/7t+w==} + dev: true /micromark/3.0.10: - resolution: - { - integrity: sha512-ryTDy6UUunOXy2HPjelppgJ2sNfcPz1pLlMdA6Rz9jPzhLikWXv/irpWV/I2jd68Uhmny7hHxAlAhk4+vWggpg== - } + resolution: {integrity: sha512-ryTDy6UUunOXy2HPjelppgJ2sNfcPz1pLlMdA6Rz9jPzhLikWXv/irpWV/I2jd68Uhmny7hHxAlAhk4+vWggpg==} dependencies: - "@types/debug": 4.1.7 + '@types/debug': 4.1.7 debug: 4.3.4 decode-named-character-reference: 1.0.2 micromark-core-commonmark: 1.0.6 @@ -3501,506 +3534,438 @@ packages: uvu: 0.5.6 transitivePeerDependencies: - supports-color + dev: true + + /micromatch/4.0.5: + resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} + engines: {node: '>=8.6'} + dependencies: + braces: 3.0.2 + picomatch: 2.3.1 + + /mime/1.6.0: + resolution: {integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==} + engines: {node: '>=4'} + hasBin: true + dev: true + + /mime/3.0.0: + resolution: {integrity: sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==} + engines: {node: '>=10.0.0'} + hasBin: true + dev: true + + /mimic-fn/2.1.0: + resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} + engines: {node: '>=6'} + dev: true - /micromatch/4.0.5: - resolution: - { - integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA== - } - engines: { node: ">=8.6" } + /mimic-fn/4.0.0: + resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==} + engines: {node: '>=12'} + dev: true + + /mimic-response/3.1.0: + resolution: {integrity: sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==} + engines: {node: '>=10'} + dev: true + + /min-document/2.19.0: + resolution: {integrity: sha512-9Wy1B3m3f66bPPmU5hdA4DR4PB2OfDU/+GS3yAB7IQozE3tqXaVv2zOjgla7MEGSRv95+ILmOuvhLkOK6wJtCQ==} dependencies: - braces: 3.0.2 - picomatch: 2.3.1 + dom-walk: 0.1.2 dev: true /min-indent/1.0.1: - resolution: - { - integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg== - } - engines: { node: ">=4" } + resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==} + engines: {node: '>=4'} dev: true /minimatch/3.1.2: - resolution: - { - integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== - } + resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} dependencies: brace-expansion: 1.1.11 dev: true - /minimatch/5.1.0: - resolution: - { - integrity: sha512-9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg== - } - engines: { node: ">=10" } - dependencies: - brace-expansion: 2.0.1 - dev: true - /minimist/1.2.6: - resolution: - { - integrity: sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q== - } + resolution: {integrity: sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==} + + /mkdirp-classic/0.5.3: + resolution: {integrity: sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==} dev: true /mkdirp/0.5.6: - resolution: - { - integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw== - } + resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==} hasBin: true dependencies: minimist: 1.2.6 dev: true /mri/1.2.0: - resolution: - { - integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA== - } - engines: { node: ">=4" } + resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==} + engines: {node: '>=4'} + dev: true - /ms/2.0.0: - resolution: - { - integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A== - } + /mrmime/1.0.1: + resolution: {integrity: sha512-hzzEagAgDyoU1Q6yg5uI+AorQgdvMCur3FcKf7NhMKWsaYg+RnbTyHRa/9IlLF9rf455MOCtcqqrQQ83pPP7Uw==} + engines: {node: '>=10'} dev: true /ms/2.1.2: - resolution: - { - integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== - } - - /ms/2.1.3: - resolution: - { - integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== - } + resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} dev: true /nanoid/3.3.4: - resolution: - { - integrity: sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw== - } - engines: { node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1 } + resolution: {integrity: sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==} + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true - dev: true - /natural-compare/1.4.0: - resolution: - { - integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw== - } + /napi-build-utils/1.0.2: + resolution: {integrity: sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg==} dev: true - /no-case/2.3.2: - resolution: - { - integrity: sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ== - } - dependencies: - lower-case: 1.1.4 + /nlcst-to-string/2.0.4: + resolution: {integrity: sha512-3x3jwTd6UPG7vi5k4GEzvxJ5rDA7hVUIRNHPblKuMVP9Z3xmlsd9cgLcpAMkc5uPOBna82EeshROFhsPkbnTZg==} dev: true - /node-emoji/1.11.0: - resolution: - { - integrity: sha512-wo2DpQkQp7Sjm2A0cq+sN7EHKO6Sl0ctXeBdFZrL9T9+UywORbufTcTZxom8YqpLQt/FqNMUkOpkZrJVYSKD3A== - } + /nlcst-to-string/3.1.0: + resolution: {integrity: sha512-Y8HQWKw/zrHTCnu2zcFBN1dV6vN0NUG7s5fkEj380G8tF3R+vA2KG+tDl2QoHVQCTHGHVXwoni2RQkDSFQb1PA==} dependencies: - lodash: 4.17.21 - dev: true - - /node-releases/2.0.6: - resolution: - { - integrity: sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg== - } + '@types/nlcst': 1.0.0 dev: true - /nopt/4.0.3: - resolution: - { - integrity: sha512-CvaGwVMztSMJLOeXPrez7fyfObdZqNUK1cPAEzLHrTybIua9pMdmmPR5YwtfNftIOMv3DPUhFaxsZMNTQO20Kg== - } - hasBin: true + /no-case/3.0.4: + resolution: {integrity: sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==} dependencies: - abbrev: 1.1.1 - osenv: 0.1.5 + lower-case: 2.0.2 + tslib: 2.4.0 dev: true - /normalize-package-data/2.5.0: - resolution: - { - integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA== - } + /node-abi/3.24.0: + resolution: {integrity: sha512-YPG3Co0luSu6GwOBsmIdGW6Wx0NyNDLg/hriIyDllVsNwnI6UeqaWShxC3lbH4LtEQUgoLP3XR1ndXiDAWvmRw==} + engines: {node: '>=10'} dependencies: - hosted-git-info: 2.8.9 - resolve: 1.22.1 - semver: 5.7.1 - validate-npm-package-license: 3.0.4 - dev: true - - /normalize-path/3.0.0: - resolution: - { - integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== - } - engines: { node: ">=0.10.0" } + semver: 7.3.7 dev: true - /normalize-range/0.1.2: - resolution: - { - integrity: sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA== - } - engines: { node: ">=0.10.0" } + /node-addon-api/4.3.0: + resolution: {integrity: sha512-73sE9+3UaLYYFmDsFZnqCInzPyh3MqIwZO9cw58yIqAZhONrrabrYyYe3TuIqtIiOuTXVhsGau8hcrhhwSsDIQ==} dev: true + optional: true - /not/0.1.0: - resolution: - { - integrity: sha512-5PDmaAsVfnWUgTUbJ3ERwn7u79Z0dYxN9ErxCpVJJqe2RK0PJ3z+iFUxuqjwtlDDegXvtWoxD/3Fzxox7tFGWA== - } + /node-addon-api/5.0.0: + resolution: {integrity: sha512-CvkDw2OEnme7ybCykJpVcKH+uAOLV2qLqiyla128dN9TkEWfrYmxG6C2boDe5KcNQqZF3orkqzGgOMvZ/JNekA==} dev: true - /npm-normalize-package-bin/1.0.1: - resolution: - { - integrity: sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA== - } + /node-domexception/1.0.0: + resolution: {integrity: sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==} + engines: {node: '>=10.5.0'} dev: true - /nth-check/2.1.1: - resolution: - { - integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w== - } + /node-fetch/3.2.10: + resolution: {integrity: sha512-MhuzNwdURnZ1Cp4XTazr69K0BTizsBroX7Zx3UgDSVcZYKF/6p0CBe4EUb/hLqmzVhl0UpYfgRljQ4yxE+iCxA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dependencies: - boolbase: 1.0.0 + data-uri-to-buffer: 4.0.0 + fetch-blob: 3.2.0 + formdata-polyfill: 4.0.10 dev: true - /object-hash/3.0.0: - resolution: - { - integrity: sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw== - } - engines: { node: ">= 6" } + /node-releases/2.0.6: + resolution: {integrity: sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg==} dev: true - /object-inspect/1.12.2: - resolution: - { - integrity: sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ== - } - dev: true + /normalize-path/3.0.0: + resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} + engines: {node: '>=0.10.0'} - /object-keys/1.1.1: - resolution: - { - integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== - } - engines: { node: ">= 0.4" } + /normalize-range/0.1.2: + resolution: {integrity: sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==} + engines: {node: '>=0.10.0'} dev: true - /object.assign/4.1.3: - resolution: - { - integrity: sha512-ZFJnX3zltyjcYJL0RoCJuzb+11zWGyaDbjgxZbdV7rFEcHQuYxrZqhow67aA7xpes6LhojyFDaBKAFfogQrikA== - } - engines: { node: ">= 0.4" } + /npm-run-path/5.1.0: + resolution: {integrity: sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dependencies: - call-bind: 1.0.2 - define-properties: 1.1.4 - has-symbols: 1.0.3 - object-keys: 1.1.1 + path-key: 4.0.0 dev: true - /object.entries/1.1.5: - resolution: - { - integrity: sha512-TyxmjUoZggd4OrrU1W66FMDG6CuqJxsFvymeyXI51+vQLN67zYfZseptRge703kKQdo4uccgAKebXFcRCzk4+g== - } - engines: { node: ">= 0.4" } + /object-hash/3.0.0: + resolution: {integrity: sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==} + engines: {node: '>= 6'} + + /omggif/1.0.10: + resolution: {integrity: sha512-LMJTtvgc/nugXj0Vcrrs68Mn2D1r0zf630VNtqtpI1FEO7e+O9FP4gqs9AcnBaSEeoHIPm28u6qgPR0oyEpGSw==} + dev: true + + /once/1.4.0: + resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} dependencies: - call-bind: 1.0.2 - define-properties: 1.1.4 - es-abstract: 1.20.1 + wrappy: 1.0.2 dev: true - /object.values/1.1.5: - resolution: - { - integrity: sha512-QUZRW0ilQ3PnPpbNtgdNV1PDbEqLIiSFB3l+EnGtBQ/8SUTLj1PZwtQHABZtLgwpJZTSZhuGLOGk57Drx2IvYg== - } - engines: { node: ">= 0.4" } + /onetime/5.1.2: + resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} + engines: {node: '>=6'} dependencies: - call-bind: 1.0.2 - define-properties: 1.1.4 - es-abstract: 1.20.1 + mimic-fn: 2.1.0 dev: true - /once/1.4.0: - resolution: - { - integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== - } + /onetime/6.0.0: + resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==} + engines: {node: '>=12'} dependencies: - wrappy: 1.0.2 + mimic-fn: 4.0.0 dev: true /open/8.4.0: - resolution: - { - integrity: sha512-XgFPPM+B28FtCCgSb9I+s9szOC1vZRSwgWsRUA5ylIxRTgKozqjOCrVOqGsYABPYK5qnfqClxZTFBa8PKt2v6Q== - } - engines: { node: ">=12" } + resolution: {integrity: sha512-XgFPPM+B28FtCCgSb9I+s9szOC1vZRSwgWsRUA5ylIxRTgKozqjOCrVOqGsYABPYK5qnfqClxZTFBa8PKt2v6Q==} + engines: {node: '>=12'} dependencies: define-lazy-prop: 2.0.0 is-docker: 2.2.1 is-wsl: 2.2.0 dev: true - /optionator/0.9.1: - resolution: - { - integrity: sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw== - } - engines: { node: ">= 0.8.0" } + /ora/6.1.2: + resolution: {integrity: sha512-EJQ3NiP5Xo94wJXIzAyOtSb0QEIAUu7m8t6UZ9krbz0vAJqr92JpcK/lEXg91q6B9pEGqrykkd2EQplnifDSBw==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dependencies: - deep-is: 0.1.4 - fast-levenshtein: 2.0.6 - levn: 0.4.1 - prelude-ls: 1.2.1 - type-check: 0.4.0 - word-wrap: 1.2.3 + bl: 5.0.0 + chalk: 5.0.1 + cli-cursor: 4.0.0 + cli-spinners: 2.7.0 + is-interactive: 2.0.0 + is-unicode-supported: 1.2.0 + log-symbols: 5.1.0 + strip-ansi: 7.0.1 + wcwidth: 1.0.1 dev: true - /os-homedir/1.0.2: - resolution: - { - integrity: sha512-B5JU3cabzk8c67mRRd3ECmROafjYMXbuzlwtqdM8IbS8ktlTix8aFGb2bAGKrSRIlnfKwovGUUr72JUPyOb6kQ== - } - engines: { node: ">=0.10.0" } + /p-limit/2.3.0: + resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} + engines: {node: '>=6'} + dependencies: + p-try: 2.2.0 dev: true - /os-tmpdir/1.0.2: - resolution: - { - integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g== - } - engines: { node: ">=0.10.0" } + /p-limit/3.1.0: + resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} + engines: {node: '>=10'} + dependencies: + yocto-queue: 0.1.0 dev: true - /osenv/0.1.5: - resolution: - { - integrity: sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g== - } + /p-limit/4.0.0: + resolution: {integrity: sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dependencies: - os-homedir: 1.0.2 - os-tmpdir: 1.0.2 + yocto-queue: 1.0.0 dev: true - /p-limit/1.3.0: - resolution: - { - integrity: sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q== - } - engines: { node: ">=4" } + /p-locate/4.1.0: + resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} + engines: {node: '>=8'} dependencies: - p-try: 1.0.0 + p-limit: 2.3.0 dev: true - /p-limit/3.1.0: - resolution: - { - integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== - } - engines: { node: ">=10" } + /p-locate/5.0.0: + resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} + engines: {node: '>=10'} dependencies: - yocto-queue: 0.1.0 + p-limit: 3.1.0 dev: true - /p-locate/2.0.0: - resolution: - { - integrity: sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg== - } - engines: { node: ">=4" } + /p-locate/6.0.0: + resolution: {integrity: sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dependencies: - p-limit: 1.3.0 + p-limit: 4.0.0 dev: true - /p-locate/5.0.0: - resolution: - { - integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw== - } - engines: { node: ">=10" } - dependencies: - p-limit: 3.1.0 + /p-try/2.2.0: + resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} + engines: {node: '>=6'} + dev: true + + /pako/1.0.11: + resolution: {integrity: sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==} + dev: true + + /parse-bmfont-ascii/1.0.6: + resolution: {integrity: sha512-U4RrVsUFCleIOBsIGYOMKjn9PavsGOXxbvYGtMOEfnId0SVNsgehXh1DxUdVPLoxd5mvcEtvmKs2Mmf0Mpa1ZA==} + dev: true + + /parse-bmfont-binary/1.0.6: + resolution: {integrity: sha512-GxmsRea0wdGdYthjuUeWTMWPqm2+FAd4GI8vCvhgJsFnoGhTrLhXDDupwTo7rXVAgaLIGoVHDZS9p/5XbSqeWA==} dev: true - /p-try/1.0.0: - resolution: - { - integrity: sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww== - } - engines: { node: ">=4" } + /parse-bmfont-xml/1.1.4: + resolution: {integrity: sha512-bjnliEOmGv3y1aMEfREMBJ9tfL3WR0i0CKPj61DnSLaoxWR3nLrsQrEbCId/8rF4NyRF0cCqisSVXyQYWM+mCQ==} + dependencies: + xml-parse-from-string: 1.0.1 + xml2js: 0.4.23 dev: true - /param-case/2.1.1: - resolution: - { - integrity: sha512-eQE845L6ot89sk2N8liD8HAuH4ca6Vvr7VWAWwt7+kvvG5aBcPmmphQ68JsEG2qa9n1TykS2DLeMt363AAH8/w== - } + /parse-entities/4.0.0: + resolution: {integrity: sha512-5nk9Fn03x3rEhGaX1FU6IDwG/k+GxLXlFAkgrbM1asuAFl3BhdQWvASaIsmwWypRNcZKHPYnIuOSfIWEyEQnPQ==} dependencies: - no-case: 2.3.2 + '@types/unist': 2.0.6 + character-entities: 2.0.2 + character-entities-legacy: 3.0.0 + character-reference-invalid: 2.0.1 + decode-named-character-reference: 1.0.2 + is-alphanumerical: 2.0.1 + is-decimal: 2.0.1 + is-hexadecimal: 2.0.1 dev: true - /parent-module/1.0.1: - resolution: - { - integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== - } - engines: { node: ">=6" } + /parse-headers/2.0.5: + resolution: {integrity: sha512-ft3iAoLOB/MlwbNXgzy43SWGP6sQki2jQvAyBg/zDFAgr9bfNWZIUj42Kw2eJIl8kEi4PbgE6U1Zau/HwI75HA==} + dev: true + + /parse-latin/5.0.0: + resolution: {integrity: sha512-Ht+4/+AUySMS5HKGAiQpBmkFsHSoGrj6Y83flLCa5OIBdtsVkO3UD4OtboJ0O0vZiOznH02x8qlwg9KLUVXuNg==} dependencies: - callsites: 3.1.0 + nlcst-to-string: 2.0.4 + unist-util-modify-children: 2.0.0 + unist-util-visit-children: 1.1.4 dev: true /parse5/5.1.1: - resolution: - { - integrity: sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug== - } - dev: false + resolution: {integrity: sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug==} + dev: true - /path-exists/3.0.0: - resolution: - { - integrity: sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ== - } - engines: { node: ">=4" } + /parse5/6.0.1: + resolution: {integrity: sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==} + dev: true + + /pascal-case/3.1.2: + resolution: {integrity: sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==} + dependencies: + no-case: 3.0.4 + tslib: 2.4.0 + dev: true + + /path-browserify/1.0.1: + resolution: {integrity: sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==} dev: true /path-exists/4.0.0: - resolution: - { - integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== - } - engines: { node: ">=8" } + resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} + engines: {node: '>=8'} + dev: true + + /path-exists/5.0.0: + resolution: {integrity: sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dev: true /path-is-absolute/1.0.1: - resolution: - { - integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== - } - engines: { node: ">=0.10.0" } + resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} + engines: {node: '>=0.10.0'} dev: true /path-key/3.1.1: - resolution: - { - integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== - } - engines: { node: ">=8" } + resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} + engines: {node: '>=8'} + dev: true + + /path-key/4.0.0: + resolution: {integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==} + engines: {node: '>=12'} dev: true /path-parse/1.0.7: - resolution: - { - integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== - } + resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} + + /path-to-regexp/6.2.1: + resolution: {integrity: sha512-JLyh7xT1kizaEvcaXOQwOc2/Yhw6KZOvPf1S8401UyLk86CU79LN3vl7ztXGm/pZ+YjoyAJ4rxmHwbkBXJX+yw==} dev: true - /path-type/4.0.0: - resolution: - { - integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== - } - engines: { node: ">=8" } + /peek-readable/5.0.0: + resolution: {integrity: sha512-YtCKvLUOvwtMGmrniQPdO7MwPjgkFBtFIrmfSbYmYuq3tKDV/mcfAhBth1+C3ru7uXIZasc/pHnb+YDYNkkj4A==} + engines: {node: '>=14.16'} dev: true - /phosphor-svelte/1.2.1_svelte@3.49.0: - resolution: - { - integrity: sha512-mJDTRr4kBTRYA+SqEAj7rSZ9jbtRWrkqKjn+uYG8Ivhe17LnD685ZehRbQPNdkN8v+T4rjnfnysyKhqn3WXeTw== - } - peerDependencies: - svelte: ">=3" + /periscopic/3.0.4: + resolution: {integrity: sha512-SFx68DxCv0Iyo6APZuw/AKewkkThGwssmU0QWtTlvov3VAtPX+QJ4CadwSaz8nrT5jPIuxdvJWB4PnD2KNDxQg==} dependencies: - svelte: 3.49.0 + estree-walker: 3.0.1 + is-reference: 3.0.0 + dev: true + + /phin/2.9.3: + resolution: {integrity: sha512-CzFr90qM24ju5f88quFC/6qohjC144rehe5n6DH900lgXmUe86+xCKc10ev56gRKC4/BkHUoG4uSiQgBiIXwDA==} + dev: true + + /phosphor-icons/1.4.2: + resolution: {integrity: sha512-vDyuRWLSEb87dxpoOGpP1GCjr/TFzA0Ljt0TtJcwXO7/iPdSZW0e/2m1jsANH1ML5ZyZXcjeWx6pzT0A0tgYDA==} dev: false /picocolors/1.0.0: - resolution: - { - integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== - } - dev: true + resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} /picomatch/2.3.1: - resolution: - { - integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== - } - engines: { node: ">=8.6" } - dev: true + resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} + engines: {node: '>=8.6'} /pify/2.3.0: - resolution: - { - integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog== - } - engines: { node: ">=0.10.0" } - dev: true - - /postcss-import/14.1.0_postcss@8.4.14: - resolution: - { - integrity: sha512-flwI+Vgm4SElObFVPpTIT7SU7R3qk2L7PyduMcokiaVKuWv9d/U+Gm/QAd8NDLuykTWTkcrjOeD2Pp1rMeBTGw== - } - engines: { node: ">=10.0.0" } + resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==} + engines: {node: '>=0.10.0'} + + /pify/4.0.1: + resolution: {integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==} + engines: {node: '>=6'} + dev: true + + /pixelmatch/4.0.2: + resolution: {integrity: sha512-J8B6xqiO37sU/gkcMglv6h5Jbd9xNER7aHzpfRdNmV4IbQBzBpe4l9XmbG+xPF/znacgu2jfEw+wHffaq/YkXA==} + hasBin: true + dependencies: + pngjs: 3.4.0 + dev: true + + /pkg-dir/4.2.0: + resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==} + engines: {node: '>=8'} + dependencies: + find-up: 4.1.0 + dev: true + + /pngjs/3.4.0: + resolution: {integrity: sha512-NCrCHhWmnQklfH4MtJMRjZ2a8c80qXeMlQMv2uVp9ISJMTt562SbGd6n2oq0PaPgKm7Z6pL9E2UlLIhC+SHL3w==} + engines: {node: '>=4.0.0'} + dev: true + + /postcss-import/14.1.0_postcss@8.4.16: + resolution: {integrity: sha512-flwI+Vgm4SElObFVPpTIT7SU7R3qk2L7PyduMcokiaVKuWv9d/U+Gm/QAd8NDLuykTWTkcrjOeD2Pp1rMeBTGw==} + engines: {node: '>=10.0.0'} peerDependencies: postcss: ^8.0.0 dependencies: - postcss: 8.4.14 + postcss: 8.4.16 postcss-value-parser: 4.2.0 read-cache: 1.0.0 resolve: 1.22.1 - dev: true - /postcss-js/4.0.0_postcss@8.4.14: - resolution: - { - integrity: sha512-77QESFBwgX4irogGVPgQ5s07vLvFqWr228qZY+w6lW599cRlK/HmnlivnnVUxkjHnCu4J16PDMHcH+e+2HbvTQ== - } - engines: { node: ^12 || ^14 || >= 16 } + /postcss-js/4.0.0_postcss@8.4.16: + resolution: {integrity: sha512-77QESFBwgX4irogGVPgQ5s07vLvFqWr228qZY+w6lW599cRlK/HmnlivnnVUxkjHnCu4J16PDMHcH+e+2HbvTQ==} + engines: {node: ^12 || ^14 || >= 16} peerDependencies: postcss: ^8.3.3 dependencies: camelcase-css: 2.0.1 - postcss: 8.4.14 - dev: true + postcss: 8.4.16 - /postcss-load-config/3.1.4_postcss@8.4.14: - resolution: - { - integrity: sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg== - } - engines: { node: ">= 10" } + /postcss-load-config/3.1.4_postcss@8.4.16: + resolution: {integrity: sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==} + engines: {node: '>= 10'} peerDependencies: - postcss: ">=8.0.9" - ts-node: ">=9.0.0" + postcss: '>=8.0.9' + ts-node: '>=9.0.0' peerDependenciesMeta: postcss: optional: true @@ -4008,19 +3973,15 @@ packages: optional: true dependencies: lilconfig: 2.0.6 - postcss: 8.4.14 + postcss: 8.4.16 yaml: 1.10.2 - dev: true - /postcss-load-config/4.0.1_postcss@8.4.14: - resolution: - { - integrity: sha512-vEJIc8RdiBRu3oRAI0ymerOn+7rPuMvRXslTvZUKZonDHFIczxztIyJ1urxM1x9JXEikvpWWTUUqal5j/8QgvA== - } - engines: { node: ">= 14" } + /postcss-load-config/4.0.1_postcss@8.4.16: + resolution: {integrity: sha512-vEJIc8RdiBRu3oRAI0ymerOn+7rPuMvRXslTvZUKZonDHFIczxztIyJ1urxM1x9JXEikvpWWTUUqal5j/8QgvA==} + engines: {node: '>= 14'} peerDependencies: - postcss: ">=8.0.9" - ts-node: ">=9.0.0" + postcss: '>=8.0.9' + ts-node: '>=9.0.0' peerDependenciesMeta: postcss: optional: true @@ -4028,319 +3989,297 @@ packages: optional: true dependencies: lilconfig: 2.0.6 - postcss: 8.4.14 + postcss: 8.4.16 yaml: 2.1.1 dev: true - /postcss-nested/5.0.6_postcss@8.4.14: - resolution: - { - integrity: sha512-rKqm2Fk0KbA8Vt3AdGN0FB9OBOMDVajMG6ZCf/GoHgdxUJ4sBFp0A/uMIRm+MJUdo33YXEtjqIz8u7DAp8B7DA== - } - engines: { node: ">=12.0" } + /postcss-nested/5.0.6_postcss@8.4.16: + resolution: {integrity: sha512-rKqm2Fk0KbA8Vt3AdGN0FB9OBOMDVajMG6ZCf/GoHgdxUJ4sBFp0A/uMIRm+MJUdo33YXEtjqIz8u7DAp8B7DA==} + engines: {node: '>=12.0'} peerDependencies: postcss: ^8.2.14 dependencies: - postcss: 8.4.14 + postcss: 8.4.16 postcss-selector-parser: 6.0.10 - dev: true /postcss-selector-parser/6.0.10: - resolution: - { - integrity: sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w== - } - engines: { node: ">=4" } + resolution: {integrity: sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==} + engines: {node: '>=4'} dependencies: cssesc: 3.0.0 util-deprecate: 1.0.2 - dev: true /postcss-value-parser/4.2.0: - resolution: - { - integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ== - } - dev: true + resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} - /postcss/8.4.14: - resolution: - { - integrity: sha512-E398TUmfAYFPBSdzgeieK2Y1+1cpdxJx8yXbK/m57nRhKSmk1GB2tO4lbLBtlkfPQTDKfe4Xqv1ASWPpayPEig== - } - engines: { node: ^10 || ^12 || >=14 } + /postcss/8.4.16: + resolution: {integrity: sha512-ipHE1XBvKzm5xI7hiHCZJCSugxvsdq2mPnsq5+UF+VHCjiBvtDrlxJfMBToWaP9D5XlgNmcFGqoHmUn0EYEaRQ==} + engines: {node: ^10 || ^12 || >=14} dependencies: nanoid: 3.3.4 picocolors: 1.0.0 source-map-js: 1.0.2 + + /potrace/2.1.8: + resolution: {integrity: sha512-V9hI7UMJyEhNZjM8CbZaP/804ZRLgzWkCS9OOYnEZkszzj3zKR/erRdj0uFMcN3pp6x4B+AIZebmkQgGRinG/g==} + dependencies: + jimp: 0.14.0 + dev: true + + /prebuild-install/7.1.1: + resolution: {integrity: sha512-jAXscXWMcCK8GgCoHOfIr0ODh5ai8mj63L2nWrjuAgXE6tDyYGnx4/8o/rCgU+B4JSyZBKbeZqzhtwtC3ovxjw==} + engines: {node: '>=10'} + hasBin: true + dependencies: + detect-libc: 2.0.1 + expand-template: 2.0.3 + github-from-package: 0.0.0 + minimist: 1.2.6 + mkdirp-classic: 0.5.3 + napi-build-utils: 1.0.2 + node-abi: 3.24.0 + pump: 3.0.0 + rc: 1.2.8 + simple-get: 4.0.1 + tar-fs: 2.1.1 + tunnel-agent: 0.6.0 dev: true - /prelude-ls/1.2.1: - resolution: - { - integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== - } - engines: { node: ">= 0.8.0" } + /preferred-pm/3.0.3: + resolution: {integrity: sha512-+wZgbxNES/KlJs9q40F/1sfOd/j7f1O9JaHcW5Dsn3aUUOZg3L2bjpVUcKV2jvtElYfoTuQiNeMfQJ4kwUAhCQ==} + engines: {node: '>=10'} + dependencies: + find-up: 5.0.0 + find-yarn-workspace-root2: 1.2.16 + path-exists: 4.0.0 + which-pm: 2.0.0 dev: true - /prettier-plugin-svelte/2.7.0_o3ioganyptcsrh6x4hnxvjkpqi: - resolution: - { - integrity: sha512-fQhhZICprZot2IqEyoiUYLTRdumULGRvw0o4dzl5jt0jfzVWdGqeYW27QTWAeXhoupEZJULmNoH3ueJwUWFLIA== - } - peerDependencies: - prettier: ^1.16.4 || ^2.0.0 - svelte: ^3.2.0 + /prettier-plugin-astro/0.5.0: + resolution: {integrity: sha512-wBDZs0hlPWQDc7P7VmGe8pImci6F434Wd/otfLJwvCSXRb9J7AhmAigXhm5WPgCJuBA509Ovo/Ed+LAgZy4KWg==} + engines: {node: ^14.15.0 || >=16.0.0, npm: '>=6.14.0'} dependencies: + '@astrojs/compiler': 0.19.0 prettier: 2.7.1 - svelte: 3.49.0 + sass-formatter: 0.7.5 + synckit: 0.7.3 dev: true /prettier-plugin-tailwindcss/0.1.13_prettier@2.7.1: - resolution: - { - integrity: sha512-/EKQURUrxLu66CMUg4+1LwGdxnz8of7IDvrSLqEtDqhLH61SAlNNUSr90UTvZaemujgl3OH/VHg+fyGltrNixw== - } - engines: { node: ">=12.17.0" } + resolution: {integrity: sha512-/EKQURUrxLu66CMUg4+1LwGdxnz8of7IDvrSLqEtDqhLH61SAlNNUSr90UTvZaemujgl3OH/VHg+fyGltrNixw==} + engines: {node: '>=12.17.0'} peerDependencies: - prettier: ">=2.2.0" + prettier: '>=2.2.0' dependencies: prettier: 2.7.1 dev: true /prettier/2.7.1: - resolution: - { - integrity: sha512-ujppO+MkdPqoVINuDFDRLClm7D78qbDt0/NR+wp5FqEZOoTNAjPHWj17QRhu7geIHJfcNhRk1XVQmF8Bp3ye+g== - } - engines: { node: ">=10.13.0" } + resolution: {integrity: sha512-ujppO+MkdPqoVINuDFDRLClm7D78qbDt0/NR+wp5FqEZOoTNAjPHWj17QRhu7geIHJfcNhRk1XVQmF8Bp3ye+g==} + engines: {node: '>=10.13.0'} hasBin: true dev: true - /prism-svelte/0.4.7: - resolution: - { - integrity: sha512-yABh19CYbM24V7aS7TuPYRNMqthxwbvx6FF/Rw920YbyBWO3tnyPIqRMgHuSVsLmuHkkBS1Akyof463FVdkeDQ== - } + /prismjs/1.28.0: + resolution: {integrity: sha512-8aaXdYvl1F7iC7Xm1spqSaY/OJBpYW3v+KJ+F17iYxvdc8sfjW194COK5wVhMZX45tGteiBQgdvD/nhxcRwylw==} + engines: {node: '>=6'} dev: true - /prismjs/1.28.0: - resolution: - { - integrity: sha512-8aaXdYvl1F7iC7Xm1spqSaY/OJBpYW3v+KJ+F17iYxvdc8sfjW194COK5wVhMZX45tGteiBQgdvD/nhxcRwylw== - } - engines: { node: ">=6" } + /process/0.11.10: + resolution: {integrity: sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==} + engines: {node: '>= 0.6.0'} + dev: true + + /prompts/2.4.2: + resolution: {integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==} + engines: {node: '>= 6'} + dependencies: + kleur: 3.0.3 + sisteransi: 1.0.5 dev: true /property-information/5.6.0: - resolution: - { - integrity: sha512-YUHSPk+A30YPv+0Qf8i9Mbfe/C0hdPXk1s1jPVToV8pk8BQtpw10ct89Eo7OWkutrwqvT0eicAxlOg3dOAu8JA== - } + resolution: {integrity: sha512-YUHSPk+A30YPv+0Qf8i9Mbfe/C0hdPXk1s1jPVToV8pk8BQtpw10ct89Eo7OWkutrwqvT0eicAxlOg3dOAu8JA==} dependencies: xtend: 4.0.2 - dev: false + dev: true /property-information/6.1.1: - resolution: - { - integrity: sha512-hrzC564QIl0r0vy4l6MvRLhafmUowhO/O3KgVSoXIbbA2Sz4j8HGpJc6T2cubRVwMwpdiG/vKGfhT4IixmKN9w== - } + resolution: {integrity: sha512-hrzC564QIl0r0vy4l6MvRLhafmUowhO/O3KgVSoXIbbA2Sz4j8HGpJc6T2cubRVwMwpdiG/vKGfhT4IixmKN9w==} dev: true - /punycode/2.1.1: - resolution: - { - integrity: sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== - } - engines: { node: ">=6" } + /pump/3.0.0: + resolution: {integrity: sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==} + dependencies: + end-of-stream: 1.4.4 + once: 1.4.0 dev: true /queue-microtask/1.2.3: - resolution: - { - integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== - } + resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} + + /queue/6.0.2: + resolution: {integrity: sha512-iHZWu+q3IdFZFX36ro/lKBkSvfkztY5Y7HMiPlOUjhupPcG2JMfst2KKEpu5XndviX/3UhFbRngUPNKtgvtZiA==} + dependencies: + inherits: 2.0.4 dev: true /quick-lru/5.1.1: - resolution: - { - integrity: sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA== - } - engines: { node: ">=10" } - dev: true + resolution: {integrity: sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==} + engines: {node: '>=10'} - /read-cache/1.0.0: - resolution: - { - integrity: sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA== - } + /rc/1.2.8: + resolution: {integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==} + hasBin: true dependencies: - pify: 2.3.0 + deep-extend: 0.6.0 + ini: 1.3.8 + minimist: 1.2.6 + strip-json-comments: 2.0.1 dev: true - /read-installed/4.0.3: - resolution: - { - integrity: sha512-O03wg/IYuV/VtnK2h/KXEt9VIbMUFbk3ERG0Iu4FhLZw0EP0T9znqrYDGn6ncbEsXUFaUjiVAWXHzxwt3lhRPQ== - } + /read-cache/1.0.0: + resolution: {integrity: sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==} dependencies: - debuglog: 1.0.1 - read-package-json: 2.1.2 - readdir-scoped-modules: 1.1.0 - semver: 5.7.1 - slide: 1.1.6 - util-extend: 1.0.3 - optionalDependencies: - graceful-fs: 4.2.10 - dev: true + pify: 2.3.0 - /read-package-json/2.1.2: - resolution: - { - integrity: sha512-D1KmuLQr6ZSJS0tW8hf3WGpRlwszJOXZ3E8Yd/DNRaM5d+1wVRZdHlpGBLAuovjr28LbWvjpWkBHMxpRGGjzNA== - } + /readable-stream/3.6.0: + resolution: {integrity: sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==} + engines: {node: '>= 6'} dependencies: - glob: 7.2.3 - json-parse-even-better-errors: 2.3.1 - normalize-package-data: 2.5.0 - npm-normalize-package-bin: 1.0.1 + inherits: 2.0.4 + string_decoder: 1.3.0 + util-deprecate: 1.0.2 dev: true - /readdir-scoped-modules/1.1.0: - resolution: - { - integrity: sha512-asaikDeqAQg7JifRsZn1NJZXo9E+VwlyCfbkZhwyISinqk5zNS6266HS5kah6P0SaQKGF6SkNnZVHUzHFYxYDw== - } + /readable-web-to-node-stream/3.0.2: + resolution: {integrity: sha512-ePeK6cc1EcKLEhJFt/AebMCLL+GgSKhuygrZ/GLaKZYEecIgIECf4UaUuaByiGtzckwR4ain9VzUh95T1exYGw==} + engines: {node: '>=8'} dependencies: - debuglog: 1.0.1 - dezalgo: 1.0.4 - graceful-fs: 4.2.10 - once: 1.4.0 + readable-stream: 3.6.0 dev: true /readdirp/3.6.0: - resolution: - { - integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== - } - engines: { node: ">=8.10.0" } + resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} + engines: {node: '>=8.10.0'} dependencies: picomatch: 2.3.1 - dev: true - /regexp.prototype.flags/1.4.3: - resolution: - { - integrity: sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA== - } - engines: { node: ">= 0.4" } + /reading-time/1.5.0: + resolution: {integrity: sha512-onYyVhBNr4CmAxFsKS7bz+uTLRakypIe4R+5A824vBSkQy/hB3fZepoVEf8OVAxzLvK+H/jm9TzpI3ETSm64Kg==} + dev: false + + /recast/0.20.5: + resolution: {integrity: sha512-E5qICoPoNL4yU0H0NoBDntNB0Q5oMSNh9usFctYniLBluTthi3RsQVBXIJNbApOlvSwW/RGxIuokPcAc59J5fQ==} + engines: {node: '>= 4'} dependencies: - call-bind: 1.0.2 - define-properties: 1.1.4 - functions-have-names: 1.2.3 + ast-types: 0.14.2 + esprima: 4.0.1 + source-map: 0.6.1 + tslib: 2.4.0 dev: true - /regexpp/3.2.0: - resolution: - { - integrity: sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg== - } - engines: { node: ">=8" } + /regenerator-runtime/0.13.9: + resolution: {integrity: sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==} dev: true /rehype-autolink-headings/6.1.1: - resolution: - { - integrity: sha512-NMYzZIsHM3sA14nC5rAFuUPIOfg+DFmf9EY1YMhaNlB7+3kK/ZlE6kqPfuxr1tsJ1XWkTrMtMoyHosU70d35mA== - } + resolution: {integrity: sha512-NMYzZIsHM3sA14nC5rAFuUPIOfg+DFmf9EY1YMhaNlB7+3kK/ZlE6kqPfuxr1tsJ1XWkTrMtMoyHosU70d35mA==} dependencies: - "@types/hast": 2.3.4 + '@types/hast': 2.3.4 extend: 3.0.2 hast-util-has-property: 2.0.0 hast-util-heading-rank: 2.1.0 hast-util-is-element: 2.1.2 unified: 10.1.2 - unist-util-visit: 4.1.0 + unist-util-visit: 4.1.1 dev: true - /rehype-katex-svelte/1.1.2: - resolution: - { - integrity: sha512-eApJnDRoE79UhnpAHfFULabqJK8BSvgg3Qez9XoZ09GDmep3p4g6UbDZTrEKfw3hEKagukgvQc3BQSSYUcraMQ== - } + /rehype-katex/6.0.2: + resolution: {integrity: sha512-C4gDAlS1+l0hJqctyiU64f9CvT00S03qV1T6HiMzbSuLBgWUtcqydWHY9OpKrm0SpkK16FNd62CDKyWLwV2ppg==} dependencies: - hast-util-from-string: 2.0.0 - hast-util-select: 5.0.2 - hast-util-to-string: 2.0.0 + '@types/hast': 2.3.4 + '@types/katex': 0.11.1 + hast-util-to-text: 3.1.1 katex: 0.15.6 + rehype-parse: 8.0.4 + unified: 10.1.2 + unist-util-remove-position: 4.0.1 + unist-util-visit: 4.1.1 dev: true /rehype-parse/6.0.2: - resolution: - { - integrity: sha512-0S3CpvpTAgGmnz8kiCyFLGuW5yA4OQhyNTm/nwPopZ7+PI11WnGl1TTWTGv/2hPEe/g2jRLlhVVSsoDH8waRug== - } + resolution: {integrity: sha512-0S3CpvpTAgGmnz8kiCyFLGuW5yA4OQhyNTm/nwPopZ7+PI11WnGl1TTWTGv/2hPEe/g2jRLlhVVSsoDH8waRug==} dependencies: hast-util-from-parse5: 5.0.3 parse5: 5.1.1 xtend: 4.0.2 - dev: false + dev: true - /rehype-slug/5.0.1: - resolution: - { - integrity: sha512-X5v3wV/meuOX9NFcGhJvUpEjIvQl2gDvjg3z40RVprYFt7q3th4qMmYLULiu3gXvbNX1ppx+oaa6JyY1W67pTA== - } + /rehype-parse/8.0.4: + resolution: {integrity: sha512-MJJKONunHjoTh4kc3dsM1v3C9kGrrxvA3U8PxZlP2SjH8RNUSrb+lF7Y0KVaUDnGH2QZ5vAn7ulkiajM9ifuqg==} dependencies: - "@types/hast": 2.3.4 - github-slugger: 1.4.0 - hast-util-has-property: 2.0.0 - hast-util-heading-rank: 2.1.0 - hast-util-to-string: 2.0.0 + '@types/hast': 2.3.4 + hast-util-from-parse5: 7.1.0 + parse5: 6.0.1 + unified: 10.1.2 + dev: true + + /rehype-raw/6.1.1: + resolution: {integrity: sha512-d6AKtisSRtDRX4aSPsJGTfnzrX2ZkHQLE5kiUuGOeEoLpbEulFF4hj0mLPbsa+7vmguDKOVVEQdHKDSwoaIDsQ==} + dependencies: + '@types/hast': 2.3.4 + hast-util-raw: 7.2.2 + unified: 10.1.2 + dev: true + + /rehype-stringify/9.0.3: + resolution: {integrity: sha512-kWiZ1bgyWlgOxpqD5HnxShKAdXtb2IUljn3hQAhySeak6IOQPPt6DeGnsIh4ixm7yKJWzm8TXFuC/lPfcWHJqw==} + dependencies: + '@types/hast': 2.3.4 + hast-util-to-html: 8.0.3 unified: 10.1.2 - unist-util-visit: 4.1.0 dev: true - /relateurl/0.2.7: - resolution: - { - integrity: sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog== - } - engines: { node: ">= 0.10" } + /rehype/12.0.1: + resolution: {integrity: sha512-ey6kAqwLM3X6QnMDILJthGvG1m1ULROS9NT4uG9IDCuv08SFyLlreSuvOa//DgEvbXx62DS6elGVqusWhRUbgw==} + dependencies: + '@types/hast': 2.3.4 + rehype-parse: 8.0.4 + rehype-stringify: 9.0.3 + unified: 10.1.2 dev: true /remark-admonitions/1.2.1: - resolution: - { - integrity: sha512-Ji6p68VDvD+H1oS95Fdx9Ar5WA2wcDA4kwrrhVU7fGctC6+d3uiMICu7w7/2Xld+lnU7/gi+432+rRbup5S8ow== - } + resolution: {integrity: sha512-Ji6p68VDvD+H1oS95Fdx9Ar5WA2wcDA4kwrrhVU7fGctC6+d3uiMICu7w7/2Xld+lnU7/gi+432+rRbup5S8ow==} dependencies: rehype-parse: 6.0.2 unified: 8.4.2 unist-util-visit: 2.0.3 - dev: false + dev: true + + /remark-directive/2.0.1: + resolution: {integrity: sha512-oosbsUAkU/qmUE78anLaJePnPis4ihsE7Agp0T/oqTzvTea8pOiaYEtfInU/+xMOVTS9PN5AhGOiaIVe4GD8gw==} + dependencies: + '@types/mdast': 3.0.10 + mdast-util-directive: 2.2.1 + micromark-extension-directive: 2.1.1 + unified: 10.1.2 + dev: true - /remark-emoji/3.0.2: - resolution: - { - integrity: sha512-hEgxEv2sBtvhT3tNG/tQeeFY3EbslftaOoG14dDZndLo25fWJ6Fbg4ukFbIotOWWrfXyASjXjyHT+6n366k3mg== - } - engines: { node: ^12.20.0 || ^14.13.1 || >=16.0.0 } + /remark-frontmatter/4.0.1: + resolution: {integrity: sha512-38fJrB0KnmD3E33a5jZC/5+gGAC2WKNiPw1/fdXJvijBlhA7RCsvJklrYJakS0HedninvaCYW8lQGf9C918GfA==} dependencies: - emoticon: 4.0.1 - node-emoji: 1.11.0 - unist-util-visit: 4.1.0 + '@types/mdast': 3.0.10 + mdast-util-frontmatter: 1.0.0 + micromark-extension-frontmatter: 1.0.0 + unified: 10.1.2 dev: true /remark-gfm/3.0.1: - resolution: - { - integrity: sha512-lEFDoi2PICJyNrACFOfDD3JlLkuSbOa5Wd8EPt06HUdptv8Gn0bxYTdbU/XXQ3swAPkEaGxxPN9cbnMHvVu1Ig== - } + resolution: {integrity: sha512-lEFDoi2PICJyNrACFOfDD3JlLkuSbOa5Wd8EPt06HUdptv8Gn0bxYTdbU/XXQ3swAPkEaGxxPN9cbnMHvVu1Ig==} dependencies: - "@types/mdast": 3.0.10 + '@types/mdast': 3.0.10 mdast-util-gfm: 2.0.1 micromark-extension-gfm: 2.0.1 unified: 10.1.2 @@ -4348,132 +4287,179 @@ packages: - supports-color dev: true - /remark-math/3.0.1: - resolution: - { - integrity: sha512-epT77R/HK0x7NqrWHdSV75uNLwn8g9qTyMqCRCDujL0vj/6T6+yhdrR7mjELWtkse+Fw02kijAaBuVcHBor1+Q== - } + /remark-math/5.1.1: + resolution: {integrity: sha512-cE5T2R/xLVtfFI4cCePtiRn+e6jKMtFDR3P8V3qpv8wpKjwvHoBA4eJzvX+nVrnlNy0911bdGmuspCSwetfYHw==} + dependencies: + '@types/mdast': 3.0.10 + mdast-util-math: 2.0.1 + micromark-extension-math: 2.0.2 + unified: 10.1.2 + dev: true + + /remark-mdx-frontmatter/2.0.3: + resolution: {integrity: sha512-R2H8k+KGS8phDwq6bR/tqD6MFytNcT3qSuBdCdv5+5bViNawVzWNRRI1XSaNB4WUcjoZDYJQUzmfw/5Y5vvB+Q==} + engines: {node: '>=14.0.0'} + dependencies: + '@types/mdast': 3.0.10 + estree-util-is-identifier-name: 2.0.1 + estree-util-value-to-estree: 1.3.0 + toml: 3.0.0 + unified: 10.1.2 + yaml: 2.1.1 + dev: true + + /remark-mdx/2.1.3: + resolution: {integrity: sha512-3SmtXOy9+jIaVctL8Cs3VAQInjRLGOwNXfrBB9KCT+EpJpKD3PQiy0x8hUNGyjQmdyOs40BqgPU7kYtH9uoR6w==} + dependencies: + mdast-util-mdx: 2.0.0 + micromark-extension-mdxjs: 1.0.0 + transitivePeerDependencies: + - supports-color dev: true /remark-parse/10.0.1: - resolution: - { - integrity: sha512-1fUyHr2jLsVOkhbvPRBJ5zTKZZyD6yZzYaWCS6BPBdQ8vEMBCH+9zNCDA6tET/zHCi/jLqjCWtlJZUPk+DbnFw== - } + resolution: {integrity: sha512-1fUyHr2jLsVOkhbvPRBJ5zTKZZyD6yZzYaWCS6BPBdQ8vEMBCH+9zNCDA6tET/zHCi/jLqjCWtlJZUPk+DbnFw==} dependencies: - "@types/mdast": 3.0.10 + '@types/mdast': 3.0.10 mdast-util-from-markdown: 1.2.0 unified: 10.1.2 transitivePeerDependencies: - supports-color - dev: false + dev: true + + /remark-rehype/10.1.0: + resolution: {integrity: sha512-EFmR5zppdBp0WQeDVZ/b66CWJipB2q2VLNFMabzDSGR66Z2fQii83G5gTBbgGEnEEA0QRussvrFHxk1HWGJskw==} + dependencies: + '@types/hast': 2.3.4 + '@types/mdast': 3.0.10 + mdast-util-to-hast: 12.2.0 + unified: 10.1.2 + dev: true /remark-slug/7.0.1: - resolution: - { - integrity: sha512-NRvYePr69LdeCkEGwL4KYAmq7kdWG5rEavCXMzUR4qndLoXHJAOLSUmPY6Qm4NJfKix7/EmgObyVaYivONAFhg== - } + resolution: {integrity: sha512-NRvYePr69LdeCkEGwL4KYAmq7kdWG5rEavCXMzUR4qndLoXHJAOLSUmPY6Qm4NJfKix7/EmgObyVaYivONAFhg==} dependencies: - "@types/hast": 2.3.4 - "@types/mdast": 3.0.10 + '@types/hast': 2.3.4 + '@types/mdast': 3.0.10 github-slugger: 1.4.0 mdast-util-to-string: 3.1.0 unified: 10.1.2 - unist-util-visit: 4.1.0 - dev: true - - /resolve-from/4.0.0: - resolution: - { - integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== - } - engines: { node: ">=4" } + unist-util-visit: 4.1.1 dev: true - /resolve/1.19.0: - resolution: - { - integrity: sha512-rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg== - } + /remark-smartypants/2.0.0: + resolution: {integrity: sha512-Rc0VDmr/yhnMQIz8n2ACYXlfw/P/XZev884QU1I5u+5DgJls32o97Vc1RbK3pfumLsJomS2yy8eT4Fxj/2MDVA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dependencies: - is-core-module: 2.10.0 - path-parse: 1.0.7 + retext: 8.1.0 + retext-smartypants: 5.2.0 + unist-util-visit: 4.1.1 dev: true /resolve/1.22.1: - resolution: - { - integrity: sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw== - } + resolution: {integrity: sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==} hasBin: true dependencies: is-core-module: 2.10.0 path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 + + /restore-cursor/4.0.0: + resolution: {integrity: sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + onetime: 5.1.2 + signal-exit: 3.0.7 dev: true - /reusify/1.0.4: - resolution: - { - integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== - } - engines: { iojs: ">=1.0.0", node: ">=0.10.0" } + /retext-latin/3.1.0: + resolution: {integrity: sha512-5MrD1tuebzO8ppsja5eEu+ZbBeUNCjoEarn70tkXOS7Bdsdf6tNahsv2bY0Z8VooFF6cw7/6S+d3yI/TMlMVVQ==} + dependencies: + '@types/nlcst': 1.0.0 + parse-latin: 5.0.0 + unherit: 3.0.0 + unified: 10.1.2 + dev: true + + /retext-smartypants/5.2.0: + resolution: {integrity: sha512-Do8oM+SsjrbzT2UNIKgheP0hgUQTDDQYyZaIY3kfq0pdFzoPk+ZClYJ+OERNXveog4xf1pZL4PfRxNoVL7a/jw==} + dependencies: + '@types/nlcst': 1.0.0 + nlcst-to-string: 3.1.0 + unified: 10.1.2 + unist-util-visit: 4.1.1 + dev: true + + /retext-stringify/3.1.0: + resolution: {integrity: sha512-767TLOaoXFXyOnjx/EggXlb37ZD2u4P1n0GJqVdpipqACsQP+20W+BNpMYrlJkq7hxffnFk+jc6mAK9qrbuB8w==} + dependencies: + '@types/nlcst': 1.0.0 + nlcst-to-string: 3.1.0 + unified: 10.1.2 + dev: true + + /retext/8.1.0: + resolution: {integrity: sha512-N9/Kq7YTn6ZpzfiGW45WfEGJqFf1IM1q8OsRa1CGzIebCJBNCANDRmOrholiDRGKo/We7ofKR4SEvcGAWEMD3Q==} + dependencies: + '@types/nlcst': 1.0.0 + retext-latin: 3.1.0 + retext-stringify: 3.1.0 + unified: 10.1.2 dev: true + /reusify/1.0.4: + resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} + engines: {iojs: '>=1.0.0', node: '>=0.10.0'} + /rimraf/2.7.1: - resolution: - { - integrity: sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== - } + resolution: {integrity: sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==} hasBin: true dependencies: glob: 7.2.3 dev: true - /rimraf/3.0.2: - resolution: - { - integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== - } + /rollup/2.77.3: + resolution: {integrity: sha512-/qxNTG7FbmefJWoeeYJFbHehJ2HNWnjkAFRKzWN/45eNBBF/r8lo992CwcJXEzyVxs5FmfId+vTSTQDb+bxA+g==} + engines: {node: '>=10.0.0'} hasBin: true - dependencies: - glob: 7.2.3 + optionalDependencies: + fsevents: 2.3.2 dev: true - /rollup/2.77.2: - resolution: - { - integrity: sha512-m/4YzYgLcpMQbxX3NmAqDvwLATZzxt8bIegO78FZLl+lAgKJBd1DRAOeEiZcKOIOPjxE6ewHWHNgGEalFXuz1g== - } - engines: { node: ">=10.0.0" } + /rollup/2.78.1: + resolution: {integrity: sha512-VeeCgtGi4P+o9hIg+xz4qQpRl6R401LWEXBmxYKOV4zlF82lyhgh2hTZnheFUbANE8l2A41F458iwj2vEYaXJg==} + engines: {node: '>=10.0.0'} hasBin: true optionalDependencies: fsevents: 2.3.2 dev: true /run-parallel/1.2.0: - resolution: - { - integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== - } + resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} dependencies: queue-microtask: 1.2.3 + + /s.color/0.0.15: + resolution: {integrity: sha512-AUNrbEUHeKY8XsYr/DYpl+qk5+aM+DChopnWOPEzn8YKzOhv4l2zH6LzZms3tOZP3wwdOyc0RmTciyi46HLIuA==} dev: true /sade/1.8.1: - resolution: - { - integrity: sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A== - } - engines: { node: ">=6" } + resolution: {integrity: sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==} + engines: {node: '>=6'} dependencies: mri: 1.2.0 + dev: true + + /safe-buffer/5.1.2: + resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} + dev: true + + /safe-buffer/5.2.1: + resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} + dev: true /sander/0.5.1: - resolution: - { - integrity: sha512-3lVqBir7WuKDHGrKRDn/1Ye3kwpXaDOMsiRP1wd6wpZW56gJhsbp5RqQpA6JG/P+pkXizygnr1dKR8vzWaVsfA== - } + resolution: {integrity: sha512-3lVqBir7WuKDHGrKRDn/1Ye3kwpXaDOMsiRP1wd6wpZW56gJhsbp5RqQpA6JG/P+pkXizygnr1dKR8vzWaVsfA==} dependencies: es6-promise: 3.3.1 graceful-fs: 4.2.10 @@ -4481,104 +4467,145 @@ packages: rimraf: 2.7.1 dev: true + /sass-formatter/0.7.5: + resolution: {integrity: sha512-NKFP8ddjhUYi6A/iD1cEtzkEs91U61kzqe3lY9SVNuvX7LGc88xnEN0mmsWL7Ol//YTi2GL/ol7b9XZ2+hgXuA==} + dependencies: + suf-log: 2.5.3 + dev: true + /sax/1.2.4: - resolution: - { - integrity: sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== - } - dev: false + resolution: {integrity: sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==} + dev: true - /semver/5.7.1: - resolution: - { - integrity: sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== - } - hasBin: true + /section-matter/1.0.0: + resolution: {integrity: sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA==} + engines: {node: '>=4'} + dependencies: + extend-shallow: 2.0.1 + kind-of: 6.0.3 dev: true /semver/6.3.0: - resolution: - { - integrity: sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== - } + resolution: {integrity: sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==} hasBin: true dev: true /semver/7.3.7: - resolution: - { - integrity: sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g== - } - engines: { node: ">=10" } + resolution: {integrity: sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==} + engines: {node: '>=10'} hasBin: true dependencies: lru-cache: 6.0.0 dev: true + /sharp/0.29.3: + resolution: {integrity: sha512-fKWUuOw77E4nhpyzCCJR1ayrttHoFHBT2U/kR/qEMRhvPEcluG4BKj324+SCO1e84+knXHwhJ1HHJGnUt4ElGA==} + engines: {node: '>=12.13.0'} + requiresBuild: true + dependencies: + color: 4.2.3 + detect-libc: 1.0.3 + node-addon-api: 4.3.0 + prebuild-install: 7.1.1 + semver: 7.3.7 + simple-get: 4.0.1 + tar-fs: 2.1.1 + tunnel-agent: 0.6.0 + dev: true + optional: true + + /sharp/0.30.7: + resolution: {integrity: sha512-G+MY2YW33jgflKPTXXptVO28HvNOo9G3j0MybYAHeEmby+QuD2U98dT6ueht9cv/XDqZspSpIhoSW+BAKJ7Hig==} + engines: {node: '>=12.13.0'} + requiresBuild: true + dependencies: + color: 4.2.3 + detect-libc: 2.0.1 + node-addon-api: 5.0.0 + prebuild-install: 7.1.1 + semver: 7.3.7 + simple-get: 4.0.1 + tar-fs: 2.1.1 + tunnel-agent: 0.6.0 + dev: true + /shebang-command/2.0.0: - resolution: - { - integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== - } - engines: { node: ">=8" } + resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} + engines: {node: '>=8'} dependencies: shebang-regex: 3.0.0 dev: true /shebang-regex/3.0.0: - resolution: - { - integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== - } - engines: { node: ">=8" } + resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} + engines: {node: '>=8'} + dev: true + + /shiki/0.10.1: + resolution: {integrity: sha512-VsY7QJVzU51j5o1+DguUd+6vmCmZ5v/6gYu4vyYAhzjuNQU6P/vmSy4uQaOhvje031qQMiW0d2BwgMH52vqMng==} + dependencies: + jsonc-parser: 3.1.0 + vscode-oniguruma: 1.6.2 + vscode-textmate: 5.2.0 dev: true /shikwasa/2.1.4: - resolution: - { - integrity: sha512-d8H/Ha+zjf17VoVGV0VqYq7SPU7nArA55Gr5F2T0afqH4qQxBQk/x38VcVNFomB++bwI25+wMwzepUuNnBlzsQ== - } + resolution: {integrity: sha512-d8H/Ha+zjf17VoVGV0VqYq7SPU7nArA55Gr5F2T0afqH4qQxBQk/x38VcVNFomB++bwI25+wMwzepUuNnBlzsQ==} dev: false - /side-channel/1.0.4: - resolution: - { - integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw== - } + /signal-exit/3.0.7: + resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} + dev: true + + /simple-concat/1.0.1: + resolution: {integrity: sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==} + dev: true + + /simple-get/4.0.1: + resolution: {integrity: sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA==} + dependencies: + decompress-response: 6.0.0 + once: 1.4.0 + simple-concat: 1.0.1 + dev: true + + /simple-swizzle/0.2.2: + resolution: {integrity: sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==} dependencies: - call-bind: 1.0.2 - get-intrinsic: 1.1.2 - object-inspect: 1.12.2 + is-arrayish: 0.3.2 dev: true - /slash/3.0.0: - resolution: - { - integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== - } - engines: { node: ">=8" } + /sirv/2.0.2: + resolution: {integrity: sha512-4Qog6aE29nIjAOKe/wowFTxOdmbEZKb+3tsLljaBRzJwtqto0BChD2zzH0LhgCSXiI+V7X+Y45v14wBZQ1TK3w==} + engines: {node: '>= 10'} + dependencies: + '@polka/url': 1.0.0-next.21 + mrmime: 1.0.1 + totalist: 3.0.0 + dev: true + + /sisteransi/1.0.5: + resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==} + dev: true + + /sitemap/7.1.1: + resolution: {integrity: sha512-mK3aFtjz4VdJN0igpIJrinf3EO8U8mxOPsTBzSsy06UtjZQJ3YY3o3Xa7zSc5nMqcMrRwlChHZ18Kxg0caiPBg==} + engines: {node: '>=12.0.0', npm: '>=5.6.0'} + hasBin: true + dependencies: + '@types/node': 17.0.45 + '@types/sax': 1.2.4 + arg: 5.0.2 + sax: 1.2.4 dev: true /slash/4.0.0: - resolution: - { - integrity: sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew== - } - engines: { node: ">=12" } - dev: true - - /slide/1.1.6: - resolution: - { - integrity: sha512-NwrtjCg+lZoqhFU8fOwl4ay2ei8PaqCBOUV3/ektPY9trO1yQ1oXEfmHAhKArUVUr/hOHvy5f6AdP17dCM0zMw== - } + resolution: {integrity: sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==} + engines: {node: '>=12'} dev: true /sorcery/0.10.0: - resolution: - { - integrity: sha512-R5ocFmKZQFfSTstfOtHjJuAwbpGyf9qjQa1egyhvXSbM7emjrtLXtGdZsDJDABC85YBfVvrOiGWKSYXPKdvP1g== - } + resolution: {integrity: sha512-R5ocFmKZQFfSTstfOtHjJuAwbpGyf9qjQa1egyhvXSbM7emjrtLXtGdZsDJDABC85YBfVvrOiGWKSYXPKdvP1g==} hasBin: true dependencies: buffer-crc32: 0.2.13 @@ -4588,246 +4615,227 @@ packages: dev: true /source-map-js/1.0.2: - resolution: - { - integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw== - } - engines: { node: ">=0.10.0" } - dev: true + resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==} + engines: {node: '>=0.10.0'} /source-map/0.6.1: - resolution: - { - integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== - } - engines: { node: ">=0.10.0" } + resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} + engines: {node: '>=0.10.0'} + dev: true + + /source-map/0.7.4: + resolution: {integrity: sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==} + engines: {node: '>= 8'} dev: true /sourcemap-codec/1.4.8: - resolution: - { - integrity: sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA== - } + resolution: {integrity: sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==} dev: true /space-separated-tokens/1.1.5: - resolution: - { - integrity: sha512-q/JSVd1Lptzhf5bkYm4ob4iWPjx0KiRe3sRFBNrVqbJkFaBm5vbbowy1mymoPNLRa52+oadOhJ+K49wsSeSjTA== - } - dev: false + resolution: {integrity: sha512-q/JSVd1Lptzhf5bkYm4ob4iWPjx0KiRe3sRFBNrVqbJkFaBm5vbbowy1mymoPNLRa52+oadOhJ+K49wsSeSjTA==} + dev: true /space-separated-tokens/2.0.1: - resolution: - { - integrity: sha512-ekwEbFp5aqSPKaqeY1PGrlGQxPNaq+Cnx4+bE2D8sciBQrHpbwoBbawqTN2+6jPs9IdWxxiUcN0K2pkczD3zmw== - } + resolution: {integrity: sha512-ekwEbFp5aqSPKaqeY1PGrlGQxPNaq+Cnx4+bE2D8sciBQrHpbwoBbawqTN2+6jPs9IdWxxiUcN0K2pkczD3zmw==} dev: true - /spdx-compare/1.0.0: - resolution: - { - integrity: sha512-C1mDZOX0hnu0ep9dfmuoi03+eOdDoz2yvK79RxbcrVEG1NO1Ph35yW102DHWKN4pk80nwCgeMmSY5L25VE4D9A== - } - dependencies: - array-find-index: 1.0.2 - spdx-expression-parse: 3.0.1 - spdx-ranges: 2.1.1 + /sprintf-js/1.0.3: + resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} dev: true - /spdx-correct/3.1.1: - resolution: - { - integrity: sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w== - } + /string-width/4.2.3: + resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} + engines: {node: '>=8'} dependencies: - spdx-expression-parse: 3.0.1 - spdx-license-ids: 3.0.11 + emoji-regex: 8.0.0 + is-fullwidth-code-point: 3.0.0 + strip-ansi: 6.0.1 dev: true - /spdx-exceptions/2.3.0: - resolution: - { - integrity: sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A== - } + /string-width/5.1.2: + resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} + engines: {node: '>=12'} + dependencies: + eastasianwidth: 0.2.0 + emoji-regex: 9.2.2 + strip-ansi: 7.0.1 dev: true - /spdx-expression-parse/3.0.1: - resolution: - { - integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q== - } + /string_decoder/1.3.0: + resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} dependencies: - spdx-exceptions: 2.3.0 - spdx-license-ids: 3.0.11 + safe-buffer: 5.2.1 dev: true - /spdx-license-ids/3.0.11: - resolution: - { - integrity: sha512-Ctl2BrFiM0X3MANYgj3CkygxhRmr9mi6xhejbdO960nF6EDJApTYpn0BQnDKlnNBULKiCN1n3w9EBkHK8ZWg+g== - } + /stringify-entities/4.0.3: + resolution: {integrity: sha512-BP9nNHMhhfcMbiuQKCqMjhDP5yBCAxsPu4pHFFzJ6Alo9dZgY4VLDPutXqIjpRiMoKdp7Av85Gr73Q5uH9k7+g==} + dependencies: + character-entities-html4: 2.1.0 + character-entities-legacy: 3.0.0 dev: true - /spdx-ranges/2.1.1: - resolution: - { - integrity: sha512-mcdpQFV7UDAgLpXEE/jOMqvK4LBoO0uTQg0uvXUewmEFhpiZx5yJSZITHB8w1ZahKdhfZqP5GPEOKLyEq5p8XA== - } + /strip-ansi/6.0.1: + resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} + engines: {node: '>=8'} + dependencies: + ansi-regex: 5.0.1 dev: true - /spdx-satisfies/4.0.1: - resolution: - { - integrity: sha512-WVzZ/cXAzoNmjCWiEluEA3BjHp5tiUmmhn9MK+X0tBbR9sOqtC6UQwmgCNrAIZvNlMuBUYAaHYfb2oqlF9SwKA== - } + /strip-ansi/7.0.1: + resolution: {integrity: sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==} + engines: {node: '>=12'} dependencies: - spdx-compare: 1.0.0 - spdx-expression-parse: 3.0.1 - spdx-ranges: 2.1.1 + ansi-regex: 6.0.1 dev: true - /string.prototype.trimend/1.0.5: - resolution: - { - integrity: sha512-I7RGvmjV4pJ7O3kdf+LXFpVfdNOxtCW/2C8f6jNiW4+PQchwxkCDzlk1/7p+Wl4bqFIZeF47qAHXLuHHWKAxog== - } - dependencies: - call-bind: 1.0.2 - define-properties: 1.1.4 - es-abstract: 1.20.1 + /strip-bom-string/1.0.0: + resolution: {integrity: sha512-uCC2VHvQRYu+lMh4My/sFNmF2klFymLX1wHJeXnbEJERpV/ZsVuonzerjfrGpIGF7LBVa1O7i9kjiWvJiFck8g==} + engines: {node: '>=0.10.0'} dev: true - /string.prototype.trimstart/1.0.5: - resolution: - { - integrity: sha512-THx16TJCGlsN0o6dl2o6ncWUsdgnLRSA23rRE5pyGBw/mLr3Ej/R2LaqCtgP8VNMGZsvMWnf9ooZPyY2bHvUFg== - } - dependencies: - call-bind: 1.0.2 - define-properties: 1.1.4 - es-abstract: 1.20.1 + /strip-bom/3.0.0: + resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} + engines: {node: '>=4'} dev: true - /strip-ansi/6.0.1: - resolution: - { - integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== - } - engines: { node: ">=8" } - dependencies: - ansi-regex: 5.0.1 + /strip-bom/4.0.0: + resolution: {integrity: sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==} + engines: {node: '>=8'} dev: true - /strip-bom/3.0.0: - resolution: - { - integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA== - } - engines: { node: ">=4" } + /strip-final-newline/3.0.0: + resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==} + engines: {node: '>=12'} dev: true /strip-indent/3.0.0: - resolution: - { - integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ== - } - engines: { node: ">=8" } + resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==} + engines: {node: '>=8'} dependencies: min-indent: 1.0.1 dev: true - /strip-json-comments/3.1.1: - resolution: - { - integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== - } - engines: { node: ">=8" } + /strip-json-comments/2.0.1: + resolution: {integrity: sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==} + engines: {node: '>=0.10.0'} + dev: true + + /strtok3/7.0.0: + resolution: {integrity: sha512-pQ+V+nYQdC5H3Q7qBZAz/MO6lwGhoC2gOAjuouGf/VO0m7vQRh8QNMl2Uf6SwAtzZ9bOw3UIeBukEGNJl5dtXQ==} + engines: {node: '>=14.16'} + dependencies: + '@tokenizer/token': 0.3.0 + peek-readable: 5.0.0 + dev: true + + /style-to-object/0.3.0: + resolution: {integrity: sha512-CzFnRRXhzWIdItT3OmF8SQfWyahHhjq3HwcMNCNLn+N7klOOqPjMeG/4JSu77D7ypZdGvSzvkrbyeTMizz2VrA==} + dependencies: + inline-style-parser: 0.1.1 + dev: true + + /suf-log/2.5.3: + resolution: {integrity: sha512-KvC8OPjzdNOe+xQ4XWJV2whQA0aM1kGVczMQ8+dStAO6KfEB140JEVQ9dE76ONZ0/Ylf67ni4tILPJB41U0eow==} + dependencies: + s.color: 0.0.15 dev: true /supports-color/5.5.0: - resolution: - { - integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== - } - engines: { node: ">=4" } + resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} + engines: {node: '>=4'} dependencies: has-flag: 3.0.0 dev: true /supports-color/7.2.0: - resolution: - { - integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== - } - engines: { node: ">=8" } + resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} + engines: {node: '>=8'} dependencies: has-flag: 4.0.0 dev: true + /supports-esm/1.0.0: + resolution: {integrity: sha512-96Am8CDqUaC0I2+C/swJ0yEvM8ZnGn4unoers/LSdE4umhX7mELzqyLzx3HnZAluq5PXIsGMKqa7NkqaeHMPcg==} + dependencies: + has-package-exports: 1.3.0 + dev: true + /supports-preserve-symlinks-flag/1.0.0: - resolution: - { - integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== - } - engines: { node: ">= 0.4" } - dev: true - - /svelte-check/2.8.0_blrkfmplrezk6jx3arz7bdc3pa: - resolution: - { - integrity: sha512-HRL66BxffMAZusqe5I5k26mRWQ+BobGd9Rxm3onh7ZVu0nTk8YTKJ9vu3LVPjUGLU9IX7zS+jmwPVhJYdXJ8vg== - } - hasBin: true + resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} + engines: {node: '>= 0.4'} + + /svelte-hmr/0.14.12_svelte@3.49.0: + resolution: {integrity: sha512-4QSW/VvXuqVcFZ+RhxiR8/newmwOCTlbYIezvkeN6302YFRE8cXy0naamHcjz8Y9Ce3ITTZtrHrIL0AGfyo61w==} + engines: {node: ^12.20 || ^14.13.1 || >= 16} peerDependencies: - svelte: ^3.24.0 + svelte: '>=3.19.0' dependencies: - "@jridgewell/trace-mapping": 0.3.14 - chokidar: 3.5.3 - fast-glob: 3.2.11 - import-fresh: 3.3.0 - picocolors: 1.0.0 - sade: 1.8.1 svelte: 3.49.0 - svelte-preprocess: 4.10.7_6avtyouqcdws46kxwsvk4vhxre - typescript: 4.7.4 - transitivePeerDependencies: - - "@babel/core" - - coffeescript - - less - - node-sass - - postcss - - postcss-load-config - - pug - - sass - - stylus - - sugarss dev: true - /svelte-hmr/0.14.12_svelte@3.49.0: - resolution: - { - integrity: sha512-4QSW/VvXuqVcFZ+RhxiR8/newmwOCTlbYIezvkeN6302YFRE8cXy0naamHcjz8Y9Ce3ITTZtrHrIL0AGfyo61w== - } - engines: { node: ^12.20 || ^14.13.1 || >= 16 } + /svelte-preprocess/4.10.7_2gxycpxbczdceodty77wdrmyia: + resolution: {integrity: sha512-sNPBnqYD6FnmdBrUmBCaqS00RyCsCpj2BG58A1JBswNF7b0OKviwxqVrOL/CKyJrLSClrSeqQv5BXNg2RUbPOw==} + engines: {node: '>= 9.11.2'} + requiresBuild: true peerDependencies: - svelte: ">=3.19.0" + '@babel/core': ^7.10.2 + coffeescript: ^2.5.1 + less: ^3.11.3 || ^4.0.0 + node-sass: '*' + postcss: ^7 || ^8 + postcss-load-config: ^2.1.0 || ^3.0.0 || ^4.0.0 + pug: ^3.0.0 + sass: ^1.26.8 + stylus: ^0.55.0 + sugarss: ^2.0.0 + svelte: ^3.23.0 + typescript: ^3.9.5 || ^4.0.0 + peerDependenciesMeta: + '@babel/core': + optional: true + coffeescript: + optional: true + less: + optional: true + node-sass: + optional: true + postcss: + optional: true + postcss-load-config: + optional: true + pug: + optional: true + sass: + optional: true + stylus: + optional: true + sugarss: + optional: true + typescript: + optional: true dependencies: + '@types/pug': 2.0.6 + '@types/sass': 1.43.1 + detect-indent: 6.1.0 + magic-string: 0.25.9 + postcss: 8.4.16 + postcss-load-config: 4.0.1_postcss@8.4.16 + sorcery: 0.10.0 + strip-indent: 3.0.0 svelte: 3.49.0 + typescript: 4.7.4 dev: true - /svelte-preprocess/4.10.7_6avtyouqcdws46kxwsvk4vhxre: - resolution: - { - integrity: sha512-sNPBnqYD6FnmdBrUmBCaqS00RyCsCpj2BG58A1JBswNF7b0OKviwxqVrOL/CKyJrLSClrSeqQv5BXNg2RUbPOw== - } - engines: { node: ">= 9.11.2" } + /svelte-preprocess/4.10.7_l7q3nrlpy44fkjv4575d7e5a4m: + resolution: {integrity: sha512-sNPBnqYD6FnmdBrUmBCaqS00RyCsCpj2BG58A1JBswNF7b0OKviwxqVrOL/CKyJrLSClrSeqQv5BXNg2RUbPOw==} + engines: {node: '>= 9.11.2'} requiresBuild: true peerDependencies: - "@babel/core": ^7.10.2 + '@babel/core': ^7.10.2 coffeescript: ^2.5.1 less: ^3.11.3 || ^4.0.0 - node-sass: "*" + node-sass: '*' postcss: ^7 || ^8 postcss-load-config: ^2.1.0 || ^3.0.0 || ^4.0.0 pug: ^3.0.0 @@ -4837,7 +4845,7 @@ packages: svelte: ^3.23.0 typescript: ^3.9.5 || ^4.0.0 peerDependenciesMeta: - "@babel/core": + '@babel/core': optional: true coffeescript: optional: true @@ -4860,12 +4868,12 @@ packages: typescript: optional: true dependencies: - "@types/pug": 2.0.6 - "@types/sass": 1.43.1 + '@types/pug': 2.0.6 + '@types/sass': 1.43.1 detect-indent: 6.1.0 magic-string: 0.25.9 - postcss: 8.4.14 - postcss-load-config: 4.0.1_postcss@8.4.14 + postcss: 8.4.16 + postcss-load-config: 3.1.4_postcss@8.4.16 sorcery: 0.10.0 strip-indent: 3.0.0 svelte: 3.49.0 @@ -4873,30 +4881,36 @@ packages: dev: true /svelte/3.49.0: - resolution: - { - integrity: sha512-+lmjic1pApJWDfPCpUUTc1m8azDqYCG1JN9YEngrx/hUyIcFJo6VZhj0A1Ai0wqoHcEIuQy+e9tk+4uDgdtsFA== - } - engines: { node: ">= 8" } - - /synckit/0.8.1: - resolution: - { - integrity: sha512-rJEeygO5PNmcZICmrgnbOd2usi5zWE1ESc0Gn5tTmJlongoU8zCTwMFQtar2UgMSiR68vK9afPQ+uVs2lURSIA== - } - engines: { node: ^14.18.0 || >=16.0.0 } - dependencies: - "@pkgr/utils": 2.3.0 + resolution: {integrity: sha512-+lmjic1pApJWDfPCpUUTc1m8azDqYCG1JN9YEngrx/hUyIcFJo6VZhj0A1Ai0wqoHcEIuQy+e9tk+4uDgdtsFA==} + engines: {node: '>= 8'} + dev: true + + /svelte2tsx/0.5.14_uslzfc62di2n2otc2tvfklnwji: + resolution: {integrity: sha512-/9hGkIUMVwZDJoERS6k1x+y6Ir+PpkxbL/UWQ2+RhK/PwUoIaDTCfw79/H1bgYNUTr/7ZaYanJGPuaWARNbbyQ==} + peerDependencies: + svelte: ^3.24 + typescript: ^4.1.2 + dependencies: + dedent-js: 1.0.1 + pascal-case: 3.1.2 + svelte: 3.49.0 + typescript: 4.7.4 + dev: true + + /synckit/0.7.3: + resolution: {integrity: sha512-jNroMv7Juy+mJ/CHW5H6TzsLWpa1qck6sCHbkv8YTur+irSq2PjbvmGnm2gy14BUQ6jF33vyR4DPssHqmqsDQw==} + engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} + dependencies: + '@pkgr/utils': 2.3.0 tslib: 2.4.0 dev: true - /tailwindcss/3.1.8: - resolution: - { - integrity: sha512-YSneUCZSFDYMwk+TGq8qYFdCA3yfBRdBlS7txSq0LUmzyeqRe3a8fBQzbz9M3WS/iFT4BNf/nmw9mEzrnSaC0g== - } - engines: { node: ">=12.13.0" } + /tailwindcss/3.1.8_postcss@8.4.16: + resolution: {integrity: sha512-YSneUCZSFDYMwk+TGq8qYFdCA3yfBRdBlS7txSq0LUmzyeqRe3a8fBQzbz9M3WS/iFT4BNf/nmw9mEzrnSaC0g==} + engines: {node: '>=12.13.0'} hasBin: true + peerDependencies: + postcss: ^8.0.9 dependencies: arg: 5.0.2 chokidar: 3.5.3 @@ -4911,397 +4925,377 @@ packages: normalize-path: 3.0.0 object-hash: 3.0.0 picocolors: 1.0.0 - postcss: 8.4.14 - postcss-import: 14.1.0_postcss@8.4.14 - postcss-js: 4.0.0_postcss@8.4.14 - postcss-load-config: 3.1.4_postcss@8.4.14 - postcss-nested: 5.0.6_postcss@8.4.14 + postcss: 8.4.16 + postcss-import: 14.1.0_postcss@8.4.16 + postcss-js: 4.0.0_postcss@8.4.16 + postcss-load-config: 3.1.4_postcss@8.4.16 + postcss-nested: 5.0.6_postcss@8.4.16 postcss-selector-parser: 6.0.10 postcss-value-parser: 4.2.0 quick-lru: 5.1.1 resolve: 1.22.1 transitivePeerDependencies: - ts-node + + /tar-fs/2.1.1: + resolution: {integrity: sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==} + dependencies: + chownr: 1.1.4 + mkdirp-classic: 0.5.3 + pump: 3.0.0 + tar-stream: 2.2.0 dev: true - /tapable/2.2.1: - resolution: - { - integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ== - } - engines: { node: ">=6" } + /tar-stream/2.2.0: + resolution: {integrity: sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==} + engines: {node: '>=6'} + dependencies: + bl: 4.1.0 + end-of-stream: 1.4.4 + fs-constants: 1.0.0 + inherits: 2.0.4 + readable-stream: 3.6.0 dev: true - /text-table/0.2.0: - resolution: - { - integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw== - } + /timm/1.7.1: + resolution: {integrity: sha512-IjZc9KIotudix8bMaBW6QvMuq64BrJWFs1+4V0lXwWGQZwH+LnX87doAYhem4caOEusRP9/g6jVDQmZ8XOk1nw==} dev: true /tiny-glob/0.2.9: - resolution: - { - integrity: sha512-g/55ssRPUjShh+xkfx9UPDXqhckHEsHr4Vd9zX55oSdGZc/MD0m3sferOkwWtp98bv+kcVfEHtRJgBVJzelrzg== - } + resolution: {integrity: sha512-g/55ssRPUjShh+xkfx9UPDXqhckHEsHr4Vd9zX55oSdGZc/MD0m3sferOkwWtp98bv+kcVfEHtRJgBVJzelrzg==} dependencies: globalyzer: 0.1.0 globrex: 0.1.2 dev: true + /tinycolor2/1.4.2: + resolution: {integrity: sha512-vJhccZPs965sV/L2sU4oRQVAos0pQXwsvTLkWYdqJ+a8Q5kPFzJTuOFwy7UniPli44NKQGAglksjvOcpo95aZA==} + dev: true + + /to-fast-properties/2.0.0: + resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} + engines: {node: '>=4'} + dev: true + /to-regex-range/5.0.1: - resolution: - { - integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== - } - engines: { node: ">=8.0" } + resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} + engines: {node: '>=8.0'} dependencies: is-number: 7.0.0 + + /token-types/5.0.1: + resolution: {integrity: sha512-Y2fmSnZjQdDb9W4w4r1tswlMHylzWIeOKpx0aZH9BgGtACHhrk3OkT52AzwcuqTRBZtvvnTjDBh8eynMulu8Vg==} + engines: {node: '>=14.16'} + dependencies: + '@tokenizer/token': 0.3.0 + ieee754: 1.2.1 + dev: true + + /toml/3.0.0: + resolution: {integrity: sha512-y/mWCZinnvxjTKYhJ+pYxwD0mRLVvOtdS2Awbgxln6iEnt4rk0yBxeSBHkGJcPucRiG0e55mwWp+g/05rsrd6w==} dev: true - /treeify/1.1.0: - resolution: - { - integrity: sha512-1m4RA7xVAJrSGrrXGs0L3YTwyvBs2S8PbRHaLZAkFw7JR8oIFwYtysxlBZhYIa7xSyiYJKZ3iGrrk55cGA3i9A== - } - engines: { node: ">=0.6" } + /totalist/3.0.0: + resolution: {integrity: sha512-eM+pCBxXO/njtF7vdFsHuqb+ElbxqtI4r5EAvk6grfAFyJ6IvWlSkfZ5T9ozC6xWw3Fj1fGoSmrl0gUs46JVIw==} + engines: {node: '>=6'} + dev: true + + /trim-lines/3.0.1: + resolution: {integrity: sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==} dev: true /trough/1.0.5: - resolution: - { - integrity: sha512-rvuRbTarPXmMb79SmzEp8aqXNKcK+y0XaB298IXueQ8I2PsrATcPBCSPyK/dDNa2iWOhKlfNnOjdAOTBU/nkFA== - } - dev: false + resolution: {integrity: sha512-rvuRbTarPXmMb79SmzEp8aqXNKcK+y0XaB298IXueQ8I2PsrATcPBCSPyK/dDNa2iWOhKlfNnOjdAOTBU/nkFA==} + dev: true /trough/2.1.0: - resolution: - { - integrity: sha512-AqTiAOLcj85xS7vQ8QkAV41hPDIJ71XJB4RCUrzo/1GM2CQwhkJGaf9Hgr7BOugMRpgGUrqRg/DrBDl4H40+8g== - } - - /tsconfig-paths/3.14.1: - resolution: - { - integrity: sha512-fxDhWnFSLt3VuTwtvJt5fpwxBHg5AdKWMsgcPOOIilyjymcYVZoCQF8fvFRezCNfblEXmi+PcM1eYHeOAgXCOQ== - } - dependencies: - "@types/json5": 0.0.29 - json5: 1.0.1 - minimist: 1.2.6 - strip-bom: 3.0.0 + resolution: {integrity: sha512-AqTiAOLcj85xS7vQ8QkAV41hPDIJ71XJB4RCUrzo/1GM2CQwhkJGaf9Hgr7BOugMRpgGUrqRg/DrBDl4H40+8g==} dev: true - /tslib/1.14.1: - resolution: - { - integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== - } + /tsconfig-resolver/3.0.1: + resolution: {integrity: sha512-ZHqlstlQF449v8glscGRXzL6l2dZvASPCdXJRWG4gHEZlUVx2Jtmr+a2zeVG4LCsKhDXKRj5R3h0C/98UcVAQg==} + dependencies: + '@types/json5': 0.0.30 + '@types/resolve': 1.20.2 + json5: 2.2.1 + resolve: 1.22.1 + strip-bom: 4.0.0 + type-fest: 0.13.1 dev: true /tslib/2.4.0: - resolution: - { - integrity: sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ== - } - dev: true - - /tsutils/3.21.0_typescript@4.7.4: - resolution: - { - integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA== - } - engines: { node: ">= 6" } - peerDependencies: - typescript: ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" + resolution: {integrity: sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==} + dev: true + + /tsm/2.2.2: + resolution: {integrity: sha512-bXkt675NbbqfwRHSSn8kSNEEHvoIUFDM9G6tUENkjEKpAEbrEzieO3PxUiRJylMw8fEGpcf5lSjadzzz12pc2A==} + engines: {node: '>=12'} + hasBin: true dependencies: - tslib: 1.14.1 - typescript: 4.7.4 + esbuild: 0.14.54 dev: true - /type-check/0.4.0: - resolution: - { - integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew== - } - engines: { node: ">= 0.8.0" } + /tunnel-agent/0.6.0: + resolution: {integrity: sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==} dependencies: - prelude-ls: 1.2.1 + safe-buffer: 5.2.1 dev: true - /type-fest/0.20.2: - resolution: - { - integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ== - } - engines: { node: ">=10" } + /type-fest/0.13.1: + resolution: {integrity: sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==} + engines: {node: '>=10'} dev: true - /typescript/4.7.4: - resolution: - { - integrity: sha512-C0WQT0gezHuw6AdY1M2jxUO83Rjf0HP7Sk1DtXj6j1EwkQNZrHAg2XPWlq62oqEhYvONq5pkC2Y9oPljWToLmQ== - } - engines: { node: ">=4.2.0" } + /type-fest/2.18.1: + resolution: {integrity: sha512-UKCINsd4qiATXD6OIlnQw9t1ux/n2ld+Nl0kzPbCONhCaUIS/BhJbNw14w6584HCQWf3frBK8vmWnGZq/sbPHQ==} + engines: {node: '>=12.20'} + dev: true + + /typescript/4.6.4: + resolution: {integrity: sha512-9ia/jWHIEbo49HfjrLGfKbZSuWo9iTMwXO+Ca3pRsSpbsMbc7/IU8NKdCZVRRBafVPGnoJeFL76ZOAA84I9fEg==} + engines: {node: '>=4.2.0'} hasBin: true dev: true - /uglify-js/3.16.3: - resolution: - { - integrity: sha512-uVbFqx9vvLhQg0iBaau9Z75AxWJ8tqM9AV890dIZCLApF4rTcyHwmAvLeEdYRs+BzYWu8Iw81F79ah0EfTXbaw== - } - engines: { node: ">=0.8.0" } + /typescript/4.7.4: + resolution: {integrity: sha512-C0WQT0gezHuw6AdY1M2jxUO83Rjf0HP7Sk1DtXj6j1EwkQNZrHAg2XPWlq62oqEhYvONq5pkC2Y9oPljWToLmQ==} + engines: {node: '>=4.2.0'} hasBin: true dev: true - /unbox-primitive/1.0.2: - resolution: - { - integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw== - } - dependencies: - call-bind: 1.0.2 - has-bigints: 1.0.2 - has-symbols: 1.0.3 - which-boxed-primitive: 1.0.2 + /unherit/3.0.0: + resolution: {integrity: sha512-UmvIQZGEc9qdLIQ8mv8/61n6PiMgfbOoASPKHpCvII5srShCQSa6jSjBjlZOR4bxt2XnT6uo6csmPKRi+zQ0Jg==} dev: true /unified/10.1.2: - resolution: - { - integrity: sha512-pUSWAi/RAnVy1Pif2kAoeWNBa3JVrx0MId2LASj8G+7AiHWoKZNTomq6LG326T68U7/e263X6fTdcXIy7XnF7Q== - } + resolution: {integrity: sha512-pUSWAi/RAnVy1Pif2kAoeWNBa3JVrx0MId2LASj8G+7AiHWoKZNTomq6LG326T68U7/e263X6fTdcXIy7XnF7Q==} dependencies: - "@types/unist": 2.0.6 + '@types/unist': 2.0.6 bail: 2.0.2 extend: 3.0.2 is-buffer: 2.0.5 is-plain-obj: 4.1.0 trough: 2.1.0 vfile: 5.3.4 + dev: true /unified/8.4.2: - resolution: - { - integrity: sha512-JCrmN13jI4+h9UAyKEoGcDZV+i1E7BLFuG7OsaDvTXI5P0qhHX+vZO/kOhz9jn8HGENDKbwSeB0nVOg4gVStGA== - } + resolution: {integrity: sha512-JCrmN13jI4+h9UAyKEoGcDZV+i1E7BLFuG7OsaDvTXI5P0qhHX+vZO/kOhz9jn8HGENDKbwSeB0nVOg4gVStGA==} dependencies: bail: 1.0.5 extend: 3.0.2 is-plain-obj: 2.1.0 trough: 1.0.5 vfile: 4.2.1 - dev: false + dev: true + + /unist-builder/3.0.0: + resolution: {integrity: sha512-GFxmfEAa0vi9i5sd0R2kcrI9ks0r82NasRq5QHh2ysGngrc6GiqD5CDf1FjPenY4vApmFASBIIlk/jj5J5YbmQ==} + dependencies: + '@types/unist': 2.0.6 + dev: true /unist-util-find-after/4.0.0: - resolution: - { - integrity: sha512-gfpsxKQde7atVF30n5Gff2fQhAc4/HTOV4CvkXpTg9wRfQhZWdXitpyXHWB6YcYgnsxLx+4gGHeVjCTAAp9sjw== - } + resolution: {integrity: sha512-gfpsxKQde7atVF30n5Gff2fQhAc4/HTOV4CvkXpTg9wRfQhZWdXitpyXHWB6YcYgnsxLx+4gGHeVjCTAAp9sjw==} dependencies: - "@types/unist": 2.0.6 + '@types/unist': 2.0.6 unist-util-is: 5.1.1 dev: true + /unist-util-generated/2.0.0: + resolution: {integrity: sha512-TiWE6DVtVe7Ye2QxOVW9kqybs6cZexNwTwSMVgkfjEReqy/xwGpAXb99OxktoWwmL+Z+Epb0Dn8/GNDYP1wnUw==} + dev: true + /unist-util-is/4.1.0: - resolution: - { - integrity: sha512-ZOQSsnce92GrxSqlnEEseX0gi7GH9zTJZ0p9dtu87WRb/37mMPO2Ilx1s/t9vBHrFhbgweUwb+t7cIn5dxPhZg== - } - dev: false + resolution: {integrity: sha512-ZOQSsnce92GrxSqlnEEseX0gi7GH9zTJZ0p9dtu87WRb/37mMPO2Ilx1s/t9vBHrFhbgweUwb+t7cIn5dxPhZg==} + dev: true /unist-util-is/5.1.1: - resolution: - { - integrity: sha512-F5CZ68eYzuSvJjGhCLPL3cYx45IxkqXSetCcRgUXtbcm50X2L9oOWQlfUfDdAf+6Pd27YDblBfdtmsThXmwpbQ== - } + resolution: {integrity: sha512-F5CZ68eYzuSvJjGhCLPL3cYx45IxkqXSetCcRgUXtbcm50X2L9oOWQlfUfDdAf+6Pd27YDblBfdtmsThXmwpbQ==} + dev: true + + /unist-util-map/3.1.1: + resolution: {integrity: sha512-n36sjBn4ibPtAzrFweyT4FOcCI/UdzboaEcsZvwoAyD/gVw5B3OLlMBySePMO6r+uzjxQEyRll2akfVaT4SHhw==} + dependencies: + '@types/unist': 2.0.6 + dev: true + + /unist-util-modify-children/2.0.0: + resolution: {integrity: sha512-HGrj7JQo9DwZt8XFsX8UD4gGqOsIlCih9opG6Y+N11XqkBGKzHo8cvDi+MfQQgiZ7zXRUiQREYHhjOBHERTMdg==} + dependencies: + array-iterate: 1.1.4 + dev: true + + /unist-util-position-from-estree/1.1.1: + resolution: {integrity: sha512-xtoY50b5+7IH8tFbkw64gisG9tMSpxDjhX9TmaJJae/XuxQ9R/Kc8Nv1eOsf43Gt4KV/LkriMy9mptDr7XLcaw==} + dependencies: + '@types/unist': 2.0.6 + dev: true + + /unist-util-position/4.0.3: + resolution: {integrity: sha512-p/5EMGIa1qwbXjA+QgcBXaPWjSnZfQ2Sc3yBEEfgPwsEmJd8Qh+DSk3LGnmOM4S1bY2C0AjmMnB8RuEYxpPwXQ==} + dependencies: + '@types/unist': 2.0.6 + dev: true + + /unist-util-remove-position/4.0.1: + resolution: {integrity: sha512-0yDkppiIhDlPrfHELgB+NLQD5mfjup3a8UYclHruTJWmY74je8g+CIFr79x5f6AkmzSwlvKLbs63hC0meOMowQ==} + dependencies: + '@types/unist': 2.0.6 + unist-util-visit: 4.1.1 dev: true /unist-util-stringify-position/2.0.3: - resolution: - { - integrity: sha512-3faScn5I+hy9VleOq/qNbAd6pAx7iH5jYBMS9I1HgQVijz/4mv5Bvw5iw1sC/90CODiKo81G/ps8AJrISn687g== - } + resolution: {integrity: sha512-3faScn5I+hy9VleOq/qNbAd6pAx7iH5jYBMS9I1HgQVijz/4mv5Bvw5iw1sC/90CODiKo81G/ps8AJrISn687g==} dependencies: - "@types/unist": 2.0.6 + '@types/unist': 2.0.6 + dev: true /unist-util-stringify-position/3.0.2: - resolution: - { - integrity: sha512-7A6eiDCs9UtjcwZOcCpM4aPII3bAAGv13E96IkawkOAW0OhH+yRxtY0lzo8KiHpzEMfH7Q+FizUmwp8Iqy5EWg== - } + resolution: {integrity: sha512-7A6eiDCs9UtjcwZOcCpM4aPII3bAAGv13E96IkawkOAW0OhH+yRxtY0lzo8KiHpzEMfH7Q+FizUmwp8Iqy5EWg==} dependencies: - "@types/unist": 2.0.6 + '@types/unist': 2.0.6 + dev: true + + /unist-util-visit-children/1.1.4: + resolution: {integrity: sha512-sA/nXwYRCQVRwZU2/tQWUqJ9JSFM1X3x7JIOsIgSzrFHcfVt6NkzDtKzyxg2cZWkCwGF9CO8x4QNZRJRMK8FeQ==} + dev: true /unist-util-visit-parents/3.1.1: - resolution: - { - integrity: sha512-1KROIZWo6bcMrZEwiH2UrXDyalAa0uqzWCxCJj6lPOvTve2WkfgCytoDTPaMnodXh1WrXOq0haVYHj99ynJlsg== - } + resolution: {integrity: sha512-1KROIZWo6bcMrZEwiH2UrXDyalAa0uqzWCxCJj6lPOvTve2WkfgCytoDTPaMnodXh1WrXOq0haVYHj99ynJlsg==} dependencies: - "@types/unist": 2.0.6 + '@types/unist': 2.0.6 unist-util-is: 4.1.0 - dev: false + dev: true - /unist-util-visit-parents/5.1.0: - resolution: - { - integrity: sha512-y+QVLcY5eR/YVpqDsLf/xh9R3Q2Y4HxkZTp7ViLDU6WtJCEcPmRzW1gpdWDCDIqIlhuPDXOgttqPlykrHYDekg== - } + /unist-util-visit-parents/5.1.1: + resolution: {integrity: sha512-gks4baapT/kNRaWxuGkl5BIhoanZo7sC/cUT/JToSRNL1dYoXRFl75d++NkjYk4TAu2uv2Px+l8guMajogeuiw==} dependencies: - "@types/unist": 2.0.6 + '@types/unist': 2.0.6 unist-util-is: 5.1.1 dev: true /unist-util-visit/2.0.3: - resolution: - { - integrity: sha512-iJ4/RczbJMkD0712mGktuGpm/U4By4FfDonL7N/9tATGIF4imikjOuagyMY53tnZq3NP6BcmlrHhEKAfGWjh7Q== - } + resolution: {integrity: sha512-iJ4/RczbJMkD0712mGktuGpm/U4By4FfDonL7N/9tATGIF4imikjOuagyMY53tnZq3NP6BcmlrHhEKAfGWjh7Q==} dependencies: - "@types/unist": 2.0.6 + '@types/unist': 2.0.6 unist-util-is: 4.1.0 unist-util-visit-parents: 3.1.1 - dev: false + dev: true - /unist-util-visit/4.1.0: - resolution: - { - integrity: sha512-n7lyhFKJfVZ9MnKtqbsqkQEk5P1KShj0+//V7mAcoI6bpbUjh3C/OG8HVD+pBihfh6Ovl01m8dkcv9HNqYajmQ== - } + /unist-util-visit/4.1.1: + resolution: {integrity: sha512-n9KN3WV9k4h1DxYR1LoajgN93wpEi/7ZplVe02IoB4gH5ctI1AaF2670BLHQYbwj+pY83gFtyeySFiyMHJklrg==} dependencies: - "@types/unist": 2.0.6 + '@types/unist': 2.0.6 unist-util-is: 5.1.1 - unist-util-visit-parents: 5.1.0 + unist-util-visit-parents: 5.1.1 dev: true /update-browserslist-db/1.0.5_browserslist@4.21.3: - resolution: - { - integrity: sha512-dteFFpCyvuDdr9S/ff1ISkKt/9YZxKjI9WlRR99c180GaztJtRa/fn18FdxGVKVsnPY7/a/FDN68mcvUmP4U7Q== - } + resolution: {integrity: sha512-dteFFpCyvuDdr9S/ff1ISkKt/9YZxKjI9WlRR99c180GaztJtRa/fn18FdxGVKVsnPY7/a/FDN68mcvUmP4U7Q==} hasBin: true peerDependencies: - browserslist: ">= 4.21.0" + browserslist: '>= 4.21.0' dependencies: browserslist: 4.21.3 escalade: 3.1.1 picocolors: 1.0.0 dev: true - /upper-case/1.1.3: - resolution: - { - integrity: sha512-WRbjgmYzgXkCV7zNVpy5YgrHgbBv126rMALQQMrmzOVC4GM2waQ9x7xtm8VU+1yF2kWyPzI9zbZ48n4vSxwfSA== - } - dev: true - - /uri-js/4.4.1: - resolution: - { - integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== - } + /utif/2.0.1: + resolution: {integrity: sha512-Z/S1fNKCicQTf375lIP9G8Sa1H/phcysstNrrSdZKj1f9g58J4NMgb5IgiEZN9/nLMPDwF0W7hdOe9Qq2IYoLg==} dependencies: - punycode: 2.1.1 + pako: 1.0.11 dev: true /util-deprecate/1.0.2: - resolution: - { - integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== - } - dev: true - - /util-extend/1.0.3: - resolution: - { - integrity: sha512-mLs5zAK+ctllYBj+iAQvlDCwoxU/WDOUaJkcFudeiAX6OajC6BKXJUa9a+tbtkC11dz2Ufb7h0lyvIOVn4LADA== - } - dev: true + resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} /uvu/0.5.6: - resolution: - { - integrity: sha512-+g8ENReyr8YsOc6fv/NVJs2vFdHBnBNdfE49rshrTzDWOlUx4Gq7KOS2GD8eqhy2j+Ejq29+SbKH8yjkAqXqoA== - } - engines: { node: ">=8" } + resolution: {integrity: sha512-+g8ENReyr8YsOc6fv/NVJs2vFdHBnBNdfE49rshrTzDWOlUx4Gq7KOS2GD8eqhy2j+Ejq29+SbKH8yjkAqXqoA==} + engines: {node: '>=8'} hasBin: true dependencies: dequal: 2.0.3 diff: 5.1.0 kleur: 4.1.5 sade: 1.8.1 - - /v8-compile-cache/2.3.0: - resolution: - { - integrity: sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA== - } dev: true - /validate-npm-package-license/3.0.4: - resolution: - { - integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew== - } + /vfile-location/4.0.1: + resolution: {integrity: sha512-JDxPlTbZrZCQXogGheBHjbRWjESSPEak770XwWPfw5mTc1v1nWGLB/apzZxsx8a0SJVfF8HK8ql8RD308vXRUw==} dependencies: - spdx-correct: 3.1.1 - spdx-expression-parse: 3.0.1 + '@types/unist': 2.0.6 + vfile: 5.3.4 dev: true /vfile-message/2.0.4: - resolution: - { - integrity: sha512-DjssxRGkMvifUOJre00juHoP9DPWuzjxKuMDrhNbk2TdaYYBNMStsNhEOt3idrtI12VQYM/1+iM0KOzXi4pxwQ== - } + resolution: {integrity: sha512-DjssxRGkMvifUOJre00juHoP9DPWuzjxKuMDrhNbk2TdaYYBNMStsNhEOt3idrtI12VQYM/1+iM0KOzXi4pxwQ==} dependencies: - "@types/unist": 2.0.6 + '@types/unist': 2.0.6 unist-util-stringify-position: 2.0.3 + dev: true /vfile-message/3.1.2: - resolution: - { - integrity: sha512-QjSNP6Yxzyycd4SVOtmKKyTsSvClqBPJcd00Z0zuPj3hOIjg0rUPG6DbFGPvUKRgYyaIWLPKpuEclcuvb3H8qA== - } + resolution: {integrity: sha512-QjSNP6Yxzyycd4SVOtmKKyTsSvClqBPJcd00Z0zuPj3hOIjg0rUPG6DbFGPvUKRgYyaIWLPKpuEclcuvb3H8qA==} dependencies: - "@types/unist": 2.0.6 + '@types/unist': 2.0.6 unist-util-stringify-position: 3.0.2 + dev: true /vfile/4.2.1: - resolution: - { - integrity: sha512-O6AE4OskCG5S1emQ/4gl8zK586RqA3srz3nfK/Viy0UPToBc5Trp9BVFb1u0CjsKrAWwnpr4ifM/KBXPWwJbCA== - } + resolution: {integrity: sha512-O6AE4OskCG5S1emQ/4gl8zK586RqA3srz3nfK/Viy0UPToBc5Trp9BVFb1u0CjsKrAWwnpr4ifM/KBXPWwJbCA==} dependencies: - "@types/unist": 2.0.6 + '@types/unist': 2.0.6 is-buffer: 2.0.5 unist-util-stringify-position: 2.0.3 vfile-message: 2.0.4 - dev: false + dev: true /vfile/5.3.4: - resolution: - { - integrity: sha512-KI+7cnst03KbEyN1+JE504zF5bJBZa+J+CrevLeyIMq0aPU681I2rQ5p4PlnQ6exFtWiUrg26QUdFMnAKR6PIw== - } + resolution: {integrity: sha512-KI+7cnst03KbEyN1+JE504zF5bJBZa+J+CrevLeyIMq0aPU681I2rQ5p4PlnQ6exFtWiUrg26QUdFMnAKR6PIw==} dependencies: - "@types/unist": 2.0.6 + '@types/unist': 2.0.6 is-buffer: 2.0.5 unist-util-stringify-position: 3.0.2 vfile-message: 3.1.2 + dev: true + + /vite/3.0.5: + resolution: {integrity: sha512-bRvrt9Tw8EGW4jj64aYFTnVg134E8hgDxyl/eEHnxiGqYk7/pTPss6CWlurqPOUzqvEoZkZ58Ws+Iu8MB87iMA==} + engines: {node: ^14.18.0 || >=16.0.0} + hasBin: true + peerDependencies: + less: '*' + sass: '*' + stylus: '*' + terser: ^5.4.0 + peerDependenciesMeta: + less: + optional: true + sass: + optional: true + stylus: + optional: true + terser: + optional: true + dependencies: + esbuild: 0.14.54 + postcss: 8.4.16 + resolve: 1.22.1 + rollup: 2.78.1 + optionalDependencies: + fsevents: 2.3.2 + dev: true - /vite/3.0.4: - resolution: - { - integrity: sha512-NU304nqnBeOx2MkQnskBQxVsa0pRAH5FphokTGmyy8M3oxbvw7qAXts2GORxs+h/2vKsD+osMhZ7An6yK6F1dA== - } - engines: { node: ^14.18.0 || >=16.0.0 } + /vite/3.0.9: + resolution: {integrity: sha512-waYABTM+G6DBTCpYAxvevpG50UOlZuynR0ckTK5PawNVt7ebX6X7wNXHaGIO6wYYFXSM7/WcuFuO2QzhBB6aMw==} + engines: {node: ^14.18.0 || >=16.0.0} hasBin: true peerDependencies: - less: "*" - sass: "*" - stylus: "*" + less: '*' + sass: '*' + stylus: '*' terser: ^5.4.0 peerDependenciesMeta: less: @@ -5313,111 +5307,201 @@ packages: terser: optional: true dependencies: - esbuild: 0.14.53 - postcss: 8.4.14 + esbuild: 0.14.54 + postcss: 8.4.16 resolve: 1.22.1 - rollup: 2.77.2 + rollup: 2.77.3 optionalDependencies: fsevents: 2.3.2 dev: true + /vscode-css-languageservice/6.0.1: + resolution: {integrity: sha512-81n/eeYuJwQdvpoy6IK1258PtPbO720fl13FcJ5YQECPyHMFkmld1qKHwPJkyLbLPfboqJPM53ys4xW8v+iBVw==} + dependencies: + vscode-languageserver-textdocument: 1.0.5 + vscode-languageserver-types: 3.17.2 + vscode-nls: 5.1.0 + vscode-uri: 3.0.3 + dev: true + + /vscode-html-languageservice/5.0.1: + resolution: {integrity: sha512-OYsyn5HGAhxs0OIG+M0jc34WnftLtD67Wg7+TfrYwvf0waOkkr13zUqtdrVm2JPNQ6fJx+qnuM+vTbq7o1dCdQ==} + dependencies: + vscode-languageserver-textdocument: 1.0.5 + vscode-languageserver-types: 3.17.2 + vscode-nls: 5.1.0 + vscode-uri: 3.0.3 + dev: true + + /vscode-jsonrpc/8.0.2: + resolution: {integrity: sha512-RY7HwI/ydoC1Wwg4gJ3y6LpU9FJRZAUnTYMXthqhFXXu77ErDd/xkREpGuk4MyYkk4a+XDWAMqe0S3KkelYQEQ==} + engines: {node: '>=14.0.0'} + dev: true + + /vscode-languageserver-protocol/3.17.2: + resolution: {integrity: sha512-8kYisQ3z/SQ2kyjlNeQxbkkTNmVFoQCqkmGrzLH6A9ecPlgTbp3wDTnUNqaUxYr4vlAcloxx8zwy7G5WdguYNg==} + dependencies: + vscode-jsonrpc: 8.0.2 + vscode-languageserver-types: 3.17.2 + dev: true + + /vscode-languageserver-textdocument/1.0.5: + resolution: {integrity: sha512-1ah7zyQjKBudnMiHbZmxz5bYNM9KKZYz+5VQLj+yr8l+9w3g+WAhCkUkWbhMEdC5u0ub4Ndiye/fDyS8ghIKQg==} + dev: true + + /vscode-languageserver-types/3.17.2: + resolution: {integrity: sha512-zHhCWatviizPIq9B7Vh9uvrH6x3sK8itC84HkamnBWoDFJtzBf7SWlpLCZUit72b3os45h6RWQNC9xHRDF8dRA==} + dev: true + + /vscode-languageserver/8.0.2: + resolution: {integrity: sha512-bpEt2ggPxKzsAOZlXmCJ50bV7VrxwCS5BI4+egUmure/oI/t4OlFzi/YNtVvY24A2UDOZAgwFGgnZPwqSJubkA==} + hasBin: true + dependencies: + vscode-languageserver-protocol: 3.17.2 + dev: true + + /vscode-nls/5.1.0: + resolution: {integrity: sha512-37Ha44QrLFwR2IfSSYdOArzUvOyoWbOYTwQC+wS0NfqKjhW7s0WQ1lMy5oJXgSZy9sAiZS5ifELhbpXodeMR8w==} + dev: true + + /vscode-oniguruma/1.6.2: + resolution: {integrity: sha512-KH8+KKov5eS/9WhofZR8M8dMHWN2gTxjMsG4jd04YhpbPR91fUj7rYQ2/XjeHCJWbg7X++ApRIU9NUwM2vTvLA==} + dev: true + + /vscode-textmate/5.2.0: + resolution: {integrity: sha512-Uw5ooOQxRASHgu6C7GVvUxisKXfSgW4oFlO+aa+PAkgmH89O3CXxEEzNRNtHSqtXFTl0nAC1uYj0GMSH27uwtQ==} + dev: true + + /vscode-uri/2.1.2: + resolution: {integrity: sha512-8TEXQxlldWAuIODdukIb+TR5s+9Ds40eSJrw+1iDDA9IFORPjMELarNQE3myz5XIkWWpdprmJjm1/SxMlWOC8A==} + dev: true + + /vscode-uri/3.0.3: + resolution: {integrity: sha512-EcswR2S8bpR7fD0YPeS7r2xXExrScVMxg4MedACaWHEtx9ftCF/qHG1xGkolzTPcEmjTavCQgbVzHUIdTMzFGA==} + dev: true + + /wcwidth/1.0.1: + resolution: {integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==} + dependencies: + defaults: 1.0.3 + dev: true + /web-namespaces/1.1.4: - resolution: - { - integrity: sha512-wYxSGajtmoP4WxfejAPIr4l0fVh+jeMXZb08wNc0tMg6xsfZXj3cECqIK0G7ZAqUq0PP8WlMDtaOGVBTAWztNw== - } - dev: false + resolution: {integrity: sha512-wYxSGajtmoP4WxfejAPIr4l0fVh+jeMXZb08wNc0tMg6xsfZXj3cECqIK0G7ZAqUq0PP8WlMDtaOGVBTAWztNw==} + dev: true + + /web-namespaces/2.0.1: + resolution: {integrity: sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ==} + dev: true + + /web-streams-polyfill/3.2.1: + resolution: {integrity: sha512-e0MO3wdXWKrLbL0DgGnUV7WHVuw9OUvL4hjgnPkIeEvESk74gAITi5G606JtZPp39cd8HA9VQzCIvA49LpPN5Q==} + engines: {node: '>= 8'} + dev: true + + /which-pm-runs/1.1.0: + resolution: {integrity: sha512-n1brCuqClxfFfq/Rb0ICg9giSZqCS+pLtccdag6C2HyufBrh3fBOiy9nb6ggRMvWOVH5GrdJskj5iGTZNxd7SA==} + engines: {node: '>=4'} + dev: true - /which-boxed-primitive/1.0.2: - resolution: - { - integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg== - } + /which-pm/2.0.0: + resolution: {integrity: sha512-Lhs9Pmyph0p5n5Z3mVnN0yWcbQYUAD7rbQUiMsQxOJ3T57k7RFe35SUwWMf7dsbDZks1uOmw4AecB/JMDj3v/w==} + engines: {node: '>=8.15'} dependencies: - is-bigint: 1.0.4 - is-boolean-object: 1.1.2 - is-number-object: 1.0.7 - is-string: 1.0.7 - is-symbol: 1.0.4 + load-yaml-file: 0.2.0 + path-exists: 4.0.0 dev: true /which/2.0.2: - resolution: - { - integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== - } - engines: { node: ">= 8" } + resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} + engines: {node: '>= 8'} hasBin: true dependencies: isexe: 2.0.0 dev: true - /word-wrap/1.2.3: - resolution: - { - integrity: sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== - } - engines: { node: ">=0.10.0" } + /widest-line/4.0.1: + resolution: {integrity: sha512-o0cyEG0e8GPzT4iGHphIOh0cJOV8fivsXxddQasHPHfoZf1ZexrfeA21w2NaEN1RHE+fXlfISmOE8R9N3u3Qig==} + engines: {node: '>=12'} + dependencies: + string-width: 5.1.2 + dev: true + + /wrap-ansi/8.0.1: + resolution: {integrity: sha512-QFF+ufAqhoYHvoHdajT/Po7KoXVBPXS2bgjIam5isfWJPfIOnQZ50JtUiVvCv/sjgacf3yRrt2ZKUZ/V4itN4g==} + engines: {node: '>=12'} + dependencies: + ansi-styles: 6.1.0 + string-width: 5.1.2 + strip-ansi: 7.0.1 dev: true /wrappy/1.0.2: - resolution: - { - integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== - } + resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} dev: true - /xml-js/1.6.11: - resolution: - { - integrity: sha512-7rVi2KMfwfWFl+GpPg6m80IVMWXLRjO+PxTq7V2CDhoGak0wzYzFgUY2m4XJ47OGdXd8eLE8EmwfAmdjw7lC1g== - } - hasBin: true + /xhr/2.6.0: + resolution: {integrity: sha512-/eCGLb5rxjx5e3mF1A7s+pLlR6CGyqWN91fv1JgER5mVWg1MZmlhBvy9kjcsOdRk8RrIujotWyJamfyrp+WIcA==} + dependencies: + global: 4.4.0 + is-function: 1.0.2 + parse-headers: 2.0.5 + xtend: 4.0.2 + dev: true + + /xml-parse-from-string/1.0.1: + resolution: {integrity: sha512-ErcKwJTF54uRzzNMXq2X5sMIy88zJvfN2DmdoQvy7PAFJ+tPRU6ydWuOKNMyfmOjdyBQTFREi60s0Y0SyI0G0g==} + dev: true + + /xml2js/0.4.23: + resolution: {integrity: sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==} + engines: {node: '>=4.0.0'} dependencies: sax: 1.2.4 - dev: false + xmlbuilder: 11.0.1 + dev: true + + /xmlbuilder/11.0.1: + resolution: {integrity: sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==} + engines: {node: '>=4.0'} + dev: true /xtend/4.0.2: - resolution: - { - integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== - } - engines: { node: ">=0.4" } + resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==} + engines: {node: '>=0.4'} /yallist/4.0.0: - resolution: - { - integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== - } + resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} dev: true /yaml/1.10.2: - resolution: - { - integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg== - } - engines: { node: ">= 6" } - dev: true + resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==} + engines: {node: '>= 6'} /yaml/2.1.1: - resolution: - { - integrity: sha512-o96x3OPo8GjWeSLF+wOAbrPfhFOGY0W00GNaxCDv+9hkcDJEnev1yh8S7pgHF0ik6zc8sQLuL8hjHjJULZp8bw== - } - engines: { node: ">= 14" } + resolution: {integrity: sha512-o96x3OPo8GjWeSLF+wOAbrPfhFOGY0W00GNaxCDv+9hkcDJEnev1yh8S7pgHF0ik6zc8sQLuL8hjHjJULZp8bw==} + engines: {node: '>= 14'} + dev: true + + /yargs-parser/21.1.1: + resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} + engines: {node: '>=12'} dev: true /yocto-queue/0.1.0: - resolution: - { - integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== - } - engines: { node: ">=10" } + resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} + engines: {node: '>=10'} + dev: true + + /yocto-queue/1.0.0: + resolution: {integrity: sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==} + engines: {node: '>=12.20'} + dev: true + + /zod/3.18.0: + resolution: {integrity: sha512-gwTm8RfUCe8l9rDwN5r2A17DkAa8Ez4Yl4yXqc5VqeGaXaJahzYYXbTwvhroZi0SNBqTwh/bKm2N0mpCzuw4bA==} dev: true /zwitch/2.0.2: - resolution: - { - integrity: sha512-JZxotl7SxAJH0j7dN4pxsTV6ZLXoLdGME+PsjkL/DaBrVryK9kTGq06GfKrwcSOqypP+fdXGoCHE36b99fWVoA== - } + resolution: {integrity: sha512-JZxotl7SxAJH0j7dN4pxsTV6ZLXoLdGME+PsjkL/DaBrVryK9kTGq06GfKrwcSOqypP+fdXGoCHE36b99fWVoA==} dev: true diff --git a/postcss.config.cjs b/postcss.config.js similarity index 80% rename from postcss.config.cjs rename to postcss.config.js index 5bd91ba..6887c82 100644 --- a/postcss.config.cjs +++ b/postcss.config.js @@ -3,6 +3,6 @@ module.exports = { "postcss-import": {}, "tailwindcss/nesting": {}, tailwindcss: {}, - autoprefixer: {} - } + autoprefixer: {}, + }, }; diff --git a/prettier.config.cjs b/prettier.config.cjs deleted file mode 100644 index c80d5ed..0000000 --- a/prettier.config.cjs +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - useTabs: false, - singleQuote: false, - trailingComma: "none", - printWidth: 100, - plugins: [require("prettier-plugin-tailwindcss"), require("prettier-plugin-svelte")] -}; diff --git a/public/favicon.ico b/public/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..578ad458b8906c08fbed84f42b045fea04db89d1 GIT binary patch literal 4286 zcmZQzU}RuqP*4ET3Jfa*7#PGD7#K7d7#I{77#JKFAmR+P0x|!^7~=l3(8_qc=EnZl zV2JsD3a=VkO2+=*!4UKR1w-tACR$p9)9l#)KNw^G|7VE#UxHH&H6=j)jQKABHZt}< z3&?I5W{CN}iUE`sz>+i~V*Y0_#QdMd5c{8nA@+X&%x)OX5cB^LL(G3A8rjak5c~fQ z$S#K1|Gz*qHp~$F{{T(wkNq!(%|2{m46*;^sP2Z?{|ZpMo-oG#?_-GlAI2E_--^D_H!}B{-3}Y`=1T3*|GoC7-Ii(;Z;LGQe9j? zPhCR51VdTEe+(gF1k@!2ZPX+LKt(b!${Ezf1*Oy_1plZ@2pmz95J*uM7XTIMMCpYo zQWqDHP?r$MQkM`or7j`(OHEt=l5b%O2+&Y{|J5Y~LHLiFguoef3Bf69;sSiQw5m%8 z2&sz;Oj8#ZxS%c}@CT~*znZwfK3sZmiK|Np)WGzk(Bc9ic=SY}sD-%wzq*7#0WLkb z#MLE0X#nhZkpGdez&xCK#08dNvtLa@kmNE+LqdQ-T|(dIJXhaxWoqb#Z|S80JX`{#V12H`FBr?69g87ic474=#CiaX}YsW~z$|G@$EI zmk{W}s#ZeK0$nY!e02$2VJd*p=1`XqxPrz0XKG@YaYd~CAa&|k(-bIg2}pqCL0DZv zKnaW8pm>@ClBWc#O9(_@Gh1C;AOU8sy0}0dRy7iWelRuU((2*@0-*8>-F!6(fmJXw z)g=UWpv$XE2!2r)7o?~jKr(+9ruhONKbqRq0FdJUhLCP#py+NtHF#YNh0t(pdfTT@ - -// See https://kit.svelte.dev/docs/types#the-app-namespace -// for information about these interfaces -declare namespace App { - // interface Locals {} - // interface Platform {} - // interface Session {} - // interface Stuff {} -} - -declare module "shikwasa"; diff --git a/src/app.html b/src/app.html deleted file mode 100644 index 2bbc615..0000000 --- a/src/app.html +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - %sveltekit.head% - - -
%sveltekit.body%
- - diff --git a/src/app.css b/src/assets/styles/app.css similarity index 73% rename from src/app.css rename to src/assets/styles/app.css index c574f5d..b162abf 100644 --- a/src/app.css +++ b/src/assets/styles/app.css @@ -1,8 +1,9 @@ @import "./styles/duotone.css"; +@import "phosphor-icons/src/css/icons.css"; @import "shikwasa/dist/shikwasa.min.css"; @import "katex/dist/katex.min.css"; @import "./styles/admonitions.css"; -@import "@fontsource/fira-mono"; +@import "@fontsource/fira-mono/index.css"; @import "./styles/base.css"; @import "./styles/utilities.css"; @import "./styles/components.css"; diff --git a/src/styles/admonitions.css b/src/assets/styles/styles/admonitions.css similarity index 100% rename from src/styles/admonitions.css rename to src/assets/styles/styles/admonitions.css diff --git a/src/styles/base.css b/src/assets/styles/styles/base.css similarity index 100% rename from src/styles/base.css rename to src/assets/styles/styles/base.css diff --git a/src/styles/components.css b/src/assets/styles/styles/components.css similarity index 78% rename from src/styles/components.css rename to src/assets/styles/styles/components.css index 4536f91..3f79f0b 100644 --- a/src/styles/components.css +++ b/src/assets/styles/styles/components.css @@ -12,7 +12,18 @@ @apply text-base; } + i[class^="ph-"]:before { + display: inline-block; + text-decoration: none; + } + a { + &::before { + text-decoration: none !important; + + @apply inline-block !important; + } + @apply text-adaptive text-adaptive-hoverable underline decoration-slate-400 hover:decoration-theme-neutral; } @@ -21,19 +32,23 @@ @apply border-l-2 border-solid border-l-theme-dark bg-slate-50 bg-opacity-50 shadow !important; } - .prose { - &-extension { + .prose :not(:where([class~="not-prose"] *)) { + &-extension :not(:where([class~="not-prose"] *)) { @apply mx-auto max-w-[100vw] px-2 md:max-w-[65ch] !important; - & a { + & a :not(:where([class~="not-prose"] *)) { @apply underline decoration-slate-400 hover:decoration-slate-900; } } & :where(code):not(:where([class~="not-prose"] *))::after, & :where(code):not(:where([class~="not-prose"] *))::before, - & :where(blockquote p:last-of-type):not(:where([class~="not-prose"] *))::after, - & :where(blockquote p:first-of-type):not(:where([class~="not-prose"] *))::before { + & + :where(blockquote p:last-of-type):not(:where([class~="not-prose"] + *))::after, + & + :where(blockquote p:first-of-type):not(:where([class~="not-prose"] + *))::before { content: ""; } } @@ -48,6 +63,10 @@ @apply container mx-auto flex flex-row flex-nowrap items-center justify-between p-5; } + .nav-action { + @apply flex items-center justify-between gap-3 rounded border-0 p-3 text-slate-100 no-underline transition-all duration-500 ease-in-out focus:outline-none md:py-1; + } + .nav { &-title { @apply flex items-center gap-3 text-base font-medium no-underline; @@ -69,10 +88,6 @@ } } - &-action { - @apply flex items-center justify-between gap-3 rounded border-0 p-3 text-slate-100 no-underline transition-all duration-500 ease-in-out focus:outline-none md:py-1; - } - &-toggle { @apply nav-action fixed top-[1.25rem] bg-theme-neutral md:hidden; } @@ -144,7 +159,7 @@ @apply h-auto max-h-fit list-none overflow-y-hidden bg-slate-50 pl-8 transition-all duration-500; &-standalone { - @apply toc-list pl-0 text-base; + @apply h-auto max-h-fit list-none overflow-y-hidden bg-slate-50 pl-0 text-base transition-all duration-500; } &-collapsed { @@ -209,7 +224,7 @@ @apply mb-10 list-none; & li a { - @apply flex flex-row items-center gap-1 text-gray-600 hover:text-gray-800; + @apply flex items-center flex-shrink text-gray-600 hover:text-gray-800; } } } @@ -315,4 +330,47 @@ @apply rounded; } } + + /* Button component */ + .button { + @apply flex items-center justify-between gap-2 rounded border-0 no-underline transition-all duration-500 ease-in-out focus:outline-none no-underline; + + & p { + @apply inline-flex gap-2; + } + } + + .button { + @apply text-slate-100 hover:text-slate-300 !important; + } + + .button-hoverable { + @apply hover:gap-3 hover:bg-theme-dark hover:text-slate-100 !important; + } + + /* Size variants */ + .button-small { + @apply py-1 px-3; + } + + .button-small-icon { + @apply p-3; + } + + .button-medium { + @apply py-2 px-6 text-lg; + } + + /* Color variants (respects the currently loaded color palette) */ + .button-theme { + @apply bg-theme hover:bg-theme-dark; + } + + .button-theme-neutral { + @apply bg-theme-neutral hover:bg-theme-dark; + } + + .button-secondary { + @apply bg-secondary hover:bg-secondary-dark; + } } diff --git a/src/styles/duotone.css b/src/assets/styles/styles/duotone.css similarity index 88% rename from src/styles/duotone.css rename to src/assets/styles/styles/duotone.css index c8f0b13..1e493af 100644 --- a/src/styles/duotone.css +++ b/src/assets/styles/styles/duotone.css @@ -7,9 +7,10 @@ Generated with Base16 Builder (https://github.com/base16-builder/base16-builder) code[class*="language-"], pre[class*="language-"] { - font-family: Consolas, Menlo, Monaco, "Andale Mono WT", "Andale Mono", "Lucida Console", - "Lucida Sans Typewriter", "DejaVu Sans Mono", "Bitstream Vera Sans Mono", "Liberation Mono", - "Nimbus Mono L", "Courier New", Courier, monospace; + font-family: Consolas, Menlo, Monaco, "Andale Mono WT", "Andale Mono", + "Lucida Console", "Lucida Sans Typewriter", "DejaVu Sans Mono", + "Bitstream Vera Sans Mono", "Liberation Mono", "Nimbus Mono L", + "Courier New", Courier, monospace; font-size: 14px; line-height: 1.375; direction: ltr; @@ -172,6 +173,14 @@ pre > code.highlight { */ .line-highlight.line-highlight { background: rgba(224, 145, 66, 0.2); - background: -webkit-linear-gradient(left, rgba(224, 145, 66, 0.2) 70%, rgba(224, 145, 66, 0)); - background: linear-gradient(to right, rgba(224, 145, 66, 0.2) 70%, rgba(224, 145, 66, 0)); + background: -webkit-linear-gradient( + left, + rgba(224, 145, 66, 0.2) 70%, + rgba(224, 145, 66, 0) + ); + background: linear-gradient( + to right, + rgba(224, 145, 66, 0.2) 70%, + rgba(224, 145, 66, 0) + ); } diff --git a/src/styles/utilities.css b/src/assets/styles/styles/utilities.css similarity index 100% rename from src/styles/utilities.css rename to src/assets/styles/styles/utilities.css diff --git a/src/lib/components/Avatar.svelte b/src/components/Avatar.svelte similarity index 100% rename from src/lib/components/Avatar.svelte rename to src/components/Avatar.svelte diff --git a/src/lib/components/Belt.svelte b/src/components/Belt.svelte similarity index 100% rename from src/lib/components/Belt.svelte rename to src/components/Belt.svelte diff --git a/src/components/Button.svelte b/src/components/Button.svelte new file mode 100644 index 0000000..248d966 --- /dev/null +++ b/src/components/Button.svelte @@ -0,0 +1,37 @@ + + +{#if href} + { + dispatch("click", evt); + }} + > + + +{:else} + +{/if} + diff --git a/src/components/Figure.astro b/src/components/Figure.astro new file mode 100644 index 0000000..fda4278 --- /dev/null +++ b/src/components/Figure.astro @@ -0,0 +1,23 @@ +--- +import { Picture } from '@astrojs/image/components'; + +export interface Props { + src: string; + alt: string; + float: "left" | "right" | undefined; + caption: boolean; +} + +const { src, alt, float = undefined, caption = true } = Astro.props; +--- + +
+
+ + {caption &&
{alt}
} +
+
diff --git a/src/components/Footer.astro b/src/components/Footer.astro new file mode 100644 index 0000000..cb9c60e --- /dev/null +++ b/src/components/Footer.astro @@ -0,0 +1,49 @@ +--- +import Logo from "$components/Logo.astro"; + +const sections: { [key: string]: [string, string, string, boolean][] } = { + CoderDōjō: [ + ["ph-article", "Impressum", "/imprint/", false], + ["ph-lock-key", "Datenschutzrichtline", "/privacy/", false], + ["ph-copyright", "Urheberrecht", "/copyright/", false], + ["ph-user", "Kontakt", "/contact/", false], + ], + Schnellzugriffe: [ + ["ph-rss", "RSS", "/feed/", true], + ["ph-rocket", "Gebaut mit Astro", "https://astro.build", false], + ["ph-wrench", "Gebaut von Cobalt", "https://cobalt.rocks", false], + ["ph-code", "Quellcode", "https://gitlab.cobalt.rocks/coderdojo/coderdojo-website/", false] + ], +}; +--- + + diff --git a/src/components/Logo.astro b/src/components/Logo.astro new file mode 100644 index 0000000..8e78759 --- /dev/null +++ b/src/components/Logo.astro @@ -0,0 +1,94 @@ + + + + + + + + + + diff --git a/src/components/Logo.svelte b/src/components/Logo.svelte new file mode 100644 index 0000000..8e78759 --- /dev/null +++ b/src/components/Logo.svelte @@ -0,0 +1,94 @@ + + + + + + + + + + diff --git a/src/components/Meta.astro b/src/components/Meta.astro new file mode 100644 index 0000000..cc8187b --- /dev/null +++ b/src/components/Meta.astro @@ -0,0 +1,115 @@ +--- +import { SITE } from "$lib/config"; +import { getImage } from "@astrojs/image"; +import { base_description } from "$lib/constants"; +import favicon from "../assets/images/favicon.ico"; + +const { src: defaultImage } = getImage !== undefined ? { src: "/favicon.ico" } : await getImage({ + // TODO: Add proper default image + src: favicon, + width: 1200, + height: 628, +}); + +const default_title = "CoderDōjō R & B"; + +let { title } = Astro.props; +const { + description = base_description, + image = defaultImage, + canonical, +} = Astro.props; + +if (title) { + title = `${default_title} - ${title}`; +} else { + title = default_title; +} + +const absoluteImageUrl = new URL(image, Astro.site); +--- + +{title} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +{canonical && } + + + + diff --git a/src/components/Navbar.svelte b/src/components/Navbar.svelte new file mode 100644 index 0000000..0a15756 --- /dev/null +++ b/src/components/Navbar.svelte @@ -0,0 +1,99 @@ + + +
+
diff --git a/src/lib/components/NewsCard.svelte b/src/components/NewsCard.astro similarity index 71% rename from src/lib/components/NewsCard.svelte rename to src/components/NewsCard.astro index dfb5e43..9e50af9 100644 --- a/src/lib/components/NewsCard.svelte +++ b/src/components/NewsCard.astro @@ -1,11 +1,13 @@ - +const { href, description, title, date } = Astro.props; +---

@@ -17,10 +19,10 @@
Lese mehr - + {date} diff --git a/src/components/Placeholder.astro b/src/components/Placeholder.astro new file mode 100644 index 0000000..36538c1 --- /dev/null +++ b/src/components/Placeholder.astro @@ -0,0 +1,12 @@ +A file that contains placeholders for classes that are not detected by tailwind CSS JIT +This is required since some sources, like hastHH, + +
+ + + + + diff --git a/src/lib/components/TocDropdown.svelte b/src/components/TocDropdown.svelte similarity index 83% rename from src/lib/components/TocDropdown.svelte rename to src/components/TocDropdown.svelte index 7375708..e68ab4a 100644 --- a/src/lib/components/TocDropdown.svelte +++ b/src/components/TocDropdown.svelte @@ -1,7 +1,5 @@ - -
- - {license.name} - -

- {description} -

-
- - -
-
diff --git a/src/lib/components/Audio.svelte b/src/lib/components/Audio.svelte deleted file mode 100644 index 66f54b1..0000000 --- a/src/lib/components/Audio.svelte +++ /dev/null @@ -1,29 +0,0 @@ - - -
diff --git a/src/lib/components/Button.svelte b/src/lib/components/Button.svelte deleted file mode 100644 index 0bc37b3..0000000 --- a/src/lib/components/Button.svelte +++ /dev/null @@ -1,76 +0,0 @@ - - -{#if href} - { - dispatch("click", evt); - }} - > - - -{:else} - -{/if} - - diff --git a/src/lib/components/DescriptionList.svelte b/src/lib/components/DescriptionList.svelte deleted file mode 100644 index e7d881a..0000000 --- a/src/lib/components/DescriptionList.svelte +++ /dev/null @@ -1,18 +0,0 @@ - - -
-

- {title} -

-
- {#each items as [Icon, dt, dd]} -
-
{dt}
-
{dd}
-
- {/each} -
-
diff --git a/src/lib/components/Figure.svelte b/src/lib/components/Figure.svelte deleted file mode 100644 index 437c54f..0000000 --- a/src/lib/components/Figure.svelte +++ /dev/null @@ -1,35 +0,0 @@ - - -
-
- - {#if caption} -
{alt}
- {/if} -
-
- - diff --git a/src/lib/components/Logo.svelte b/src/lib/components/Logo.svelte deleted file mode 100644 index 50e13d0..0000000 --- a/src/lib/components/Logo.svelte +++ /dev/null @@ -1,100 +0,0 @@ - - -
- - - - -
diff --git a/src/lib/components/Meta.svelte b/src/lib/components/Meta.svelte deleted file mode 100644 index 4228474..0000000 --- a/src/lib/components/Meta.svelte +++ /dev/null @@ -1,60 +0,0 @@ - - - - {#if title !== ""} - - CoderDōjō R & B - {title} - - - {:else} - CoderDōjō R & B - {/if} - - - - - - - {#if description} - - - {:else} - - - {/if} - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/lib/components/TocList.svelte b/src/lib/components/TocList.svelte deleted file mode 100644 index 3900765..0000000 --- a/src/lib/components/TocList.svelte +++ /dev/null @@ -1,16 +0,0 @@ - - -
-
    - {#each headings as [heading, id]} -
  1. - {heading} -
  2. - {/each} -
-
diff --git a/src/lib/compress-html.cjs b/src/lib/compress-html.cjs deleted file mode 100644 index 2c3a5b0..0000000 --- a/src/lib/compress-html.cjs +++ /dev/null @@ -1,53 +0,0 @@ -/* eslint-disable max-len */ -const glob = require("glob"); -const fs = require("fs"); -const minify = require("html-minifier").minify; - -const cfg = { - sortAttributes: true, - sortClassName: true, - useShortDoctype: true, - minifyJS: true, - minifyCSS: true, - removeStyleLinkTypeAttributes: false, - removeEmptyAttributes: false, - processConditionalComments: true, - preserveLineBreaks: false, - minifyURLs: false, - keepClosingSlash: true, - html5: true, - conservativeCollapse: true, - collapseWhitespace: true, - collapseInlineTagWhitespace: true -}; - -glob("build/**/*.html", (err, res) => { - if (err) { - console.log("Error", err); - } else { - for (let i = 0; i < res.length; i++) { - fs.readFile(res[i], (err, buf) => { - if (err) { - console.log("File Writing Error", err); - } else { - const source = buf.toString(); - const compressed = minify(source, cfg).toString(); - const compression = 100 - Math.round(compressed.length / (source.length / 100)); - const minifiedName = res[i].substr(6); - - if (compression === 0) { - console.log(`${minifiedName} is already compressed. Skipping`); - } else { - fs.writeFile(res[i], compressed.toString(), (err) => { - if (err) { - console.log(`Failed to write ${minifiedName} due to ${err}`); - } else { - console.log(`Compressed ${minifiedName} by ${compression}%`); - } - }); - } - } - }); - } - } -}); diff --git a/src/lib/config.ts b/src/lib/config.ts new file mode 100644 index 0000000..ffa102e --- /dev/null +++ b/src/lib/config.ts @@ -0,0 +1,5 @@ +// TODO: Make env aware for coderdojo.{red, blue} +export const SITE = { + name: "Coderdojo R & B", + domain: "https://coderdojo.red", +}; diff --git a/src/lib/constants.js b/src/lib/constants.ts similarity index 85% rename from src/lib/constants.js rename to src/lib/constants.ts index 4b31603..89b553a 100644 --- a/src/lib/constants.js +++ b/src/lib/constants.ts @@ -1,7 +1,5 @@ // shared constants // default description for meta tags -const base_description = +export const base_description = "Willkommen beim CoderDōjō für Jugendliche! Wir sitzen zwar in Berlin, aber da bei uns vieles online stattfindet, kannst Du bei uns an vielem auch teilnehmen, wenn Du hier nicht wohnst. Wir wollen gemeinsam mit Dir die rote Pille nehmen und das Wunderland entdecken."; - -export { base_description }; diff --git a/src/lib/escape.js b/src/lib/escape.js deleted file mode 100644 index 19a4e54..0000000 --- a/src/lib/escape.js +++ /dev/null @@ -1,17 +0,0 @@ -import { visit } from "unist-util-visit"; - -/** - * Escape html tags in markdown text nodes - * @type {import('unified').Plugin<[], import('mdast').Root>} - */ -function escapePlugin() { - return (tree) => { - visit(tree, "text", (node) => { - // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment - node.value = node.value.replace(/>/g, ">").replace(/'; -const play_phosphor_icon = - ''; -const check_circle_icon = - ''; -const belt_icon = - ''; - -export { copy_phosphor_icon, play_phosphor_icon, belt_icon, check_circle_icon }; diff --git a/src/lib/licenses.json b/src/lib/licenses.json deleted file mode 100644 index a18c9e5..0000000 --- a/src/lib/licenses.json +++ /dev/null @@ -1,78 +0,0 @@ -{ - "@fontsource/fira-mono@4.5.8": { - "licenses": "MIT", - "repository": "https://github.com/fontsource/fontsource", - "publisher": "Lotus", - "email": "declininglotus@gmail.com", - "copyright": "", - "licenseModified": "", - "licenseText": "# Fontsource Fira Mono\n\n[![npm (scoped)](https://img.shields.io/npm/v/@fontsource/fira-mono?color=brightgreen)](https://www.npmjs.com/package/@fontsource/fira-mono) [![Generic badge](https://img.shields.io/badge/fontsource-passing-brightgreen)](https://github.com/fontsource/fontsource) [![Monthly downloads](https://badgen.net/npm/dm/@fontsource/fira-mono)](https://github.com/fontsource/fontsource) [![Total downloads](https://badgen.net/npm/dt/@fontsource/fira-mono)](https://github.com/fontsource/fontsource) [![GitHub stars](https://img.shields.io/github/stars/fontsource/fontsource.svg?style=social&label=Star)](https://github.com/fontsource/fontsource/stargazers)\n\nThe CSS and web font files to easily self-host the “Fira Mono” font. Please visit the main [Fontsource website](https://fontsource.org/fonts/fira-mono) to view more details on this package.\n\n## Quick Installation\n\nFontsource has a variety of methods to import CSS, such as using a bundler like Webpack. Alternatively, it supports SASS. Full documentation can be found [here](https://fontsource.org/docs/introduction).\n\n```javascript\nyarn add @fontsource/fira-mono // npm install @fontsource/fira-mono\n```\n\nWithin your app entry file or site component, import it in.\n\n```javascript\nimport \"@fontsource/fira-mono\"; // Defaults to weight 400.\n```\n\nSupported variables:\n\n- Weights: `[400,500,700]`\n- Styles: `[normal]`\n- Supported subsets: `[cyrillic,cyrillic-ext,greek,greek-ext,latin,latin-ext]`\n\nFinally, you can reference the font name in a CSS stylesheet, CSS Module, or CSS-in-JS.\n\n```css\nbody {\n font-family: \"Fira Mono\";\n}\n```\n\n## Licensing\n\nIt is important to always read the license for every font that you use.\nMost of the fonts in the collection use the SIL Open Font License, v1.1. Some fonts use the Apache 2 license. The Ubuntu fonts use the Ubuntu Font License v1.0.\n\n[Google Fonts License Attributions](https://fonts.google.com/attribution)\n\n## Other Notes\n\nFont version (provided by source): `v14`.\n\nFeel free to star and contribute new ideas to this repository that aim to improve the performance of font loading, as well as expanding the existing library we already have. Any suggestions or ideas can be voiced via an [issue](https://github.com/fontsource/fontsource/issues).", - "name": "@fontsource/fira-mono", - "version": "4.5.8", - "path": "/home/cobalt/P/rust/coderdojo-koneko/node_modules/@fontsource/fira-mono", - "licenseFile": "/home/cobalt/P/rust/coderdojo-koneko/node_modules/@fontsource/fira-mono/README.md" - }, - "feed@4.2.2": { - "licenses": "MIT", - "repository": "https://github.com/jpmonette/feed", - "publisher": "Jean-Philippe Monette", - "email": "contact@jpmonette.net", - "copyright": "Copyright (C) 2013, Jean-Philippe Monette ", - "licenseModified": "", - "licenseText": "Copyright (C) 2013, Jean-Philippe Monette \r\n\r\nPermission 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:\r\n\r\nThe above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\r\n\r\nTHE 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.", - "name": "feed", - "version": "4.2.2", - "path": "/home/cobalt/P/rust/coderdojo-koneko/node_modules/feed", - "licenseFile": "/home/cobalt/P/rust/coderdojo-koneko/node_modules/feed/LICENSE" - }, - "ical.js@1.5.0": { - "licenses": "MPL-2.0", - "repository": "https://github.com/mozilla-comm/ical.js", - "publisher": "Philipp Kewisch", - "copyright": "", - "licenseModified": "", - "licenseText": "Mozilla Public License Version 2.0\n==================================\n\n1. Definitions\n--------------\n\n1.1. \"Contributor\"\n means each individual or legal entity that creates, contributes to\n the creation of, or owns Covered Software.\n\n1.2. \"Contributor Version\"\n means the combination of the Contributions of others (if any) used\n by a Contributor and that particular Contributor's Contribution.\n\n1.3. \"Contribution\"\n means Covered Software of a particular Contributor.\n\n1.4. \"Covered Software\"\n means Source Code Form to which the initial Contributor has attached\n the notice in Exhibit A, the Executable Form of such Source Code\n Form, and Modifications of such Source Code Form, in each case\n including portions thereof.\n\n1.5. \"Incompatible With Secondary Licenses\"\n means\n\n (a) that the initial Contributor has attached the notice described\n in Exhibit B to the Covered Software; or\n\n (b) that the Covered Software was made available under the terms of\n version 1.1 or earlier of the License, but not also under the\n terms of a Secondary License.\n\n1.6. \"Executable Form\"\n means any form of the work other than Source Code Form.\n\n1.7. \"Larger Work\"\n means a work that combines Covered Software with other material, in\n a separate file or files, that is not Covered Software.\n\n1.8. \"License\"\n means this document.\n\n1.9. \"Licensable\"\n means having the right to grant, to the maximum extent possible,\n whether at the time of the initial grant or subsequently, any and\n all of the rights conveyed by this License.\n\n1.10. \"Modifications\"\n means any of the following:\n\n (a) any file in Source Code Form that results from an addition to,\n deletion from, or modification of the contents of Covered\n Software; or\n\n (b) any new file in Source Code Form that contains any Covered\n Software.\n\n1.11. \"Patent Claims\" of a Contributor\n means any patent claim(s), including without limitation, method,\n process, and apparatus claims, in any patent Licensable by such\n Contributor that would be infringed, but for the grant of the\n License, by the making, using, selling, offering for sale, having\n made, import, or transfer of either its Contributions or its\n Contributor Version.\n\n1.12. \"Secondary License\"\n means either the GNU General Public License, Version 2.0, the GNU\n Lesser General Public License, Version 2.1, the GNU Affero General\n Public License, Version 3.0, or any later versions of those\n licenses.\n\n1.13. \"Source Code Form\"\n means the form of the work preferred for making modifications.\n\n1.14. \"You\" (or \"Your\")\n means an individual or a legal entity exercising rights under this\n License. For legal entities, \"You\" includes any entity that\n controls, is controlled by, or is under common control with You. For\n purposes of this definition, \"control\" means (a) the power, direct\n or indirect, to cause the direction or management of such entity,\n whether by contract or otherwise, or (b) ownership of more than\n fifty percent (50%) of the outstanding shares or beneficial\n ownership of such entity.\n\n2. License Grants and Conditions\n--------------------------------\n\n2.1. Grants\n\nEach Contributor hereby grants You a world-wide, royalty-free,\nnon-exclusive license:\n\n(a) under intellectual property rights (other than patent or trademark)\n Licensable by such Contributor to use, reproduce, make available,\n modify, display, perform, distribute, and otherwise exploit its\n Contributions, either on an unmodified basis, with Modifications, or\n as part of a Larger Work; and\n\n(b) under Patent Claims of such Contributor to make, use, sell, offer\n for sale, have made, import, and otherwise transfer either its\n Contributions or its Contributor Version.\n\n2.2. Effective Date\n\nThe licenses granted in Section 2.1 with respect to any Contribution\nbecome effective for each Contribution on the date the Contributor first\ndistributes such Contribution.\n\n2.3. Limitations on Grant Scope\n\nThe licenses granted in this Section 2 are the only rights granted under\nthis License. No additional rights or licenses will be implied from the\ndistribution or licensing of Covered Software under this License.\nNotwithstanding Section 2.1(b) above, no patent license is granted by a\nContributor:\n\n(a) for any code that a Contributor has removed from Covered Software;\n or\n\n(b) for infringements caused by: (i) Your and any other third party's\n modifications of Covered Software, or (ii) the combination of its\n Contributions with other software (except as part of its Contributor\n Version); or\n\n(c) under Patent Claims infringed by Covered Software in the absence of\n its Contributions.\n\nThis License does not grant any rights in the trademarks, service marks,\nor logos of any Contributor (except as may be necessary to comply with\nthe notice requirements in Section 3.4).\n\n2.4. Subsequent Licenses\n\nNo Contributor makes additional grants as a result of Your choice to\ndistribute the Covered Software under a subsequent version of this\nLicense (see Section 10.2) or under the terms of a Secondary License (if\npermitted under the terms of Section 3.3).\n\n2.5. Representation\n\nEach Contributor represents that the Contributor believes its\nContributions are its original creation(s) or it has sufficient rights\nto grant the rights to its Contributions conveyed by this License.\n\n2.6. Fair Use\n\nThis License is not intended to limit any rights You have under\napplicable copyright doctrines of fair use, fair dealing, or other\nequivalents.\n\n2.7. Conditions\n\nSections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted\nin Section 2.1.\n\n3. Responsibilities\n-------------------\n\n3.1. Distribution of Source Form\n\nAll distribution of Covered Software in Source Code Form, including any\nModifications that You create or to which You contribute, must be under\nthe terms of this License. You must inform recipients that the Source\nCode Form of the Covered Software is governed by the terms of this\nLicense, and how they can obtain a copy of this License. You may not\nattempt to alter or restrict the recipients' rights in the Source Code\nForm.\n\n3.2. Distribution of Executable Form\n\nIf You distribute Covered Software in Executable Form then:\n\n(a) such Covered Software must also be made available in Source Code\n Form, as described in Section 3.1, and You must inform recipients of\n the Executable Form how they can obtain a copy of such Source Code\n Form by reasonable means in a timely manner, at a charge no more\n than the cost of distribution to the recipient; and\n\n(b) You may distribute such Executable Form under the terms of this\n License, or sublicense it under different terms, provided that the\n license for the Executable Form does not attempt to limit or alter\n the recipients' rights in the Source Code Form under this License.\n\n3.3. Distribution of a Larger Work\n\nYou may create and distribute a Larger Work under terms of Your choice,\nprovided that You also comply with the requirements of this License for\nthe Covered Software. If the Larger Work is a combination of Covered\nSoftware with a work governed by one or more Secondary Licenses, and the\nCovered Software is not Incompatible With Secondary Licenses, this\nLicense permits You to additionally distribute such Covered Software\nunder the terms of such Secondary License(s), so that the recipient of\nthe Larger Work may, at their option, further distribute the Covered\nSoftware under the terms of either this License or such Secondary\nLicense(s).\n\n3.4. Notices\n\nYou may not remove or alter the substance of any license notices\n(including copyright notices, patent notices, disclaimers of warranty,\nor limitations of liability) contained within the Source Code Form of\nthe Covered Software, except that You may alter any license notices to\nthe extent required to remedy known factual inaccuracies.\n\n3.5. Application of Additional Terms\n\nYou may choose to offer, and to charge a fee for, warranty, support,\nindemnity or liability obligations to one or more recipients of Covered\nSoftware. However, You may do so only on Your own behalf, and not on\nbehalf of any Contributor. You must make it absolutely clear that any\nsuch warranty, support, indemnity, or liability obligation is offered by\nYou alone, and You hereby agree to indemnify every Contributor for any\nliability incurred by such Contributor as a result of warranty, support,\nindemnity or liability terms You offer. You may include additional\ndisclaimers of warranty and limitations of liability specific to any\njurisdiction.\n\n4. Inability to Comply Due to Statute or Regulation\n---------------------------------------------------\n\nIf it is impossible for You to comply with any of the terms of this\nLicense with respect to some or all of the Covered Software due to\nstatute, judicial order, or regulation then You must: (a) comply with\nthe terms of this License to the maximum extent possible; and (b)\ndescribe the limitations and the code they affect. Such description must\nbe placed in a text file included with all distributions of the Covered\nSoftware under this License. Except to the extent prohibited by statute\nor regulation, such description must be sufficiently detailed for a\nrecipient of ordinary skill to be able to understand it.\n\n5. Termination\n--------------\n\n5.1. The rights granted under this License will terminate automatically\nif You fail to comply with any of its terms. However, if You become\ncompliant, then the rights granted under this License from a particular\nContributor are reinstated (a) provisionally, unless and until such\nContributor explicitly and finally terminates Your grants, and (b) on an\nongoing basis, if such Contributor fails to notify You of the\nnon-compliance by some reasonable means prior to 60 days after You have\ncome back into compliance. Moreover, Your grants from a particular\nContributor are reinstated on an ongoing basis if such Contributor\nnotifies You of the non-compliance by some reasonable means, this is the\nfirst time You have received notice of non-compliance with this License\nfrom such Contributor, and You become compliant prior to 30 days after\nYour receipt of the notice.\n\n5.2. If You initiate litigation against any entity by asserting a patent\ninfringement claim (excluding declaratory judgment actions,\ncounter-claims, and cross-claims) alleging that a Contributor Version\ndirectly or indirectly infringes any patent, then the rights granted to\nYou by any and all Contributors for the Covered Software under Section\n2.1 of this License shall terminate.\n\n5.3. In the event of termination under Sections 5.1 or 5.2 above, all\nend user license agreements (excluding distributors and resellers) which\nhave been validly granted by You or Your distributors under this License\nprior to termination shall survive termination.\n\n************************************************************************\n* *\n* 6. Disclaimer of Warranty *\n* ------------------------- *\n* *\n* Covered Software is provided under this License on an \"as is\" *\n* basis, without warranty of any kind, either expressed, implied, or *\n* statutory, including, without limitation, warranties that the *\n* Covered Software is free of defects, merchantable, fit for a *\n* particular purpose or non-infringing. The entire risk as to the *\n* quality and performance of the Covered Software is with You. *\n* Should any Covered Software prove defective in any respect, You *\n* (not any Contributor) assume the cost of any necessary servicing, *\n* repair, or correction. This disclaimer of warranty constitutes an *\n* essential part of this License. No use of any Covered Software is *\n* authorized under this License except under this disclaimer. *\n* *\n************************************************************************\n\n************************************************************************\n* *\n* 7. Limitation of Liability *\n* -------------------------- *\n* *\n* Under no circumstances and under no legal theory, whether tort *\n* (including negligence), contract, or otherwise, shall any *\n* Contributor, or anyone who distributes Covered Software as *\n* permitted above, be liable to You for any direct, indirect, *\n* special, incidental, or consequential damages of any character *\n* including, without limitation, damages for lost profits, loss of *\n* goodwill, work stoppage, computer failure or malfunction, or any *\n* and all other commercial damages or losses, even if such party *\n* shall have been informed of the possibility of such damages. This *\n* limitation of liability shall not apply to liability for death or *\n* personal injury resulting from such party's negligence to the *\n* extent applicable law prohibits such limitation. Some *\n* jurisdictions do not allow the exclusion or limitation of *\n* incidental or consequential damages, so this exclusion and *\n* limitation may not apply to You. *\n* *\n************************************************************************\n\n8. Litigation\n-------------\n\nAny litigation relating to this License may be brought only in the\ncourts of a jurisdiction where the defendant maintains its principal\nplace of business and such litigation shall be governed by laws of that\njurisdiction, without reference to its conflict-of-law provisions.\nNothing in this Section shall prevent a party's ability to bring\ncross-claims or counter-claims.\n\n9. Miscellaneous\n----------------\n\nThis License represents the complete agreement concerning the subject\nmatter hereof. If any provision of this License is held to be\nunenforceable, such provision shall be reformed only to the extent\nnecessary to make it enforceable. Any law or regulation which provides\nthat the language of a contract shall be construed against the drafter\nshall not be used to construe this License against a Contributor.\n\n10. Versions of the License\n---------------------------\n\n10.1. New Versions\n\nMozilla Foundation is the license steward. Except as provided in Section\n10.3, no one other than the license steward has the right to modify or\npublish new versions of this License. Each version will be given a\ndistinguishing version number.\n\n10.2. Effect of New Versions\n\nYou may distribute the Covered Software under the terms of the version\nof the License under which You originally received the Covered Software,\nor under the terms of any subsequent version published by the license\nsteward.\n\n10.3. Modified Versions\n\nIf you create software not governed by this License, and you want to\ncreate a new license for such software, you may create and use a\nmodified version of this License if you rename the license and remove\nany references to the name of the license steward (except to note that\nsuch modified license differs from this License).\n\n10.4. Distributing Source Code Form that is Incompatible With Secondary\nLicenses\n\nIf You choose to distribute Source Code Form that is Incompatible With\nSecondary Licenses under the terms of this version of the License, the\nnotice described in Exhibit B of this License must be attached.\n\nExhibit A - Source Code Form License Notice\n-------------------------------------------\n\n This Source Code Form is subject to the terms of the Mozilla Public\n License, v. 2.0. If a copy of the MPL was not distributed with this\n file, You can obtain one at http://mozilla.org/MPL/2.0/.\n\nIf it is not possible or desirable to put the notice in a particular\nfile, then You may include the notice in a location (such as a LICENSE\nfile in a relevant directory) where a recipient would be likely to look\nfor such a notice.\n\nYou may add additional accurate notices of copyright ownership.\n\nExhibit B - \"Incompatible With Secondary Licenses\" Notice\n---------------------------------------------------------\n\n This Source Code Form is \"Incompatible With Secondary Licenses\", as\n defined by the Mozilla Public License, v. 2.0.", - "name": "ical.js", - "version": "1.5.0", - "path": "/home/cobalt/P/rust/coderdojo-koneko/node_modules/ical.js", - "licenseFile": "/home/cobalt/P/rust/coderdojo-koneko/node_modules/ical.js/LICENSE" - }, - "phosphor-svelte@1.2.1": { - "licenses": "MIT", - "repository": "https://github.com/haruaki07/phosphor-svelte", - "publisher": "haruaki07", - "copyright": "Copyright (c) 2020 Phosphor Icons", - "licenseModified": "", - "licenseText": "MIT License\n\nCopyright (c) 2020 Phosphor Icons\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.", - "name": "phosphor-svelte", - "version": "1.2.1", - "path": "/home/cobalt/P/rust/coderdojo-koneko/node_modules/phosphor-svelte", - "licenseFile": "/home/cobalt/P/rust/coderdojo-koneko/node_modules/phosphor-svelte/LICENSE" - }, - "remark-admonitions@1.2.1": { - "licenses": "MIT", - "repository": "https://github.com/elviswolcott/remark-admonitions", - "publisher": "Elvis Wolcott", - "copyright": "", - "licenseModified": "", - "licenseText": "[![Travis (.com)](https://img.shields.io/travis/com/elviswolcott/remark-admonitions?logo=travis)](https://travis-ci.com/elviswolcott/remark-admonitions)\n[![npm](https://img.shields.io/npm/v/remark-admonitions?label=remark-admonitions&logo=npm)](https://www.npmjs.com/package/remark-admonitions)\n# remark-admonitions\n\n> A [remark](https://github.com/remarkjs/remark) plugin for admonitions designed with Docusaurus v2 in mind.\n\n> `remark-admonitions` is now included out-of-the-box with `@docusaurus/preset-classic`!\n\n![example of admonitions](/assets/hero.png)\n\n# Installation\n\n`remark-admonitions` is available on NPM.\n\n```bash\nnpm install remark-admonitions\n```\n\n## unified + remark\nIf you're using unified/remark, just pass the plugin to `use()`\n\nFor example, this will compile `input.md` into `output.html` using `remark`, `rehype`, and `remark-admonitions`.\n\n```javascript\nconst unified = require('unified')\nconst markdown = require('remark-parse')\n// require the plugin\nconst admonitions = require('remark-admonitions')\nconst remark2rehype = require('remark-rehype')\nconst doc = require('rehype-document')\nconst format = require('rehype-format')\nconst html = require('rehype-stringify')\nconst vfile = require('to-vfile')\nconst report = require('vfile-reporter')\n\nconst options = {}\n\nunified()\n .use(markdown)\n // add it to unified\n .use(admonitions, options)\n .use(remark2rehype)\n .use(doc)\n .use(format)\n .use(html)\n .process(vfile.readSync('./input.md'), (error, result) => {\n console.error(report(error || result))\n if (result) {\n result.basename = \"output.html\"\n vfile.writeSync(result)\n }\n })\n```\n\n## Docusaurus v2\n\n`@docusaurus/preset-classic` includes `remark-admonitions`.\n\nIf you aren't using `@docusaurus/preset-classic`, `remark-admonitions` can still be used through passing a `remark` plugin to MDX. \n# Usage\n\nAdmonitions are a block element. \nThe titles can include inline markdown and the body can include any block markdown except another admonition.\n\nThe general syntax is\n\n```markdown\n:::keyword optional title\nsome content\n:::\n```\n\nFor example,\n\n```markdown\n:::tip pro tip\n`remark-admonitions` is pretty great!\n:::\n```\n\n\nThe default keywords are `important`, `tip`, `note`, `warning`, and `danger`.\nAliases for `info` => `important`, `success` => `tip`, `secondary` => `note` and `danger` => `warning` have been added for Infima compatibility.\n\n# Options\n\nThe plugin can be configured through the options object.\n\n## Defaults\n\n```ts\nconst options = {\n customTypes: customTypes, // additional types of admonitions\n tag: string, // the tag to be used for creating admonitions (default \":::\")\n icons: \"svg\"|\"emoji\"|\"none\", // the type of icons to use (default \"svg\")\n infima: boolean, // wether the classes for infima alerts should be added to the markup\n}\n```\n\n## Custom Types\n\nThe `customTypes` option can be used to add additional types of admonitions. You can set the svg and emoji icons as well as the keyword. You only have to include the svg/emoji fields if you are using them. \nThe ifmClass is only necessary if the `infima` setting is `true` and the admonition should use the look of an existing Infima alert class.\n\n```ts\nconst customTypes = {\n [string: keyword]: {\n ifmClass: string,\n keyword: string,\n emoji: string,\n svg: string,\n } | string\n}\n```\n\nFor example, this will allow you to generate admonitions will the `custom` keyword.\n\n```js\ncustomTypes: {\n custom: {\n emoji: '💻',\n svg: ''\n }\n}\n```\n\nTo create an alias for an existing type, have the value be the keyword the alias should point to.\n\n```js\ncustomTypes: {\n alias: \"custom\"\n}\n```\n\nThe generated markup will include the class `admonition-{keyword}` for styling.\n\nIf the `infima` option is `true`, the classes `alert alert--{type}` will be added to inherit the default Infima styling.\n\n# Styling\n\nYou'll have to add styles for the admonitions. With Docusaurus, these can be added to `custom.css`. \n\n## Infima (Docusaurus v2)\n\nThe Infima theme (`styles/infima.css`) is used by `@docusaurus/preset-classic`.\n\n![infima theme](assets/infima.png)\n\n## Classic (Docusaurus v1)\n\nThe classic theme (`styles/classic.css`) replicates the look of `remarkable-admonitions` and Docusaurus v1.\n\n![classic theme](/assets/classic.png)\n\n# Credit\n\nSyntax and classic theme based on [`remarkable-admonitions`](https://github.com/favoloso/remarkable-admonitions).\n\nThe SVG icons included are from [GitHub Octicons](https://octicons.github.com).", - "name": "remark-admonitions", - "version": "1.2.1", - "path": "/home/cobalt/P/rust/coderdojo-koneko/node_modules/remark-admonitions", - "licenseFile": "/home/cobalt/P/rust/coderdojo-koneko/node_modules/remark-admonitions/README.md" - }, - "remark-parse@10.0.1": { - "licenses": "MIT", - "repository": "https://github.com/remarkjs/remark/tree/main/packages/remark-parse", - "publisher": "Titus Wormer", - "email": "tituswormer@gmail.com", - "url": "https://wooorm.com", - "copyright": "Copyright (c) 2014-2020 Titus Wormer . Copyright (c) 2011-2014, Christopher Jeffrey (https://github.com/chjj/)", - "licenseModified": "", - "licenseText": "(The MIT License)\n\nCopyright (c) 2014-2020 Titus Wormer \nCopyright (c) 2011-2014, Christopher Jeffrey (https://github.com/chjj/)\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.", - "name": "remark-parse", - "version": "10.0.1", - "path": "/home/cobalt/P/rust/coderdojo-koneko/node_modules/remark-parse", - "licenseFile": "/home/cobalt/P/rust/coderdojo-koneko/node_modules/remark-parse/license" - } -} diff --git a/src/lib/mdsvex.layout.svelte b/src/lib/mdsvex.layout.svelte deleted file mode 100644 index f2f3e2f..0000000 --- a/src/lib/mdsvex.layout.svelte +++ /dev/null @@ -1,112 +0,0 @@ - - - - -{#if !draft} -
- {#if prose} - {#if toc} -
-
-
{title}
- -
- {#if toclist} - - {:else} - {#each toc as [entryFilename, firstHeading, headings, targetUrl]} - - {/each} - {/if} -
-
-
- {/if} - -
-
- - - {#if next} -
- -
- {/if} -
-
- {:else} - - - {#if next} -
- -
- {/if} - {/if} -
-{:else} - -{/if} diff --git a/src/lib/navigation/Footer.svelte b/src/lib/navigation/Footer.svelte deleted file mode 100644 index 8cba34d..0000000 --- a/src/lib/navigation/Footer.svelte +++ /dev/null @@ -1,66 +0,0 @@ - - - diff --git a/src/lib/navigation/Navbar.svelte b/src/lib/navigation/Navbar.svelte deleted file mode 100644 index 48e7643..0000000 --- a/src/lib/navigation/Navbar.svelte +++ /dev/null @@ -1,106 +0,0 @@ - - -
-
diff --git a/src/lib/navigation/WIP.svelte b/src/lib/navigation/WIP.svelte deleted file mode 100644 index 44999da..0000000 --- a/src/lib/navigation/WIP.svelte +++ /dev/null @@ -1,14 +0,0 @@ - - -
-
-

- Work in progress -

- -

You've hit a route that hasn't been implemented yet.

-

Consider contributing by implementing this route.

-
-
diff --git a/src/lib/posts.ts b/src/lib/posts.ts new file mode 100644 index 0000000..c005fc9 --- /dev/null +++ b/src/lib/posts.ts @@ -0,0 +1,73 @@ +import getReadingTime from "reading-time"; +import glob from "fast-glob"; + +export const extractFrontMatter = async (post) => { + const { frontmatter, compiledContent, rawContent, file } = post; + + // Handle optional attributes + const authors = + frontmatter.authors !== undefined + ? frontmatter.authors + : "DerMicha & Bengoshi"; + // TODO: Migrate description + const description = + frontmatter.description !== undefined ? frontmatter.description : ""; + // TODO: Add default social image + const image = + frontmatter.image !== undefined ? frontmatter.image : "favicon.ico"; + // TODO: Find a way to retrieve this from the file + const pubDate = new Date(); + + return { + pubDate: pubDate, + title: frontmatter.title, + description: description, + body: compiledContent(), + image: image, + authors: authors, + slug: file.split("/").pop().split(".").shift(), + readingTime: Math.ceil(getReadingTime(rawContent()).minutes), + }; +}; + +const load = async function () { + const posts = glob("../data/posts/**/*.{md,mdx}", {}); + + const normalizedPosts = Object.keys(posts).map(async (key) => { + const post = await posts[key]; + return await extractFrontMatter(post); + }); + + const results = (await Promise.all(normalizedPosts)).sort( + (a, b) => new Date(b.pubDate).valueOf() - new Date(a.pubDate).valueOf() + ); + + return results; +}; + +// local cache for posts to avoid reloading for each post +let _posts; + +export const getPosts = async () => { + _posts = _posts || load(); + + return await _posts; +}; + +export const findImage = async (imageRoute) => { + const images = glob("../assets/images/*"); + + const key = imageRoute.replace("~/", "../"); + + const image = + typeof imageRoute === "string" && + (imageRoute.startsWith("/") || + imageRoute.startsWith("http://") || + imageRoute.startsWith("https://")) + ? imageRoute + : typeof images[key] === "function" + ? (await images[key]())["default"] + : null; + + return image; +}; diff --git a/src/lib/section-ids.js b/src/lib/section-ids.js deleted file mode 100644 index 7442c38..0000000 --- a/src/lib/section-ids.js +++ /dev/null @@ -1,66 +0,0 @@ -// ES Port of rehype-sectionize by Jake Low modified to support headings with slugs -// repositor: https://github.com/agentofuser/rehype-section -// Original license: Copyright (c) 2019 Jake Low - -import { findAfter } from "unist-util-find-after"; -import { visitParents } from "unist-util-visit-parents"; - -const heading_regex = /h([1-3])/; - -function sectionPlugin() { - return transform; -} - -function transform(tree) { - visitParents( - tree, - (node) => node.type === "element" && heading_regex.test(node.tagName), - sectionize - ); -} - -function sectionize(node, ancestors) { - const start = node; - const depth = Number.parseInt(start.tagName[1]); - const parent = ancestors[ancestors.length - 1]; - - // consume all nodes until either an ending of same or higher depth is found or mdsvex's Layout is finished - const isEnd = (node) => { - let lower; - if (node.type === "element") { - let results = node.tagName.match(heading_regex); - - if (results !== null) { - lower = depth >= Number.parseInt(results[1]); - } else { - lower = false; - } - } - - return (node.type === "raw" && node.value.startsWith("")) || lower; - }; - const end = findAfter(parent, start, isEnd); - - const startIndex = parent.children.indexOf(start), - endIndex = parent.children.indexOf(end); - - const between = parent.children.slice(startIndex, endIndex > 0 ? endIndex : undefined); - - const section = { - type: "element", - tagName: "section", - depth, - children: between, - properties: - start.properties !== undefined && start.properties.id !== undefined - ? { - id: start.properties.id + "-section", - "data-type": "scrollspy-tracked" - } - : {} - }; - - parent.children.splice(startIndex, section.children.length, section); -} - -export { sectionPlugin }; diff --git a/src/lib/toc-loader.ts b/src/lib/toc-loader.ts new file mode 100644 index 0000000..b2a9a17 --- /dev/null +++ b/src/lib/toc-loader.ts @@ -0,0 +1,42 @@ +export const loadTOC = (toccache: { + [key: string]: { + [key: string]: { + headings: string[]; + data: string; + }; + }; +}) => { + if (title === undefined || toccache[title] === undefined || !showToc) { + return [null, null, null]; + } + + // in case only one file is associated with the title -> use toclist + const keys = Object.keys(toccache[title]); + if (keys.length === 1) { + return [true, toccache[title][keys[0]].headings, null]; + } + + // extract entries with headings from cache + const entries = Object.entries(toccache[title]).filter( + ([_, data]) => data.headings.length > 0 + ); + + // otherwise use full-blown tocdropdown + return [ + false, + entries + // extract first headline and transform into easily renderable format + .map(([entryfilename, data]) => { + return [entryfilename, data.headings.shift(), data.headings, data.path]; + }), + entries + // extract filename and original index in entries + .map(([entryfilename, _], idx) => [entryfilename, idx]) + // find current entry - this should leave only one + .filter(([entryfilename, _]) => entryfilename === filename) + // map current entry optionally to next + .map(([_, idx]) => + entries.length > idx + 1 ? entries[idx + 1][1].path : null + )[0], + ]; +}; diff --git a/src/lib/toc.js b/src/lib/toc.js index 4ea0e07..89302b3 100644 --- a/src/lib/toc.js +++ b/src/lib/toc.js @@ -33,11 +33,6 @@ function routeMapper(path) { url += urlParts.filename.replace(".md", ""); } - // fix url suffixes until sveltekit replacement - if (url.endsWith("index")) { - url = url.substring(0, url.length - 5); - } - return url; } @@ -74,7 +69,11 @@ const TitleRegex = /^title *= *["'](?.+)['"] *$/m; * @return {[string, string][]} */ function collectSluggedHeadings(content) { - return unified().use(remarkParse).use(remarkSlug).use(tocCompiler).processSync(content).result; + return unified() + .use(remarkParse) + .use(remarkSlug) + .use(tocCompiler) + .processSync(content).result; } /** @type {import('unified').Plugin<[], import('mdast').Root>} */ @@ -128,7 +127,10 @@ function tocPlugin() { keys.splice(idx, 1); const sync = statSync(path).mtimeMs; - if (toc[title][name].mtime !== sync || !toc[title][name].headings === {}) { + if ( + toc[title][name].mtime !== sync || + !toc[title][name].headings === {} + ) { return [path, name, sync]; } @@ -160,13 +162,18 @@ function tocPlugin() { const frontmatter = FrontmatterRegex.exec(content); if (frontmatter !== null) { - const frontmatterTitle = TitleRegex.exec(frontmatter.groups.frontmatter); - - if (frontmatterTitle !== null && frontmatterTitle.groups.title === title) { + const frontmatterTitle = TitleRegex.exec( + frontmatter.groups.frontmatter + ); + + if ( + frontmatterTitle !== null && + frontmatterTitle.groups.title === title + ) { toc[title][name] = { headings: collectSluggedHeadings(content), mtime, - path: routeMapper(path) + path: routeMapper(path), }; } } diff --git a/src/pages/403.astro b/src/pages/403.astro new file mode 100644 index 0000000..7c82783 --- /dev/null +++ b/src/pages/403.astro @@ -0,0 +1,8 @@ +--- +import Base from "$layouts/Page.astro"; +import WIP from "$components/WIP.astro"; +--- + +<Base title={"403 Forbidden"}> + <WIP /> +</Base> diff --git a/src/pages/404.astro b/src/pages/404.astro new file mode 100644 index 0000000..235ab19 --- /dev/null +++ b/src/pages/404.astro @@ -0,0 +1,8 @@ +--- +import Base from "$layouts/Page.astro"; +import WIP from "$components/WIP.astro"; +--- + +<Base title={"404 Not Found"}> + <WIP /> +</Base> diff --git a/src/routes/about.md b/src/pages/about.mdx similarity index 62% rename from src/routes/about.md rename to src/pages/about.mdx index 64cb2a3..23267aa 100644 --- a/src/routes/about.md +++ b/src/pages/about.mdx @@ -1,41 +1,47 @@ -+++ -title = "Mentoren" -date = 2022-04-30 -+++ +--- +title: "Mentoren" +date: 2022-04-30 +layout: "$layouts/Prose.astro" +--- -<script lang="ts"> - import Avatar from '$lib/components/Avatar.svelte'; - import Button from '$lib/components/Button.svelte'; - - import User from 'phosphor-svelte/lib/User'; -</script> +import Avatar from "$components/Avatar.svelte"; +import Button from "$components/Button.svelte"; # Mentoren -:::tip Hinweis -Das wichtigste vorab: Mentor:innen gesucht! Wenn du gleich welche Sprache programmieren kannst oder weißt auf welcher +:::tip +Das wichtigste vorab: Mentor\:innen gesucht! Wenn du gleich welche Sprache programmieren kannst oder weißt auf welcher Seite der Lötkolben heiss wird und Interesse an der Arbeit mit Kindern und Jugendlichen hast - melde dich bei uns. Dies gilt insbesondere, wenn du Interesse daran hättest, diese Seite weiter auf- und auszubauen! ::: ## derMicha -<Avatar src="https://dect42.de/images/derMicha.jpg" alt="derMicha" float="right" /> +<Avatar + src="https://dect42.de/images/derMicha.jpg" + alt="derMicha" + float="right" +/> -Michael Merz (/derMicha) ist seit mehr als 20 Jahren als Software-Entwickler und -Architekt tätig. Er ist unter anderem -Mitgründer der [ubirch GmbH](https://ubirch.com). Beruflich liegen seine Schwerpunkte bei Scala, Java, IoT und Big Data. +Michael Merz (/derMicha) ist seit mehr als 20 Jahren als Software-Entwickler und -Architekt tätig. +Er ist unter anderem Mitgründer der [ubirch GmbH](https://ubirch.com). +Beruflich liegen seine Schwerpunkte bei Scala, Java, IoT und Big Data. Aus der Erfahrung mit datenschutzkonformen Konzepten zur Digitalisierung von Schulen gründete er mit anderen Mitstreiterinnen auf dem „Chaos Communication Congress“ 2019 vorpandemisch den Verein [cyber4EDU](https://cyber4edu.org). Ferner engagiert sich derMicha bei [Chaos macht Schule](https://ccc.de/schule). derMicha ist Mitglied im [CCCB](https://ccc.de/schule) und im Friedrichshainer Hacker- und Makerspace -[xHain](https://x-hain.de/). Gemeinsam mit bengoshi gründeten beide Anfang 2019 das CoderDojo Mitte. Inspiriert von -Jugendhackt wollten beide Jugendlichen einen Anschluss nach den phantastischen Wochenenden bei Jugend hackt schaffen. -Aus dem gemeinsamen Engagement für Datenschutz hat derMicha gemeinsam mit bengoshi den Podcast -[Digital Education Cyber Talks](https://dect42.de) ins Leben gerufen und sprechen dort regelmäßig über die -Digitalisierung der Bildung. +[xHain](https://x-hain.de/). +Gemeinsam mit bengoshi gründeten beide Anfang 2019 das CoderDojo Mitte. +Inspiriert von Jugendhackt wollten beide Jugendlichen einen Anschluss nach den phantastischen Wochenenden bei Jugend hackt schaffen. +Aus dem gemeinsamen Engagement für Datenschutz hat derMicha gemeinsam mit bengoshi den Podcast [Digital Education Cyber Talks](https://dect42.de) +ins Leben gerufen und sprechen dort regelmäßig über die Digitalisierung der Bildung. ## bengoshi -<Avatar src="https://dect42.de/images/bengoshi.jpg" alt="bengoshi" float="right" /> +<Avatar + src="https://dect42.de/images/bengoshi.jpg" + alt="bengoshi" + float="right" +/> Kai Kobschätzki (/bengoshi) war im zivilen Leben über zehn Jahre als Rechtsanwalt mit den Schwerpunkten Steuer- und Gesellschaftsrecht tätig, weshalb Begriff wie ERP, Legal Tech und Legal Design bengoshi sofort triggern. Zuletzt war er @@ -53,7 +59,7 @@ Gründungsmitglied bei [cyber4EDU](https://cyber4edu.org). Hast du Lust, bei uns mitzumachen? Neue Konzepte und Ideen auszuprobieren? Nur zu, melde Dich dann bei uns! <div class="flex justify-center py-2"> - <Button href="/contact/"> - <User size={24} /> Kontakt - </Button> + <Button href="/contact/"> + <i class="ph-xl ph-user"></i> Kontakt + </Button> </div> diff --git a/src/pages/index.astro b/src/pages/index.astro new file mode 100644 index 0000000..95d33a1 --- /dev/null +++ b/src/pages/index.astro @@ -0,0 +1,58 @@ +--- +import BaseLayout from "../layouts/Page.astro"; +import Button from "../components/Button.svelte"; +--- + +<!-- <Meta title={"Willkomen zum CoderDōjō"} /> --> +<BaseLayout title="Willkomen zum CoderDōjō"> + <div + class="md:items-center md:mt-[10%] flex gap-4 md:flex-row flex-col px-5 mx-auto" + > + <div class="flex flex-col gap-3 md:w-1/2 w-full"> + <h1 class="sm:text-3xl text-center text-2xl font-medium"> + Willkomen zum CoderDōjō <span + class="bg-gradient-reverse bg-clip-text text-transparent" + > + Red und Blue + </span> + </h1> + <p class="leading-relaxed text-lg"> + Willkommen beim CoderDōjō für Jugendliche! Wir sitzen zwar in Berlin, + aber da bei uns vieles online stattfindet, kannst Du bei uns an vielem + auch teilnehmen, wenn Du hier nicht wohnst. Wir wollen gemeinsam mit Dir + die rote Pille nehmen und das Wunderland entdecken. Wir treffen uns + immer donnerstags ab 20:30 Uhr in unserem <a + href="https://bbb.cyber4edu.org/b/der-0rc-8x7-4re" + > + BigBlueButton-Raum + </a> + Raum. Unsere aktuelle Kommunikation findet in unserem + <a href="https://matrix.to/#/#coderdojo:matrix.cyber4edu.org"> + Matrix-Raum + </a> statt. Am besten schaust du da mal rein. Dort verabreden wir uns, tauschen + uns aus und kündigen auch an, wenn sich ein Termin verschiebt oder was für + Themen anstehen. + </p> + <div class="flex flex-row justify-center btn-group"> + <Button href="/posts/news/"> + News zum Dojo <i class="ph-info"></i> + </Button> + <Button href="/posts/dojo/"> + Zur Einführung <i class="ph-arrow"></i> + </Button> + </div> + </div> + <div class="quote-card"> + <i class="ph-quotes text-emerald-500"></i> + <p> + Das ist deine letzte Chance. Danach gibt es kein zurück. Nimm die blaue + Pille — die Geschichte endet, du wachst in deinem Bett auf und glaubst + was du auch immer glauben willst. Nimm die rote Pille — du bleibst hier + im Wunderland und ich werde dir zeigen wie tief das Kaninchenloch + reicht. + </p> + <span id="bar"></span> + <h2>Matrix</h2> + </div> + </div> +</BaseLayout> diff --git a/src/pages/posts/dojo.mdx b/src/pages/posts/dojo.mdx new file mode 100644 index 0000000..e69de29 diff --git a/src/routes/posts/kyo-6/01-pygame.md b/src/pages/posts/kyo-6/01-pygame.mdx similarity index 98% rename from src/routes/posts/kyo-6/01-pygame.md rename to src/pages/posts/kyo-6/01-pygame.mdx index 5d3c6f4..e071c88 100644 --- a/src/routes/posts/kyo-6/01-pygame.md +++ b/src/pages/posts/kyo-6/01-pygame.mdx @@ -1,17 +1,19 @@ -+++ -title = "6. Kyo" +--- +title: "6. Kyo" +color: "#FFFF00" +date: 2021-12-07 +layout: "$layouts/Prose.astro" +--- -color = "#FFFF00" -date = 2021-12-07 -+++ -<script lang="ts"> - import Figure from '$lib/components/Figure.svelte'; -</script> +import Figure from "$lib/components/Figure.svelte"; # PyGames -<Figure src="/images/kyo-6/Pygame.png" alt="Das pygame-Logo von TheCorruptor/pygame developers" /> +<Figure + src="/images/kyo-6/Pygame.png" + alt="Das pygame-Logo von TheCorruptor/pygame developers" +/> Juhu, wir kommen zu pygames. Das ist eine Bibliothek, die es Dir ermöglicht, Grafik darzustellen und Tastatur- und Mauseingaben abzufangen, damit du sie gut verarbeiten kannst. Wenn du zockst, wollen wir gleich zugestehen, dass man mit diff --git a/src/routes/posts/kyo-6/03-netzwerk.md b/src/pages/posts/kyo-6/02-kultur-2-netzwerk.mdx similarity index 92% rename from src/routes/posts/kyo-6/03-netzwerk.md rename to src/pages/posts/kyo-6/02-kultur-2-netzwerk.mdx index 8c7a19f..1006971 100644 --- a/src/routes/posts/kyo-6/03-netzwerk.md +++ b/src/pages/posts/kyo-6/02-kultur-2-netzwerk.mdx @@ -1,13 +1,27 @@ -+++ -title = "6. Kyo" +--- +title: "6. Kyo" -color = "#FFFF00" -date = 2021-12-07 -+++ +color: "#FFFF00" +date: 2021-12-07 +layout: "$layouts/Prose.astro" +--- -<script lang="ts"> - import Figure from '$lib/components/Figure.svelte'; -</script> + + +<script lang="ts">import Figure from '$lib/components/Figure.svelte';</script> + +# Kultur II. + +Es wird Zeit für Kultur! Über eine Bibliothek, einen (legalen) Streamingdienst oder andere Wege besorge Dir doch mal den +Film [Hackers](https://de.wikipedia.org/wiki/Hackers_%E2%80%93_Im_Netz_des_FBI). Der ist zwar schon von 1995, aber immer +noch sehenswert. Manche Filmszene wird dir immer wieder als Meme begegnen. Mal abgesehen davon, dass Du ein bisschen +Computergeschichte dabei mitnimmst, zeigt es dir auch ein wenig den amerikanischen Blick auf den Begriff Hacker. Über +den Begriff können wir ja gerne mal gemeinsam diskutieren. Wir orientieren uns dabei vielmehr an einem Satz, der +[Wau Holland](https://de.wikiquote.org/wiki/Wau_Holland) zugeschrieben wird: + +> Ein Hacker ist jemand, der versucht einen Weg zu finden, wie man mit einer Kaffeemaschine Toast zubereiten kann. + +Je nach, wie die Situation ist, können wir gerne versuchen, den auch mal gemeinsam zu schauen. ## erste Begriffe für Netzwerktechnik diff --git a/src/routes/posts/kyo-6/04-git.md b/src/pages/posts/kyo-6/03-git-2-mqtt.mdx similarity index 50% rename from src/routes/posts/kyo-6/04-git.md rename to src/pages/posts/kyo-6/03-git-2-mqtt.mdx index 0bc4747..6e1d932 100644 --- a/src/routes/posts/kyo-6/04-git.md +++ b/src/pages/posts/kyo-6/03-git-2-mqtt.mdx @@ -1,13 +1,14 @@ -+++ -title = "6. Kyo" +--- +title: "6. Kyo" -color = "#FFFF00" -date = 2021-12-07 -+++ +color: "#FFFF00" +date: 2021-12-07 +layout: "$layouts/Prose.astro" +--- -<script lang="ts"> - import Figure from '$lib/components/Figure.svelte'; -</script> + + +<script lang="ts">import Figure from '$lib/components/Figure.svelte';</script> # Git - Klappe die zweiten @@ -63,7 +64,10 @@ Und jetzt geht es zu Codeberg. Da findest du einmal: Jetzt klickst du die Datei an. Hier ist der Code aus der main-Branch. Über Branch kannst du die test-branch auswählen und dir dort den Code anschauen. -<Figure src="/images/kyo-6/git-2-branch-test-loop-crop.png" alt="Branch wählen" /> +<Figure + src="/images/kyo-6/git-2-branch-test-loop-crop.png" + alt="Branch wählen" +/> Du erkennst also jetzt, dass du das Projekt mit zwei unterschiedlichen Codebasen fährst. Das ist cool! Und jetzt wollen wir noch die zwei Zweige zusammenführen. @@ -88,3 +92,88 @@ ihn nur die Maintainer. Wenn du das Thema „Pull-Request“ nochmal anders beschrieben lesen möchtest, schau doch [mal hier](https://www.atlassian.com/de/git/tutorials/making-a-pull-request). + +## MQTT + +Jetzt wird es praktisch. Wir wollen ja unsere beiden Spielfiguren über das Netz verbinden. Wir nehmen dafür - tata - ein +Protokoll. Jetzt hast du ja schon eine grobe Ahnung, was ein Protokoll ist. In diesem Fall verwenden wir +[MQTT](https://de.wikipedia.org/wiki/MQTT), was für _Message Queuing Telemetry Transport_ steht. Das stammt von 1999, +ist also schon betagt. Es ist dafür geschaffen worden, damit Maschinen untereinander reden können. Durch IoT, also das +Internet der Dinge, hat das Protokoll erheblich an Bedeutung gewonnen. Es ist super, damit beispielsweise etwas wie +Sensoren Daten irgendwo hinsenden. + +Hier wollt ihr mindestens zu zweit zocken. Aber da zwischen euch immer die Rechner hängen, reden am Ende doch die +Maschinen.. MQTT hat reservierte Ports auf 1883 und 8883. Auch damit kannst du jetzt schon was anfangen. MQTT kann über +TLS abgesichert werden. Den Fall wollen wir aber erstmal (noch) nicht betrachten. Eine Besonderheit bei MQTT ist, dass +es nicht einfach Daten zwischen zwei Punkten austauscht. Wie gesagt, eigentlich ist das für IoT gedacht. Deshalb gibt es +zu jeder Nachricht eine Überschrift, einen Topic. Das ganze ist dadurchz hierachisch aufgebaut. Stell Dir ein Fahrrad +vor, dass Sensoren hat von Licht, Reifenluftdruck, Abstand zu Autos rechts und links und so. Dann würde der +Reifenluftdruck für dein hinteres Rad gemeldet werden als Fahrrad/Rad/2/Luftdurck. Das Vorderrad hat dann +Fahrrad/Rad/1/Luftdruck. Das mag erstmal komisch ausschauen, ist aber total praktisch. Im Spiel könnten wir dann nämlich +sagen Arcarde/Spieler/Max/Standort, Arcade/Spieler/Max/Punkte oder Arcarde/Bots/12/Standort. Warum ist das praktisch? +Wenn du dir von allen Spielern den Standort ausgeben lassen willst, schreibst du Arcarde/Spieler/\*/Standort. Dann +empfängst du nur ihre Standortdaten, nicht aber ihren aktuellen Punktestand. Wenn dich aber alle Daten interessieren, +die Bot Nummer 12 präsentiert, schreibst du Arcarde/Bot/12/\*. Du musst dir also überlegen, was für Daten sollen +transportiert werden und wie können die vernünftig gegliedert werden. Einen Punkt wollen wir an dieser Stelle noch +erklären, die anderen kommen dann im laufenden Projekt. + +Was fehlt uns jetzt noch? Wir brauchen für die Spielenden eindeutige Bezeichnungen. Da könnten wir darauf vertrauen, +dass die Spielerinnen schon immer andere abweichende Namen wählen. Oder einen Zufallsgenerator anwerfen. Aber für diesen +Fall gibt es eine eigene Funktion - die [UUID](https://de.wikipedia.org/wiki/Universally_Unique_Identifier), was für +*U*niversally *U*nique *Id*entifier steht. Dabei handelt es sich um eine 128-bit große Zahl, die zufällig generiert +wird. Die Chance ist recht gering, dass zweimal die gleiche Zahl auftaucht und gleichzeitig haben alle das selbe Format. +Das schaut dann ganz praktisch so aus: + +```python:uuid.py +import uuid + +localPlayerId = f"player-{uuid.uuid4().hex}" +``` + +<Figure src="/images/PyCharm_Icon.svg" float="right" alt="JetBrains PyCharm" /> + +Ach, ganz nebenbei - hast du schon gesehen, +wie Du so Snippets (engl. Schipsel) eben mal kurz testen kannst, ohne gleich ein Programm dafür anlegen zu müssen? Klick +in PyCharm auf _Python Console_ und probier das oben mal aus. Ergänze noch ein `print(localPlayerId)` und du kannst +gleich sehen, wie das ausschaut. Wenn du die Cursor-Taste hoch nimmst, kannst du auf die letzten Befehle zurückgreifen. +So kannst du zum Testen schnell mal ein `localPlayerId2 = f"player-{uuid.uuid4().hex}` anlegen und ausgeben lassen, ohne +alles nochmal schreiben zu müssen. + +Für MQTT gibt es auch hier auch noch die Starthilfe: + +```python:mqtt.py +import Examples.pyMqtt.mqttdatabus as mqttbus + +mqttServer = "mqtt.eclipseprojects.io" +mqttTopicBase = "coderdojo/arcade" +mqb = mqttbus.MqttDataBusMessage(localPlayerId, mqttTopicBase, server=mqttServer) +mqb.startDataBus() +``` + +[Eclipse](https://de.wikipedia.org/wiki/Eclipse_Foundation) ist eine gemeinnützige, belgische Organisation, die eine +Plattform für die Entwicklung von Software. Am bekanntesten ist ihre gleichnamige IDE - also wie PyCharm-, die vor allem +unter Java-Entwickler:innen beliebt ist. Eclipse stellt freundlicherweise einen MQTT-Server zur freien Verfügung. Gerne +setzen wir später auch mal zusammen einen eigenen auf. Jetzt wollen wir erstmal unseren Fokus auf die Nutzung legen. Du +siehst, dass eine Bibliothek für die Nutzung von MQTT importiert wird. Danach wird der Server und der Topic definiert. +Das ganze bauen wir zusammen und stellen dann eine Verbindung her. Jetzt müssen wir noch die Koordinaten übertragen. Die +x/y-Koordinaten deiner Figur kennst du. So sendest du sie: + +```python:mqtt_send.py +mqttBus.sendData( + f"""{{ + "x": {x}, + "y": {y} + }}""" + ) +``` + +Für deine Mitspielerin musst du jetzt erstmal mitkriegen, welche Spieler gerade dabei sind und wo sie sich befinden. Wir +fassen zwar erstmal alle möglichen IDs ab, aber im ersten Schritt solltest du davon ausgehen, dass nur ein Mitspieler +dabei ist. Wenn du eine coole Socke bist, kannst du natürlich im nächsten Schritt den Fall implementieren, dass sich +mehr als zwei Spielerinnen treffen. So könntest Du rauskriegen, welche Spieler versammelt sind: + +```python:mqqt_which_user.py +foo +``` + +Der Rest folgt bald... diff --git a/src/routes/posts/kyo-6/06-loeten.md b/src/pages/posts/kyo-6/04-loeten.mdx similarity index 90% rename from src/routes/posts/kyo-6/06-loeten.md rename to src/pages/posts/kyo-6/04-loeten.mdx index b63c1d0..00d2871 100644 --- a/src/routes/posts/kyo-6/06-loeten.md +++ b/src/pages/posts/kyo-6/04-loeten.mdx @@ -1,13 +1,14 @@ -+++ -title = "6. Kyo" +--- +title: "6. Kyo" -color = "#FFFF00" -date = 2021-12-07 -+++ +color: "#FFFF00" +date: 2021-12-07 +layout: "$layouts/Prose.astro" +--- -<script lang="ts"> - import Figure from '$lib/components/Figure.svelte'; -</script> + + +<script lang="ts">import Figure from '$lib/components/Figure.svelte';</script> # ATTiny löten @@ -30,28 +31,50 @@ bringt. Das kannst du dir später auch gut zusammenlöten. Aber dann musst du f Sockel ziehen müsstest und wieder reinstecken, ist das erstmal unpraktisch. Auch wenn man vorsichtig ist, geht das nicht lange gut. Zum Rumspielen nimmst du dir besser ein Breadboard und steckst alles zusammen. -<Figure src="/images/kyo-6/attiny/1-attiny_th.jpg" alt="ATTiny auf einem Breadboard" /> +<Figure + src="/images/kyo-6/attiny/1-attiny_th.jpg" + alt="ATTiny auf einem Breadboard" +/> Als nächstes nimmst du dir sechs Headerkabel mit männlichen Steckern an beiden Enden, das sind diese kurzen Kabel zum Bauen von Schaltungen auf dem Breadboard. Die steckst du erstmal in den Programmer. -<Figure src="/images/kyo-6/attiny/2-programmer_th.jpg" alt="ATTiny auf einem Breadboard" /> +<Figure + src="/images/kyo-6/attiny/2-programmer_th.jpg" + alt="ATTiny auf einem Breadboard" +/> Dann nimmst du dir diese Zeichnung -<Figure src="/images/kyo-6/attiny/3-zeichnung_th.jpg" alt="Belegungsplan" float="right" /> +<Figure + src="/images/kyo-6/attiny/3-zeichnung_th.jpg" + alt="Belegungsplan" + float="right" +/> und verbindest die Headerkabel passend mit dem Breadboard. -<Figure src="/images/kyo-6/attiny/4-breadboard-verbinden_th.jpg" alt="ATTiny auf einem Breadboard" float="right" /> +<Figure + src="/images/kyo-6/attiny/4-breadboard-verbinden_th.jpg" + alt="ATTiny auf einem Breadboard" + float="right" +/> Stück -<Figure src="/images/kyo-6/attiny/5-breadboard-verbinden_th.jpg" alt="ATTiny auf einem Breadboard" float="right" /> +<Figure + src="/images/kyo-6/attiny/5-breadboard-verbinden_th.jpg" + alt="ATTiny auf einem Breadboard" + float="right" +/> für -<Figure src="/images/kyo-6/attiny/6-breadboard-verbinden_th.jpg" alt="ATTiny auf einem Breadboard" float="right" /> +<Figure + src="/images/kyo-6/attiny/6-breadboard-verbinden_th.jpg" + alt="ATTiny auf einem Breadboard" + float="right" +/> Stück. @@ -99,7 +122,10 @@ Jetzt kommt der Programmer in deinen USB-Port und dann kann es mit dem Coden los In einem Tab solltest du dir die [ATTiny-Referenz](https://cdn.sparkfun.com/assets/0/4/1/4/a/Tiny_QuickRef_v2_2_1.png) aufrufen. -<Figure src="https://cdn.sparkfun.com/assets/0/4/1/4/a/Tiny_QuickRef_v2_2_1.png" alt="Referenz" /> +<Figure + src="https://cdn.sparkfun.com/assets/0/4/1/4/a/Tiny_QuickRef_v2_2_1.png" + alt="Referenz" +/> Dann die Hände entspannt auf die Tastatur legen und los geht's... diff --git a/src/routes/posts/kyo-6/index.md b/src/pages/posts/kyo-6/index.mdx similarity index 98% rename from src/routes/posts/kyo-6/index.md rename to src/pages/posts/kyo-6/index.mdx index eb66d87..ff60eb9 100644 --- a/src/routes/posts/kyo-6/index.md +++ b/src/pages/posts/kyo-6/index.mdx @@ -1,11 +1,12 @@ -+++ -title = "6. Kyo" -date = 2021-12-07 -+++ +--- +title: "6. Kyo" +date: 2021-12-07 +layout: "$layouts/Prose.astro" +--- -<script lang="ts"> - import Figure from '$lib/components/Figure.svelte'; -</script> + + +<script lang="ts">import Figure from '$lib/components/Figure.svelte';</script> # 6. Kyo – Gelbgurt @@ -68,7 +69,10 @@ Quelle: Wikipedia Git ist sehr mächtig. Deshalb wollen wir uns dem ganzen langsam nähern und im Gelbgurt zunächst nur die elementaren Befehle lernen. Im Orange-Gurt lernst du, was man wissen muss, um ein Projekt zu managen. -<Figure src="/images/kyo-6/Git-logo.png" alt="Das Git-Logo von Jason Long, CC BY 3.0." /> +<Figure + src="/images/kyo-6/Git-logo.png" + alt="Das Git-Logo von Jason Long, CC BY 3.0." +/> Wir beginnen mit einem neuen Projekt. Du loggst Dich bitte in Coderberg ein. Klicke dort auf das Pluszeichen neben Repository. Repository ist quasi ein Softwareprojekt. Gib dem ganzen einen Namen. Wir beginnen hier mit einem kleinen @@ -203,7 +207,10 @@ Wir kommen noch zu Linux, aber um Dir einen Vorgeschmack zu geben, besorge Dir m Linus Torvalds und David Diamond. Das Buch gibt es auf Deutsch und auf Englisch. Das ist nicht neu, aber lohnt sich immer noch. Berliner:innen können sich das leihen. -<Figure src="/images/kyo-6/Tux.png" alt="Das Tux-Maskottchen von Larry Ewing, Simon Budig, Garrett LeSage" /> +<Figure + src="/images/kyo-6/Tux.png" + alt="Das Tux-Maskottchen von Larry Ewing, Simon Budig, Garrett LeSage" +/> Geh auf [VOEBB](https://voebb.de). Da liegt es im Magazin der Amerikanischen Gedenkbibliothek. Kennst du nicht? Dann ist das eine gute Gelegenheit, Deutschlands größte öffentliche Bibliothek kennen zu lernen. Wenn du noch keinen Ausweis diff --git a/src/routes/posts/kyo-7/01-schleifen.md b/src/pages/posts/kyo-7/01-schleifen.mdx similarity index 95% rename from src/routes/posts/kyo-7/01-schleifen.md rename to src/pages/posts/kyo-7/01-schleifen.mdx index 49fabd0..75c029f 100644 --- a/src/routes/posts/kyo-7/01-schleifen.md +++ b/src/pages/posts/kyo-7/01-schleifen.mdx @@ -1,12 +1,13 @@ -+++ -title = "7. Kyo" -color = "#fff" -created = 2021-12-07 -+++ +--- +title: "7. Kyo" +color: "#fff" +created: 2021-12-07 +layout: "$layouts/Prose.astro" +--- -<script lang="ts"> - import Figure from '$lib/components/Figure.svelte'; -</script> + + +<script lang="ts">import Figure from '$lib/components/Figure.svelte';</script> ## Schleifen @@ -81,7 +82,11 @@ eingerückt ist und wenn die erste, aber nicht die zweite eingerückt ist. Der e Warum? Weil Python erwartet, dass es zu der Schleife einen Inhalt gibt. Rückst du nichts ein, fehlt dieser Inhalt. Spiel ruhig damit ein wenig rum. Mach mal was mit zwei for-Schleifen oder ändere den Wert in Range. -<Figure src="/images/kyo-7/Tie_shoelace.png" alt="Schleifen für Schuhe..." float="left" /> +<Figure + src="/images/kyo-7/Tie_shoelace.png" + alt="Schleifen für Schuhe..." + float="left" +/> Was passiert jetzt bei dieser Schleife? `i` ist eine sogenannte Variable. Das kennst du bestimmt schon aus dem Matheunterricht. Ihr wird mit jedem Durchlauf eine Zahl zugewiesen. `range(10)` gibt an, dass mit jedem Durchlauf `i` um diff --git a/src/routes/posts/kyo-7/02-variablennamen.md b/src/pages/posts/kyo-7/02-variablennamen.mdx similarity index 94% rename from src/routes/posts/kyo-7/02-variablennamen.md rename to src/pages/posts/kyo-7/02-variablennamen.mdx index 1eaf47e..a4d52bd 100644 --- a/src/routes/posts/kyo-7/02-variablennamen.md +++ b/src/pages/posts/kyo-7/02-variablennamen.mdx @@ -1,12 +1,13 @@ -+++ -title = "7. Kyo" -color = "#fff" -created = 2021-12-07 -+++ +--- +title: "7. Kyo" +color: "#fff" +created: 2021-12-07 +layout: "$layouts/Prose.astro" +--- -<script lang="ts"> - import Figure from '$lib/components/Figure.svelte'; -</script> + + +<script lang="ts">import Figure from '$lib/components/Figure.svelte';</script> ## Benennung von Variablen diff --git a/src/routes/posts/kyo-7/03-rechnen.md b/src/pages/posts/kyo-7/03-rechnen.mdx similarity index 90% rename from src/routes/posts/kyo-7/03-rechnen.md rename to src/pages/posts/kyo-7/03-rechnen.mdx index 38592d6..dd4453b 100644 --- a/src/routes/posts/kyo-7/03-rechnen.md +++ b/src/pages/posts/kyo-7/03-rechnen.mdx @@ -1,12 +1,13 @@ -+++ -title = "7. Kyo" -color = "#fff" -created = 2021-12-07 -+++ - -<script lang="ts"> - import Figure from '$lib/components/Figure.svelte'; -</script> +--- +title: "7. Kyo" +color: "#fff" +created: 2021-12-07 +layout: "$layouts/Prose.astro" +--- + + + +<script lang="ts">import Figure from '$lib/components/Figure.svelte';</script> ## Rechnen diff --git a/src/routes/posts/kyo-7/04-eingaben.md b/src/pages/posts/kyo-7/04-eingaben.mdx similarity index 88% rename from src/routes/posts/kyo-7/04-eingaben.md rename to src/pages/posts/kyo-7/04-eingaben.mdx index dcd1edd..c357286 100644 --- a/src/routes/posts/kyo-7/04-eingaben.md +++ b/src/pages/posts/kyo-7/04-eingaben.mdx @@ -1,12 +1,13 @@ -+++ -title = "7. Kyo" -color = "#fff" -created = 2021-12-07 -+++ +--- +title: "7. Kyo" +color: "#fff" +created: 2021-12-07 +layout: "$layouts/Prose.astro" +--- -<script lang="ts"> - import Figure from '$lib/components/Figure.svelte'; -</script> + + +<script lang="ts">import Figure from '$lib/components/Figure.svelte';</script> ## Eingaben diff --git a/src/routes/posts/kyo-7/05-bedingungen.md b/src/pages/posts/kyo-7/05-bedingungen.mdx similarity index 96% rename from src/routes/posts/kyo-7/05-bedingungen.md rename to src/pages/posts/kyo-7/05-bedingungen.mdx index 79bff09..46f6040 100644 --- a/src/routes/posts/kyo-7/05-bedingungen.md +++ b/src/pages/posts/kyo-7/05-bedingungen.mdx @@ -1,12 +1,13 @@ -+++ -title = "7. Kyo" -color = "#fff" -created = 2021-12-07 -+++ - -<script lang="ts"> - import Figure from '$lib/components/Figure.svelte'; -</script> +--- +title: "7. Kyo" +color: "#fff" +created: 2021-12-07 +layout: "$layouts/Prose.astro" +--- + + + +<script lang="ts">import Figure from '$lib/components/Figure.svelte';</script> ## Bedingungen diff --git a/src/routes/posts/kyo-7/06-variablentypen.md b/src/pages/posts/kyo-7/06-variablentypen.mdx similarity index 95% rename from src/routes/posts/kyo-7/06-variablentypen.md rename to src/pages/posts/kyo-7/06-variablentypen.mdx index a6fb22a..0010e92 100644 --- a/src/routes/posts/kyo-7/06-variablentypen.md +++ b/src/pages/posts/kyo-7/06-variablentypen.mdx @@ -1,12 +1,13 @@ -+++ -title = "7. Kyo" -color = "#fff" -created = 2021-12-07 -+++ +--- +title: "7. Kyo" +color: "#fff" +created: 2021-12-07 +layout: "$layouts/Prose.astro" +--- -<script lang="ts"> - import Figure from '$lib/components/Figure.svelte'; -</script> + + +<script lang="ts">import Figure from '$lib/components/Figure.svelte';</script> ## Variablentypen und Stringspielereien @@ -109,8 +110,11 @@ sie explizit, also mit Variablentyp. Keine Sorge, wir werden das Thema noch übe ist an dieser Stelle, dass du schon davon gehört hast und versucht, einen Blick dafür zu entwickeln, mit was für einem Variablentyp du es gerade zu tun hast. Im Code kannst du immer mit `type(Variablenname)` auswerfen lassen, wie Python ihn gerade behandelt. -<Figure src="/images/kyo-7/SolarpanelBp_a.jpeg" alt="Solarzellen - werden mittels Lötbändchen zu Strängen,<br> den sogeannten Strings verbunden" /> +<Figure + src="/images/kyo-7/SolarpanelBp_a.jpeg" + alt="Solarzellen + werden mittels Lötbändchen zu Strängen,<br> den sogeannten Strings verbunden" +/> Die Überschrift hieß nicht nur Variablentypen, sondern auch Stringspielereien. Wie man zwei Strings wie `"ot"` `"to"` kombiniert, hast du schon gesehen: aus `"ot" + "to"` wird `"otto"`. Das ein String in zwei `""` eingefasst werden muss, @@ -129,7 +133,10 @@ Python -- nicht verarbeiten, stumpf ausgeben. Wir nennen diesen Vorgang escapen, damit du es gesehen hast – man kann auch mit drei `"` oder ``` arbeiten, um einen String zu definieren. Das funktioniert sogar über Zeilen hinweg. -<Figure src="/images/kyo-7/Python_string_int.jpg" alt="Dieses Meme solltest du jetz nachvollziehen können." /> +<Figure + src="/images/kyo-7/Python_string_int.jpg" + alt="Dieses Meme solltest du jetz nachvollziehen können." +/> Die Ausgabe von Variablen hast du schon gesehen, auch die Kombination mit Text. Dafür gibt es einen einfachen und einen eleganten Weg. Der einfache Weg ist `print("Inhalt von a: ", a)`. Der ist aber veraltet und wenig elegant. Besser ist: diff --git a/src/routes/posts/kyo-7/07-browser.md b/src/pages/posts/kyo-7/07-browser.mdx similarity index 94% rename from src/routes/posts/kyo-7/07-browser.md rename to src/pages/posts/kyo-7/07-browser.mdx index c485c08..0952d5d 100644 --- a/src/routes/posts/kyo-7/07-browser.md +++ b/src/pages/posts/kyo-7/07-browser.mdx @@ -1,12 +1,13 @@ -+++ -title = "7. Kyo" -color = "#fff" -created = 2021-12-07 -+++ +--- +title: "7. Kyo" +color: "#fff" +created: 2021-12-07 +layout: "$layouts/Prose.astro" +--- -<script lang="ts"> - import Figure from '$lib/components/Figure.svelte'; -</script> + + +<script lang="ts">import Figure from '$lib/components/Figure.svelte';</script> ## Browser, E-Mail und Messenger @@ -19,7 +20,10 @@ Daten die von Unternehmen gesammelt werden können, bleiben im Zweifel dort und verloren. Vielleicht interessiert Dich jetzt ein Mensch und später möchtest du damit nicht später aufgezogen werden. Um das bildlicher zu machen – stell Dir vor, Dein Eltern schauen Dir die ganze Zeit über die Schultern … -<Figure src="/images/kyo-7/children-593313_s.jpg" alt="Den richtigen Browser gefunden!" /> +<Figure + src="/images/kyo-7/children-593313_s.jpg" + alt="Den richtigen Browser gefunden!" +/> Es gibt Browser, die besonders gerne Daten sammeln und manche auch nach Hause schicken. Ebenso gibt es Browser, die anderen Seiten es leichter oder schwerer machen, dies zu erkennen, wer du bist. Aktuell empfehlen wir Dir Brave zu @@ -27,7 +31,7 @@ benutzen, da er recht datensparsam ist. Firefox ist auch ganz okay. Abraten wür Chrome. Brave baut auf Chromium, der Open-Source Variante von Google Chrome, auf, ist aber eben datenschutzfreundlicher. Diese Empfehlung gilt jetzt – Software ändert sich. Da gilt es dranzubleiben. -<Figure src="/images/kyo-7/Brave.png" alt="Brave"/> +<Figure src="/images/kyo-7/Brave.png" alt="Brave" /> E-Mail ist ein ganz großes Thema. Deutlich später wollen wir ebenfalls einmal dran zu machen zu schauen, wie das eigentlich so funktioniert. Das ist aber ein eigenes und größeres Kapitel. Wir gehen davon aus, dass du keinen eigenen @@ -63,7 +67,7 @@ matrix.cyber4edu.org einen kostenlosen Account. Für Matrix gibt es verschiedens oder auf dem Handy laufen. Der bekannteste nennt sich Element. Lade Dir den runter und richte ihn Dir ein. Uns findest du unter [@coderdojo:matrix.cyber4edu.org](https://matrix.to/#/@coderdojo:chat.cyber4edu.org). -<Figure src="/images/kyo-7/Cyber4EDU_sticker.png" alt="cyber4EDU Logo"/> +<Figure src="/images/kyo-7/Cyber4EDU_sticker.png" alt="cyber4EDU Logo" /> Okay, mit dem richtigen Browser, einer vernünftigen E-Mail-Adresse und dem passenden Messenger ausgestattet bist du von den Noobs erfolgreich einen ganzen Schritt hin zu den Nerds gegangen. Du fängst langsam an, Deinen Jogginganzug gegen diff --git a/src/routes/posts/kyo-7/08-schleifen-binden.md b/src/pages/posts/kyo-7/08-schleifen-binden.mdx similarity index 96% rename from src/routes/posts/kyo-7/08-schleifen-binden.md rename to src/pages/posts/kyo-7/08-schleifen-binden.mdx index a0d536a..cdd630a 100644 --- a/src/routes/posts/kyo-7/08-schleifen-binden.md +++ b/src/pages/posts/kyo-7/08-schleifen-binden.mdx @@ -1,12 +1,13 @@ -+++ -title = "7. Kyo" -color = "#fff" -created = 2021-12-07 -+++ - -<script lang="ts"> - import Figure from '$lib/components/Figure.svelte'; -</script> +--- +title: "7. Kyo" +color: "#fff" +created: 2021-12-07 +layout: "$layouts/Prose.astro" +--- + + + +<script lang="ts">import Figure from '$lib/components/Figure.svelte';</script> ## Schleifen binden diff --git a/src/routes/posts/kyo-7/09-debugger.md b/src/pages/posts/kyo-7/09-debugger.mdx similarity index 87% rename from src/routes/posts/kyo-7/09-debugger.md rename to src/pages/posts/kyo-7/09-debugger.mdx index 3273a23..214ee1b 100644 --- a/src/routes/posts/kyo-7/09-debugger.md +++ b/src/pages/posts/kyo-7/09-debugger.mdx @@ -1,12 +1,13 @@ -+++ -title = "7. Kyo" -color = "#fff" -created = 2021-12-07 -+++ +--- +title: "7. Kyo" +color: "#fff" +created: 2021-12-07 +layout: "$layouts/Prose.astro" +--- -<script lang="ts"> - import Figure from '$lib/components/Figure.svelte'; -</script> + + +<script lang="ts">import Figure from '$lib/components/Figure.svelte';</script> ## Debugger @@ -27,7 +28,10 @@ Nimm Dir mal das obigen Programm control-while-loop.py. Statt Run startest du es Menüpunkt Run mit Debug. Da passiert jetzt erstmal nicht viel. Jetzt legst du dir vorher einen Stoppunkt fest, am besten auf Zeile 3, also die mit dem input. -<Figure src="/images/kyo-7/Haltepunkt.png" alt="Um einen Halte- oder Stopppunkt zu setzen (der rote Kringel), klickst du einfach mit der Maus neben die Zeilennummer."/> +<Figure + src="/images/kyo-7/Haltepunkt.png" + alt="Um einen Halte- oder Stopppunkt zu setzen (der rote Kringel), klickst du einfach mit der Maus neben die Zeilennummer." +/> Jetzt startetst du nochmal mit debug. Huch - jetzt zeigt er dir an, welchen Wert i beim Auftreffen des Stopppunktes hat. Das kann super praktisch sein, weil du so sehen kannst, wie sich Variablen verändern. Du kannst mit F9 oder in dem du diff --git a/src/routes/posts/kyo-7/10-loeten.md b/src/pages/posts/kyo-7/10-loeten.mdx similarity index 89% rename from src/routes/posts/kyo-7/10-loeten.md rename to src/pages/posts/kyo-7/10-loeten.mdx index cc47b93..a587a44 100644 --- a/src/routes/posts/kyo-7/10-loeten.md +++ b/src/pages/posts/kyo-7/10-loeten.mdx @@ -1,12 +1,13 @@ -+++ -title = "7. Kyo" -color = "#fff" -created = 2021-12-07 -+++ +--- +title: "7. Kyo" +color: "#fff" +created: 2021-12-07 +layout: "$layouts/Prose.astro" +--- -<script lang="ts"> - import Figure from '$lib/components/Figure.svelte'; -</script> + + +<script lang="ts">import Figure from '$lib/components/Figure.svelte';</script> ## Löten @@ -19,14 +20,20 @@ voraus, da die Teilnehmenden unterschiedlich alt sind und dem Thema in der Schul wird. Es kann also gut sein, dass du gerade am Anfang gähnst. Keine Sorge, wird steigern das Stück für Stück. Aber wir wollen alle mitnehmen. -<Figure src="/images/kyo-7/derMicha_Soldering_th.jpg" alt="derMicha bei einem Löt-Workshop"/> +<Figure + src="/images/kyo-7/derMicha_Soldering_th.jpg" + alt="derMicha bei einem Löt-Workshop" +/> Zunächst solltest du grundlegend üben, wie man mit einem Lötkolben umgeht. Wenn du noch keine Erfahrung hast, lass Dir ein kleines Stück Lochraster geben und ein paar alte Bauteile und versuche die, ein- und auszulöten. Wir können hier nur bedingt etwas zu erklären, da Dir am besten eine Mentorin kurz zeigt, wie es geht. Der Rest ist handwerkliche Fähigkeit, dass muss man also einfach ein bißchen selber gemacht haben. -<Figure src="/images/kyo-7/Lochraster_loeten.jpg" alt="Lötübungen am Lochraster"/> +<Figure + src="/images/kyo-7/Lochraster_loeten.jpg" + alt="Lötübungen am Lochraster" +/> Wenn du damit klar kommst, dann kommt als nächstes, eine LED zum Leuchten zu bringen. Lass Dir dafür bitte die passenden Bauteile geben. Für die Mentoren - benötigt werden: @@ -37,7 +44,10 @@ Bauteile geben. Für die Mentoren - benötigt werden: - 220 Ω Widerstand und - 4,5 V-Batterieadapter. -<Figure src="/images/kyo-7/Leiterbahnen_ziehen.jpg" alt="Leiterbahnen ziehen will geübt sein."/> +<Figure + src="/images/kyo-7/Leiterbahnen_ziehen.jpg" + alt="Leiterbahnen ziehen will geübt sein." +/> Strom braucht zum Fließen immer einen Stromkreis. Manche Bauelemente können Strom nur durch eine Richtung durchlassen, so wie die LED. Wenn die LED also mal nicht leuchtet - probiere sie mal zu drehen. Die mag es aber nicht wirklich, @@ -57,13 +67,13 @@ man da zuviel Wasser durch, platzt es. Das verhindern wir mit dem Widerstand. Hi Solche Zeichnungen stellt man technisch mit sogenannten Schaltplänen dar. Dabei haben bestimmte Bauelemente fest definierte Zeichen. Die kleine Schaltung, die du Dir zurecht gelötet hast, schaut dann so aus: -<Figure src="/images/kyo-7/LED-Schaltung.png" alt="LED-Schaltung"/> +<Figure src="/images/kyo-7/LED-Schaltung.png" alt="LED-Schaltung" /> Vergleiche das mal mit Deiner Schaltung, wenn du fertig bist. Widerstände gibt es viele. Die Stärke wird gemessen in der Einheit Ω (gesprochen Ohm). Wenn man das Zeichen Ω nicht hat, kürzt man es mit R (das englische Wort für Widerstand ist ´resistor´) ab. -<Figure src="/images/kyo-7/Widerstand.jpg" alt="typischer Widerstand"/> +<Figure src="/images/kyo-7/Widerstand.jpg" alt="typischer Widerstand" /> Wieviel Ohm muss den unser Widerstand nun haben? Da wird es jetzt kurz einmal theoretisch, denn das kann man mit einer kleinen Formel selbst ausrechnen: @@ -80,7 +90,10 @@ hoch die Spannung in der LED sein darf. Wir arbeiten hier mit einer kleinen (5mm bei 1,6 V bis 2 V kuschelig. Diesen Wert liefern die Hersteller in ihren Spezifikationen mit. Es gibt also zu jedem Bauteil so ein Datenblatt. Aus Vereinfachungsgründen sagen wir die notwendigen Werte aber an. -<Figure src="/images/kyo-7/LED-falsch.jpg" alt="So sollte eine LED nicht im Lochraster festgemacht werden..."/> +<Figure + src="/images/kyo-7/LED-falsch.jpg" + alt="So sollte eine LED nicht im Lochraster festgemacht werden..." +/> Vereinfacht können wir jetzt sagen - 4,5 V Batteriespannung - 2 V will-die-LED-haben = 1,5 V zu vernichtende Spannung. Jetzt brauchen wir noch den Nennstrom der LED. Aus das stünde im Datenblattn, gehe jetzt bitte einfach von 0,025 Ampere @@ -96,7 +109,10 @@ ein Programm. Mit der Zeit kannst du da noch andere Werte für andere LEDs reinp dafür keinen Taschenrechner mehr. Alles klar soweit? Wenn nicht, nicht schlimm. Deine Mentor:innen vor Ort helfen Dir da gerne. -<Figure src="/images/kyo-7/LED-richtig.jpg" alt="So schaut das richtig aus mit der LED"/> +<Figure + src="/images/kyo-7/LED-richtig.jpg" + alt="So schaut das richtig aus mit der LED" +/> Okay, wenn Deine LED leuchtet, soll es an dieser Stelle erstmal mit dem Kapitel löten gewesen sein. Beim nächsten Kyo wird ein Controller, quasi ein kleiner Computer, zusammengelötet. Einen Kyo später kümmern wir uns dann auch um die diff --git a/src/routes/posts/kyo-7/11-listen.md b/src/pages/posts/kyo-7/11-listen.mdx similarity index 97% rename from src/routes/posts/kyo-7/11-listen.md rename to src/pages/posts/kyo-7/11-listen.mdx index f9381d4..ca906eb 100644 --- a/src/routes/posts/kyo-7/11-listen.md +++ b/src/pages/posts/kyo-7/11-listen.mdx @@ -1,12 +1,13 @@ -+++ -title = "7. Kyo" -color = "#fff" -created = 2021-12-07 -+++ - -<script lang="ts"> - import Figure from '$lib/components/Figure.svelte'; -</script> +--- +title: "7. Kyo" +color: "#fff" +created: 2021-12-07 +layout: "$layouts/Prose.astro" +--- + + + +<script lang="ts">import Figure from '$lib/components/Figure.svelte';</script> ## Listen diff --git a/src/routes/posts/kyo-7/12-kultur.md b/src/pages/posts/kyo-7/12-kultur.mdx similarity index 95% rename from src/routes/posts/kyo-7/12-kultur.md rename to src/pages/posts/kyo-7/12-kultur.mdx index 1a67033..a676780 100644 --- a/src/routes/posts/kyo-7/12-kultur.md +++ b/src/pages/posts/kyo-7/12-kultur.mdx @@ -1,12 +1,13 @@ -+++ -title = "7. Kyo" -color = "#fff" -created = 2021-12-07 -+++ +--- +title: "7. Kyo" +color: "#fff" +created: 2021-12-07 +layout: "$layouts/Prose.astro" +--- -<script lang="ts"> - import Figure from '$lib/components/Figure.svelte'; -</script> + + +<script lang="ts">import Figure from '$lib/components/Figure.svelte';</script> ## Kultur @@ -22,7 +23,7 @@ ist Pflichtlektüre, den Rest willst du aber auch gelesen haben. Viele Witze unt nicht verstehen. Falls du schon alle fünf Bände kennen solltest und im Original gelesen hast, solltest du Dir in einer Bibliothek die BBC-Fernsehserie besorgen. -<Figure src="/images/kyo-7/Matrix-logo.png" alt="Matrix"/> +<Figure src="/images/kyo-7/Matrix-logo.png" alt="Matrix" /> Unsere Filmempfehlung zum 8. Kyo sind die drei Teile von Matrix. Auch hier gilt – Filme sind wie Bücher eine gute Gelegenheit, sein Englisch zu trainieren. Wenn Dir das bei Filmen noch schwerfällt, probiere es mit englischer Tonspur diff --git a/src/routes/posts/kyo-7/13-funtionen.md b/src/pages/posts/kyo-7/13-funtionen.mdx similarity index 96% rename from src/routes/posts/kyo-7/13-funtionen.md rename to src/pages/posts/kyo-7/13-funtionen.mdx index 925d8b5..a36dbfa 100644 --- a/src/routes/posts/kyo-7/13-funtionen.md +++ b/src/pages/posts/kyo-7/13-funtionen.mdx @@ -1,12 +1,11 @@ -+++ -title = "7. Kyo" -color = "#fff" -created = 2021-12-07 -+++ +--- +title: "7. Kyo" +color: "#fff" +created: 2021-12-07 +--- -<script lang="ts"> - import Figure from '$lib/components/Figure.svelte'; -</script> + +<script lang="ts">import Figure from '$lib/components/Figure.svelte';</script> ## Funktionen @@ -28,7 +27,10 @@ Jetzt bauen wir eine `printStrich`-Funktion, die immer über und unter dem Text def printStrich(content): print("------------------") print(content) - print("------------------") + print("--------------- +layout: "$layouts/Prose.astro" +--- +") printStrich("Hallo") ``` diff --git a/src/routes/posts/kyo-7/14-html.md b/src/pages/posts/kyo-7/14-exceptions.mdx similarity index 72% rename from src/routes/posts/kyo-7/14-html.md rename to src/pages/posts/kyo-7/14-exceptions.mdx index 6a027a1..827dde3 100644 --- a/src/routes/posts/kyo-7/14-html.md +++ b/src/pages/posts/kyo-7/14-exceptions.mdx @@ -1,17 +1,14 @@ -+++ -title = "7. Kyo" -color = "#fff" -created = 2021-12-07 -+++ +--- +title: "7. Kyo" +color: "#fff" +created: 2021-12-07 +layout: "$layouts/Prose.astro" +--- -<script lang="ts"> - import Figure from '$lib/components/Figure.svelte'; -</script> -## html -:::tip Info -Dieses Kapitel ist gerade im Entstehen... hab bitte noch einen Moment, bis es vollständig ist. -::: +<script lang="ts">import Figure from '$lib/components/Figure.svelte';</script> + +## html Dieses Python ist ja ganz hübsch, magst du dir denken. Aber eigentlich würdest du doch gerne auch mal was im Internet machen. Alle Seiten, die du im Internet siehst, basieren auf html. Die vier Buchstaben stehen für Hypertext Markup Language, was man irgendwie mit „Auszeichnungssprache für Texte mit dynamischer Struktur“ übersetzen könnte. Aber Moment - jeder Gurt eine zusätzliche Programmiersprache. Sind wir im ersten Gurt und hier kommt die zweite Sprache? Bei html handelt es sich um eine Seitenbeschreibungssprache. Hier wird also nicht im eigentlichen Sinne programmiert. Deswegen nehmen wir die ersten Elemente gleich in den Weißgurt mit rein. diff --git a/src/routes/posts/kyo-7/15-exceptions.md b/src/pages/posts/kyo-7/15-html.mdx similarity index 94% rename from src/routes/posts/kyo-7/15-exceptions.md rename to src/pages/posts/kyo-7/15-html.mdx index 8538069..c8a9ee6 100644 --- a/src/routes/posts/kyo-7/15-exceptions.md +++ b/src/pages/posts/kyo-7/15-html.mdx @@ -1,13 +1,14 @@ -+++ -title = "7. Kyo" -color = "#fff" -created = 2021-12-07 -draft = True -+++ - -<script lang="ts"> - import Figure from '$lib/components/Figure.svelte'; -</script> +--- +title: "7. Kyo" +color: "#fff" +created: 2021-12-07 +draft: True +layout: "$layouts/Prose.astro" +--- + + + +<script lang="ts">import Figure from '$lib/components/Figure.svelte';</script> ## Jetzt knallt ’s diff --git a/src/routes/posts/kyo-7/16-hilfen.md b/src/pages/posts/kyo-7/16-hilfen.mdx similarity index 94% rename from src/routes/posts/kyo-7/16-hilfen.md rename to src/pages/posts/kyo-7/16-hilfen.mdx index 6d01e49..f7bbc0b 100644 --- a/src/routes/posts/kyo-7/16-hilfen.md +++ b/src/pages/posts/kyo-7/16-hilfen.mdx @@ -1,12 +1,13 @@ -+++ -title = "7. Kyo" -color = "#fff" -created = 2021-12-07 -+++ +--- +title: "7. Kyo" +color: "#fff" +created: 2021-12-07 +layout: "$layouts/Prose.astro" +--- -<script lang="ts"> - import Figure from '$lib/components/Figure.svelte'; -</script> + + +<script lang="ts">import Figure from '$lib/components/Figure.svelte';</script> ## Hilfen @@ -31,13 +32,16 @@ und schneller aus etwas Text ergeben. Als Faustformel - stell dir einfach die Frage, ob wenn du in drei Monaten auf den Code schaust, du noch ohne Kommentar verstehst bzw. was da stehen müsstest, damit du zumindest deinen eigenen Code wieder verstehst. -<Figure src="/images/kyo-7/Code-Kommentare.jpg" alt="Da wäre ein Kommentar hilfreich gewesen..."/> +<Figure + src="/images/kyo-7/Code-Kommentare.jpg" + alt="Da wäre ein Kommentar hilfreich gewesen..." +/> Daneben kann man Kommentar super nutzen, um Teile des Codes kurz nicht zu verwenden, ohne sie gleich löschen zu müssen. PyCharm macht es Dir da einfach: Markiere den entsprechenden Code und gib Strg+\# ein und der Code wird auskommentiert. Machst du das mit auskommentierten Code, wird er wieder aktiv. -<Figure src="/images/kyo-7/help-2444110_1280_a.png" alt="Dir wird geholfen."/> +<Figure src="/images/kyo-7/help-2444110_1280_a.png" alt="Dir wird geholfen." /> Wo kannst du Dir Hilfe außerhalb der CoderDojo-Termine holen? Zu aller erst natürlich in unserem [Matrix-Kanal](https://matrix.to/#/#coderdojo:matrix.cyber4edu.org). diff --git a/src/routes/posts/kyo-7/17-gurtpruefung.md b/src/pages/posts/kyo-7/17-gurtpruefung.mdx similarity index 92% rename from src/routes/posts/kyo-7/17-gurtpruefung.md rename to src/pages/posts/kyo-7/17-gurtpruefung.mdx index 85dc706..38675cb 100644 --- a/src/routes/posts/kyo-7/17-gurtpruefung.md +++ b/src/pages/posts/kyo-7/17-gurtpruefung.mdx @@ -1,12 +1,13 @@ -+++ -title = "7. Kyo" -color = "#fff" -created = 2021-12-07 -+++ - -<script lang="ts"> - import Figure from '$lib/components/Figure.svelte'; -</script> +--- +title: "7. Kyo" +color: "#fff" +created: 2021-12-07 +layout: "$layouts/Prose.astro" +--- + + + +<script lang="ts">import Figure from '$lib/components/Figure.svelte';</script> # Test diff --git a/src/routes/posts/kyo-7/18-zusammenfassung.md b/src/pages/posts/kyo-7/18-zusammenfassung.mdx similarity index 87% rename from src/routes/posts/kyo-7/18-zusammenfassung.md rename to src/pages/posts/kyo-7/18-zusammenfassung.mdx index 460802a..964c90c 100644 --- a/src/routes/posts/kyo-7/18-zusammenfassung.md +++ b/src/pages/posts/kyo-7/18-zusammenfassung.mdx @@ -1,12 +1,13 @@ -+++ -title = "7. Kyo" -color = "#fff" -created = 2021-12-07 -+++ +--- +title: "7. Kyo" +color: "#fff" +created: 2021-12-07 +layout: "$layouts/Prose.astro" +--- -<script lang="ts"> - import Figure from '$lib/components/Figure.svelte'; -</script> + + +<script lang="ts">import Figure from '$lib/components/Figure.svelte';</script> ## Zusammenfassung @@ -45,5 +46,5 @@ Hier noch einmal kurz die im 7. Kyo gelernten Befehle: - Kommentare kannst du mit drei Hochkommata oder \# schreiben. -- Und nicht zuletzt kennst du die Antwort auf alle Fragen und weißt, ob du die blaue oder die rote Pille nehmen +- Und nicht zuletzt kennst du die Antwort auf alle Fragen und weißt, ob du die blaube oder die rote Pille nehmen sollst. diff --git a/src/routes/posts/kyo-7/index.md b/src/pages/posts/kyo-7/index.mdx similarity index 93% rename from src/routes/posts/kyo-7/index.md rename to src/pages/posts/kyo-7/index.mdx index e80ee5c..ca6ff04 100644 --- a/src/routes/posts/kyo-7/index.md +++ b/src/pages/posts/kyo-7/index.mdx @@ -1,16 +1,18 @@ -+++ -title = "7. Kyo" -color = "#fff" -created = 2021-12-07 -+++ +--- -<script lang="ts"> - import Figure from '$lib/components/Figure.svelte'; -</script> +title: "7. Kyo" +color: "#fff" +created: 2021-12-07 +layout: "../../../layouts/Prose.astro" + +--- + + +import Figure from "../../../components/Figure.astro"; # 7. Kyo – Weißgurt -:::info Hinweis +:::info Der Text hat bestimmt noch Ecken und Kanten. Wenn du Fehler entdeckst, Teile unverständlich findest oder Ideen für bessere und mehr Beispiele und Übungen hast, lass es uns bitte wissen, damit wir ihn korrigieren und verbessern können. ::: @@ -26,7 +28,7 @@ brauchst, um hier gleich mit PyCharm und Python durchstarten zu können. ## Hello World -:::tip Notiz +:::tip Natürlich können auch andere IDEs genutzt werden, aber unsere Erklärungen beziehen sich nur auf PyCharm, um es übersichtlicher zu halten. Im Weißgurt sollte es auch ganz gut ohne IDE (wie PyCharm) gehen. Du kannst im Browser programmieren. Klick einfach mal auf den Schalter Play, wenn du ein Stück Code siehst. Da kannst du auch eigenen Code @@ -41,7 +43,10 @@ Wenn du PyCharm startest, sollte der Start bei Dir ungefähr so aussehen: Klicke auf `New Project`. Dann schaut es ungefähr so aus: -<Figure src="/images/kyo-7/8-1-Pycharm-3.png" alt="PyCharm – New Project screen" /> +<Figure + src="/images/kyo-7/8-1-Pycharm-3.png" + alt="PyCharm – New Project screen" +/> Bei der obersten Zeile mit Location änderst du den Projektnamen auf „HelloWorld“. Das ist Dein Projektname. Die weiteren Einstellmöglichkeiten hier werden wir mit der Zeit kennenlernen. Dann klickst du auf „Create“. Unter Umständen rödelt diff --git a/src/pages/posts/kyus.astro b/src/pages/posts/kyus.astro new file mode 100644 index 0000000..6299609 --- /dev/null +++ b/src/pages/posts/kyus.astro @@ -0,0 +1,54 @@ +--- +import Button from "$components/Button.svelte"; +import Base from "../../layouts/Base.astro"; +import Belt from "../../components/Belt.svelte"; + +const meta: [number, string, string, string, string][] = [ + [ + 7, + "7. Kyo – Weißgurt", + "white", + "/posts/kyo-7/", + "So wie du beim Kampfsport beim Weißgurt die ersten Schritte auf der Matte lernst, lernst du hier die ersten Schritte zum Coden, zum Löten und zur Hackerkultur.", + ], + [ + 6, + "6. Kyo – Gelbgurt", + "yellow", + "/posts/kyo-6/", + "Hier siehst du gerade den im Entstehen begriffenen ersten und noch nicht vollständigen Aufschlag für den Gelbgurt. Wir freuen uns über Fehlerkorrekturen! Wenn du das Gefühl hast, hier etwas nicht nachzuvollziehen zu können, schreib uns bitte oder sprich uns beim CoderDojo an, damit wir das Script verbessern können. Wenn du es nicht verstehst, liegt es nicht an Dir und anderen wird es auch so gehen. Lass es uns gemeinsam für die nächsten Leser:innen besser machen.", + ], +]; +--- + +<Base title="Willkomen zum CoderDōjō"> + <div + class="md:items-center md:mt-[10%] flex md:flex-row flex-col px-5 mx-auto gap-4" + > + { + meta.map(([count, title, fill, href, description]) => ( + <div class="flex flex-col gap-3 md:w-1/2 w-full"> + <h2 class="sm:text-3xl text-2xl font-medium mt-4 flex flex-row gap-3 md:gap-6 justify-center items-center"> + <span class="bg-theme p-2 rounded"> + <Belt + {fill} + stroke="black" + stroke-width="5pt" + svg_class="h-4 w-4 md:w-6 md:h-6" + /> + </span> + {title} + </h2> + + <p class="leading-relaxed text-lg">{description}</p> + + <div class="flex flex-row justify-center flex-start"> + <Button {href}> + Zum {count}. Kyo <i class="ph-arrow ph-xl" /> + </Button> + </div> + </div> + )) + } + </div> +</Base> diff --git a/src/pages/posts/news/2021-08-06.mdx b/src/pages/posts/news/2021-08-06.mdx new file mode 100644 index 0000000..5e5a914 --- /dev/null +++ b/src/pages/posts/news/2021-08-06.mdx @@ -0,0 +1,16 @@ +--- +title: Nächstes Treffen +date: 2021-08-06 +updated: 2021-08-06 +showToc: false +description: "Nächstes Treffen findet statt am..." +layout: "$layouts/Prose.astro" +--- + +# Nächstes Treffen + +Es sind Sommerferien - auch wir sind unterwegs... Deshalb findet das nächste CoderDojo für Euler und CoderDojo erst am +Donnerstag, 19. August 2021 statt. + +Wir treffen uns um 20:30 Uhr im [BBB-Raum](https://bbb.cyber4edu.org/b/der-0rc-8x7-4re>) + diff --git a/src/routes/posts/news/2021-11-27.md b/src/pages/posts/news/2021-11-27.mdx similarity index 70% rename from src/routes/posts/news/2021-11-27.md rename to src/pages/posts/news/2021-11-27.mdx index 656da76..647caf6 100644 --- a/src/routes/posts/news/2021-11-27.md +++ b/src/pages/posts/news/2021-11-27.mdx @@ -1,14 +1,13 @@ -+++ -title = "Nächstes Treffen" -date = 2021-11-27 -updated = 2021-11-27 -showToc = false -description = "Nächstes Treffen findet statt am..." -+++ +--- +title: "Nächstes Treffen" +date: 2021-11-27 +updated: 2021-11-27 +showToc: false +description: "Nächstes Treffen findet statt am..." +layout: "$layouts/Prose.astro" +--- -<script lang="ts"> - import Figure from '$lib/components/Figure.svelte'; -</script> +import Figure from '$components/Figure.astro'; # Nächstes Treffen diff --git a/src/routes/posts/news/2021-12-12.md b/src/pages/posts/news/2021-12-12.mdx similarity index 71% rename from src/routes/posts/news/2021-12-12.md rename to src/pages/posts/news/2021-12-12.mdx index 073d2bb..3827c86 100644 --- a/src/routes/posts/news/2021-12-12.md +++ b/src/pages/posts/news/2021-12-12.mdx @@ -1,10 +1,13 @@ -+++ -title = "Das Buffon-Experiment" -date = 2021-12-12 -updated = 2021-12-12 -showToc = false -description ="Das Buffon-Experiment am 12. Dezember 2021" -+++ +--- +title: "Das Buffon-Experiment" +date: 2021-12-12 +updated: 2021-12-12 +showToc: false +description: "Das Buffon-Experiment am 12. Dezember 2021" +layout: "$layouts/Prose.astro" +--- + + # Das Buffon-Experiment diff --git a/src/routes/posts/news/2022-01-06.md b/src/pages/posts/news/2022-01-06.mdx similarity index 74% rename from src/routes/posts/news/2022-01-06.md rename to src/pages/posts/news/2022-01-06.mdx index 55f6700..0bb1851 100644 --- a/src/routes/posts/news/2022-01-06.md +++ b/src/pages/posts/news/2022-01-06.mdx @@ -1,10 +1,13 @@ -+++ -title = "Neues Jahr - neu durchstarten" -date = 2022-01-06 -updated = 2021-12-29 -showToc = false -description ="Erstes CoderDojo in 2022" -+++ +--- +title: "Neues Jahr - neu durchstarten" +date: 2022-01-06 +updated: 2021-12-29 +showToc: false +description: "Erstes CoderDojo in 2022" +layout: "$layouts/Prose.astro" +--- + + # Neues Jahr - neu durchstarten diff --git a/src/routes/posts/news/2022-01-10.md b/src/pages/posts/news/2022-01-10.mdx similarity index 76% rename from src/routes/posts/news/2022-01-10.md rename to src/pages/posts/news/2022-01-10.mdx index 36a5b80..4c3466e 100644 --- a/src/routes/posts/news/2022-01-10.md +++ b/src/pages/posts/news/2022-01-10.mdx @@ -1,10 +1,13 @@ -+++ -title = "Lizenzrecht" -date = 2022-01-10 -updated = 2022-01-07 -showToc = false -description ="Einführung in das Lizenzrecht" -+++ +--- +title: "Lizenzrecht" +date: 2022-01-10 +updated: 2022-01-07 +showToc: false +description: "Einführung in das Lizenzrecht" +layout: "$layouts/Prose.astro" +--- + + # Lizenzrecht diff --git a/src/routes/posts/news/2022-01-11.md b/src/pages/posts/news/2022-01-11.mdx similarity index 74% rename from src/routes/posts/news/2022-01-11.md rename to src/pages/posts/news/2022-01-11.mdx index 6fa1d33..1d7f53c 100644 --- a/src/routes/posts/news/2022-01-11.md +++ b/src/pages/posts/news/2022-01-11.mdx @@ -1,10 +1,13 @@ -+++ -title = "3-D-Druck" -date = 2022-01-11 -updated = 2022-01-07 -showToc = false -description ="Einführung in 3-D-Druck" -+++ +--- +title: "3-D-Druck" +date: 2022-01-11 +updated: 2022-01-07 +showToc: false +description: "Einführung in 3-D-Druck" +layout: "$layouts/Prose.astro" +--- + + # 3-D-Druck diff --git a/src/routes/posts/news/2022-01-13.md b/src/pages/posts/news/2022-01-13.mdx similarity index 76% rename from src/routes/posts/news/2022-01-13.md rename to src/pages/posts/news/2022-01-13.mdx index 769e173..ded1924 100644 --- a/src/routes/posts/news/2022-01-13.md +++ b/src/pages/posts/news/2022-01-13.mdx @@ -1,10 +1,13 @@ -+++ -title = "Fehlerbehandlung" -date = 2022-01-13 -updated = 2022-01-07 -showToc = false -description ="Fehlerbehandlung" -+++ +--- +title: "Fehlerbehandlung" +date: 2022-01-13 +updated: 2022-01-07 +showToc: false +description: "Fehlerbehandlung" +layout: "$layouts/Prose.astro" +--- + + # Fehlerbehandlung diff --git a/src/routes/posts/news/2022-01-20.md b/src/pages/posts/news/2022-01-20.mdx similarity index 83% rename from src/routes/posts/news/2022-01-20.md rename to src/pages/posts/news/2022-01-20.mdx index 8391f34..42ccd17 100644 --- a/src/routes/posts/news/2022-01-20.md +++ b/src/pages/posts/news/2022-01-20.mdx @@ -1,10 +1,13 @@ -+++ -title = "Fehlerbehandlung" -date = 2022-01-20 -updated = 2022-01-20 -showToc = false -description ="Fehlerbehandlung" -+++ +--- +title: "Fehlerbehandlung" +date: 2022-01-20 +updated: 2022-01-20 +showToc: false +description: "Fehlerbehandlung" +layout: "$layouts/Prose.astro" +--- + + # Fehlerbehandlung II diff --git a/src/routes/posts/news/2022-01-27.md b/src/pages/posts/news/2022-01-27.mdx similarity index 92% rename from src/routes/posts/news/2022-01-27.md rename to src/pages/posts/news/2022-01-27.mdx index f9061c6..554b466 100644 --- a/src/routes/posts/news/2022-01-27.md +++ b/src/pages/posts/news/2022-01-27.mdx @@ -1,10 +1,13 @@ -+++ -title = "Lernapp" -date = 2022-01-27 -updated = 2022-01-21 -showToc = false -description ="Wir haben ein neues Projekt!" -+++ +--- +title: "Lernapp" +date: 2022-01-27 +updated: 2022-01-21 +showToc: false +description: "Wir haben ein neues Projekt!" +layout: "$layouts/Prose.astro" +--- + + # Lernapp diff --git a/src/routes/posts/news/2022-02-03.md b/src/pages/posts/news/2022-02-03.mdx similarity index 72% rename from src/routes/posts/news/2022-02-03.md rename to src/pages/posts/news/2022-02-03.mdx index 07e49d0..de004a5 100644 --- a/src/routes/posts/news/2022-02-03.md +++ b/src/pages/posts/news/2022-02-03.mdx @@ -1,11 +1,14 @@ -+++ -title = "Lernapp" -date = 2022-02-03 -updated = 2022-02-03 -showToc = false - -description = "Absage" -+++ +--- +title: "Lernapp" +date: 2022-02-03 +updated: 2022-02-03 +showToc: false + +description: "Absage" +layout: "$layouts/Prose.astro" +--- + + # Absage diff --git a/src/routes/posts/news/2022-02-24.md b/src/pages/posts/news/2022-02-24.mdx similarity index 75% rename from src/routes/posts/news/2022-02-24.md rename to src/pages/posts/news/2022-02-24.mdx index 2d41361..1da266c 100644 --- a/src/routes/posts/news/2022-02-24.md +++ b/src/pages/posts/news/2022-02-24.mdx @@ -1,10 +1,13 @@ -+++ -title = "Übersetzen und nginx" -date = 2022-02-24 -updated = 2022-02-24 -showToc = false -description ="derMicha hat feinen Fug gemacht!" -+++ +--- +title: "Übersetzen und nginx" +date: 2022-02-24 +updated: 2022-02-24 +showToc: false +description: "derMicha hat feinen Fug gemacht!" +layout: "$layouts/Prose.astro" +--- + + # Übersetzen und NGINX diff --git a/src/routes/posts/news/2022-02-26.md b/src/pages/posts/news/2022-02-26.mdx similarity index 91% rename from src/routes/posts/news/2022-02-26.md rename to src/pages/posts/news/2022-02-26.mdx index d93b382..c05ebe6 100644 --- a/src/routes/posts/news/2022-02-26.md +++ b/src/pages/posts/news/2022-02-26.mdx @@ -1,10 +1,13 @@ -+++ -title = "Ghost in the Shell" -date = 2022-02-26 +--- +title: "Ghost in the Shell" +date: 2022-02-26 + +showToc: false +description: "Ghost in the Shell ist eine Einführung in die Linux-Shell" +layout: "$layouts/Prose.astro" +--- + -showToc = false -description ="Ghost in the Shell ist eine Einführung in die Linux-Shell" -+++ # Ghost in the Shell diff --git a/src/pages/posts/news/2022-03-17.mdx b/src/pages/posts/news/2022-03-17.mdx new file mode 100644 index 0000000..b66b216 --- /dev/null +++ b/src/pages/posts/news/2022-03-17.mdx @@ -0,0 +1,17 @@ +--- +title: "Ausfall" +date: 2022-03-17 +updated: 2022-03-17 +slug: "ausfall" +showToc: false +lang: "de" +description: "CoderDojo fällt aus" +layout: "$layouts/Prose.astro" +--- + + + +# Ausfall + +Das CoderDojo am 17. März 2022 fällt leider aus... am 24. März 2022 sind wir wieder für Euch ab 20:30 Uhr in unserem +BBB-Raum für Euch da. diff --git a/src/pages/posts/news/2022-08-25.mdx b/src/pages/posts/news/2022-08-25.mdx new file mode 100644 index 0000000..c81f905 --- /dev/null +++ b/src/pages/posts/news/2022-08-25.mdx @@ -0,0 +1,18 @@ +--- +title: "Nächstes Treffen" +date: 2022-08-25 +updated: 2022-08-25 +showToc: false +description: "Nächstes Treffen findet statt am..." +layout: "$layouts/Prose.astro" +--- + +# Es geht wieder los! + +Die Sommerferien sind vorbei. Ein paar von uns waren auf der MCH, ein paar haben ein Camp zu Quantencomputing besucht, wieder andere zu Hause gecodet. Zunächst wollen wir daher von unseren Erlebnissen und Erfahrungen der letzten Wochen berichten. + +Danach wollen wir unser neues Projekt, einen Kalenderaggregator, in Angriff nehmen. + +Wir treffen uns am Donnerstag, 25. August 2022 um 20:30 Uhr in unserem [BBB-Raum](https://bbb.cyber4edu.org/b/der-0rc-8x7-4re) + +Du bist herzlich eingeladen - komm einfach vorbei! diff --git a/src/routes/posts/news/2022-08-27.md b/src/pages/posts/news/2022-08-27.mdx similarity index 62% rename from src/routes/posts/news/2022-08-27.md rename to src/pages/posts/news/2022-08-27.mdx index d870254..9c054c7 100644 --- a/src/routes/posts/news/2022-08-27.md +++ b/src/pages/posts/news/2022-08-27.mdx @@ -1,16 +1,13 @@ -+++ -title = "Online-Einführungsworkshop in Python" -date = 2022-08-27 -updated = 2022-08-27 -showToc = false -description ="Python Einführung - Online-Workshop" -+++ +--- +title: "Online-Einführungsworkshop in Python" +date: 2022-08-27 +updated: 2022-08-27 +showToc: false +description: "Python Einführung - Online-Workshop" +layout: "$layouts/Prose.astro" +--- -<script lang="ts"> - import Figure from '$lib/components/Figure.svelte'; - import Button from '$lib/components/Button.svelte'; - import UserRectangle from "phosphor-svelte/lib/UserRectangle"; -</script> +import Figure from "$components/Figure.astro"; # Erste Schritte in Python diff --git a/src/routes/posts/news/2022-09-03.md b/src/pages/posts/news/2022-09-03.mdx similarity index 67% rename from src/routes/posts/news/2022-09-03.md rename to src/pages/posts/news/2022-09-03.mdx index 9f20faf..3bfa806 100644 --- a/src/routes/posts/news/2022-09-03.md +++ b/src/pages/posts/news/2022-09-03.mdx @@ -1,16 +1,13 @@ -+++ -title = "Einführung in html/CSS" -date = 2022-09-03 -updated = 2022-09-03 -showToc = false -description ="Online-Workshop in html/CSS" -+++ +--- +title: "Einführung in html/CSS" +date: 2022-09-03 +updated: 2022-09-03 +showToc: false +description: "Online-Workshop in html/CSS" +layout: "$layouts/Prose.astro" +--- -<script lang="ts"> - import Figure from '$lib/components/Figure.svelte'; - import Button from '$lib/components/Button.svelte'; - import UserRectangle from "phosphor-svelte/lib/UserRectangle"; -</script> +import Figure from "$components/Figure.astro"; # Erste Schritte in html/CSS diff --git a/src/routes/posts/news/2022-10-02.md b/src/pages/posts/news/2022-10-02.mdx similarity index 67% rename from src/routes/posts/news/2022-10-02.md rename to src/pages/posts/news/2022-10-02.mdx index 3ced3bf..e592fa6 100644 --- a/src/routes/posts/news/2022-10-02.md +++ b/src/pages/posts/news/2022-10-02.mdx @@ -1,22 +1,21 @@ -+++ -title = "Einführungsworkshop in Python - in Präsenz" -date = 2022-10-02 -updated = 2022-10-02 -showToc = false -description ="Präsenz-Einführungsworkshop in Python" -+++ +--- +title: "Online-Einführungsworkshop in Python" +date: 2022-10-02 +updated: 2022-10-02 +showToc: false +description: "Präsenz-Einführungsworkshop in Python" +layout: "$layouts/Prose.astro" +--- + +import Figure from "$components/Figure.astro"; -<script lang="ts"> - import Figure from "$lib/components/Figure.svelte"; -</script> # Erste Schritte in Python - Präsenzworkshop Die hast noch keine oder sehr geringe Vorkenntnisse im Programmieren - dann komm zu unserem Einführungsworkshop am 2. Oktober 2022 vorbei. Wir treffen uns in präsenz, also so richtig in Bunt und in Farbe im x-hain in der Grünberger Straße 16 (zwischen U-Bhf. Warschauer Straße und Frankfurter Tor). Wir beginnen nicht mit dem Rechner, sondern mit einem Brettspiel. So lernst du, wie Programmierer denken. Wenn du dein eigenes Notebook (kein Tablet!) mitbringst, helfen wir dir dabei, die notwendigen Komponenten zu installieren, die du zum Programmieren brauchst. Falls du über kein eigenes Gerät verfügst, sag uns vorher Bescheid und wir stellen dir ein Leihgerät zu Verfügung. Danach beginnen wir mit den ersten Schritten in Python. Solltest du schon paar Vorerfahrungen mitbringen, so haben wir für dich auch passende Herausforderungen. Der Workshop findet von 14 bis 17 Uhr statt. -Zwischendurch zeigen wir noch den x-Hain - einen Hacker- und Makerspace mit vielen interessanten Dingen, die es zu entdecken gilt. - -Um unseren Workshop besser planen zu können, **buche Dir bitte vorher** über [die Coderdojo-Seite ein Ticket](https://zen.coderdojo.com/dojos/de/berlin/berlin-mitte-xhain). +Um unseren Workshop besser planen zu können, buche Dir bitte vorher über [die Coderdojo-Seite ein Ticket](https://zen.coderdojo.com/dojos/de/berlin/berlin-mitte-xhain). <Figure src="/images/python-snake.jpg" alt="Python-Schlange" /> + Bildnachweis: [Gerd Altmann von Pixabay](https://pixabay.com//?utm_source=link-attribution&utm_medium=referral&utm_campaign=image&utm_content=483010) diff --git a/src/routes/posts/news/featured.md b/src/pages/posts/news/featured.mdx similarity index 73% rename from src/routes/posts/news/featured.md rename to src/pages/posts/news/featured.mdx index bb64b7c..ae6df7c 100644 --- a/src/routes/posts/news/featured.md +++ b/src/pages/posts/news/featured.mdx @@ -1,12 +1,15 @@ -+++ -title = "Willkommen zum Coderdojo Red and Blue" -date = 2021-07-03 -updated = 2021-07-03 -slug = "introduction-red-and-blue" -lang = "de" -showToc = false -description = "Willkommen zum Coderdojo Red and Blue Berlin für Jugendliche." -+++ +--- +title: "Willkommen zum Coderdojo Red and Blue" +date: 2021-07-03 +updated: 2021-07-03 +slug: "introduction-red-and-blue" +lang: "de" +showToc: false +description: "Willkommen zum Coderdojo Red and Blue Berlin für Jugendliche." +layout: "$layouts/Prose.astro" +--- + + # Willkommen zum Coderdojo Red and Blue diff --git a/src/pages/posts/news/index.astro b/src/pages/posts/news/index.astro new file mode 100644 index 0000000..dd8c63a --- /dev/null +++ b/src/pages/posts/news/index.astro @@ -0,0 +1,46 @@ +--- +import Base from "$layouts/Page.astro"; +import NewsCard from "$components/NewsCard.astro"; + +const news: [string, string, string, string][] = await Astro.glob( + "./20*.mdx" +).then((files) => + files + .map((file) => [file, file.frontmatter]) + .filter( + ([file, frontmatter]) => + frontmatter.date !== undefined && + frontmatter.title !== undefined && + frontmatter.description !== undefined + ) + .map(([file, frontmatter]) => [ + file.url, + frontmatter.title, + frontmatter.date.substr(0, 10), + frontmatter.description, + ]) +); +--- + +<!-- <Meta title="News" description="News und Updates rund um CoderDōjō" /> --> +<Base> + <div + class="flex w-full flex-col items-center gap-3 md:flex-row md:items-start" + > + <div class="flex-grow"> + <div + class="prose-extension prose prose-slate mb-3 text-center lg:prose-lg" + > + <h1>News</h1> + </div> + + <div class="grid w-full grid-flow-row grid-cols-1 gap-2 md:grid-cols-2"> + { + news.map(([href, title, date, description]) => ( + <NewsCard {title} {href} {description} {date} /> + )) + } + </div> + </div> + </div> +</Base> diff --git a/src/routes/posts/news/rc3.md b/src/pages/posts/news/rc3.mdx similarity index 94% rename from src/routes/posts/news/rc3.md rename to src/pages/posts/news/rc3.mdx index be40997..2fe05f3 100644 --- a/src/routes/posts/news/rc3.md +++ b/src/pages/posts/news/rc3.mdx @@ -1,14 +1,15 @@ -+++ -title = "remote congress II." -date = 2021-12-28 -updated = 2021-11-22 -showToc = false -description ="remote congress rc3" -+++ - -<script lang="ts"> - import Figure from '$lib/components/Figure.svelte'; -</script> +--- +title: "remote congress II." +date: 2021-12-28 +updated: 2021-11-22 +showToc: false +description: "remote congress rc3" +layout: "$layouts/Prose.astro" +--- + + + +<script lang="ts">import Figure from '$lib/components/Figure.svelte';</script> # Man müsste ~~Klavier spielen~~ Programmieren können... diff --git a/src/pages/posts/workshops/html.mdx b/src/pages/posts/workshops/html.mdx new file mode 100644 index 0000000..83d9815 --- /dev/null +++ b/src/pages/posts/workshops/html.mdx @@ -0,0 +1,24 @@ +--- +title: "Workshops" +color: "#fff" +created: 2022-08-05 +layout: "$layouts/Prose.astro" +--- + + + +<script lang="ts">import Figure from '$lib/components/Figure.svelte';</script> + +# Workshops + +Wir bieten derzeit Einführungs-Workshops zu den Themen Python, html/CSS, Linux-Shell, Linux, ATTiny-Löten und ATTiny-Programmierung an. Hier werden zuünftig die Materialien für die Workshops erscheinen. + +Unsere nächsten Workshops sind: + +- 27. August 2022 von 14 bis 17 Uhr - [Jugend hackt - Einführung in Python (online)](https://coderdojo.red/posts/news/2022-08-27/) + +- 3. September 2022 von 14 bis 17 Uhr - [Jugend hackt - Einführung in html/CSS (online)](https://coderdojo.red/posts/news/2022-09-03/) + +- 2. Oktober 2022 von 14 bis 17 Uhr - [CoderDojo.red - Einführung in Python (in Präsenz)](https://coderdojo.red/posts/news/2022-10-02/) + +Die Materialien für die Workshops erscheinen demnächst hier. diff --git a/src/pages/posts/workshops/index.mdx b/src/pages/posts/workshops/index.mdx new file mode 100644 index 0000000..1d94a9a --- /dev/null +++ b/src/pages/posts/workshops/index.mdx @@ -0,0 +1,23 @@ +--- + +title: "Workshops" +color: "#fff" +created: 2022-08-05 +layout: "$layouts/Prose.astro" + +--- + + +# Workshops + +Wir bieten derzeit Einführungs-Workshops zu den Themen Python, html/CSS, Linux-Shell, Linux, ATTiny-Löten und ATTiny-Programmierung an. Hier werden zuünftig die Materialien für die Workshops erscheinen. + +Unsere nächsten Workshops sind: + +- 27. August 2022 von 14 bis 17 Uhr - [Jugend hackt - Einführung in Python (online)](https://coderdojo.red/posts/news/2022-08-27/) + +- 3. September 2022 von 14 bis 17 Uhr - [Jugend hackt - Einführung in html/CSS (online)](https://coderdojo.red/posts/news/2022-09-03/) + +- 2. Oktober 2022 von 14 bis 17 Uhr - [CoderDojo.red - Einführung in Python (in Präsenz)](https://coderdojo.red/posts/news/2022-10-02/) + +Die Materialien für die Workshops erscheinen demnächst hier. diff --git a/src/pages/posts/workshops/python.mdx b/src/pages/posts/workshops/python.mdx new file mode 100644 index 0000000..2c22369 --- /dev/null +++ b/src/pages/posts/workshops/python.mdx @@ -0,0 +1,17 @@ +--- +title: "Online-Workshop Einführung in Python" +color: "#fff" +created: 2022-08-05 +description: "Online-Workshop Einführung in Python" +layout: "$layouts/Prose.astro" +--- + + + +<script lang="ts">import Figure from '$lib/components/Figure.svelte';</script> + +# Einführung in Python + +Zu unserem Online-Workshop Einführung in Python benötigst du für deine ersten Programme Python. Wenn du nicht schon Python auf deinem Rechner drauf hast, kannst du einfach [unseren Playground nutzen](http://playground.coderdojo.red/). + +Danach gehen wir ins Dojo und beginnen gemeinsam [mit dem weißen Gurt](https://coderdojo.red/posts/kyo-7/)... diff --git a/src/routes/privacy.md b/src/pages/privacy.mdx similarity index 98% rename from src/routes/privacy.md rename to src/pages/privacy.mdx index 51f59c0..cae05d8 100644 --- a/src/routes/privacy.md +++ b/src/pages/privacy.mdx @@ -1,7 +1,8 @@ -+++ -title = "Datenschutzerklärung" -showToc = true -+++ +--- +title: Datenschutzerklärung +description: Datenschutzerklärung für coderdojo.red und coderdojo.blue +layout: $layouts/Prose.astro +--- # Datenschutzerklärung diff --git a/src/routes/403.svelte b/src/routes/403.svelte deleted file mode 100644 index 75d5d46..0000000 --- a/src/routes/403.svelte +++ /dev/null @@ -1,8 +0,0 @@ -<script lang="ts"> - import Meta from "$lib/components/Meta.svelte"; - import WIP from "$lib/navigation/WIP.svelte"; -</script> - -<Meta title={"403 Forbidden"} /> - -<WIP /> diff --git a/src/routes/404.svelte b/src/routes/404.svelte deleted file mode 100644 index 6e65986..0000000 --- a/src/routes/404.svelte +++ /dev/null @@ -1,9 +0,0 @@ -<script lang="ts"> - import Meta from "$lib/components/Meta.svelte"; - - import WIP from "$lib/navigation/WIP.svelte"; -</script> - -<Meta title={"404 Not Found"} /> - -<WIP /> diff --git a/src/routes/__layout.svelte b/src/routes/__layout.svelte deleted file mode 100644 index 37e2339..0000000 --- a/src/routes/__layout.svelte +++ /dev/null @@ -1,89 +0,0 @@ -<script lang="ts"> - import Navbar from "$lib/navigation/Navbar.svelte"; - import Footer from "$lib/navigation/Footer.svelte"; - - import "../app.css"; - import { onMount } from "svelte"; - import { check_circle_icon } from "$lib/icons"; - - onMount(() => { - (<any>window).run_playground = (id: string, caller: HTMLButtonElement) => { - // retrieve and decode code from parent codetitle - const value = document.getElementById(id).getAttribute("data-code"); - - let encoder = new TextEncoder(); - let params = new URLSearchParams([ - ["c", value], - ["t", caller.getAttribute("data-title")] - ]); - - // redirect - window.location.href = "https://playground.cobalt.rocks/interactive?".concat( - params.toString() - ); - }; - (<any>window).copy_to_clipboard = (id: string, caller: HTMLButtonElement) => { - // retrieve and decode code from parent codetitle - const value = decodeURIComponent(document.getElementById(id).getAttribute("data-code")); - - // provide user feedback - const update_icon = () => { - // set check circle icon as instead of 'copy icon' to provide feedback after success - const old = caller.innerHTML; - caller.innerHTML = check_circle_icon; - - // reverse feedback after a second - setTimeout(() => { - caller.innerHTML = old; - }, 1000); - - // control log - console.info("Done copying to clipboard"); - }; - - // The navigator.clipboard API is the successor to document.execCommand for managing clipboard data - // Though it has yet to reach a high coverage and as such is still only a fallback - if (navigator.clipboard !== undefined && navigator.clipboard.writeText !== undefined) { - navigator.clipboard - .writeText(value) - .then(() => { - update_icon(); - }) - .catch((reason) => { - console.error("Failed to write to clipboard", reason); - }); - - return; - } - - // create new element - const shadowInput = document.createElement("textarea", {}) as HTMLTextAreaElement; - - // make invisible and usable for text operations - shadowInput.style.opacity = "0"; - shadowInput.value = value; - - // attach to body to be focusable - document.body.appendChild(shadowInput); - - // select and copy to clipboard - shadowInput.select(); - shadowInput.setSelectionRange(0, value.length + 1); - document.execCommand("copy", false); - - // remove element once done - shadowInput.remove(); - - // update icon after copying was done - update_icon(); - }; - }); -</script> - -<Navbar /> - -<main> - <slot /> -</main> - -<Footer /> diff --git a/src/routes/atom.xml.js b/src/routes/atom.xml.js deleted file mode 100644 index b0dacf3..0000000 --- a/src/routes/atom.xml.js +++ /dev/null @@ -1,11 +0,0 @@ -import { generateFeed } from "$lib/feed.js"; - -export async function GET() { - return { - headers: { - "Cache-Control": "max-age=0, s-maxage=3600", - "Content-Type": "application/xml" - }, - body: generateFeed("atom") - }; -} diff --git a/src/routes/calendar.svelte b/src/routes/calendar.svelte deleted file mode 100644 index 4aa5bc9..0000000 --- a/src/routes/calendar.svelte +++ /dev/null @@ -1,8 +0,0 @@ -<script lang="ts"> - import WIP from "$lib/navigation/WIP.svelte"; - import Meta from "$lib/components/Meta.svelte"; -</script> - -<Meta title={"Calendar"} /> - -<WIP /> diff --git a/src/routes/contact.md b/src/routes/contact.md deleted file mode 100644 index 4047466..0000000 --- a/src/routes/contact.md +++ /dev/null @@ -1,19 +0,0 @@ -+++ -title = "Kontakt" -showToc = false -+++ - -<script lang="ts"> - import Button from '$lib/components/Button.svelte'; - import Envelope from 'phosphor-svelte/lib/Envelope'; - import Chat from 'phosphor-svelte/lib/Chat'; -</script> - -# Kontakt - -Du erreichst uns am besten über Matrix, siehe unten anstehender Link. Ansonsten gerne auch per E-Mail über coderdojo ät cyber4edu pünktchen org. - -<div class="flex flex-col justify-center md:flex-row gap-3"> - <Button href="https://matrix.to/#/#coderdojo:matrix.cyber4edu.org"><Chat size={24} /> Matrix</Button> - <Button href="/imprint/"><Envelope size={24} /> E-Mail</Button> -</div> diff --git a/src/routes/copyright.md b/src/routes/copyright.md deleted file mode 100644 index 2368201..0000000 --- a/src/routes/copyright.md +++ /dev/null @@ -1,76 +0,0 @@ -+++ -title = "Urheberrecht" -showToc = false -modal = true -+++ - -<script> - import licenses from "$lib/licenses.json"; - import AttributionCard from "$lib/components/AttributionCard.svelte"; -</script> - -# Urheberrecht - -Alle Inhalte auf <https://coderdojo.red> und <https://coderdojo.blue>, sowie allen verlinkten Subdomains, von uns sind -unter, wenn nicht anders spezifiziert, -[Creative Commons Namensnennung-Nicht kommerziell 4.0 International Lizenz](https://creativecommons.org/licenses/by-nc/4.0/) -lizenziert. - -:::tip Hinweis -Eine einfach verständliche Übersicht der ihnen zustehenden Rechte und mit der Verwendung der Inhalte verbundenen -Richtlinien aus den [Creative Common Deeds (DE)](https://creativecommons.org/licenses/by-nc/4.0/deed.de) mit leichten -Anpassungen. Dies ist leidlich eine Übersicht und keine komplette Lizenz. -::: - -## Sie dürfen: - -- _Teilen_ — das Material in jedwedem Format oder Medium vervielfältigen und weiterverbreiten -- _Bearbeiten_ — das Material remixen, verändern und darauf aufbauen - -> Der Lizenzgeber kann diese Freiheiten nicht widerrufen, solange Sie sich an die Lizenzbedingungen halten. - -## Unter folgenden Bedingungen: - -- _Namensnennung_ — Sie müssen - [angemessene Urheber- und Rechteangaben machen](https://wiki.creativecommons.org/License_Versions#Detailed_attribution_comparison_chart), - einen Link zur Lizenz beifügen und angeben, ob - [Änderungen vorgenommen wurden](https://wiki.creativecommons.org/Best_practices_for_attribution#This_is_a_good_attribution_for_material_you_modified_slightly). - Diese Angaben dürfen in jeder angemessenen Art und Weise gemacht werden, allerdings nicht so, dass der Eindruck - entsteht, der Lizenzgeber unterstütze gerade Sie oder Ihre Nutzung besonders. - -- _Nicht kommerziell_ — Sie dürfen das Material nicht für - [kommerzielle Zwecke](https://creativecommons.org/faq/#does-my-use-violate-the-noncommercial-clause-of-the-licenses) - nutzen. - -- _Keine weiteren Einschränkungen_ — Sie dürfen keine zusätzlichen Klauseln oder - [technische Verfahren](https://wiki.creativecommons.org/License_Versions#Application_of_effective_technological_measures_by_users_of_CC-licensed_works_prohibited) - einsetzen, die anderen rechtlich irgendetwas untersagen, was die Lizenz erlaubt. - -## Hinweise - -Sie müssen sich nicht an diese Lizenz halten hinsichtlich solcher Teile des Materials, die gemeinfrei sind, oder soweit -Ihre Nutzungshandlungen durch -[Ausnahmen und Schranken des Urheberrechts](https://creativecommons.org/faq/#do-creative-commons-licenses-affect-exceptions-and-limitations-to-copyright-such-as-fair-dealing-and-fair-use) -gedeckt sind. - -Es werden keine Garantien gegeben und auch keine Gewähr geleistet. Die Lizenz verschafft Ihnen möglicherweise nicht alle -Erlaubnisse, die Sie für die jeweilige Nutzung brauchen. Es können beispielsweise andere Rechte wie -[Persönlichkeits- und Datenschutzrechte](https://wiki.creativecommons.org/Considerations_for_licensors_and_licensees) zu -beachten sein, die Ihre Nutzung des Materials entsprechend beschränken. - -## Attributionen - -Wir benutzen für diese Website mehrere Open-Source Bibliotheken. Der Code der Webseite ist auch Open-Source und auf -[Cobalt’s GitLab Instanz](https://gitlab.cobalt.rocks/coderdojo) verfügbar. Attributionen für Bilder u.ä. sind direkt auf der dazugehörigen Seite zu finden. - -### Logo - -Das Logo wurde von Cobalt basierend auf dem "Berlin tower" Piktogramm aus der [Carbon Piktogramm Sammlung](https://carbondesignsystem.com/guidelines/pictograms/library/) von der IBM Corporation unter der Apache 2.0 Lizenz erstellt. - -### OSS Biblotheken - -<div class="gap-3 grid grid-cols-1 md:grid-cols-2"> - {#each Object.values(licenses) as license} - <AttributionCard {license} /> - {/each} -</div> diff --git a/src/routes/imprint.md b/src/routes/imprint.md deleted file mode 100644 index 1ff82da..0000000 --- a/src/routes/imprint.md +++ /dev/null @@ -1,27 +0,0 @@ -+++ -title = "Impressum" -summary = "Impressum für das CoderDojo. Bei Fragen oder Infos wende Dich bitte an die Betreiber." -showToc = false -+++ - -<script lang="ts"> - import DescriptionList from '$lib/components/DescriptionList.svelte'; - import Users from "phosphor-svelte/lib/Users"; - import HouseSimple from "phosphor-svelte/lib/HouseSimple"; - import Envelope from "phosphor-svelte/lib/Envelope"; - import Phone from "phosphor-svelte/lib/Phone"; -</script> - -# Impressum - -Die Inhalte von externen Links machen wir uns nicht zu eigen. - -Wenn Du Korrekturen oder Verbesserungsvorschläge hast - schreib uns bitte -einfach per E-Mail oder Matrix an. - -<DescriptionList title="Betreiber" items={[ -[Users, "Verantwortliche", "Kai Kobschätzki (/bengoshi) und Michael Merz (/derMicha)"], -[HouseSimple, "Addresse", "Raabestraße 8, 10405 Berlin"], -[Envelope, "E-Mail", "bengoshi ät cyber4edu pünktchen org"], -[Phone, "Telefon", "+49 30 488 24 394"] -]} /> diff --git a/src/routes/index.svelte b/src/routes/index.svelte deleted file mode 100644 index 37a36d6..0000000 --- a/src/routes/index.svelte +++ /dev/null @@ -1,52 +0,0 @@ -<script lang="ts"> - import Quotes from "phosphor-svelte/lib/Quotes"; - import Info from "phosphor-svelte/lib/Info"; - import Arrow from "phosphor-svelte/lib/ArrowFatLineRight"; - import Button from "$lib/components/Button.svelte"; - import Meta from "$lib/components/Meta.svelte"; -</script> - -<Meta title={"Willkomen zum CoderDōjō"} /> - -<div class="md:items-center md:mt-[10%] flex gap-4 md:flex-row flex-col px-5 mx-auto"> - <div class="flex flex-col gap-3 md:w-1/2 w-full"> - <h1 class="sm:text-3xl text-center text-2xl font-medium"> - Willkomen zum CoderDōjō <span class="bg-gradient-reverse bg-clip-text text-transparent"> - Red und Blue - </span> - </h1> - <p class="leading-relaxed text-lg"> - Willkommen beim CoderDōjō für Jugendliche! Wir sitzen zwar in Berlin, aber da bei uns vieles - online stattfindet, kannst Du bei uns an vielem auch teilnehmen, wenn Du hier nicht wohnst. - Wir wollen gemeinsam mit Dir die rote Pille nehmen und das Wunderland entdecken. Wir treffen - uns immer donnerstags ab 20:30 Uhr in unserem <a - href="https://bbb.cyber4edu.org/b/der-0rc-8x7-4re" - > - BigBlueButton-Raum</a - > - Raum. Unsere aktuelle Kommunikation findet in unserem - <a href="https://matrix.to/#/#coderdojo:matrix.cyber4edu.org"> Matrix-Raum</a> statt. Am besten - schaust du da mal rein. Dort verabreden wir uns, tauschen uns aus und kündigen auch an, wenn sich - ein Termin verschiebt oder was für Themen anstehen. - </p> - <div class="flex flex-row justify-center btn-group"> - <Button href="/posts/news/"> - News zum Dojo <Info size={24} /> - </Button> - <Button href="/posts/dojo/"> - Zur Einführung<Arrow size={24} /> - </Button> - </div> - </div> - <div class="quote-card"> - <Quotes size={24} color="#10B981" /> - <p> - Das ist deine letzte Chance. Danach gibt es kein zurück. Nimm die blaue Pille — die Geschichte - endet, du wachst in deinem Bett auf und glaubst was du auch immer glauben willst. Nimm die - rote Pille — du bleibst hier im Wunderland und ich werde dir zeigen wie tief das Kaninchenloch - reicht. - </p> - <span id="bar" /> - <h2>Matrix</h2> - </div> -</div> diff --git a/src/routes/posts/dojo.md b/src/routes/posts/dojo.md deleted file mode 100644 index 0374b39..0000000 --- a/src/routes/posts/dojo.md +++ /dev/null @@ -1,186 +0,0 @@ -+++ -title = "Worum geht's im Dōjō?" -color = "#55CCFF" -date = 2021-12-07 -+++ - -<script lang="ts"> - import Audio from '$lib/components/Audio.svelte'; - import Figure from '$lib/components/Figure.svelte'; -</script> - -# Einleitung - -> Dummerweise kann man niemanden erklären, <br /> -> was die Matrix ist.<br /> -> Du musst sie selbst erleben.<br /> -> -> _The Matrix_ - -:::note Info -Diese Seite gibt es auch zum Hören: -::: - -<Audio src="https://dect42.de/audio/Uberblick.mp3" title="Überblick CoderDojo" cover="/images/brand.svg" artist="bengoshi" /> - -Willkommen zum Kursbuch des CoderDojo. Während die meisten CoderDojos auf Kinder ausgerichte sind, liegt unser Fokus bei -Jugendlichen. Wir nehmen das nicht so genau, aber wenn du jünger als 12 Jahren bist, wirst wahrscheinlich mit dem -[CoderDojo Berlin](https://www.coderdojo-deutschland.de/) besser beraten sein. Dort findest du Gleichaltrige und wirst -Programmieren mit einer graphischen Oberfläche lernen. Die schauen wir uns zwar auch einmal an, aber es stellt nicht -unseren Schwerpunkt dar. Für diejenigen, die 16 Jahre und älter sind gibt es immer wieder zusätzliche Aufgaben, die -mathematisch orientiert sind. Daran kannst du zusätzlich knobeln und weiter trainieren. - -Vorab - wer jetzt denkt - wofür ein weiterer Python-Buch bzw. -Kurs? Gibt es davon nicht schon genug? Ja, das ist -richtig. Aber wir streben weder einen Selbstlernkurs an, noch setzen wir auf Unterricht wie in der Schule. Unser Ansatz -ist eine Mischung aus zu Hause hacken und gemeinsamen Austausch. Es gibt aber Dinge, bei denen die Erfahrung gezeigt -hat, dass da viele das Handtuch schmeißen, beispielsweise die Installation. Lass dir bei so was bitte helfen, teilweise -setzen wir die Inanspruchnahme der Hilfe sogar ausdrücklich voraus. Und bei uns geht es mehr als nur „schnöden" Code. -Wir schauen auf Dinge wie Datenschutz, Nerdkultur ebenso wie auf Hardware. - -<Figure src="/images/kyo-info/JJS_Dojo_s.jpg" alt="Gürtel" /> - -Trainieren? Der Begriff Dōjō kommt aus dem Kampfsport und stellt dort den Trainingsraum oder -halle dar. Programmieren -lernen hat vieles damit gemeinsam. Jeder der Lesen und Schreiben kann, kann Programmieren lernen. Aber wenn du -Programmieren lernen willst, wird das nicht klappen, indem du nur ein Buch liest oder einen Film schaust. So lernst du -weder Karate, Judo oder Fahrrad fahren. Da gehört immer eine ordentliche Portion Übung dazu. Man kann eine Kata, also -die vorgeschrieben Bewegungsabläufe, alleine üben. Aber regelmäßige Partnerübungen sind genauso wichtig wie das sich -jemand von außen das anschaut und Dir hilft, Deine Bewegungen zu verbessern. So ist das beim Coden auch. Es hilft, sich -gegenseitig Code vorzustellen, sich zu besprechen und sich Unterstützung zu holen, wenn es mal klemmt. Und jeder macht -früher oder später die Erfahrung, dass es mal nicht weitergeht. Statt das Handtuch zu werfen, lernt Ihr Euch gegenseitig -zu helfen oder von den erfahrenen Mentoren unterstützt zu werden. Dieser Teil ist mindestens so bedeutsam wie alleine zu -frickeln. Und am meisten lernt, wer lehrt - du wirst von Problemen anderer hören, kannst ihnen helfen und eine Menge -selbst dazu lernen. Aktuell treffen wir uns einmal wöchentlich in einer Videokonferenz. Das wollen wir ergänzen durch -ein einmal monatliches Treffen im Berliner [Hackerspace xHain](https://x-hain.de/de/). An dieser Stelle kann das Script -beziehungsweise der Text nicht immer aktuell sein - also schau bitte auf unserer Homepage unter News nach. Wenn du nicht -aus Berlin kommst, sprich uns an und wir versuchen dir zu helfen, in Deiner Stadt Ansprechpartner zu finden. - -Kennst du die Gürtelfarben aus dem Kampfsport? Ein bunter Strauß an Farben, der dich am Ende zum schwarzen Gürtel führen -soll, die sogenannten Kyo-Grade oder im deutschen Schüler-Grade. Es gibt nicht nur einen schwarzen Gürtel, sondern -verschiedene Dan-Grade - im deutschen Meister-Grade. An diesem System wollen wir uns orientieren. Wir beginnen mit dem -Weg zum weißen Gürtel. Danach hast du die wichtigsten bzw. ersten Grundbegriffe drauf. Wir haben keine „Gürtelprüfungen" -geplant. Aus eigenen Erfahrungen von verschiedenen Budo-Sportarten finden das manche jedoch gut. Wenn euch so etwas -ansprechen sollte, sagt uns Bescheid und wir gehen darauf ein. Ob mit oder ohne Prüfung: du solltest die Tests für den -„Gürtel" bestehen, bevor du weitermachst. Andernfalls fehlen dir Grundlagen für die nächsten Kapitel und das schafft -mehr Frust als Lust beim Weitermachen. Wenn du merkst, dass dir was fehlt und da nicht so richtig rankommst - sprich uns -an, damit wir gemeinsam daran feilen. Umgekehrt hilft es Mentoren, wenn sie wissen, was du schon gemacht hast und was -vorausgesetzt werden darf. Wenn du bei einem solchen „Test" nicht weiterkommst, ist das nicht schlimm - wir sind hier -nicht in der Schule. Hier geht es nicht darum, eine Prüfung zu bestehen, sondern etwas zu lernen. Wenn du also bei einem -Test stecken bleibst, nimm das zum Anlass, um dir von den Mentorinnen helfen zu lassen. Oft braucht es nur einen kleinen -Stupser in die richtige Richtung und du kannst die Aufgabe selber richtig weiterlösen. - -<Figure src="/images/kyo-info/karate-2717178_1280_s.jpg" alt="Bruchtest" float="right" /> - -Was lernen wir? Wir beginnen mit Python. Die Wahl der „richtigen" Programmiersprache kann zu regelrechten -Glaubensstreitigkeiten führen. Es gibt Sprachen, die sich eher für Anfänger eignen und welche, die sich weniger für -Anfänger eigenen. Und es gibt Sprachen, die für einen bestimmten Zweck besser geeignet sind als andere. Es gibt nicht -_"die"_ Programmiersprache. Insofern werden wir mit jedem Gurt auch einen Blick auf weitere Sprache werfen. Es sind -keine Programmiersprachen im eigentlichen Sinne, aber html und css, um Internetseiten zu erstellen, werden wir ebenfalls -erlernen. Wir werden ebenso einen Blick auf Dinge wie Netzwerktechnik, auf Linux, Datenschutz, Cybersicherheit werfen -und nehmen bei unseren Treffen in unserem Hackspace oder auf dem Congress gerne einmal einen Lötkolben in die Hand. Der -Weg zum _"schwarzen Gürtel"_ besteht also nicht nur aus dem Erlernen von ein paar Befehlen einer Programmiersprache, -sondern aus einem Potpourri an Dingen. Und dir sollte klar sein - zum begehrten _"schwarzen Gürtel"_ ist noch niemand -über `s Wochenende gekommen. Gib dir also selbst Zeit. - -Der Anfang ist leider oft etwas trocken, weil man erst etwas Rüstzeug lernen muss, bevor es richtig spaßig wird. Bevor -du tolle Würfe und Tritte lernst, steht immer erst eine Runde Fallschule und Bewegungslehre an. So ist das hier auch. Im -Weißgurt lernst du absolute Basics. Vieles werden wir nur anreißen können und müssen dich für eine Vertiefung auf später -vertrösten. Aber andernfalls besteht die Gefahr, sich gleich in Details zu verlieren. Auch in den folgenden Einheiten -werden wir aus diesem Grund manche Dinge bewusst auf spätere Einheiten verschieben. Im Geldgurt wollen wir dann aber -gleich ein Weltraumspiel bauen und dieses Stück für Stück weiter ausbauen. Gleichzeitig wollen wir keine Dinge machen, -die anfangs noch nicht erklärt werden können. Aus diesem Grund verzichten wir zunächst auf grafische „Spielereien". Aber -halte durch, die kommen! - -<Figure src="/images/kyo-info/martial-83009_1280_s.jpg" alt="Training" float="left" caption={false} /> - -Wie oft solltest du dich damit beschäftigen müssen? Müssen wäre schon mal kein guter Start. Wir sind hier nicht in der -Schule. Wir treffen uns, weil wir neugierig sind und Spaß an der Sache haben, nicht weil wir müssen. Insofern kann man -selbstverständlich auch mal aussetzen, weil es vielleicht einem gerade mit Klausuren zuviel wird oder anderes anliegt. -Aber dir sollte klar sein, dass ohne eine regelmäßige Beschäftigung du nicht voran kommen wirst und es wenig motiviert, -wenn man immer auf der Stelle tritt. Neben unserem wöchentlichen Treffen solltest du dir also schon mindestens einen -Nachmittag die Woche dafür Zeit nehmen. Zwar setzt sich niemand hin und paukt wie bei einer Sprache Vokabeln. Die -Befehle lernst du, indem du sie regelmäßig benutzt. Ohne das wird es schwierig. Wir wollen dich nicht abschrecken, -sondern motiviere, dran zu bleiben. Der Anfang stellt erfahrungsgemäß eine erste Klippe dar und danach kommen ebenfalls -Höhen und Tiefen. Niemand lernt Segeln, wenn immer Flaute ist. Böen können anstrengend sein, aber mit jeder lernt man -etwas dazu. Und wenn das Bötchen kentert - nicht schlimm, wieder aufrichten, Wasser rausschöpfen, weiterfahren. - -<Figure src="/images/kyo-info/capsized-31696_1280_s.png" alt="Kentern" /> - -Wir setzen keine Kenntnisse voraus. Wenn du schon Vorkenntnisse hast und später einsteigen willst, ist das kein Problem. -Mach die Tests am Ende eines Kapitels (nicht nur lesen, lösen!). Wenn du die hinbekommst, weiterziehen. Es gibt noch -keine Kapitel? Dann wirst du Dich leider gedulden müssen, da der Kurs noch im Entstehen ist. Wenn du aber schon soweit -bist - beteilige Dich doch und hilf uns, den Kurs weiteraufzubauen. - -Vielen Dingen werden wir uns wie in einer Spirale annähern. Wir können nicht jedes Thema gleich bis in die Tiefe -bearbeiten, weil das überforderte. Falls du also schon Vorkenntnisse hast oder dich auch sonst fragst, ob das zu einem -Thema schon alles ist - in aller Regel nicht. Wir greifen die einzelnen Teile später wieder auf und vertiefen sie Stück -für Stück. - -<Figure src="/images/kyo-info/fantasy-fractal.jpg" alt="Spirale" /> - -Was du jedoch brauchen wirst, ist eine installierte Python-Version mit virtualenv und eine Oberfläche, um einen Code zu -schreiben. Wir empfehlen hier die Community-Version von PyCharme. Klar ginge es auch mit anderen anderen IDEs, aber du -machst es Dir selber leichter, wenn du zumindest am Anfang die gleiche nimmst. Wir werden später auch einen Blick auf -andere werfen. Daneben solltest du Git installiert habenn. Wir verzichten hier bewusst auf Installationsanleitungen, -sondern geben nur ein paar Links. Es gibt erhebliche Unterschiede zwischen Windows, Linux und Mac und den dortigen -Versionen. Außerdem ist das ein Punkt, an dem viele verzweifeln und Aussteigen. Um nicht an dieser Hürde zu scheitern - -wenn du es nicht selber hinbekommst, lass dir bitte helfen. Vielleicht hast du jemanden in Deinem Umfeld wie Deine -Eltern oder Lehrkräfte. Ansonsten bieten wir dir gerne an, bei der Installation zu helfen. Sprich uns einfach an. Du -verfügst nur über ein Handy oder Tablett und kannst auf keinen Computer / Notebook zugreifen? Wir helfen dir gerne, wie -du für circa 100 Euro für die ersten Schritte ausreichendes Gerät erwerben kannst. Wenn Geburtstag oder Weihnachten -gerade noch weit weg sind oder du erstmal schauen möchtest, ob das überhaupt dein Ding ist - wir haben einen kleinen -Pool an Leihgeräten. Scheu dich nicht, uns ansprechen. Wir helfen dir gerne. - -Ein paar Hinweise zum Layout. Wenn es um Code geht, sieht das so aus: - -```python:test.py -print("Testcode") -``` - -Wenn Code angegeben wird - probiere ihn bitte immer selbst auch bei dir aus! Das übt. Und verändere ihn gerne und spiele -damit herum. Du kannst nichts kaputt machen. Wenn wir dir sagen - das oder jenes geht nicht - probiere es mal aus. Auch -wenn es anfangs komisch klingen mag - aus genau den dann entstehenden Fehlermeldungen lernst du eine Menge! - -Wenn Stolperstein zu beachten sind, gibt es an der Seitenrand einen Hinweis. Hier solltest du besonders aufpassen und -die Hinweise genau befolgen beziehungsweise nochmal lesen, wenn etwas nicht funktioniert. - -Wenn es mathematische Zusatzaufgaben gibt, wird das extra ausgewiesen. - -Auf geht `s zum [Weißgurt](https://coderdojo.red/kyo-7/). Und bis wir uns beim nächsten BBB- oder Reallife-Meeting -sehen - Stay safe and keep coding! - -## Selber installieren - -Wenn du die notwendigen Dinge selbst installieren willst oder jemanden neben dir hast, der dir hilft: - -- [Python, mindestens in Version 3.8](https://www.python.org/downloads/) -- [pip](https://geekflare.com/de/python-pip-installation/) -- [virtualenv](https://virtualenv.pypa.io/en/latest/installation.html) -- [Community Edition PyCharm](https://www.jetbrains.com/de-de/pycharm/download/) - -Natürlich können auch andere IDEs genutzt werden, aber unsere Erklärungen beziehen sich nur auf PyCharm, um es -übersichtlicher zu halten. - -## Los geht 's - -[Hier geht es direkt zum ersten Gurt.](https://coderdojo.red/posts/kyo-7/) - -### Bildnachweise - -Kinder in dem philippinischen Karate-Dōjō der Jack und Jill Schule in Bacolod - Von Jjskarate. - Eigenes Werk; -Übertragen aus en.wikipedia nach Commons, CC BY-SA 3.0, <https://commons.wikimedia.org/w/index.php?curid=50279796> - -Karatetraining - Bild von -[Michele Stival](https://pixabay.com/users/stivy73-6360334/?utm_source=link-attribution&utm_medium=referral&utm_campaign=image&utm_content=2717178) -von -[Pixabay](https://pixabay.com/?utm_source=link-attribution&utm_medium=referral&utm_campaign=image&utm_content=2717178) - -Kindertraining - Bild von -[PublicDomainPictures](https://pixabay.com/users/publicdomainpictures-14/?utm_source=link-attribution&utm_medium=referral&utm_campaign=image&utm_content=83009) -von [Pixabay](https://pixabay.com/?utm_source=link-attribution&utm_medium=referral&utm_campaign=image&utm_content=83009) - -Kentern - Bild von -[Clker-Free-Vector-Images](https://pixabay.com/users/clker-free-vector-images-3736/?utm_source=link-attribution&utm_medium=referral&utm_campaign=image&utm_content=31696) -von [Pixabay](https://pixabay.com/?utm_source=link-attribution&utm_medium=referral&utm_campaign=image&utm_content=31696) - -Spirale - Bild von -[Stefan keller von Pixabay](https://pixabay.com/?utm_source=link-attribution&utm_medium=referral&utm_campaign=image&utm_content=4356228) diff --git a/src/routes/posts/kyo-6/02-kultur.md b/src/routes/posts/kyo-6/02-kultur.md deleted file mode 100644 index d967dc3..0000000 --- a/src/routes/posts/kyo-6/02-kultur.md +++ /dev/null @@ -1,23 +0,0 @@ -+++ -title = "6. Kyo" - -color = "#FFFF00" -date = 2021-12-07 -+++ - -<script lang="ts"> - import Figure from '$lib/components/Figure.svelte'; -</script> - -# Kultur II. - -Es wird Zeit für Kultur! Über eine Bibliothek, einen (legalen) Streamingdienst oder andere Wege besorge Dir doch mal den -Film [Hackers](https://de.wikipedia.org/wiki/Hackers_%E2%80%93_Im_Netz_des_FBI). Der ist zwar schon von 1995, aber immer -noch sehenswert. Manche Filmszene wird dir immer wieder als Meme begegnen. Mal abgesehen davon, dass Du ein bisschen -Computergeschichte dabei mitnimmst, zeigt es dir auch ein wenig den amerikanischen Blick auf den Begriff Hacker. Über -den Begriff können wir ja gerne mal gemeinsam diskutieren. Wir orientieren uns dabei vielmehr an einem Satz, der -[Wau Holland](https://de.wikiquote.org/wiki/Wau_Holland) zugeschrieben wird: - -> Ein Hacker ist jemand, der versucht einen Weg zu finden, wie man mit einer Kaffeemaschine Toast zubereiten kann. - -Je nach, wie die Situation ist, können wir gerne versuchen, den auch mal gemeinsam zu schauen. diff --git a/src/routes/posts/kyo-6/05-mqtt.md b/src/routes/posts/kyo-6/05-mqtt.md deleted file mode 100644 index e5b92d7..0000000 --- a/src/routes/posts/kyo-6/05-mqtt.md +++ /dev/null @@ -1,95 +0,0 @@ -+++ -title = "6. Kyo" - -color = "#FFFF00" -date = 2021-12-07 -+++ - -<script lang="ts"> - import Figure from '$lib/components/Figure.svelte'; -</script> - -## MQTT - -Jetzt wird es praktisch. Wir wollen ja unsere beiden Spielfiguren über das Netz verbinden. Wir nehmen dafür - tata - ein -Protokoll. Jetzt hast du ja schon eine grobe Ahnung, was ein Protokoll ist. In diesem Fall verwenden wir -[MQTT](https://de.wikipedia.org/wiki/MQTT), was für _Message Queuing Telemetry Transport_ steht. Das stammt von 1999, -ist also schon betagt. Es ist dafür geschaffen worden, damit Maschinen untereinander reden können. Durch IoT, also das -Internet der Dinge, hat das Protokoll erheblich an Bedeutung gewonnen. Es ist super, damit beispielsweise etwas wie -Sensoren Daten irgendwo hinsenden. - -Hier wollt ihr mindestens zu zweit zocken. Aber da zwischen euch immer die Rechner hängen, reden am Ende doch die -Maschinen.. MQTT hat reservierte Ports auf 1883 und 8883. Auch damit kannst du jetzt schon was anfangen. MQTT kann über -TLS abgesichert werden. Den Fall wollen wir aber erstmal (noch) nicht betrachten. Eine Besonderheit bei MQTT ist, dass -es nicht einfach Daten zwischen zwei Punkten austauscht. Wie gesagt, eigentlich ist das für IoT gedacht. Deshalb gibt es -zu jeder Nachricht eine Überschrift, einen Topic. Das ganze ist dadurchz hierachisch aufgebaut. Stell Dir ein Fahrrad -vor, dass Sensoren hat von Licht, Reifenluftdruck, Abstand zu Autos rechts und links und so. Dann würde der -Reifenluftdruck für dein hinteres Rad gemeldet werden als Fahrrad/Rad/2/Luftdurck. Das Vorderrad hat dann -Fahrrad/Rad/1/Luftdruck. Das mag erstmal komisch ausschauen, ist aber total praktisch. Im Spiel könnten wir dann nämlich -sagen Arcarde/Spieler/Max/Standort, Arcade/Spieler/Max/Punkte oder Arcarde/Bots/12/Standort. Warum ist das praktisch? -Wenn du dir von allen Spielern den Standort ausgeben lassen willst, schreibst du Arcarde/Spieler/\*/Standort. Dann -empfängst du nur ihre Standortdaten, nicht aber ihren aktuellen Punktestand. Wenn dich aber alle Daten interessieren, -die Bot Nummer 12 präsentiert, schreibst du Arcarde/Bot/12/\*. Du musst dir also überlegen, was für Daten sollen -transportiert werden und wie können die vernünftig gegliedert werden. Einen Punkt wollen wir an dieser Stelle noch -erklären, die anderen kommen dann im laufenden Projekt. - -Was fehlt uns jetzt noch? Wir brauchen für die Spielenden eindeutige Bezeichnungen. Da könnten wir darauf vertrauen, -dass die Spielerinnen schon immer andere abweichende Namen wählen. Oder einen Zufallsgenerator anwerfen. Aber für diesen -Fall gibt es eine eigene Funktion - die [UUID](https://de.wikipedia.org/wiki/Universally_Unique_Identifier), was für -*U*niversally *U*nique *Id*entifier steht. Dabei handelt es sich um eine 128-bit große Zahl, die zufällig generiert -wird. Die Chance ist recht gering, dass zweimal die gleiche Zahl auftaucht und gleichzeitig haben alle das selbe Format. -Das schaut dann ganz praktisch so aus: - -```python:uuid.py -import uuid - -localPlayerId = f"player-{uuid.uuid4().hex}" -``` - -<Figure src="/images/PyCharm_Icon.svg" float="right" alt="JetBrains PyCharm" /> - -Ach, ganz nebenbei - hast du schon gesehen, -wie Du so Snippets (engl. Schipsel) eben mal kurz testen kannst, ohne gleich ein Programm dafür anlegen zu müssen? Klick -in PyCharm auf _Python Console_ und probier das oben mal aus. Ergänze noch ein `print(localPlayerId)` und du kannst -gleich sehen, wie das ausschaut. Wenn du die Cursor-Taste hoch nimmst, kannst du auf die letzten Befehle zurückgreifen. -So kannst du zum Testen schnell mal ein `localPlayerId2 = f"player-{uuid.uuid4().hex}` anlegen und ausgeben lassen, ohne -alles nochmal schreiben zu müssen. - -Für MQTT gibt es auch hier auch noch die Starthilfe: - -```python:mqtt.py -import Examples.pyMqtt.mqttdatabus as mqttbus - -mqttServer = "mqtt.eclipseprojects.io" -mqttTopicBase = "coderdojo/arcade" -mqb = mqttbus.MqttDataBusMessage(localPlayerId, mqttTopicBase, server=mqttServer) -mqb.startDataBus() -``` - -[Eclipse](https://de.wikipedia.org/wiki/Eclipse_Foundation) ist eine gemeinnützige, belgische Organisation, die eine -Plattform für die Entwicklung von Software. Am bekanntesten ist ihre gleichnamige IDE - also wie PyCharm-, die vor allem -unter Java-Entwickler:innen beliebt ist. Eclipse stellt freundlicherweise einen MQTT-Server zur freien Verfügung. Gerne -setzen wir später auch mal zusammen einen eigenen auf. Jetzt wollen wir erstmal unseren Fokus auf die Nutzung legen. Du -siehst, dass eine Bibliothek für die Nutzung von MQTT importiert wird. Danach wird der Server und der Topic definiert. -Das ganze bauen wir zusammen und stellen dann eine Verbindung her. Jetzt müssen wir noch die Koordinaten übertragen. Die -x/y-Koordinaten deiner Figur kennst du. So sendest du sie: - -```python:mqtt_send.py -mqttBus.sendData( - f"""{{ - "x": {x}, - "y": {y} - }}""" - ) -``` - -Für deine Mitspielerin musst du jetzt erstmal mitkriegen, welche Spieler gerade dabei sind und wo sie sich befinden. Wir -fassen zwar erstmal alle möglichen IDs ab, aber im ersten Schritt solltest du davon ausgehen, dass nur ein Mitspieler -dabei ist. Wenn du eine coole Socke bist, kannst du natürlich im nächsten Schritt den Fall implementieren, dass sich -mehr als zwei Spielerinnen treffen. So könntest Du rauskriegen, welche Spieler versammelt sind: - -```python:mqqt_which_user.py -foo -``` - -Der Rest folgt bald... diff --git a/src/routes/posts/kyus.svelte b/src/routes/posts/kyus.svelte deleted file mode 100644 index 74314f2..0000000 --- a/src/routes/posts/kyus.svelte +++ /dev/null @@ -1,50 +0,0 @@ -<script lang="ts"> - import Button from "$lib/components/Button.svelte"; - import Belt from "$lib/components/Belt.svelte"; - import Arrow from "phosphor-svelte/lib/ArrowRight"; - import Meta from "$lib/components/Meta.svelte"; - - export let meta: [number, string, string, string, string][] = [ - [ - 7, - "7. Kyo – Weißgurt", - "white", - "/posts/kyo-7/", - "So wie du beim Kampfsport beim Weißgurt die ersten Schritte auf der Matte lernst, lernst du hier die ersten Schritte zum Coden, zum Löten und zur Hackerkultur." - ], - [ - 6, - "6. Kyo – Gelbgurt", - "yellow", - "/posts/kyo-6/", - "Hier siehst du gerade den im Entstehen begriffenen ersten und noch nicht vollständigen Aufschlag für den Gelbgurt. Wir freuen uns über Fehlerkorrekturen! Wenn du das Gefühl hast, hier etwas nicht nachzuvollziehen zu können, schreib uns bitte oder sprich uns beim CoderDojo an, damit wir das Script verbessern können. Wenn du es nicht verstehst, liegt es nicht an Dir und anderen wird es auch so gehen. Lass es uns gemeinsam für die nächsten Leser:innen besser machen." - ] - ]; -</script> - -<Meta title={"Willkomen zum CoderDōjō"} /> - -<div class="md:items-center md:mt-[10%] flex md:flex-row flex-col px-5 mx-auto gap-4"> - {#each meta as [count, title, fill, href, description]} - <div class="flex flex-col gap-3 md:w-1/2 w-full"> - <h2 - class="sm:text-3xl text-2xl font-medium mt-4 flex flex-row gap-3 md:gap-6 justify-center items-center" - > - <span class="bg-theme p-2 rounded"> - <Belt {fill} stroke="black" stroke-width="5pt" svg_class="h-4 w-4 md:w-6 md:h-6" /> - </span> - {title} - </h2> - - <p class="leading-relaxed text-lg"> - {description} - </p> - - <div class="flex flex-row justify-center flex-start"> - <Button {href}> - Zum {count}. Kyo <Arrow size={24} /> - </Button> - </div> - </div> - {/each} -</div> diff --git a/src/routes/posts/news/2021-08-06.md b/src/routes/posts/news/2021-08-06.md deleted file mode 100644 index aaed034..0000000 --- a/src/routes/posts/news/2021-08-06.md +++ /dev/null @@ -1,25 +0,0 @@ -+++ -title = "Nächstes Treffen" -date = 2021-08-06 -updated = 2021-08-06 -showToc = false -description ="Nächstes Treffen findet statt am..." -+++ - -<script lang="ts"> - import Button from '$lib/components/Button.svelte'; - import UserRectangle from "phosphor-svelte/lib/UserRectangle"; -</script> - -# Nächstes Treffen - -Es sind Sommerferien - auch wir sind unterwegs... Deshalb findet das nächste CoderDojo für Euler und CoderDojo erst am -Donnerstag, 19. August 2021 statt. - -Wir treffen uns um 20:30 Uhr im BBB-Raum: <https://bbb.cyber4edu.org/b/der-0rc-8x7-4re> - -<div class="flex justify-center"> - <Button href="https://bbb.cyber4edu.org/b/der-0rc-8x7-4re"> - <UserRectangle size={24} /> BBB Raum - </Button> -</div> diff --git a/src/routes/posts/news/2022-03-17.md b/src/routes/posts/news/2022-03-17.md deleted file mode 100644 index a997d21..0000000 --- a/src/routes/posts/news/2022-03-17.md +++ /dev/null @@ -1,14 +0,0 @@ -+++ -title = "Ausfall" -date = 2022-03-17 -updated = 2022-03-17 -slug = "ausfall" -showToc = false -lang = "de" -description ="CoderDojo fällt aus" -+++ - -# Ausfall - -Das CoderDojo am 17. März 2022 fällt leider aus... am 24. März 2022 sind wir wieder für Euch ab 20:30 Uhr in unserem -BBB-Raum für Euch da. diff --git a/src/routes/posts/news/2022-08-25.md b/src/routes/posts/news/2022-08-25.md deleted file mode 100644 index afcdd93..0000000 --- a/src/routes/posts/news/2022-08-25.md +++ /dev/null @@ -1,29 +0,0 @@ -+++ -title = "Nächstes Treffen" -date = 2022-08-25 -updated = 2022-08-25 -showToc = false -description ="Nächstes Treffen findet statt am..." -+++ - -<script lang="ts"> - import Figure from '$lib/components/Figure.svelte'; - import Button from '$lib/components/Button.svelte'; - import UserRectangle from "phosphor-svelte/lib/UserRectangle"; -</script> - -# Es geht wieder los! - -Die Sommerferien sind vorbei. Ein paar von uns waren auf der MCH, ein paar haben ein Camp zu Quantencomputing besucht, wieder andere zu Hause gecodet. Zunächst wollen wir daher von unseren Erlebnissen und Erfahrungen der letzten Wochen berichten. - -Danach wollen wir unser neues Projekt, einen Kalenderaggregator, in Angriff nehmen. - -Wir treffen uns am Donnerstag, 25. August 2022 um 20:30 Uhr in unserem BBB-Raum: <https://bbb.cyber4edu.org/b/der-0rc-8x7-4re> - -<div class="flex justify-center"> - <Button href="https://bbb.cyber4edu.org/b/der-0rc-8x7-4re"> - <UserRectangle size={24} /> BBB Raum - </Button> -</div> - -Du bist herzlich eingeladen - komm einfach vorbei! diff --git a/src/routes/posts/news/2022-09-01.md b/src/routes/posts/news/2022-09-01.md deleted file mode 100644 index c44e9bb..0000000 --- a/src/routes/posts/news/2022-09-01.md +++ /dev/null @@ -1,27 +0,0 @@ -+++ -title = "Nächstes Treffen" -date = 2022-09-01 -updated = 2022-08-27 -showToc = false -description ="Nächstes Treffen am 1. September 2022" -+++ - -<script lang="ts"> - import Figure from '$lib/components/Figure.svelte'; - import Button from '$lib/components/Button.svelte'; - import UserRectangle from "phosphor-svelte/lib/UserRectangle"; -</script> - -# Kalenderaggregator - -Wir setzen unser Projekt Kalenderaggregator fort und wollen an diesem Donnerstag mit einm bißchen Webscrapping Daten von Seiten kratzen um diese dann in eine auswertbare Form zu bringen. Du bist herzlich eingeladen, einfach mitzumachen! - -Falls du an den Kyos dran bist, deinen Code vorstellen möchtest oder Fragen hast - super, komm einfach vorbei. Gegebenenfalls machen wir einen Breakout-Room auf und können dich ganz in Ruhe unterstützen. - -Wir treffen uns am Donnerstag, 1. September 2022 um 20:30 Uhr in unserem BBB-Raum: <https://bbb.cyber4edu.org/b/der-0rc-8x7-4re> - -<div class="flex justify-center"> - <Button href="https://bbb.cyber4edu.org/b/der-0rc-8x7-4re"> - <UserRectangle size={24} /> BBB Raum - </Button> -</div> diff --git a/src/routes/posts/news/index.svelte b/src/routes/posts/news/index.svelte deleted file mode 100644 index 6d88064..0000000 --- a/src/routes/posts/news/index.svelte +++ /dev/null @@ -1,34 +0,0 @@ -<script context="module" lang="ts"> - export async function load({ fetch }) { - const news = await fetch("/posts/news/news.json"); - - return { - props: { - news: await news.json() - } - }; - } -</script> - -<script lang="ts"> - import NewsCard from "$lib/components/NewsCard.svelte"; - import Meta from "$lib/components/Meta.svelte"; - - export let news: [string, string, string, string][]; -</script> - -<Meta title="News" description="News und Updates rund um CoderDōjō" /> - -<div class="flex gap-3 w-full flex-col md:flex-row items-center md:items-start"> - <div class="flex-grow"> - <div class="prose lg:prose-lg prose-slate prose-extension mb-3 text-center"> - <h1>News</h1> - </div> - - <div class="grid grid-cols-1 md:grid-cols-2 gap-2 w-full grid-flow-row"> - {#each news as [href, title, date, description]} - <NewsCard {title} {href} {description} {date} /> - {/each} - </div> - </div> -</div> diff --git a/src/routes/posts/news/news.json.ts b/src/routes/posts/news/news.json.ts deleted file mode 100644 index 0643940..0000000 --- a/src/routes/posts/news/news.json.ts +++ /dev/null @@ -1,60 +0,0 @@ -import { cwd } from "node:process"; -import { readdirSync, readFileSync, statSync } from "fs"; -import { join as joinPath } from "path"; -import { routeMapper, TitleRegex, FrontmatterRegex } from "$lib/toc.js"; - -const DescriptionRegex = new RegExp(/^(description|summary) *= *["'](?<description>.+)['"] *$/m); -const DateRegex = new RegExp(/^date *= *(?<date>[0-9]{2,4}-[0-9]{2}-[0-9]{2}) *$/m); - -export async function GET() { - // collection of news interface - let news = []; - - // retrieve metadata about kyus and provide enriched kyu data for kyus.svelte - const newsDir = joinPath(cwd(), "src/routes/posts/news/"); - - readdirSync(newsDir, { encoding: "utf-8" }) - .filter((file) => file.endsWith(".md")) - .map((file: string) => { - const path = joinPath(newsDir, file); - const content = readFileSync(path).toString(); - const frontmatter = FrontmatterRegex.exec(content); - - // extract title, date and description for each article in /news/ - if (frontmatter !== null) { - const frontmatterTitle = TitleRegex.exec(frontmatter.groups.frontmatter); - - if (frontmatterTitle !== null) { - // try to extract date and otherwise fallback to mtime - const dateMatch = DateRegex.exec(frontmatter.groups.frontmatter); - let date: string; - - if (dateMatch !== null && dateMatch.groups.date !== null) { - date = dateMatch.groups.date; - } else { - const mtime = statSync(path).mtime; - - date = `${mtime.getFullYear()}-${mtime.getMonth()}-${mtime.getDate()}`; - } - - const descriptionMatch = DescriptionRegex.exec(frontmatter.groups.frontmatter); - - news.push([ - routeMapper(path), - frontmatterTitle.groups.title, - date, - descriptionMatch !== null - ? descriptionMatch.groups.description - : "A description/ summary is missing" - ]); - } - } - }); - - // sort by date - news = news.sort((a, b) => (a[2] > b[2] ? -1 : a[2] === b[2] ? 0 : 1)); - - return { - body: news - }; -} diff --git a/src/routes/posts/workshops/html.md b/src/routes/posts/workshops/html.md deleted file mode 100644 index a63a111..0000000 --- a/src/routes/posts/workshops/html.md +++ /dev/null @@ -1,15 +0,0 @@ -+++ -title = "Workshops" -color = "#fff" -created = 2022-08-27 -+++ - -<script lang="ts"> - import Figure from '$lib/components/Figure.svelte'; -</script> - -# Online-Einführung in html/CSS - -Unser Online-Workshop findet im [Jugend-hackt-BBB](https://meet.alpaka.live/jh-lab-berlin) statt. - -Der Workshop findet am 3. September 2022 von 14 bis 17 Uhr statt. Die Materialien hierzu werden hier erscheinen. diff --git a/src/routes/posts/workshops/index.md b/src/routes/posts/workshops/index.md deleted file mode 100644 index 9b97e57..0000000 --- a/src/routes/posts/workshops/index.md +++ /dev/null @@ -1,43 +0,0 @@ -+++ -title = "Workshops" -color = "#fff" -created = 2022-08-05 -+++ - -<script lang="ts"> - import Figure from '$lib/components/Figure.svelte'; -</script> - -# Workshops - -Unsere nächsten Workshops sind: - -- 27. August 2022 von 14 bis 17 Uhr - [Jugend hackt - Einführung in Python (online)](https://coderdojo.red/posts/news/2022-08-27/) - -- 3. September 2022 von 14 bis 17 Uhr - [Jugend hackt - Einführung in html/CSS (online)](https://coderdojo.red/posts/news/2022-09-03/) - -- 2. Oktober 2022 von 14 bis 17 Uhr - [CoderDojo.red - Einführung in Python (in Präsenz)](https://coderdojo.red/posts/news/2022-10-02/) - -Die Materialien für die Workshops erscheinen demnächst hier. - -Derzeit bieten wir Einführungs-Workshops zu den Themen: - -- Python -- html/CSS -- Linux-Shell -- Linux -- Spuren im Netz (Datenschutz) -- ATTiny-Löten und -- ATTiny-Programmierung an. - -In Vorbereitung sind derzeit noch folgende Themen: - -- Arduiono -- Docker -- git -- Robotik -- Recht für Programmier:innen (Datenschutz, Urheberrecht, Lizenzrecht) - -Hier werden zuünftig die Materialien für die Workshops erscheinen. - -Wenn du als Leiter:in einer Gruppe oder Institution wie Bibliothek oder Schule Interesse an einem Workshop hast, sprich uns gerne an. ZUmindest innerhalb Berlins bieten im Rahmen unserer ehrenamtlichen Kapazitäten auch vor Ort an. Wenn du als Einzelne:r Interesse hast, schreib uns einfach per Matrix an. Wir können dir dann sagen, ob der gefragte Workshop demnächst stattfindet oder ob wir ihn zumindest bald einplanen können. diff --git a/src/routes/posts/workshops/python.md b/src/routes/posts/workshops/python.md deleted file mode 100644 index daa856f..0000000 --- a/src/routes/posts/workshops/python.md +++ /dev/null @@ -1,21 +0,0 @@ -+++ -title = "Workshops" -color = "#fff" -created = 2022-08-27 -+++ - -<script lang="ts"> - import Figure from '$lib/components/Figure.svelte'; -</script> - -# Präsenz-Einführung in Python - -Die hast noch keine oder geringe Vorkenntnisse im Programmieren - dann komm zu unserem Einführungsworkshop am 2. Oktober 2022 vorbei. Wir treffen uns in präsenz, also so richtig in Bunt und in Farbe im x-Hain in der Grünberger Straße 16 (zwischen U-Bhf. Warschauer Straße und Frankfurter Tor). Wir legen um 14 Uhr los und machen bis circa 17 Uhr. - -Wir beginnen nicht mit dem Rechner, sondern mit einem Brettspiel. So lernst du, wie Programmierer denken. Wenn du dein eigenes Notebook (kein Tablet!) mitbringst, helfen wir dir dabei, die notwendigen Komponenten zu installieren, die du zum Programmieren brauchst. Falls du über kein eigenes Gerät verfügst, sag uns vorher Bescheid und wir stellen dir ein Leihgerät zu Verfügung. Das müssten wir rechtzeitig wissen, also circa eine Woche vor dem Workshop. - -Wenn das steht, beginnen wir mit den ersten Schritten in Python. Solltest du schon paar Vorerfahrungen mitbringen, so haben wir für dich auch passende Herausforderungen. - -Zwischendurch zeigen wir noch den x-Hain - einen Hacker- und Makerspace mit vielen interessanten Dingen, die es zu entdecken gilt. - -Um unseren Workshop besser planen zu können, **buche Dir bitte vorher** über [die Coderdojo-Seite ein Ticket](https://zen.coderdojo.com/dojos/de/berlin/berlin-mitte-xhain). diff --git a/src/routes/rss.xml.js b/src/routes/rss.xml.js deleted file mode 100644 index 1971f66..0000000 --- a/src/routes/rss.xml.js +++ /dev/null @@ -1,11 +0,0 @@ -import { generateFeed } from "$lib/feed.js"; - -export async function GET() { - return { - headers: { - "Cache-Control": "max-age=0, s-maxage=3600", - "Content-Type": "application/xml" - }, - body: generateFeed("rss") - }; -} diff --git a/static/belt-mod.svg b/static/belt-mod.svg deleted file mode 100644 index ec0e502..0000000 --- a/static/belt-mod.svg +++ /dev/null @@ -1,47 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?> -<svg - version="1.0" - width="512.09998pt" - height="256.52066pt" - viewBox="0 0 512.09998 256.52066" - preserveAspectRatio="xMidYMid" - id="svg59" - sodipodi:docname="belt.svg" - xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" - xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" - xmlns="http://www.w3.org/2000/svg" - xmlns:svg="http://www.w3.org/2000/svg"> - <defs - id="defs63"> - <linearGradient - id="linearGradient934" - inkscape:swatch="solid"> - <stop - style="stop-color:#000000;stop-opacity:1;" - offset="0" - id="stop932" /> - </linearGradient> - </defs> - <sodipodi:namedview - id="namedview61" - pagecolor="#ffffff" - bordercolor="#666666" - borderopacity="1.0" - inkscape:showpageshadow="2" - inkscape:pageopacity="0.0" - inkscape:pagecheckerboard="false" - inkscape:deskcolor="#d1d1d1" - inkscape:document-units="pt" - showgrid="false" - showborder="true" - shape-rendering="auto" /> - <metadata - id="metadata53"> -Created by potrace 1.16, written by Peter Selinger 2001-2019 -</metadata> - <path - d="m 0.05,45.05 v 45 l 61.6,0.2 61.5,0.3 -53.7,43 c -29.6,23.6 -56.6,45.3 -60.1,48.2 l -6.3,5.1 27.6,34.4 c 15.1,18.8 28.1,34.7 28.9,35.2 1,0.7 23.6,-16.9 87.1,-67.7 l 85.7,-68.7 h 23.7 23.7 l 85.7,68.7 c 63.6,50.9 86.1,68.4 87.1,67.7 0.8,-0.5 13.8,-16.4 29,-35.4 22.2,-27.6 27.4,-34.6 26.3,-35.5 -0.8,-0.5 -27.9,-22.2 -60.2,-48 l -58.7,-47 61.5,-0.3 61.6,-0.2 v -45 -45 h -256 -256 z m 186,-10.5 c 0.7,2.5 1.1,4.7 0.9,4.9 -0.2,0.1 -6.1,4.8 -13.1,10.4 l -12.7,10.2 h -65.6 -65.5 v -15 -15 h 77.4 77.3 z m 108,-3.8 c 0,0.4 -4.4,13.9 -9.7,30 l -9.8,29.3 h -18.5 -18.5 l -9.8,-29.3 c -5.3,-16.1 -9.7,-29.6 -9.7,-30 0,-0.4 17.1,-0.7 38,-0.7 20.9,0 38,0.3 38,0.7 z m 188,14.3 v 15 h -65.5 -65.6 l -12.7,-10.2 c -7,-5.6 -12.9,-10.3 -13.1,-10.4 -0.2,-0.2 0.2,-2.4 0.9,-4.9 l 1.3,-4.5 h 77.3 77.4 z m -278.8,41 4.5,13.6 -71.4,57.2 -71.3,57.1 -9,-11.1 c -4.9,-6.2 -8.8,-11.3 -8.7,-11.4 4.7,-4.6 150.3,-120.2 150.8,-119.6 0.3,0.4 2.7,6.8 5.1,14.2 z m 186.8,45.5 c 40.4,32.3 73.8,59 74.2,59.4 0.4,0.4 -3.3,5.7 -8.2,11.8 l -8.9,11.2 -71.4,-57.2 -71.4,-57.1 4.3,-13 c 2.4,-7.2 4.6,-13.7 4.9,-14.5 0.4,-0.9 0.9,-1 1.8,-0.4 0.6,0.5 34.3,27.4 74.7,59.8 z" - id="path55" - style="fill:#000000;fill-opacity:1;stroke:#6a0835;stroke-width:0.1;stroke-opacity:1;paint-order:stroke markers fill" - inkscape:label="belt" /> -</svg> diff --git a/static/fonts/belt.ttf b/static/fonts/belt.ttf deleted file mode 100644 index 94a34f17869ab46984b62601cf1f9735eadb34df..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1836 zcmZQzWME+6VrXDsW>D}C);9_}p6trNz^K8%zz~+4n^?fGlQD&Xfw6;ufzc~Hr!p<J z*xrJHf$0td1LKyA)Wj6IM;Z<c3=9_-7#PelGEx&cVp*6O7#P+tFfgcO<d#%$Fn|DK z0|NsCM^1inBEu~ZpXmw%0|Q%bVnqR?IKx~921bxFg}lVv)T=$IDhv!P6Brnnatrc{ zOBe+}>e)erCdjQUAXW^RWME+ciGT#)m<cSx$iSc@q4YbR-{va=H$?5-ho5vos$et= z1Jg^8n;4itq6`p|m>4E9aD(|EQ7#591_p-zU_Ju_BMSrL1O`?H4yI0~GYkw2{Scb* zHG>hz^-K(`Ab&#@BU1rst|<%-48aV+V3$DM4t6I41IQ0x%)r0^(htHiP&pR{W-v>J zfrSASA8ZUP42)p+2LFe+3QYfB2UZ2Pl93HeQJVmz5o()BYx6+q3>=r>nC4@UWl(1@ zVz6NdWQb%)Whh{1WSGFfz^KP)YR70U$0*Lm&t#yi$EXhBiSaYCDT$ltGpd={Ga8F3 zDyi8s8jFjuDH|x7*fJW6%Q5mZs+!m`nyZ5puo|n1%P}gmi;F6%nyKkCDvK(bgD7@3 zF(Wf|1CT;xc0NXVMnzRSMngSDbv{ORIYx0Kdqx9QJ4SPefQXp5xdGD!CIOX;d`vRT zOlk>TmxSI5GD@@XomXXK=3!=h#mLCQCM5p;U%G(=ld_vKv!ubl^bg`fY%EOwBp+O7 zlo2y#G>u|3HI^4)zV_fx5@P@htC08yM#*E0tg>#(OcDtaOpL+r#f4c}7#Su1aj>wc zp66qcW)gfS#K^?X7-;3o$RxwecR@vfsgrRUvp%crGA<@XRwjABT;2nGtV&E=OXV0j z)HpmDnV2{@`Gn0GnKCn(7@2r9h50x+SY=pMG#S@2sz^Kh_~D=~wT5xAHCPohlR$VT z6C)#&1QQP*SY-;gfc#P}CS?}>{k$B)L3;K~tcpxr%j8(}nR6K!7=#$^F~CxsC^Tn+ z@+Sv_C{&z@ft^7X%4TNZU{HawSr|ANbf9cj25truD4UIegTWrk=3>xhaEG$F8H5>% zK)H;ClYxOji=h?DW@HdxSPx}0G4L_$hq9R&1Q^aj*(?kK40oYyRt7PKw@@}4g8(Bl zl+DEu#wZMBb2F$hX1b^5r4}WYq^2k&RVujWR2F2Eq!z*Gpw#rzoJ2SmCLESpRGgWg zr(mdO024wnrnoHKsH7xKA+0DsSHUemuOu}mCtsnUC_gJTxkN9cq@=(~Uq1~hu9uvj z%izwC%8<v9%233R$WX$N%8<gKz>vgH$)LdC&XB`U$xy(M0TwU9;0H0JGNdz<GUPBM zGGNN0>kb3kQOuCZkk63Epuk|rpvPc<VJ2?Z6f=}Dq%#;XlrWSqq%kNkq%jmR<TK<l zC@{EzO$50;hara{pFx4404$fqkjjwEP{N=G_CX0l0fQBTK7&3(8k%}NhGeiw3=H7% X6jT<0%6bruj+q!37(ulG0|Ns92nzHY diff --git a/static/fonts/belt.woff b/static/fonts/belt.woff deleted file mode 100644 index 15baee81c2a7da68fb4700fe43c973b1da5a62c9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1220 zcmXT-cXMN4WME)mU^&9T1)|w?Abb!T75fM48!<32d|_Z<uw!6g2n#!&?3$dLSir!* zXu`n2V8g(`=*6&;F(o~xGL3<O5hUKuz`(dAw%FbxBQ-IFfr04<0|SFD0|SGZ+#?N# zjEvMo1_ovg1_lNR1_lNdj#w7vjNFn61_ova1_lNW5C#!B`N<%49t;c&Y+!tgfgv}s zqJV*cIe>wIK>>sr#Tn-2CFZ6wFffDcwPs*o%Dvi?s#1_&T*AP>vW9_yL6m`kL6cE{ zfuUkfazaXC!khyKP8~RS<zz`)W8*@3C*yr-21!p65)zUUQqvA_F<puYmXMKXl5C1} zxFaFfVW8Z>z%Z+y{QyLNLPA<Yf+U+8n?M2MCy9eKVr;w$XW5oWO3r9l^WgvggIWi^ z{4Wjo>Tux1F$eAg9uX%WFfyEwWtXg&quRUIPufwW_4%E-H)DGwXPe&J_}G5!@!i@| z)f+d4bFl;~F7*(Z#N^m2z!9kMk!wo8(o@_DD;`LCOr18rY0H+*DGr{EI>!oT7r(ox zUYj#%=Hs4!1}C$0(qgxr2)k)@JCXg(gxYkT+%MB7TwC}?Ms-*3kGG$TH_Xo3*PLPC zvR=YOS@_iUQlT^T25b9doGxFg;OU6V5PQ2KNq}z=Ux}f|@rO6+$_3Pu1FVI3Ssn^K z>v1_`IO&~0r{tyWiO0e-ovu&Gzw5CoN+ehAe%1eFfe$}vwM^amLHxnC<#KMjJv+a2 zZ98=`<9lGG+48`j|IAm_@&D!hQr#>0`rW@u?)V)at|*_{uaKoZ%WJmkq3!IU0x}x? zG3O3zpVT(_d!N}dqV_+ho6h>^N~=TstCh3TCAnBk?cV$UowCSt=4GopC;oCMl{<+A zUAQOLxM?%1<-@L38D}3ctv&VW^5vpG?_|`u*H3Z%Y1-WAHD&7hC*M-`70yyTTRc5D z?_qYehth&Gk#oz}{1sp5?JfdI0|^NXNwS<5pMU&g7B9IYQo`ZEyTkswPMB~rU-niw zdhh_tBSr?HH=IitAaS0OkdVmGBw@grWNfs6NsWQqjUkr>lyhL&<Q4-1IPWkqOl05& z3o<b<FmQqM)qgObp<+&Hzqj9E1A(^s@2p#dR;@^Af5Mu?s8QPyYW`+ct@z#LYcIE7 zvM9RaWy|pVA;+8s<qOgU>~)tI7X~F&{yA$txsd4rleNa1`QGnrwdWY!F6LC<A*Ofv zK1cWo{zIWAA2ebX*9)zCEVr<LS=YiZV5)Iid4*V5#v|7qEya7droX)3qWz@&q1L(& ziZRZ?Q(Iq4tejTBygf^B)|DM6X0MdXFP)LId8hfi-!ijqT6Nx8C?`2xKWEi$$LGtx zRQv3k`E^f!>6<rR{5h|DCq>M)+-)K(e`fFbUvJBF>}K2$t-r7Ew5;PnrQbrsW77;> z4jCWb^WmMpUCNw9UuoHua?chkJ&QQ-$*xzAsibeu*ZbF>-1x9fZms(no3#F;T_zf8 zb*1Vt)6}%Hyk~LN2Kap6QoCj6qvn4Nv2(s~nk45h0moTV1A`vh8wQQ@96`(sjMo^1 H7#J7;yQ$Sv diff --git a/static/robots.txt b/static/robots.txt deleted file mode 100644 index e9e57dc..0000000 --- a/static/robots.txt +++ /dev/null @@ -1,3 +0,0 @@ -# https://www.robotstxt.org/robotstxt.html -User-agent: * -Disallow: diff --git a/svelte.config.js b/svelte.config.js deleted file mode 100644 index ebcf8d6..0000000 --- a/svelte.config.js +++ /dev/null @@ -1,37 +0,0 @@ -import { mdsvex } from "mdsvex"; -import mdsvexConfig from "./mdsvex.config.js"; -import adapter from "@sveltejs/adapter-static"; -import preprocess from "svelte-preprocess"; - -/** @type {import('@sveltejs/kit').Config} */ -const config = { - extensions: [".svelte", ...mdsvexConfig.extensions], - - // Consult https://github.com/sveltejs/svelte-preprocess - // for more information about preprocessors - preprocess: [ - preprocess({ - postcss: true - }), - mdsvex(mdsvexConfig) - ], - - kit: { - adapter: adapter({ - precompress: true - }), - trailingSlash: "always", - prerender: { - default: true, - enabled: true, - concurrency: 4, - crawl: true - }, - browser: { - hydrate: true, - router: false - } - } -}; - -export default config; diff --git a/tailwind.config.cjs b/tailwind.config.cjs index 3bfd596..c80fc29 100644 --- a/tailwind.config.cjs +++ b/tailwind.config.cjs @@ -1,5 +1,3 @@ -const typography = require("@tailwindcss/typography"); - const palettes = { blue: { theme: "#2d557d", @@ -7,7 +5,7 @@ const palettes = { "theme-neutral": "#244464", "theme-dark": "#002c50", secondary: "#a9ac5d", - "secondary-dark": "#787d31" + "secondary-dark": "#787d31", }, red: { theme: "#b84f59", @@ -15,12 +13,12 @@ const palettes = { "theme-neutral": "#a4424c", "theme-dark": "#8b323f", secondary: "#60be86", - "secondary-dark": "#2c8d59" - } + "secondary-dark": "#2c8d59", + }, }; -const config = { - content: ["./src/**/*.{html,js,svelte,ts,md}"], +module.exports = { + content: ["./src/**/*.{astro,html,js,jsx,svelte,ts,tsx,md}"], theme: { extend: { @@ -30,12 +28,10 @@ const config = { ? process.env.DOMAIN.includes("red") ? palettes.red : palettes.blue - : palettes.blue) - } - } + : palettes.blue), + }, + }, }, - plugins: [typography] + plugins: [require("@tailwindcss/typography")], }; - -module.exports = config; diff --git a/tsconfig.json b/tsconfig.json index d1deb76..0f7f7dd 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,3 +1,31 @@ { - "extends": "./.svelte-kit/tsconfig.json" + "compilerOptions": { + // Enable top-level await, and other modern ESM features. + "target": "ES6", + "module": "ESNext", + // Enable node-style module resolution, for things like npm package imports. + "moduleResolution": "node", + // Enable JSON imports. + "resolveJsonModule": true, + // Enable stricter transpilation for better output. + "isolatedModules": true, + // Allow mixed usage with JS modules + "allowSyntheticDefaultImports": true, + // Astro will directly run your TypeScript code, no transpilation needed. + "noEmit": true, + // Import Astro type stubs + "types": ["astro/client"], + // Forbid any use of Types of values + "importsNotUsedAsValues": "error", + // Ensure the base path for all imports is the cwd + "baseUrl": ".", + // Allow import paths for better code organization + "paths": { + "~/*": ["src/*"], + "$styles/*": ["src/assets/styles/*"], + "$components/*": ["src/components/*"], + "$layouts/*": ["src/layouts/*"], + "$lib/*": ["src/lib/*"] + } + } } diff --git a/vite.config.js b/vite.config.js deleted file mode 100644 index 97a3cc8..0000000 --- a/vite.config.js +++ /dev/null @@ -1,8 +0,0 @@ -import { sveltekit } from "@sveltejs/kit/vite"; - -/** @type {import('vite').UserConfig} */ -const config = { - plugins: [sveltekit()] -}; - -export default config; -- GitLab From 9c6f78d47fb3bd1612ca69c0d4f4d4917fef9872 Mon Sep 17 00:00:00 2001 From: Cobalt <cobalt@cobalt.rocks> Date: Tue, 6 Sep 2022 20:57:35 +0200 Subject: [PATCH 02/27] chore: Migrate contact, imprint and privacy --- README.md | 52 +++++++++++----------------- src/components/DescriptionList.astro | 24 +++++++++++++ src/pages/contact.mdx | 18 ++++++++++ src/pages/imprint.mdx | 23 ++++++++++++ src/pages/privacy.mdx | 2 +- 5 files changed, 86 insertions(+), 33 deletions(-) create mode 100644 src/components/DescriptionList.astro create mode 100644 src/pages/contact.mdx create mode 100644 src/pages/imprint.mdx diff --git a/README.md b/README.md index 62b3f46..ac55739 100644 --- a/README.md +++ b/README.md @@ -1,45 +1,33 @@ -# Astro Starter Kit: Minimal +[![Website Status for coderdojo.red](https://img.shields.io/website?down_color=gray&down_message=DOWN&label=Red&logo=nginx&style=flat-square&up_color=red&up_message=UP&url=https%3A%2F%2Fcoderdojo.red)](https://coderdojo.red) +[![Website Status for coderdojo.blue](https://img.shields.io/website?down_color=gray&down_message=DOWN&label=Blue&logo=nginx&style=flat-square&up_color=blue&up_message=UP&url=https%3A%2F%2Fcoderdojo.blue)](https://coderdojo.blue) +[![Pipeline Status](https://img.shields.io/gitlab/pipeline/coderdojo/coderdojo-website/koneko?gitlab_url=https%3A%2F%2Fgitlab.cobalt.rocks&label=Build&logo=gitlab&style=flat-square)](https://gitlab.cobalt.rocks/coderdojo/coderdojo-website/-/pipelines) +[![code style: prettier](https://img.shields.io/badge/code_style-prettier-ff69b4.svg?style=flat-square&logo=prettier)](https://github.com/prettier/prettier) -``` -npm init astro -- --template minimal -``` +# Website for CoderDōjō Red and Blue -[![Open in StackBlitz](https://developer.stackblitz.com/img/open_in_stackblitz.svg)](https://stackblitz.com/github/withastro/astro/tree/latest/examples/minimal) +Code for [coderdojo.red](https://coderdojo.red) and [coderdojo.blue](https://coderdojo.blue). -> 🧑‍🚀 **Seasoned astronaut?** Delete this file. Have fun! +## Issues -## 🚀 Project Structure +We track issues over the [Codeberg](https://codeberg.org/c0balt/coderdojo-website-mirror) and +[GitHub](https://github.com/Chaostheorie/coderdojo-website-mirror) push mirrors. You are welcome to open an issue in +those repositories. We are grateful for any feedback. -Inside of your Astro project, you'll see the following folders and files: +## Documentation -``` -/ -├── public/ -├── src/ -│ └── pages/ -│ └── index.astro -└── package.json -``` +> Documentation updates are in the review stage. Any feedback is welcome :) -Astro looks for `.astro` or `.md` files in the `src/pages/` directory. Each page is exposed as a route based on its file name. +See [the Wiki](https://outline.cobalt.rocks/share/15895a06-29f6-4225-a0ed-0aa3cec5382b) for documentation. -There's nothing special about `src/components/`, but that's where we like to put any Astro/React/Vue/Svelte/Preact components. +## Contributing -Any static assets, like images, can be placed in the `public/` directory. +All contributions are welcome. If you want to contribute or report a bug, fell free to open an issue on our +[Codeberg Mirror](https://codeberg.org/c0balt/coderdojo-website-mirror). If you want to get direct access to a GitLab +Account, please contact [Cobalt](https://cobalt.rocks/content/contact/). -## 🧞 Commands +## Licensing -All commands are run from the root of the project, from a terminal: +The content is licensend under [CC-BY-NC 4.0](https://creativecommons.org/licenses/by-nc/4.0/legalcode.de) while the +code is licensed under [AGPL 3.0](https://www.gnu.org/licenses/agpl-3.0.en.html). -| Command | Action | -| :--------------------- | :----------------------------------------------- | -| `npm install` | Installs dependencies | -| `npm run dev` | Starts local dev server at `localhost:3000` | -| `npm run build` | Build your production site to `./dist/` | -| `npm run preview` | Preview your build locally, before deploying | -| `npm run astro ...` | Run CLI commands like `astro add`, `astro check` | -| `npm run astro --help` | Get help using the Astro CLI | -## 👀 Want to learn more? - -Feel free to check [our documentation](https://docs.astro.build) or jump into our [Discord server](https://astro.build/chat). diff --git a/src/components/DescriptionList.astro b/src/components/DescriptionList.astro new file mode 100644 index 0000000..03d3a97 --- /dev/null +++ b/src/components/DescriptionList.astro @@ -0,0 +1,24 @@ +--- +export interface Props { + title: string; + items: [string, string, string][]; +} + +const { title, items } = Astro.props; +console.log(title, items); +--- + +<div class="flex flex-col"> + <h2>{title}</h2> + + <dl class="flex flex-col gap-2 list-none not-prose"> + { + items.map(([icon, dt, dd]) => ( + <div class="flex flex-row gap-3 justify-between flex-nowrap"> + <dt class="flex items-center gap-2"><Fragment set:html={icon} /> {dt}</dt> + <dd>{dd}</dd> + </div> + )) + } + </dl> +</div> diff --git a/src/pages/contact.mdx b/src/pages/contact.mdx new file mode 100644 index 0000000..04ed4a6 --- /dev/null +++ b/src/pages/contact.mdx @@ -0,0 +1,18 @@ +--- +title: Kontakt +showToc: false +layout: $layouts/Prose.astro +--- + +import Button from '$components/Button.svelte'; + +# Kontakt + +Du erreichst uns am besten über Matrix, siehe unten anstehender Link. Ansonsten gerne auch per E-Mail über coderdojo ät cyber4edu pünktchen org. + +<div class="flex flex-col justify-center md:flex-row gap-3"> + <Button href="https://matrix.to/#/#coderdojo:matrix.cyber4edu.org"><i class="ph-xl ph-chat"></i> Matrix</Button> + <Button href="mailto:coderdojo_at_cyber4edu.org"><i class="ph-xl ph-envelope"></i> E-Mail</Button> +</div> + + diff --git a/src/pages/imprint.mdx b/src/pages/imprint.mdx new file mode 100644 index 0000000..9466235 --- /dev/null +++ b/src/pages/imprint.mdx @@ -0,0 +1,23 @@ +--- +title: Impressum +summary: Impressum für das CoderDojo. Bei Fragen oder Infos wende Dich bitte an die Betreiber. +showToc: false +layout: $layouts/Prose.astro +--- + +import DescriptionList from '$components/DescriptionList.astro'; + +# Impressum + +Die Inhalte von externen Links machen wir uns nicht zu eigen. + +Wenn Du Korrekturen oder Verbesserungsvorschläge hast - schreib uns bitte +einfach per E-Mail oder Matrix an. + +<DescriptionList title={"Betreiber"} items={[ +["<i class='ph-xl ph-users'></i>", "Verantwortliche", "Kai Kobschätzki (/bengoshi) und Michael Merz (/derMicha)"], +["<i class='ph-xl ph-house-simple'></i>", "Addresse", "Raabestraße 8, 10405 Berlin"], +["<i class='ph-xl ph-envelope'></i>", "E-Mail", "bengoshi ät cyber4edu pünktchen org"], +["<i class='ph-xl ph-phone'></i>", "Telefon", "+49 30 488 24 394"] +]} /> + diff --git a/src/pages/privacy.mdx b/src/pages/privacy.mdx index cae05d8..eec33d1 100644 --- a/src/pages/privacy.mdx +++ b/src/pages/privacy.mdx @@ -8,7 +8,7 @@ layout: $layouts/Prose.astro Im Folgenden informieren wir über die Erhebung personenbezogener Daten bei Nutzung unserer Website. Personenbezogene Daten sind alle Daten, die auf Dich persönlich beziehbar sind wie beispielsweise Name, Adresse, E-Mail-Adresse, Nutzerverhalten. -Verantwortlicher gemäß Art. 4 Abs. 7 EU-Datenschutz-Grundverordnung (DS-GVO) sind Joshua Kobschätzki, Raabestraße 8, 10405 Berlin, joshua `punk` kobschaetzki `@` disroot.org. +Verantwortlicher gemäß Art. 4 Abs. 7 EU-Datenschutz-Grundverordnung (DS-GVO) sind Joshua Kobschätzki, Raabestraße 8, 10405 Berlin, joshua `punk` kobschaetzki `@` cobalt.rocks. Bei einer Kontaktaufnahme mit uns per E-Mail werden die von Dir mitgeteilten Daten (Deine E-Mail-Adresse, gegebenenfalls Dein Name und Deine Telefonnummer) von uns gespeichert, um Deine Fragen zu beantworten. Die in diesem Zusammenhang anfallenden Daten löschen wir, nachdem die Speicherung nicht mehr erforderlich ist oder schränken die Verarbeitung ein, falls gesetzliche Aufbewahrungspflichten bestehen. -- GitLab From e5b6a7b528095beced26f1e93dbb497e0792148d Mon Sep 17 00:00:00 2001 From: Cobalt <cobalt@cobalt.rocks> Date: Tue, 6 Sep 2022 21:00:25 +0200 Subject: [PATCH 03/27] fix: Change to proper privacy policy --- src/pages/privacy.mdx | 101 ++++++++++++++++++++++++++++++------------ 1 file changed, 72 insertions(+), 29 deletions(-) diff --git a/src/pages/privacy.mdx b/src/pages/privacy.mdx index eec33d1..10a6495 100644 --- a/src/pages/privacy.mdx +++ b/src/pages/privacy.mdx @@ -4,64 +4,107 @@ description: Datenschutzerklärung für coderdojo.red und coderdojo.blue layout: $layouts/Prose.astro --- -# Datenschutzerklärung +Im Folgenden informieren wir über die Erhebung personenbezogener Daten bei Nutzung unserer Website. Personenbezogene +Daten sind alle Daten, die auf Dich persönlich beziehbar sind wie beispielsweise Name, Adresse, E-Mail-Adresse, +Nutzerverhalten. -Im Folgenden informieren wir über die Erhebung personenbezogener Daten bei Nutzung unserer Website. Personenbezogene Daten sind alle Daten, die auf Dich persönlich beziehbar sind wie beispielsweise Name, Adresse, E-Mail-Adresse, Nutzerverhalten. +Verantwortlicher gemäß Art. 4 Abs. 7 EU-Datenschutz-Grundverordnung (DS-GVO) sind Michael Merz und Kai Kobschätzki, +Raabestraße 8, 10405 Berlin, kontakt at dect-42 pünktchen de. -Verantwortlicher gemäß Art. 4 Abs. 7 EU-Datenschutz-Grundverordnung (DS-GVO) sind Joshua Kobschätzki, Raabestraße 8, 10405 Berlin, joshua `punk` kobschaetzki `@` cobalt.rocks. - -Bei einer Kontaktaufnahme mit uns per E-Mail werden die von Dir mitgeteilten Daten (Deine E-Mail-Adresse, gegebenenfalls Dein Name und Deine Telefonnummer) von uns gespeichert, um Deine Fragen zu beantworten. Die in diesem Zusammenhang anfallenden Daten löschen wir, nachdem die Speicherung nicht mehr erforderlich ist oder schränken die Verarbeitung ein, falls gesetzliche Aufbewahrungspflichten bestehen. +Bei einer Kontaktaufnahme mit uns per E-Mail werden die von Dir mitgeteilten Daten (Deine E-Mail-Adresse, gegebenenfalls +Dein Name und Deine Telefonnummer) von uns gespeichert, um Deine Fragen zu beantworten. Die in diesem Zusammenhang +anfallenden Daten löschen wir, nachdem die Speicherung nicht mehr erforderlich ist oder schränken die Verarbeitung ein, +falls gesetzliche Aufbewahrungspflichten bestehen. Ein Webanalyse-System ist nicht im Einsatz. Wir behalten uns vor, aus den Webserver-Logs Zugriffszahlen zu ermitteln. Der Webserver steht in Deutschland und befindet sich im Rechenzentrum eines deutschen Unternehmens. -Rechtsgrundlage für die Verarbeitung von reinen Besucherdaten ist Art. 6 Abs. 1 lit. f) DSGVO. Das ist die sog. Datenverarbeitung auf Basis einer Interessenabwägung. +Rechtsgrundlage für die Verarbeitung von reinen Besucherdaten ist Art. 6 Abs. 1 lit. f) DSGVO. Das ist die sog. +Datenverarbeitung auf Basis einer Interessenabwägung. Das Interesse des Verantwortlichen ist der sichere und funktionsfähige Betrieb dieser Website. ## Welche Daten werden verarbeitet? -_IP-Adressen_: Bei der bloß informatorischen Nutzung der Website erheben wir nur die personenbezogenen Daten, die Dein Browser an unseren Server übermittelt. Wenn Du unsere Website betrachten möchtest, erheben wir die folgenden Daten, die für uns technisch erforderlich sind, um Dir unsere Website anzuzeigen und die Stabilität und Sicherheit zu gewährleisten. Als Rechtsgrundlage stützen wir uns hierbei auf Art. 6 Abs. 1 S. 1 lit. f DS-GVO: - -- Besuchte Website -- Uhrzeit zum Zeitpunkt des Zugriffes -- Menge der gesendeten Daten in Byte -- Verwendeter Browser bzw. Zugriffsgerät -- Verwendete IP-Adresse - -Dabei werden auf dieser Website werden grundsätzlich keine vollständigen IP-Adressen von reinen Besuchern der Website gespeichert bzw. unverzüglich nach Ende der Nutzung der Website gelöscht (zu den Ausnahmen, s. u.). Auf Webserver-Ebene erfolgt dies dadurch, dass im Logfile (Access-Log und Error-Log) standardmäßig das letzte Oktett der IP-Adresse gelöscht wird. So wird aus der IPV4-Adresse „127.0.0.123“ z. B. die Adresse „127.0.0.1“ gespeichert wird. Ein analoges Verfahren wird auch bei IPV6 Adressen eingesetzt. Eine Herstellung eines Personenbezuges ist dann nicht mehr möglich. Regelhaft werden Daten über Zugriffe auf diese Seite erhoben und werden als „Server-Logfiles“ abgespeichert. Sie werden automatisiert nach vier Wochen gelöscht. +IP-Adressen Bei der bloß informatorischen Nutzung der Website erheben wir nur die personenbezogenen Daten, die Dein +Browser an unseren Server übermittelt. Wenn Du unsere Website betrachten möchtest, erheben wir die folgenden Daten, die +für uns technisch erforderlich sind, um Dir unsere Website anzuzeigen und die Stabilität und Sicherheit zu +gewährleisten. Als Rechtsgrundlage stützen wir uns hierbei auf Art. 6 Abs. 1 S. 1 lit. f DS-GVO: + +- Besuchte Website +- Uhrzeit zum Zeitpunkt des Zugriffes +- Menge der gesendeten Daten in Byte +- Quelle/Verweis, von welchem Sie auf die Seite gelangten +- Verwendeter Browser +- Verwendetes Betriebssystem +- Verwendete IP-Adresse + +Dabei werden auf dieser Website werden grundsätzlich keine vollständigen IP-Adressen von reinen Besuchern der Website +gespeichert bzw. unverzüglich nach Ende der Nutzung der Website gelöscht (zu den Ausnahmen, s.u.). Auf Webserver-Ebene +erfolgt dies dadurch, dass im Logfile (Access-Log und Error-Log) standardmäßig das letzte Oktett der IP-Adresse gelöscht +wird. So wird aus der IP-Adresse „127.0.0.123“ z.B. die Adresse „127.0.0.1„ gespeichert wird. Eine Herstellung eines +Personenbezuges ist dann nicht mehr möglich. Regelhaft werden Daten über Zugriffe auf diese Seite erhoben und werden als +„Server-Logfiles“ abgespeichert. Sie werden automatisiert nach sieben Tagen gelöscht. Zur Maskierung der IP-Adressen +setzen wir log-ipmask ein. + +Die Audio- und Videodatenen liegen zwar auf einem anderen Server. Dieser befindet sich aber ebenfalls in der EU und +speichert die gleichen Daten ab. ## Webanalyse Auf diesen Internetseiten findet derzeit keine Webanalyse statt. -Die Nutzung dieser Webseite ist in der Regel ohne Angabe personenbezogener Daten möglich. Soweit auf diesen Seiten personenbezogene Daten (beispielsweise Name, Anschrift oder E-Mail-Adressen) erhoben werden, erfolgt dies, soweit möglich, stets auf freiwilliger Basis. Diese Daten werden ohne ausdrückliche Zustimmung nicht an Dritte weitergegeben. +Die Nutzung dieser Webseite ist in der Regel ohne Angabe personenbezogener Daten möglich. Soweit auf diesen Seiten +personenbezogene Daten (beispielsweise Name, Anschrift oder eMail-Adressen) erhoben werden, erfolgt dies, soweit +möglich, stets auf freiwilliger Basis. Diese Daten werden ohne ausdrückliche Zustimmung nicht an Dritte weitergegeben. -Es wird darauf hingewiesen, dass die Datenübertragung im Internet (z. B. bei der Kommunikation per E-Mail) Sicherheitslücken aufweisen kann. Ein lückenloser Schutz der Daten vor dem Zugriff durch Dritte ist nicht möglich. +Es wird darauf hingewiesen, dass die Datenübertragung im Internet (z.B. bei der Kommunikation per E-Mail) +Sicherheitslücken aufweisen kann. Ein lückenloser Schutz der Daten vor dem Zugriff durch Dritte ist nicht möglich. -_E-Mail_: Wenn jemand eine E-Mail sendet, werden diese Daten gespeichert. Jeweils zum Jahresende wird geprüft, ob eine weitere Speicherung erforderlich ist oder Aufbewahrungspflichten für die E-Mails bestehen. Abhängig davon werden E-Mails weiter gespeichert oder gelöscht. +E-Mail Wenn jemand eine E-Mail sendet, werden diese Daten gespeichert. Jeweils zum Jahresende wird geprüft, ob eine +weitere Speicherung erforderlich ist oder Aufbewahrungspflichten für die E-Mails bestehen. Abhängig davon werden E-Mails +weiter gespeichert oder gelöscht. -Der Nutzung von im Rahmen der Impressumspflicht veröffentlichten Kontaktdaten durch Dritte zur Übersendung von nicht ausdrücklich angeforderter Werbung und Informationsmaterialien wird hiermit ausdrücklich widersprochen. Der Betreiber der Seiten behält sich ausdrücklich rechtliche Schritte im Falle der unverlangten Zusendung von Werbeinformationen, etwa durch Spam-Mails, vor. +Der Nutzung von im Rahmen der Impressumspflicht veröffentlichten Kontaktdaten durch Dritte zur Übersendung von nicht +ausdrücklich angeforderter Werbung und Informationsmaterialien wird hiermit ausdrücklich widersprochen. Der Betreiber +der Seiten behält sich ausdrücklich rechtliche Schritte im Falle der unverlangten Zusendung von Werbeinformationen, etwa +durch Spam-Mails, vor. -Die Rechte als Betroffene/r Jede/r der diese Seite aufruft, hat das Recht auf Auskunft über die ihn/sie betreffenden personenbezogenen Daten. Eine Auskunft wird jederzeit gegeben. +Die Rechte als Betroffene/r Jede/r der diese Seite aufruft, hat das Recht auf Auskunft über die ihn/sie betreffenden +personenbezogenen Daten. Eine Auskunft wird jederzeit gegeben. -Bei einer Auskunftsanfrage, die nicht schriftlich erfolgt und die nicht anderweitig sicher verifiziert werden kann, musst damit gerechnet werden, dass Rückfragen bezüglich der Identität der nachfragenden Person erfolgen. Es muss sichergestellt werden, dass die Person die anfragt auch diese Person ist. +Bei einer Auskunftsanfrage, die nicht schriftlich erfolgt und die nicht anderweitig sicher verifiziert werden kann, +musst damit gerechnet werden, dass Rückfragen bezüglich der Identität der nachfragenden Person erfolgen. Es muss sicher +gestellt werden, dass die Person die anfragt auch diese Person ist. -Ferner hat jede/r ein Recht auf Berichtigung oder Löschung oder auf Einschränkung der Verarbeitung, soweit der Person dies gesetzlich zusteht. +Ferner hat jede/r ein Recht auf Berichtigung oder Löschung oder auf Einschränkung der Verarbeitung, soweit der Person +dies gesetzlich zusteht. -Schließlich hat jede natürliche Person ein Widerspruchsrecht gegen die Verarbeitung im Rahmen der gesetzlichen Vorgaben. Insbesondere wenn ein Widerspruchsrecht gegen eine Verarbeitung dieser Daten auf Basis der Interessenabwägung geltend gemacht werden, muss damit gerechnet werden, dass dies genau geprüft wird. Die Interessenabwägungen wurden hier sorgfältig vorgenommen. Also den Art. 21 DSGVO bitte genau lesen und damit rechnen, dass auch hier Nachfragen zur „besonderen Situation“ i.S.d. Art. 21 Abs.1 DSGVO gestellt werden. +Schließlich hat jede natürliche Person ein Widerspruchsrecht gegen die Verarbeitung im Rahmen der gesetzlichen Vorgaben. +Insbesondere wenn ein Widerspruchsrecht gegen eine Verarbeitung dieser Daten auf Basis der Interessenabwägung geltend +gemacht werden, muss damit gerechnet werden, dass dies genau geprüft wird. Die Interessenabwägungen wurden hier +sorgfältig vorgenommen. Also den Art. 21 DSGVO bitte genau lesen und damit rechnen, dass auch hier Nachfragen zur +„besonderen Situation“ i.S.d. Art. 21 Abs.1 DSGVO gestellt werden. -Natürlich hat jede natürliche Person auch ein Recht auf Datenübertragbarkeit. Auch hier gilt, dass dies nur im Rahmen der gesetzlichen Vorgaben gewährt wird. Löschung von Daten personenbezogene Daten werden grundsätzlich dann gelöscht, wenn kein Erfordernis für eine weitere Speicherung besteht. Ein Erfordernis kann insbesondere dann bestehen, wenn die Daten noch benötigt werden, um vertragliche Leistungen zur erfüllen, Gewährleistungs- und ggf. Garantieansprüche prüfen und gewähren oder abwehren zu können. Im Falle von gesetzlichen Aufbewahrungspflichten kommt eine Löschung erst nach Ablauf der jeweiligen Aufbewahrungspflicht in Betracht. +Natürlich hat jede natürliche Person auch ein Recht auf Datenübertragbarkeit. Auch hier gilt, dass dies nur im Rahmen +der gesetzlichen Vorgaben gewährt wird. Löschung von Daten Personenbezogene Daten werden grundsätzlich dann gelöscht, +wenn kein Erfordernis für eine weitere Speicherung besteht. Ein Erfordernis kann insbesondere dann bestehen, wenn die +Daten noch benötigt werden, um vertragliche Leistungen zur erfüllen, Gewährleistungs- und ggf. Garantieansprüche prüfen +und gewähren oder abwehren zu können. Im Falle von gesetzlichen Aufbewahrungspflichten kommt eine Löschung erst nach +Ablauf der jeweiligen Aufbewahrungspflicht in Betracht. -Eine Löschung kommt nicht in Betracht, wenn ggf. ein Vertragsverhältnis noch nicht vollständig beendet ist. Das kann z.B. dann der Fall sein, wenn noch Forderungen bestehen. +Eine Löschung kommt nicht in Betracht, wenn ggf. ein Vertragsverhältnis noch nicht vollständig beendet ist. Das kann +z.B. dann der Fall sein, wenn noch Forderungen bestehen. -Beschwerderecht bei einer Aufsichtsbehörde jede natürliche Person hat das Recht, sich über die Verarbeitung personenbezogener Daten durch den Seitenbetreiber bei einer Aufsichtsbehörde für den Datenschutz zu beschweren. +Beschwerderecht bei einer Aufsichtsbehörde Jede natürliche Person hat das Recht, sich über die Verarbeitung +personenbezogener Daten durch den Seitenbetreiber bei einer Aufsichtsbehörde für den Datenschutz zu beschweren. -Änderung dieser Datenschutzhinweise diese Datenschutzhinweise werden bei Änderungen an dieser Internetseite oder bei sonstigen Anlässen, die dies erforderlich machen, verändert. Die jeweils aktuelle Fassung ist stets auf dieser Internetseite zu finden. +Änderung dieser Datenschutzhinweise Diese Datenschutzhinweise werden bei Änderungen an dieser Internetseite oder bei +sonstigen Anlässen, die dies erforderlich machen, verändert. Die jeweils aktuelle Fassung ist stets auf dieser +Internetseite zu finden. ## Cookie-Erklärung -Die öffentliche GitLab Instanz unter [gitlab.cobalt.rocks](https://gitlab.cobalt.rocks), sowie die öffentliche Nextcloud Instanz unter [nextcloud.cobalt.rocks](https://nextcloud.cobalt.rocks), verwenden Cookies und andere Technologien zur Identifizierung von Nutzern durch das Speichern von Daten auf dem Rechner des Nutzers, nur für notwendige Anwendungsfälle, wie die Authentifikation eines Nutzers mit dem Server beim Verbindungsaufbau, und um Missbrauch durch u. a. CSRF-Attacken zu vermeiden. Es wird keine Analyse des Nutzerverhaltens o. Ä. mit diesen Daten durchgeführt. +Wir verwenden eine statische Seite ohne Cookies. -Die statische Seite unter [cobalt.rocks](https://cobalt.rocks) verwendet keine Cookies oder andere Technologien, welche Informationen auf dem Computer des Nutzers speichern. -- GitLab From 791d9f07d9bde27218fc96d31ebeedba09b3efc8 Mon Sep 17 00:00:00 2001 From: Cobalt <cobalt@cobalt.rocks> Date: Tue, 6 Sep 2022 21:01:43 +0200 Subject: [PATCH 04/27] feat: Add 401 and 500 error pages --- src/pages/401.astro | 8 ++++++++ src/pages/500.astro | 8 ++++++++ 2 files changed, 16 insertions(+) create mode 100644 src/pages/401.astro create mode 100644 src/pages/500.astro diff --git a/src/pages/401.astro b/src/pages/401.astro new file mode 100644 index 0000000..59ca577 --- /dev/null +++ b/src/pages/401.astro @@ -0,0 +1,8 @@ +--- +import Base from "$layouts/Page.astro"; +import WIP from "$components/WIP.astro"; +--- + +<Base title={"401 Forbidden"}> + <WIP /> +</Base> diff --git a/src/pages/500.astro b/src/pages/500.astro new file mode 100644 index 0000000..b86663d --- /dev/null +++ b/src/pages/500.astro @@ -0,0 +1,8 @@ +--- +import Base from "$layouts/Page.astro"; +import WIP from "$components/WIP.astro"; +--- + +<Base title={"500 Internal Error"}> + <WIP /> +</Base> -- GitLab From 331c4ea9282932917bf9ee9fab531fa5d7076a9a Mon Sep 17 00:00:00 2001 From: Cobalt <cobalt@cobalt.rocks> Date: Tue, 6 Sep 2022 21:04:03 +0200 Subject: [PATCH 05/27] chore: Migrate news/featured and news/rc3 --- src/pages/posts/news/featured.mdx | 3 --- src/pages/posts/news/rc3.mdx | 4 +--- 2 files changed, 1 insertion(+), 6 deletions(-) diff --git a/src/pages/posts/news/featured.mdx b/src/pages/posts/news/featured.mdx index ae6df7c..c10ab84 100644 --- a/src/pages/posts/news/featured.mdx +++ b/src/pages/posts/news/featured.mdx @@ -2,15 +2,12 @@ title: "Willkommen zum Coderdojo Red and Blue" date: 2021-07-03 updated: 2021-07-03 -slug: "introduction-red-and-blue" lang: "de" showToc: false description: "Willkommen zum Coderdojo Red and Blue Berlin für Jugendliche." layout: "$layouts/Prose.astro" --- - - # Willkommen zum Coderdojo Red and Blue Willkommen beim CoderDojo für Jugendliche! Wir sitzen zwar in Berlin, aber da bei uns vieles online stattfindet, kannst diff --git a/src/pages/posts/news/rc3.mdx b/src/pages/posts/news/rc3.mdx index 2fe05f3..bda7072 100644 --- a/src/pages/posts/news/rc3.mdx +++ b/src/pages/posts/news/rc3.mdx @@ -7,9 +7,7 @@ description: "remote congress rc3" layout: "$layouts/Prose.astro" --- - - -<script lang="ts">import Figure from '$lib/components/Figure.svelte';</script> +import Figure from '$components/Figure.astro'; # Man müsste ~~Klavier spielen~~ Programmieren können... -- GitLab From f1b4c2e1ee6a25c47c0add09c69aeb18ed2aa4e7 Mon Sep 17 00:00:00 2001 From: Cobalt <cobalt@cobalt.rocks> Date: Tue, 6 Sep 2022 21:45:31 +0200 Subject: [PATCH 06/27] mig: Fixup some typing --- package.json | 3 +- src/components/Avatar.astro | 28 +++ src/components/Avatar.svelte | 16 -- src/components/{Belt.svelte => Belt.astro} | 21 ++- src/components/Button.astro | 26 +++ src/components/Figure.astro | 2 +- src/components/Meta.astro | 1 - src/components/NewsCard.astro | 2 +- src/components/Placeholder.astro | 4 +- src/components/TocList.astro | 8 +- src/layouts/Base.astro | 4 +- src/layouts/Page.astro | 54 +----- src/layouts/Prose.astro | 1 + src/lib/toc-loader.ts | 42 ----- src/lib/toc.js | 199 --------------------- src/pages/about.mdx | 2 +- src/pages/contact.mdx | 2 +- src/pages/index.astro | 2 +- src/pages/posts/kyus.astro | 12 +- src/pages/posts/news/index.astro | 4 +- 20 files changed, 96 insertions(+), 337 deletions(-) create mode 100644 src/components/Avatar.astro delete mode 100644 src/components/Avatar.svelte rename src/components/{Belt.svelte => Belt.astro} (86%) create mode 100644 src/components/Button.astro delete mode 100644 src/lib/toc-loader.ts delete mode 100644 src/lib/toc.js diff --git a/package.json b/package.json index 9a912fa..d0d1f6e 100644 --- a/package.json +++ b/package.json @@ -4,7 +4,8 @@ "private": true, "scripts": { "dev": "cross-env TELEMETRY_DISABLED=1 ASTRO_TELEMETRY_DISABLED=1 NODE_ENV=dev astro dev", - "build": "cross-env TELEMETRY_DISABLED=1 ASTRO_TELEMETRY_DISABLED=1 NODE_ENV=dev astro check && tsc --noEmit && cross-env TELEMETRY_DISABLED=1 ASTRO_TELEMETRY_DISABLED=1 NODE_ENV=prod astro build", + "build": "cross-env TELEMETRY_DISABLED=1 ASTRO_TELEMETRY_DISABLED=1 NODE_ENV=dev astro check && cross-env TELEMETRY_DISABLED=1 ASTRO_TELEMETRY_DISABLED=1 NODE_ENV=prod astro build", + "check:tsc": "tsc --noEmit", "lint": "prettier --ignore-path .gitignore --check --plugin-search-dir=. .", "format": "prettier --ignore-path .gitignore --write --plugin-search-dir=. .", "preview": "cross-env TELEMETRY_DISABLED=1 ASTRO_TELEMETRY_DISABLED=1 NODE_ENV=prod astro preview" diff --git a/src/components/Avatar.astro b/src/components/Avatar.astro new file mode 100644 index 0000000..8efcc16 --- /dev/null +++ b/src/components/Avatar.astro @@ -0,0 +1,28 @@ +--- +import { Picture } from "@astrojs/image/components"; + +export interface Props { + src: string; + alt: string; + float: "left" | "right" | undefined; +} + +const { src, alt, float } = Astro.props; +--- + +<div + class:list={[ + { + "max-w-full": !float, + flex: !float, + "justify-center": !float, + "md:float-left": float === "left", + "md:float-right": float === "right", + }, + "hidden", + "md:inline-flex", + ]} +> + <Picture {src} {alt} class="rounded m-2 ring-2 ring-slate-500 max-w-[20rem]" + /> +</div> diff --git a/src/components/Avatar.svelte b/src/components/Avatar.svelte deleted file mode 100644 index 0f08921..0000000 --- a/src/components/Avatar.svelte +++ /dev/null @@ -1,16 +0,0 @@ -<script lang="ts"> - export let src: string; - export let alt: string; - export let float: "left" | "right" | undefined; -</script> - -<div - class:max-w-full={!float} - class:d-flex={!float} - class:justify-content-center={!float} - class:md:float-left={float === "left"} - class:md:float-right={float === "right"} - class="hidden md:inline-flex" -> - <img {src} {alt} class="rounded m-2 ring-2 ring-slate-500 max-w-[20rem]" /> -</div> diff --git a/src/components/Belt.svelte b/src/components/Belt.astro similarity index 86% rename from src/components/Belt.svelte rename to src/components/Belt.astro index 7c78c6a..52d8597 100644 --- a/src/components/Belt.svelte +++ b/src/components/Belt.astro @@ -1,9 +1,18 @@ -<script lang="ts"> - export let fill: string; - export let stroke = "none"; - export let stroke_width = 2; - export let svg_class = "w-8 h-8 mx-2"; -</script> +--- +export interface Props { + fill: string; + stroke?: string; + stroke_width?: string; + svg_class?: string; +} + +const { + fill, + stroke = "theme", + stroke_width = "2", + svg_class = "w-8 h-8 mx-2" +} = Astro.props; +--- <svg version="1.0" diff --git a/src/components/Button.astro b/src/components/Button.astro new file mode 100644 index 0000000..f5ea2f5 --- /dev/null +++ b/src/components/Button.astro @@ -0,0 +1,26 @@ +--- +export interface Props { + href: string; + color?: "theme" | "theme-neutral" | "secondary"; + size?: "small" | "small-icon" | "medium"; + opacity?: number; + hoverable?: boolean; +} + +const { + href, + color = "theme", + size = "medium", + opacity = 1.0, + hoverable = false, +} = Astro.props; +--- + +<a + href={href} + class={`button button-${color} button-${size} not-prose`} + style={`--tw-bg-opacity: ${opacity};`} + class:button-hoverable={hoverable} +> + <slot /> +</a> diff --git a/src/components/Figure.astro b/src/components/Figure.astro index fda4278..5b18a86 100644 --- a/src/components/Figure.astro +++ b/src/components/Figure.astro @@ -17,7 +17,7 @@ const { src, alt, float = undefined, caption = true } = Astro.props; ]} > <figure class="my-0 inline-block bg-transparent px-2"> - <img {src} {alt} /> + <Picture {src} {alt} /> {caption && <figcaption class="text-end text-sm">{alt}</figcaption>} </figure> </div> diff --git a/src/components/Meta.astro b/src/components/Meta.astro index cc8187b..488f70d 100644 --- a/src/components/Meta.astro +++ b/src/components/Meta.astro @@ -1,5 +1,4 @@ --- -import { SITE } from "$lib/config"; import { getImage } from "@astrojs/image"; import { base_description } from "$lib/constants"; import favicon from "../assets/images/favicon.ico"; diff --git a/src/components/NewsCard.astro b/src/components/NewsCard.astro index 9e50af9..189ce52 100644 --- a/src/components/NewsCard.astro +++ b/src/components/NewsCard.astro @@ -19,7 +19,7 @@ const { href, description, title, date } = Astro.props; <div class="flex items-center justify-between flex-wrap mt-auto w-full"> <a class="flex py-1 px-2 justify-between no-underline text-slate-100 hover:text-slate-100 focus:outline-none transition-all ease-in-out duration-500 rounded bg-theme hover:bg-theme-dark items-center gap-2 hover:gap-3" - href="{href}" + href={href} > Lese mehr <i class="ph-xl ph-arrow-right"></i> diff --git a/src/components/Placeholder.astro b/src/components/Placeholder.astro index 36538c1..4c448d9 100644 --- a/src/components/Placeholder.astro +++ b/src/components/Placeholder.astro @@ -1,8 +1,8 @@ -A file that contains placeholders for classes that are not detected by tailwind CSS JIT -This is required since some sources, like hastHH, +<!-- A file that contains placeholders for classes that are not detected by tailwind CSS JIT --> <div class="flex flex-col"></div> +<div class="max-w-full justify-center md:float-left md:float-right md:inline-flex hidden"></div> <div class="button button-theme button-hoverable button-small-icon button-medium button-theme-neutral button-secondary"> <a/> diff --git a/src/components/TocList.astro b/src/components/TocList.astro index f816400..732d6fe 100644 --- a/src/components/TocList.astro +++ b/src/components/TocList.astro @@ -9,6 +9,12 @@ const { url, headings } = Astro.props; <div class="toc-dropdown"> <ol class="toc-list-standalone"> - {headings.map(([heading, id]) => <li><a href="{url}#{id}">{heading}</a></li>)} + { + headings.map(([heading, id]) => ( + <li> + <a href={`${url}#${id}`}>{heading}</a> + </li> + )) + } </ol> </div> diff --git a/src/layouts/Base.astro b/src/layouts/Base.astro index afccd94..81b7074 100644 --- a/src/layouts/Base.astro +++ b/src/layouts/Base.astro @@ -5,9 +5,7 @@ import Meta from "$components/Meta.astro"; import Navbar from "$components/Navbar.svelte"; import Footer from "$components/Footer.astro"; -const { meta = {} } = Astro.props; - -let title; +let title: string; if (Astro.props.frontmatter !== undefined) { title = Astro.props.frontmatter.title; } else if (Astro.props.title !== undefined) { diff --git a/src/layouts/Page.astro b/src/layouts/Page.astro index fe72893..7dd694b 100644 --- a/src/layouts/Page.astro +++ b/src/layouts/Page.astro @@ -1,60 +1,8 @@ --- import Base from "./Base.astro"; -import Button from "../components/Button.svelte"; +import Button from "$components/Button.astro"; --- -<!-- - {#if prose} - {#if toc} - <div class="toc-container"> - <div class="p-2 md:px-6 md:py-4"> - <div class="font-bold text-xl tracking-wide">{title}</div> - - <div class="toc-inner-container"> - {#if toclist} - <TocList headings={toc} /> - {:else} - {#each toc as [entryFilename, firstHeading, headings, targetUrl]} - <TocDropdown - collapsed={entryFilename !== filename} - active={entryFilename === filename} - {headings} - {firstHeading} - {targetUrl} - /> - {/each} - {/if} - </div> - </div> - </div> - {/if} - - <div class="flex-grow"> - <div class="prose lg:prose-lg prose-slate prose-extension"> - <slot /> - - {#if next} - <div class="flex justify-center"> - <Button href={next} hoverable={true}> - Weiter <ArrowRight size={24} /> - </Button> - </div> - {/if} - </div> - </div> - {:else} - <slot /> - - {#if next} - <div class="flex justify-center"> - <Button href={next} hoverable={true}> - Weiter <ArrowRight size={24} /> - </Button> - </div> - {/if} - {/if} - </div> ---><!DOCTYPE html> <Base title={Astro.props.frontmatter !== undefined ? Astro.props.frontmatter.title diff --git a/src/layouts/Prose.astro b/src/layouts/Prose.astro index 3336dad..1140381 100644 --- a/src/layouts/Prose.astro +++ b/src/layouts/Prose.astro @@ -1,5 +1,6 @@ --- import Base from "./Base.astro"; +import Button from "$components/Button.astro"; --- <Base diff --git a/src/lib/toc-loader.ts b/src/lib/toc-loader.ts deleted file mode 100644 index b2a9a17..0000000 --- a/src/lib/toc-loader.ts +++ /dev/null @@ -1,42 +0,0 @@ -export const loadTOC = (toccache: { - [key: string]: { - [key: string]: { - headings: string[]; - data: string; - }; - }; -}) => { - if (title === undefined || toccache[title] === undefined || !showToc) { - return [null, null, null]; - } - - // in case only one file is associated with the title -> use toclist - const keys = Object.keys(toccache[title]); - if (keys.length === 1) { - return [true, toccache[title][keys[0]].headings, null]; - } - - // extract entries with headings from cache - const entries = Object.entries(toccache[title]).filter( - ([_, data]) => data.headings.length > 0 - ); - - // otherwise use full-blown tocdropdown - return [ - false, - entries - // extract first headline and transform into easily renderable format - .map(([entryfilename, data]) => { - return [entryfilename, data.headings.shift(), data.headings, data.path]; - }), - entries - // extract filename and original index in entries - .map(([entryfilename, _], idx) => [entryfilename, idx]) - // find current entry - this should leave only one - .filter(([entryfilename, _]) => entryfilename === filename) - // map current entry optionally to next - .map(([_, idx]) => - entries.length > idx + 1 ? entries[idx + 1][1].path : null - )[0], - ]; -}; diff --git a/src/lib/toc.js b/src/lib/toc.js deleted file mode 100644 index 89302b3..0000000 --- a/src/lib/toc.js +++ /dev/null @@ -1,199 +0,0 @@ -import { readFileSync, writeFileSync, readdirSync, statSync } from "fs"; -import { visit } from "unist-util-visit"; -import { join as joinPath, dirname, basename } from "path"; -import { toString } from "mdast-util-to-string"; -import { unified } from "unified"; -import remarkParse from "remark-parse"; -import remarkSlug from "remark-slug"; - -// toc cache for all posts -// each post entry will be generated once a post of the diretory is being rendered -// structure: { [title]: { [filename]: { mtime: float, headings: [string, string][] } } } -const TocFile = "./src/.toc-cache.json"; - -// Regexps for routeMapper -// extracts both the dir after src/routes/ as well as the filename from the absolute file path -const srcRegex = /src[\\//]routes(?<path>[\\/].*[\\/]?)(?<filename>.*\.md)/; - -/** - * converts path to basic route (prone to errors) - * @param {string} path - * @return {string} - * */ -function routeMapper(path) { - // WARNING: This is not strictly adhering to sveltekits router (I couldn't find the sluggify algorithm) and may be prone to errors - // trace path back to src root - - // we are assuming that this will always match ... since otherwise the routing would have changed - const urlParts = srcRegex.exec(path).groups; - let url = urlParts.path; - - // all routes except index will need their filename attached to the url - if (urlParts.filename !== "index.md") { - url += urlParts.filename.replace(".md", ""); - } - - return url; -} - -/** - * collects all headings from a markdown file and extract [heading, id] - * @type {import('unified').Plugin<[], import('mdast').Root>} - * */ -function tocCompiler() { - /** - * use tocCompiler to fetch headings - * @type {import('unified').Compiler<Node<any>, [string, string][]>} - */ - this.Compiler = (tree) => { - /** @type{[string, string][]} */ - const headlines = []; - - visit(tree, "heading", (node) => { - if (node.depth <= 3) { - headlines.push([toString(node), node.data.id]); - } - }); - - return headlines; - }; -} - -// Regexps for fetching frontmatter titles from a markdown file -const FrontmatterRegex = /^\+{3}\n(?<frontmatter>[^+]*)\+{3}$/m; -const TitleRegex = /^title *= *["'](?<title>.+)['"] *$/m; - -/** - * use tocCompiler to fetch headings - * @param {string} content - * @return {[string, string][]} - */ -function collectSluggedHeadings(content) { - return unified() - .use(remarkParse) - .use(remarkSlug) - .use(tocCompiler) - .processSync(content).result; -} - -/** @type {import('unified').Plugin<[], import('mdast').Root>} */ -function tocPlugin() { - return (_, file) => { - // only entries with a title are elligable to have a TOC - if (file.data.fm !== undefined && file.data.fm.title !== undefined) { - // inject filename in data (used to identify current page when rendering toc) - file.data.fm.filename = basename(file.filename); - - // parametes for checking cache - // eslint-disable-next-line @typescript-eslint/no-unsafe-argument - const dir = dirname(file.filename); - /** @type{{title: string}} */ - const { title } = file.data.fm; - - /** @@type{{[key: string]: {[key: string]: {mtime: number, headings: [string, string][], path: string}}}} */ - // load or create toc cache - let toc; - try { - // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment - toc = JSON.parse(readFileSync(TocFile)); - } catch (e) { - toc = {}; - } - - // ensure title is defined in the toc cache - if (toc[title] === undefined) { - toc[title] = {}; - } - - // save all keys that need to be processed - const keys = Object.keys(toc[title]); - let modifiedCounter = 0; - - // check mtime on all files in diretory - readdirSync(dir, { encoding: "utf8" }) - // extract full path and filename - .map((path) => [joinPath(dir, path), basename(path)]) - // filter out all non-markdown files - .filter((bundled_path) => bundled_path[0].endsWith(".md")) - // check entries agains keys - .map(([path, name]) => { - const idx = keys.indexOf(name); - if (idx === -1) { - // if not part of the cache, add to modified (i.e., add new file) - return [path, name, statSync(path).mtimeMs]; - } - - // if in cache, remove from cache and check if modified - keys.splice(idx, 1); - const sync = statSync(path).mtimeMs; - - if ( - toc[title][name].mtime !== sync || - !toc[title][name].headings === {} - ) { - return [path, name, sync]; - } - - return null; - }) - // filter out all unmodified entries - .filter((value) => value !== null) - // sort by filename (will always prefer index.md as the lowest member) - .sort((a, b) => { - // prefer index.md - if (a[1] === "index.md") { - return -1; - } - - if (b[1] === "index.md") { - return 1; - } - - // otherwise sort by filename (asc) - if (a[1] > b[1]) { - return 1; - } - - return a[1] === b[1] ? 0 : -1; - }) - // update toc for all new or modified files - .forEach(([path, name, mtime]) => { - const content = readFileSync(path).toString(); - const frontmatter = FrontmatterRegex.exec(content); - - if (frontmatter !== null) { - const frontmatterTitle = TitleRegex.exec( - frontmatter.groups.frontmatter - ); - - if ( - frontmatterTitle !== null && - frontmatterTitle.groups.title === title - ) { - toc[title][name] = { - headings: collectSluggedHeadings(content), - mtime, - path: routeMapper(path), - }; - } - } - - modifiedCounter += 1; - }); - - // remove all unused keys (all keys remaining in `keys`) - keys.forEach((key) => { - delete toc[title][key]; - - modifiedCounter += 1; - }); - - // if any files were modified, save in cache - if (modifiedCounter !== 0) { - writeFileSync(TocFile, JSON.stringify(toc)); - } - } - }; -} - -export { tocPlugin, routeMapper, TitleRegex, FrontmatterRegex }; diff --git a/src/pages/about.mdx b/src/pages/about.mdx index 23267aa..2e8c459 100644 --- a/src/pages/about.mdx +++ b/src/pages/about.mdx @@ -5,7 +5,7 @@ layout: "$layouts/Prose.astro" --- import Avatar from "$components/Avatar.svelte"; -import Button from "$components/Button.svelte"; +import Button from "$components/Button.astro"; # Mentoren diff --git a/src/pages/contact.mdx b/src/pages/contact.mdx index 04ed4a6..4ebe3a0 100644 --- a/src/pages/contact.mdx +++ b/src/pages/contact.mdx @@ -4,7 +4,7 @@ showToc: false layout: $layouts/Prose.astro --- -import Button from '$components/Button.svelte'; +import Button from '$components/Button.astro'; # Kontakt diff --git a/src/pages/index.astro b/src/pages/index.astro index 95d33a1..7dc738a 100644 --- a/src/pages/index.astro +++ b/src/pages/index.astro @@ -1,6 +1,6 @@ --- import BaseLayout from "../layouts/Page.astro"; -import Button from "../components/Button.svelte"; +import Button from "../components/Button.astro"; --- <!-- <Meta title={"Willkomen zum CoderDōjō"} /> --> diff --git a/src/pages/posts/kyus.astro b/src/pages/posts/kyus.astro index 6299609..966d894 100644 --- a/src/pages/posts/kyus.astro +++ b/src/pages/posts/kyus.astro @@ -1,7 +1,7 @@ --- -import Button from "$components/Button.svelte"; -import Base from "../../layouts/Base.astro"; -import Belt from "../../components/Belt.svelte"; +import Button from "$components/Button.astro"; +import Base from "$layouts/Base.astro"; +import Belt from "$components/Belt.astro"; const meta: [number, string, string, string, string][] = [ [ @@ -31,9 +31,9 @@ const meta: [number, string, string, string, string][] = [ <h2 class="sm:text-3xl text-2xl font-medium mt-4 flex flex-row gap-3 md:gap-6 justify-center items-center"> <span class="bg-theme p-2 rounded"> <Belt - {fill} + fill={fill} stroke="black" - stroke-width="5pt" + stroke_width="5pt" svg_class="h-4 w-4 md:w-6 md:h-6" /> </span> @@ -43,7 +43,7 @@ const meta: [number, string, string, string, string][] = [ <p class="leading-relaxed text-lg">{description}</p> <div class="flex flex-row justify-center flex-start"> - <Button {href}> + <Button href={href}> Zum {count}. Kyo <i class="ph-arrow ph-xl" /> </Button> </div> diff --git a/src/pages/posts/news/index.astro b/src/pages/posts/news/index.astro index dd8c63a..d2ea081 100644 --- a/src/pages/posts/news/index.astro +++ b/src/pages/posts/news/index.astro @@ -8,7 +8,7 @@ const news: [string, string, string, string][] = await Astro.glob( files .map((file) => [file, file.frontmatter]) .filter( - ([file, frontmatter]) => + ([_, frontmatter]) => frontmatter.date !== undefined && frontmatter.title !== undefined && frontmatter.description !== undefined @@ -37,7 +37,7 @@ const news: [string, string, string, string][] = await Astro.glob( <div class="grid w-full grid-flow-row grid-cols-1 gap-2 md:grid-cols-2"> { news.map(([href, title, date, description]) => ( - <NewsCard {title} {href} {description} {date} /> + <NewsCard title={title} href={href} description={description} date={date} /> )) } </div> -- GitLab From b0f619e8b00cf088e59842d8ebb93903e036c4e5 Mon Sep 17 00:00:00 2001 From: Cobalt <cobalt@cobalt.rocks> Date: Thu, 8 Sep 2022 14:22:27 +0200 Subject: [PATCH 07/27] feat: Add workshops / Add kyus / Add TOC / Add Prism --- astro.config.ts | 32 +- package.json | 9 +- pnpm-lock.yaml | 1007 +---------------- src/assets/styles/styles/components.css | 20 +- src/components/Audio.svelte | 30 + src/components/Avatar.astro | 5 +- src/components/DescriptionList.astro | 1 - src/components/Figure.astro | 30 +- src/components/Meta.astro | 41 +- src/components/Placeholder.astro | 1 + src/components/TocDropdown.svelte | 15 +- src/components/TocList.astro | 7 +- src/layouts/Base.astro | 131 ++- src/layouts/Page.astro | 18 +- src/layouts/Prose.astro | 79 +- src/lib/admonition-shim.js | 1 - src/lib/icons.js | 13 + src/lib/prism.js | 100 ++ src/pages/about.mdx | 2 +- src/pages/posts/dojo.mdx | 200 ++++ src/pages/posts/kyo-6/01-pygame.mdx | 15 +- .../posts/kyo-6/02-kultur-2-netzwerk.mdx | 4 +- src/pages/posts/kyo-6/03-git-2-mqtt.mdx | 4 +- src/pages/posts/kyo-6/04-loeten.mdx | 6 +- src/pages/posts/kyo-6/index.mdx | 12 +- src/pages/posts/kyo-7/01-schleifen.mdx | 4 +- src/pages/posts/kyo-7/02-variablennamen.mdx | 4 - src/pages/posts/kyo-7/03-rechnen.mdx | 4 - src/pages/posts/kyo-7/04-eingaben.mdx | 4 - src/pages/posts/kyo-7/05-bedingungen.mdx | 4 - src/pages/posts/kyo-7/06-variablentypen.mdx | 4 +- src/pages/posts/kyo-7/07-browser.mdx | 4 +- src/pages/posts/kyo-7/08-schleifen-binden.mdx | 4 - src/pages/posts/kyo-7/09-debugger.mdx | 4 +- src/pages/posts/kyo-7/10-loeten.mdx | 4 +- src/pages/posts/kyo-7/11-listen.mdx | 4 +- src/pages/posts/kyo-7/12-kultur.mdx | 4 +- src/pages/posts/kyo-7/13-funtionen.mdx | 4 +- src/pages/posts/kyo-7/14-exceptions.mdx | 4 - src/pages/posts/kyo-7/15-html.mdx | 4 - src/pages/posts/kyo-7/16-hilfen.mdx | 8 +- src/pages/posts/kyo-7/17-gurtpruefung.mdx | 4 - src/pages/posts/kyo-7/18-zusammenfassung.mdx | 7 +- src/pages/posts/kyus.astro | 2 +- src/pages/posts/news/index.astro | 14 +- src/pages/posts/workshops/html.mdx | 6 +- src/pages/posts/workshops/index.mdx | 3 - src/pages/posts/workshops/python.mdx | 6 +- 48 files changed, 703 insertions(+), 1190 deletions(-) create mode 100644 src/components/Audio.svelte create mode 100644 src/lib/icons.js create mode 100644 src/lib/prism.js diff --git a/astro.config.ts b/astro.config.ts index 6e1c7e0..81276fd 100644 --- a/astro.config.ts +++ b/astro.config.ts @@ -2,10 +2,10 @@ import { defineConfig } from "astro/config"; import tailwind from "@astrojs/tailwind"; import svelte from "@astrojs/svelte"; import sitemap from "@astrojs/sitemap"; -import image from "@astrojs/image"; import { SITE } from "./src/lib/config"; import remarkMath from "remark-math"; import { admonitionPlugin } from "./src/lib/admonition-shim.js"; +import { codetitlePlugin } from "./src/lib/prism.js"; import remarkSlug from "remark-slug"; import remarkDirectives from "remark-directive"; import remarkGfm from "remark-gfm"; @@ -16,16 +16,34 @@ import remarkFrontmatter from "remark-frontmatter"; import remarkMdxFrontmatter from "remark-mdx-frontmatter"; import mdx from "@astrojs/mdx"; - // https://astro.build/config export default defineConfig({ // passthrough domain for current build target site: SITE.domain, // all the sweet integrations - integrations: [tailwind(), svelte(), sitemap(), mdx({ - remarkPlugins: [remarkFrontmatter, remarkMdxFrontmatter, remarkSmartpants, remarkGfm, remarkDirectives, admonitionPlugin, remarkMath, remarkSlug], - rehypePlugins: [rehypeKatex, rehypeAutolinkHeadings] - }), image()], + integrations: [ + tailwind(), + svelte(), + sitemap(), + mdx({ + remarkPlugins: [ + remarkFrontmatter, + remarkMdxFrontmatter, + remarkSmartpants, + remarkGfm, + remarkDirectives, + admonitionPlugin, + codetitlePlugin, + remarkMath, + remarkSlug, + ], + rehypePlugins: [rehypeKatex, rehypeAutolinkHeadings], + }), + ], + // disable highlighting because we want to take of this ourselves + markdown: { + syntaxHighlight: false, + }, // we need static output - output: "static" + output: "static", }); diff --git a/package.json b/package.json index d0d1f6e..f2ca14d 100644 --- a/package.json +++ b/package.json @@ -4,6 +4,7 @@ "private": true, "scripts": { "dev": "cross-env TELEMETRY_DISABLED=1 ASTRO_TELEMETRY_DISABLED=1 NODE_ENV=dev astro dev", + "check": "cross-env TELEMETRY_DISABLED=1 ASTRO_TELEMETRY_DISABLED=1 NODE_ENV=dev astro check", "build": "cross-env TELEMETRY_DISABLED=1 ASTRO_TELEMETRY_DISABLED=1 NODE_ENV=dev astro check && cross-env TELEMETRY_DISABLED=1 ASTRO_TELEMETRY_DISABLED=1 NODE_ENV=prod astro build", "check:tsc": "tsc --noEmit", "lint": "prettier --ignore-path .gitignore --check --plugin-search-dir=. .", @@ -11,7 +12,6 @@ "preview": "cross-env TELEMETRY_DISABLED=1 ASTRO_TELEMETRY_DISABLED=1 NODE_ENV=prod astro preview" }, "devDependencies": { - "@astrojs/image": "^0.3.4", "@astrojs/mdx": "^0.10.0", "@astrojs/sitemap": "^1.0.0", "@astrojs/svelte": "^1.0.0", @@ -20,10 +20,10 @@ "@types/mdx": "^2.0.2", "@types/node": "^18.7.13", "astro": "^1.0.6", - "astro-imagetools": "^0.6.10", "autoprefixer": "^10.4.8", "cross-env": "^7.0.3", "fast-glob": "^3.2.11", + "hast-util-from-html": "^1.0.0", "hastscript": "^7.0.2", "postcss": "^8.4.16", "postcss-import": "^14.1.0", @@ -47,12 +47,15 @@ "svelte-preprocess": "^4.10.7", "svelte2tsx": "^0.5.14", "typescript": "^4.7.4", - "unified": "^10.1.2" + "unified": "^10.1.2", + "unist-util-visit": "^4.1.1" }, "dependencies": { "@fontsource/fira-mono": "^4.5.9", "@tailwindcss/typography": "^0.5.4", + "katex": "^0.16.2", "phosphor-icons": "^1.4.2", + "prismjs": "^1.29.0", "reading-time": "^1.5.0", "shikwasa": "^2.1.4", "tailwindcss": "^3.1.8" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 2523249..493d034 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1,7 +1,6 @@ lockfileVersion: 5.4 specifiers: - '@astrojs/image': ^0.3.4 '@astrojs/mdx': ^0.10.0 '@astrojs/sitemap': ^1.0.0 '@astrojs/svelte': ^1.0.0 @@ -12,11 +11,12 @@ specifiers: '@types/mdx': ^2.0.2 '@types/node': ^18.7.13 astro: ^1.0.6 - astro-imagetools: ^0.6.10 autoprefixer: ^10.4.8 cross-env: ^7.0.3 fast-glob: ^3.2.11 + hast-util-from-html: ^1.0.0 hastscript: ^7.0.2 + katex: ^0.16.2 phosphor-icons: ^1.4.2 postcss: ^8.4.16 postcss-import: ^14.1.0 @@ -24,6 +24,7 @@ specifiers: prettier: ^2.7.1 prettier-plugin-astro: ^0.5.0 prettier-plugin-tailwindcss: ^0.1.13 + prismjs: ^1.29.0 reading-time: ^1.5.0 rehype-autolink-headings: ^6.1.1 rehype-katex: ^6.0.2 @@ -44,17 +45,19 @@ specifiers: tailwindcss: ^3.1.8 typescript: ^4.7.4 unified: ^10.1.2 + unist-util-visit: ^4.1.1 dependencies: '@fontsource/fira-mono': 4.5.9 '@tailwindcss/typography': 0.5.4_tailwindcss@3.1.8 + katex: 0.16.2 phosphor-icons: 1.4.2 + prismjs: 1.29.0 reading-time: 1.5.0 shikwasa: 2.1.4 tailwindcss: 3.1.8_postcss@8.4.16 devDependencies: - '@astrojs/image': 0.3.4 '@astrojs/mdx': 0.10.0_rollup@2.78.1 '@astrojs/sitemap': 1.0.0 '@astrojs/svelte': 1.0.0_fje22ktja5v2dh6nbkissncqme @@ -63,10 +66,10 @@ devDependencies: '@types/mdx': 2.0.2 '@types/node': 18.7.13 astro: 1.0.6 - astro-imagetools: 0.6.10_astro@1.0.6 autoprefixer: 10.4.8_postcss@8.4.16 cross-env: 7.0.3 fast-glob: 3.2.11 + hast-util-from-html: 1.0.0 hastscript: 7.0.2 postcss: 8.4.16 postcss-import: 14.1.0_postcss@8.4.16 @@ -91,6 +94,7 @@ devDependencies: svelte2tsx: 0.5.14_uslzfc62di2n2otc2tvfklnwji typescript: 4.7.4 unified: 10.1.2 + unist-util-visit: 4.1.1 packages: @@ -110,17 +114,6 @@ packages: resolution: {integrity: sha512-eBWo0d3DoRDeg2Di1/5YJtOXh5eGFSjJMp1wVoVfoITHR4egdUGgsrDHZTzj0a25M/S9W5S6SpXCyNWcqi8jOA==} dev: true - /@astrojs/image/0.3.4: - resolution: {integrity: sha512-eggNQTRqWE2cxhJeVFYkRKKN5SMyMuHxcq/JaT6KfMEJY2ULGKiYa3ulKr3/kAIXGcU3hrOpv0U7GirMVKlhZg==} - dependencies: - etag: 1.8.1 - image-size: 1.0.2 - mrmime: 1.0.1 - sharp: 0.30.7 - slash: 4.0.0 - tiny-glob: 0.2.9 - dev: true - /@astrojs/language-server/0.20.3: resolution: {integrity: sha512-MuzTsSpUjtmMXfrBThtZwgO39Jc+Bbl5hLevumkp01N/YCKE+Iipd3ELSdbk7+TPiuBV+/SKrVmaQPvJBnWPkA==} hasBin: true @@ -206,7 +199,7 @@ packages: resolution: {integrity: sha512-HxEFslvbv+cfOs51q/C7aMVFuW3EAGg0d1xXU/0e/QeScDzfrp5Ra4SOb8mV082SgENVjtVvet4zR84t3at4VQ==} engines: {node: ^14.18.0 || >=16.12.0} dependencies: - prismjs: 1.28.0 + prismjs: 1.29.0 dev: true /@astrojs/sitemap/1.0.0: @@ -278,10 +271,6 @@ packages: node-fetch: 3.2.10 dev: true - /@astropub/codecs/0.4.4: - resolution: {integrity: sha512-jHmdZK2B7dfelTsVzkWVb93WPjuKkHz07xUcyg5WtUxTeCCxdDVLnvZlsB5PC2r7HmJLf03TP1QYb1ZgrEebyQ==} - dev: true - /@babel/code-frame/7.18.6: resolution: {integrity: sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==} engines: {node: '>=6.9.0'} @@ -475,13 +464,6 @@ packages: '@babel/types': 7.18.10 dev: true - /@babel/runtime/7.18.9: - resolution: {integrity: sha512-lkqXDcvlFT5rvEjiu6+QYO+1GXrEHRo2LOtS7E4GtX5ESIZOgepqsZBVIj6Pv+a6zqsya9VCgiK1KAK4BvJDAw==} - engines: {node: '>=6.9.0'} - dependencies: - regenerator-runtime: 0.13.9 - dev: true - /@babel/template/7.18.10: resolution: {integrity: sha512-TI+rCtooWHr3QJ27kJxfjutghu44DLnasDMwpDqCXVTal9RLp3RSYNh4NdBrRP2cQAoG9A8juOQl6P6oZG4JxA==} engines: {node: '>=6.9.0'} @@ -547,381 +529,6 @@ packages: resolution: {integrity: sha512-DDhkRUjPHwPK/wB7GM/7LzGkcEC5JyTZM93YnFoP2Qfjffq3qX1asnXNqfglgZxXHXVmu3RI8OjRf87I97XCfA==} dev: false - /@jimp/bmp/0.14.0_@jimp+custom@0.14.0: - resolution: {integrity: sha512-5RkX6tSS7K3K3xNEb2ygPuvyL9whjanhoaB/WmmXlJS6ub4DjTqrapu8j4qnIWmO4YYtFeTbDTXV6v9P1yMA5A==} - peerDependencies: - '@jimp/custom': '>=0.3.5' - dependencies: - '@babel/runtime': 7.18.9 - '@jimp/custom': 0.14.0 - '@jimp/utils': 0.14.0 - bmp-js: 0.1.0 - dev: true - - /@jimp/core/0.14.0: - resolution: {integrity: sha512-S62FcKdtLtj3yWsGfJRdFXSutjvHg7aQNiFogMbwq19RP4XJWqS2nOphu7ScB8KrSlyy5nPF2hkWNhLRLyD82w==} - dependencies: - '@babel/runtime': 7.18.9 - '@jimp/utils': 0.14.0 - any-base: 1.1.0 - buffer: 5.7.1 - exif-parser: 0.1.12 - file-type: 9.0.0 - load-bmfont: 1.4.1 - mkdirp: 0.5.6 - phin: 2.9.3 - pixelmatch: 4.0.2 - tinycolor2: 1.4.2 - dev: true - - /@jimp/custom/0.14.0: - resolution: {integrity: sha512-kQJMeH87+kWJdVw8F9GQhtsageqqxrvzg7yyOw3Tx/s7v5RToe8RnKyMM+kVtBJtNAG+Xyv/z01uYQ2jiZ3GwA==} - dependencies: - '@babel/runtime': 7.18.9 - '@jimp/core': 0.14.0 - dev: true - - /@jimp/gif/0.14.0_@jimp+custom@0.14.0: - resolution: {integrity: sha512-DHjoOSfCaCz72+oGGEh8qH0zE6pUBaBxPxxmpYJjkNyDZP7RkbBkZJScIYeQ7BmJxmGN4/dZn+MxamoQlr+UYg==} - peerDependencies: - '@jimp/custom': '>=0.3.5' - dependencies: - '@babel/runtime': 7.18.9 - '@jimp/custom': 0.14.0 - '@jimp/utils': 0.14.0 - gifwrap: 0.9.4 - omggif: 1.0.10 - dev: true - - /@jimp/jpeg/0.14.0_@jimp+custom@0.14.0: - resolution: {integrity: sha512-561neGbr+87S/YVQYnZSTyjWTHBm9F6F1obYHiyU3wVmF+1CLbxY3FQzt4YolwyQHIBv36Bo0PY2KkkU8BEeeQ==} - peerDependencies: - '@jimp/custom': '>=0.3.5' - dependencies: - '@babel/runtime': 7.18.9 - '@jimp/custom': 0.14.0 - '@jimp/utils': 0.14.0 - jpeg-js: 0.4.4 - dev: true - - /@jimp/plugin-blit/0.14.0_@jimp+custom@0.14.0: - resolution: {integrity: sha512-YoYOrnVHeX3InfgbJawAU601iTZMwEBZkyqcP1V/S33Qnz9uzH1Uj1NtC6fNgWzvX6I4XbCWwtr4RrGFb5CFrw==} - peerDependencies: - '@jimp/custom': '>=0.3.5' - dependencies: - '@babel/runtime': 7.18.9 - '@jimp/custom': 0.14.0 - '@jimp/utils': 0.14.0 - dev: true - - /@jimp/plugin-blur/0.14.0_@jimp+custom@0.14.0: - resolution: {integrity: sha512-9WhZcofLrT0hgI7t0chf7iBQZib//0gJh9WcQMUt5+Q1Bk04dWs8vTgLNj61GBqZXgHSPzE4OpCrrLDBG8zlhQ==} - peerDependencies: - '@jimp/custom': '>=0.3.5' - dependencies: - '@babel/runtime': 7.18.9 - '@jimp/custom': 0.14.0 - '@jimp/utils': 0.14.0 - dev: true - - /@jimp/plugin-circle/0.14.0_@jimp+custom@0.14.0: - resolution: {integrity: sha512-o5L+wf6QA44tvTum5HeLyLSc5eVfIUd5ZDVi5iRfO4o6GT/zux9AxuTSkKwnjhsG8bn1dDmywAOQGAx7BjrQVA==} - peerDependencies: - '@jimp/custom': '>=0.3.5' - dependencies: - '@babel/runtime': 7.18.9 - '@jimp/custom': 0.14.0 - '@jimp/utils': 0.14.0 - dev: true - - /@jimp/plugin-color/0.14.0_@jimp+custom@0.14.0: - resolution: {integrity: sha512-JJz512SAILYV0M5LzBb9sbOm/XEj2fGElMiHAxb7aLI6jx+n0agxtHpfpV/AePTLm1vzzDxx6AJxXbKv355hBQ==} - peerDependencies: - '@jimp/custom': '>=0.3.5' - dependencies: - '@babel/runtime': 7.18.9 - '@jimp/custom': 0.14.0 - '@jimp/utils': 0.14.0 - tinycolor2: 1.4.2 - dev: true - - /@jimp/plugin-contain/0.14.0_atzow7c7z3rxphgj3ycbcfc7du: - resolution: {integrity: sha512-RX2q233lGyaxiMY6kAgnm9ScmEkNSof0hdlaJAVDS1OgXphGAYAeSIAwzESZN4x3ORaWvkFefeVH9O9/698Evg==} - peerDependencies: - '@jimp/custom': '>=0.3.5' - '@jimp/plugin-blit': '>=0.3.5' - '@jimp/plugin-resize': '>=0.3.5' - '@jimp/plugin-scale': '>=0.3.5' - dependencies: - '@babel/runtime': 7.18.9 - '@jimp/custom': 0.14.0 - '@jimp/plugin-blit': 0.14.0_@jimp+custom@0.14.0 - '@jimp/plugin-resize': 0.14.0_@jimp+custom@0.14.0 - '@jimp/plugin-scale': 0.14.0_dnjajzlrw7tj7gkph5zzcsobsa - '@jimp/utils': 0.14.0 - dev: true - - /@jimp/plugin-cover/0.14.0_cmwkwndotcukelhzzy7qfggfhq: - resolution: {integrity: sha512-0P/5XhzWES4uMdvbi3beUgfvhn4YuQ/ny8ijs5kkYIw6K8mHcl820HahuGpwWMx56DJLHRl1hFhJwo9CeTRJtQ==} - peerDependencies: - '@jimp/custom': '>=0.3.5' - '@jimp/plugin-crop': '>=0.3.5' - '@jimp/plugin-resize': '>=0.3.5' - '@jimp/plugin-scale': '>=0.3.5' - dependencies: - '@babel/runtime': 7.18.9 - '@jimp/custom': 0.14.0 - '@jimp/plugin-crop': 0.14.0_@jimp+custom@0.14.0 - '@jimp/plugin-resize': 0.14.0_@jimp+custom@0.14.0 - '@jimp/plugin-scale': 0.14.0_dnjajzlrw7tj7gkph5zzcsobsa - '@jimp/utils': 0.14.0 - dev: true - - /@jimp/plugin-crop/0.14.0_@jimp+custom@0.14.0: - resolution: {integrity: sha512-Ojtih+XIe6/XSGtpWtbAXBozhCdsDMmy+THUJAGu2x7ZgKrMS0JotN+vN2YC3nwDpYkM+yOJImQeptSfZb2Sug==} - peerDependencies: - '@jimp/custom': '>=0.3.5' - dependencies: - '@babel/runtime': 7.18.9 - '@jimp/custom': 0.14.0 - '@jimp/utils': 0.14.0 - dev: true - - /@jimp/plugin-displace/0.14.0_@jimp+custom@0.14.0: - resolution: {integrity: sha512-c75uQUzMgrHa8vegkgUvgRL/PRvD7paFbFJvzW0Ugs8Wl+CDMGIPYQ3j7IVaQkIS+cAxv+NJ3TIRBQyBrfVEOg==} - peerDependencies: - '@jimp/custom': '>=0.3.5' - dependencies: - '@babel/runtime': 7.18.9 - '@jimp/custom': 0.14.0 - '@jimp/utils': 0.14.0 - dev: true - - /@jimp/plugin-dither/0.14.0_@jimp+custom@0.14.0: - resolution: {integrity: sha512-g8SJqFLyYexXQQsoh4dc1VP87TwyOgeTElBcxSXX2LaaMZezypmxQfLTzOFzZoK8m39NuaoH21Ou1Ftsq7LzVQ==} - peerDependencies: - '@jimp/custom': '>=0.3.5' - dependencies: - '@babel/runtime': 7.18.9 - '@jimp/custom': 0.14.0 - '@jimp/utils': 0.14.0 - dev: true - - /@jimp/plugin-fisheye/0.14.0_@jimp+custom@0.14.0: - resolution: {integrity: sha512-BFfUZ64EikCaABhCA6mR3bsltWhPpS321jpeIQfJyrILdpFsZ/OccNwCgpW1XlbldDHIoNtXTDGn3E+vCE7vDg==} - peerDependencies: - '@jimp/custom': '>=0.3.5' - dependencies: - '@babel/runtime': 7.18.9 - '@jimp/custom': 0.14.0 - '@jimp/utils': 0.14.0 - dev: true - - /@jimp/plugin-flip/0.14.0_egz5qy63qcuglqunvauxsismu4: - resolution: {integrity: sha512-WtL1hj6ryqHhApih+9qZQYA6Ye8a4HAmdTzLbYdTMrrrSUgIzFdiZsD0WeDHpgS/+QMsWwF+NFmTZmxNWqKfXw==} - peerDependencies: - '@jimp/custom': '>=0.3.5' - '@jimp/plugin-rotate': '>=0.3.5' - dependencies: - '@babel/runtime': 7.18.9 - '@jimp/custom': 0.14.0 - '@jimp/plugin-rotate': 0.14.0_nitfkm2iiqsjd5dqctkqjdhryu - '@jimp/utils': 0.14.0 - dev: true - - /@jimp/plugin-gaussian/0.14.0_@jimp+custom@0.14.0: - resolution: {integrity: sha512-uaLwQ0XAQoydDlF9tlfc7iD9drYPriFe+jgYnWm8fbw5cN+eOIcnneEX9XCOOzwgLPkNCxGox6Kxjn8zY6GxtQ==} - peerDependencies: - '@jimp/custom': '>=0.3.5' - dependencies: - '@babel/runtime': 7.18.9 - '@jimp/custom': 0.14.0 - '@jimp/utils': 0.14.0 - dev: true - - /@jimp/plugin-invert/0.14.0_@jimp+custom@0.14.0: - resolution: {integrity: sha512-UaQW9X9vx8orQXYSjT5VcITkJPwDaHwrBbxxPoDG+F/Zgv4oV9fP+udDD6qmkgI9taU+44Fy+zm/J/gGcMWrdg==} - peerDependencies: - '@jimp/custom': '>=0.3.5' - dependencies: - '@babel/runtime': 7.18.9 - '@jimp/custom': 0.14.0 - '@jimp/utils': 0.14.0 - dev: true - - /@jimp/plugin-mask/0.14.0_@jimp+custom@0.14.0: - resolution: {integrity: sha512-tdiGM69OBaKtSPfYSQeflzFhEpoRZ+BvKfDEoivyTjauynbjpRiwB1CaiS8En1INTDwzLXTT0Be9SpI3LkJoEA==} - peerDependencies: - '@jimp/custom': '>=0.3.5' - dependencies: - '@babel/runtime': 7.18.9 - '@jimp/custom': 0.14.0 - '@jimp/utils': 0.14.0 - dev: true - - /@jimp/plugin-normalize/0.14.0_@jimp+custom@0.14.0: - resolution: {integrity: sha512-AfY8sqlsbbdVwFGcyIPy5JH/7fnBzlmuweb+Qtx2vn29okq6+HelLjw2b+VT2btgGUmWWHGEHd86oRGSoWGyEQ==} - peerDependencies: - '@jimp/custom': '>=0.3.5' - dependencies: - '@babel/runtime': 7.18.9 - '@jimp/custom': 0.14.0 - '@jimp/utils': 0.14.0 - dev: true - - /@jimp/plugin-print/0.14.0_lhhsyseurtfetoblh726nyhfha: - resolution: {integrity: sha512-MwP3sH+VS5AhhSTXk7pui+tEJFsxnTKFY3TraFJb8WFbA2Vo2qsRCZseEGwpTLhENB7p/JSsLvWoSSbpmxhFAQ==} - peerDependencies: - '@jimp/custom': '>=0.3.5' - '@jimp/plugin-blit': '>=0.3.5' - dependencies: - '@babel/runtime': 7.18.9 - '@jimp/custom': 0.14.0 - '@jimp/plugin-blit': 0.14.0_@jimp+custom@0.14.0 - '@jimp/utils': 0.14.0 - load-bmfont: 1.4.1 - dev: true - - /@jimp/plugin-resize/0.14.0_@jimp+custom@0.14.0: - resolution: {integrity: sha512-qFeMOyXE/Bk6QXN0GQo89+CB2dQcXqoxUcDb2Ah8wdYlKqpi53skABkgVy5pW3EpiprDnzNDboMltdvDslNgLQ==} - peerDependencies: - '@jimp/custom': '>=0.3.5' - dependencies: - '@babel/runtime': 7.18.9 - '@jimp/custom': 0.14.0 - '@jimp/utils': 0.14.0 - dev: true - - /@jimp/plugin-rotate/0.14.0_nitfkm2iiqsjd5dqctkqjdhryu: - resolution: {integrity: sha512-aGaicts44bvpTcq5Dtf93/8TZFu5pMo/61lWWnYmwJJU1RqtQlxbCLEQpMyRhKDNSfPbuP8nyGmaqXlM/82J0Q==} - peerDependencies: - '@jimp/custom': '>=0.3.5' - '@jimp/plugin-blit': '>=0.3.5' - '@jimp/plugin-crop': '>=0.3.5' - '@jimp/plugin-resize': '>=0.3.5' - dependencies: - '@babel/runtime': 7.18.9 - '@jimp/custom': 0.14.0 - '@jimp/plugin-blit': 0.14.0_@jimp+custom@0.14.0 - '@jimp/plugin-crop': 0.14.0_@jimp+custom@0.14.0 - '@jimp/plugin-resize': 0.14.0_@jimp+custom@0.14.0 - '@jimp/utils': 0.14.0 - dev: true - - /@jimp/plugin-scale/0.14.0_dnjajzlrw7tj7gkph5zzcsobsa: - resolution: {integrity: sha512-ZcJk0hxY5ZKZDDwflqQNHEGRblgaR+piePZm7dPwPUOSeYEH31P0AwZ1ziceR74zd8N80M0TMft+e3Td6KGBHw==} - peerDependencies: - '@jimp/custom': '>=0.3.5' - '@jimp/plugin-resize': '>=0.3.5' - dependencies: - '@babel/runtime': 7.18.9 - '@jimp/custom': 0.14.0 - '@jimp/plugin-resize': 0.14.0_@jimp+custom@0.14.0 - '@jimp/utils': 0.14.0 - dev: true - - /@jimp/plugin-shadow/0.14.0_jhz7k2d2s3ip6ssk34veacb4wy: - resolution: {integrity: sha512-p2igcEr/iGrLiTu0YePNHyby0WYAXM14c5cECZIVnq/UTOOIQ7xIcWZJ1lRbAEPxVVXPN1UibhZAbr3HAb5BjQ==} - peerDependencies: - '@jimp/custom': '>=0.3.5' - '@jimp/plugin-blur': '>=0.3.5' - '@jimp/plugin-resize': '>=0.3.5' - dependencies: - '@babel/runtime': 7.18.9 - '@jimp/custom': 0.14.0 - '@jimp/plugin-blur': 0.14.0_@jimp+custom@0.14.0 - '@jimp/plugin-resize': 0.14.0_@jimp+custom@0.14.0 - '@jimp/utils': 0.14.0 - dev: true - - /@jimp/plugin-threshold/0.14.0_yvpuowyu3hipklrsdaf6scfd4u: - resolution: {integrity: sha512-N4BlDgm/FoOMV/DQM2rSpzsgqAzkP0DXkWZoqaQrlRxQBo4zizQLzhEL00T/YCCMKnddzgEhnByaocgaaa0fKw==} - peerDependencies: - '@jimp/custom': '>=0.3.5' - '@jimp/plugin-color': '>=0.8.0' - '@jimp/plugin-resize': '>=0.8.0' - dependencies: - '@babel/runtime': 7.18.9 - '@jimp/custom': 0.14.0 - '@jimp/plugin-color': 0.14.0_@jimp+custom@0.14.0 - '@jimp/plugin-resize': 0.14.0_@jimp+custom@0.14.0 - '@jimp/utils': 0.14.0 - dev: true - - /@jimp/plugins/0.14.0_@jimp+custom@0.14.0: - resolution: {integrity: sha512-vDO3XT/YQlFlFLq5TqNjQkISqjBHT8VMhpWhAfJVwuXIpilxz5Glu4IDLK6jp4IjPR6Yg2WO8TmRY/HI8vLrOw==} - peerDependencies: - '@jimp/custom': '>=0.3.5' - dependencies: - '@babel/runtime': 7.18.9 - '@jimp/custom': 0.14.0 - '@jimp/plugin-blit': 0.14.0_@jimp+custom@0.14.0 - '@jimp/plugin-blur': 0.14.0_@jimp+custom@0.14.0 - '@jimp/plugin-circle': 0.14.0_@jimp+custom@0.14.0 - '@jimp/plugin-color': 0.14.0_@jimp+custom@0.14.0 - '@jimp/plugin-contain': 0.14.0_atzow7c7z3rxphgj3ycbcfc7du - '@jimp/plugin-cover': 0.14.0_cmwkwndotcukelhzzy7qfggfhq - '@jimp/plugin-crop': 0.14.0_@jimp+custom@0.14.0 - '@jimp/plugin-displace': 0.14.0_@jimp+custom@0.14.0 - '@jimp/plugin-dither': 0.14.0_@jimp+custom@0.14.0 - '@jimp/plugin-fisheye': 0.14.0_@jimp+custom@0.14.0 - '@jimp/plugin-flip': 0.14.0_egz5qy63qcuglqunvauxsismu4 - '@jimp/plugin-gaussian': 0.14.0_@jimp+custom@0.14.0 - '@jimp/plugin-invert': 0.14.0_@jimp+custom@0.14.0 - '@jimp/plugin-mask': 0.14.0_@jimp+custom@0.14.0 - '@jimp/plugin-normalize': 0.14.0_@jimp+custom@0.14.0 - '@jimp/plugin-print': 0.14.0_lhhsyseurtfetoblh726nyhfha - '@jimp/plugin-resize': 0.14.0_@jimp+custom@0.14.0 - '@jimp/plugin-rotate': 0.14.0_nitfkm2iiqsjd5dqctkqjdhryu - '@jimp/plugin-scale': 0.14.0_dnjajzlrw7tj7gkph5zzcsobsa - '@jimp/plugin-shadow': 0.14.0_jhz7k2d2s3ip6ssk34veacb4wy - '@jimp/plugin-threshold': 0.14.0_yvpuowyu3hipklrsdaf6scfd4u - timm: 1.7.1 - dev: true - - /@jimp/png/0.14.0_@jimp+custom@0.14.0: - resolution: {integrity: sha512-0RV/mEIDOrPCcNfXSPmPBqqSZYwGADNRVUTyMt47RuZh7sugbYdv/uvKmQSiqRdR0L1sfbCBMWUEa5G/8MSbdA==} - peerDependencies: - '@jimp/custom': '>=0.3.5' - dependencies: - '@babel/runtime': 7.18.9 - '@jimp/custom': 0.14.0 - '@jimp/utils': 0.14.0 - pngjs: 3.4.0 - dev: true - - /@jimp/tiff/0.14.0_@jimp+custom@0.14.0: - resolution: {integrity: sha512-zBYDTlutc7j88G/7FBCn3kmQwWr0rmm1e0FKB4C3uJ5oYfT8645lftUsvosKVUEfkdmOaMAnhrf4ekaHcb5gQw==} - peerDependencies: - '@jimp/custom': '>=0.3.5' - dependencies: - '@babel/runtime': 7.18.9 - '@jimp/custom': 0.14.0 - utif: 2.0.1 - dev: true - - /@jimp/types/0.14.0_@jimp+custom@0.14.0: - resolution: {integrity: sha512-hx3cXAW1KZm+b+XCrY3LXtdWy2U+hNtq0rPyJ7NuXCjU7lZR3vIkpz1DLJ3yDdS70hTi5QDXY3Cd9kd6DtloHQ==} - peerDependencies: - '@jimp/custom': '>=0.3.5' - dependencies: - '@babel/runtime': 7.18.9 - '@jimp/bmp': 0.14.0_@jimp+custom@0.14.0 - '@jimp/custom': 0.14.0 - '@jimp/gif': 0.14.0_@jimp+custom@0.14.0 - '@jimp/jpeg': 0.14.0_@jimp+custom@0.14.0 - '@jimp/png': 0.14.0_@jimp+custom@0.14.0 - '@jimp/tiff': 0.14.0_@jimp+custom@0.14.0 - timm: 1.7.1 - dev: true - - /@jimp/utils/0.14.0: - resolution: {integrity: sha512-MY5KFYUru0y74IsgM/9asDwb3ERxWxXEu3CRCZEvE7DtT86y1bR1XgtlSliMrptjz4qbivNGMQSvUBpEFJDp1A==} - dependencies: - '@babel/runtime': 7.18.9 - regenerator-runtime: 0.13.9 - dev: true - /@jridgewell/gen-mapping/0.1.1: resolution: {integrity: sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==} engines: {node: '>=6.0.0'} @@ -1094,10 +701,6 @@ packages: tailwindcss: 3.1.8_postcss@8.4.16 dev: false - /@tokenizer/token/0.3.0: - resolution: {integrity: sha512-OvjF+z51L3ov0OyAU0duzsYuvO01PH7x4t6DJx+guahgTnBHkhJdG7soQeTSFLWN3efnHyibZ4Z8l2EuWwJN3A==} - dev: true - /@types/acorn/4.0.6: resolution: {integrity: sha512-veQTnWP+1D/xbxVrPC3zHnCZRjSrKfhbMUlEA43iMZLu7EsnTtkJklIuwrCPbOi8YkvDQAiW05VQQFvvz9oieQ==} dependencies: @@ -1175,10 +778,6 @@ packages: '@types/unist': 2.0.6 dev: true - /@types/node/16.9.1: - resolution: {integrity: sha512-QpLcX9ZSsq3YYUUnD3nFDY8H7wctAhQj/TFKL8Ya8v5fMm3CFXxo8zStsLAl780ltoYoo1WvKUVGBQK+1ifr7g==} - dev: true - /@types/node/17.0.45: resolution: {integrity: sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw==} dev: true @@ -1291,10 +890,6 @@ packages: engines: {node: '>=12'} dev: true - /any-base/1.1.0: - resolution: {integrity: sha512-uMgjozySS8adZZYePpaWs8cxB9/kdzmpX6SgJZ+wbz1K5eYk5QMYDVJaZKhxyIHUdnnJkfR7SVgStgH7LkGUyg==} - dev: true - /anymatch/3.1.2: resolution: {integrity: sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==} engines: {node: '>= 8'} @@ -1327,23 +922,6 @@ packages: hasBin: true dev: true - /astro-imagetools/0.6.10_astro@1.0.6: - resolution: {integrity: sha512-b3+vCkud6HeWe3brUI7Rq/RXUPOtuv3GV/ENhd1+4mflISWgCWAEIFSTr+56R6/LUpMdh+ZlLjOQaCG5Ig1v7g==} - engines: {node: ^14.15.0 || >=16.0.0} - peerDependencies: - astro: '>=0.26 || >=1.0.0-beta' - dependencies: - '@astropub/codecs': 0.4.4 - astro: 1.0.6 - file-type: 17.1.1 - find-cache-dir: 3.3.2 - find-up: 6.3.0 - object-hash: 3.0.0 - potrace: 2.1.8 - optionalDependencies: - imagetools-core: 3.0.2 - dev: true - /astro/1.0.6: resolution: {integrity: sha512-QAkdkzP3PbauiO4YnOgVTWY6z26heKruoXW9TnN8Bbmwtf7DUFIchi6CFSAVYSONX8XtRnj+p6fCkk06OWfJ4w==} engines: {node: ^14.18.0 || >=16.12.0, npm: '>=6.14.0'} @@ -1449,14 +1027,6 @@ packages: resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==} engines: {node: '>=8'} - /bl/4.1.0: - resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==} - dependencies: - buffer: 5.7.1 - inherits: 2.0.4 - readable-stream: 3.6.0 - dev: true - /bl/5.0.0: resolution: {integrity: sha512-8vxFNZ0pflFfi0WXA3WQXlj6CaMEwsmh63I1CNp0q+wWv8sD0ARx1KovSQd0l2GkwrMIOyedq0EF1FxI+RCZLQ==} dependencies: @@ -1465,10 +1035,6 @@ packages: readable-stream: 3.6.0 dev: true - /bmp-js/0.1.0: - resolution: {integrity: sha512-vHdS19CnY3hwiNdkaqk93DvjVLfbEcI8mys4UjuWrlX1haDmroo8o4xCzh4wD6DGV6HxRCyauwhHRqMTfERtjw==} - dev: true - /boxen/6.2.1: resolution: {integrity: sha512-H4PEsJXfFI/Pt8sjDWbHlQPx4zL/bvSQjcilJmaulGt5mLDorHOHpmdXAJcBcmru7PhYSp/cDMWRko4ZUMFkSw==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} @@ -1511,18 +1077,6 @@ packages: resolution: {integrity: sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==} dev: true - /buffer-equal/0.0.1: - resolution: {integrity: sha512-RgSV6InVQ9ODPdLWJ5UAqBqJBOg370Nz6ZQtRzpt6nUjc8v0St97uJ4PYC6NztqIScrAXafKM3mZPMygSe1ggA==} - engines: {node: '>=0.4.0'} - dev: true - - /buffer/5.7.1: - resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==} - dependencies: - base64-js: 1.5.1 - ieee754: 1.2.1 - dev: true - /buffer/6.0.3: resolution: {integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==} dependencies: @@ -1603,10 +1157,6 @@ packages: optionalDependencies: fsevents: 2.3.2 - /chownr/1.1.4: - resolution: {integrity: sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==} - dev: true - /ci-info/3.3.2: resolution: {integrity: sha512-xmDt/QIAdeZ9+nfdPsaBCpMvHNLFiLdjj59qjqn+6iPe6YmHGQ35sBnQ8uslRBXFmXkiZQOJRjvQeoGppoTjjg==} dev: true @@ -1653,21 +1203,6 @@ packages: /color-name/1.1.4: resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} - /color-string/1.9.1: - resolution: {integrity: sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==} - dependencies: - color-name: 1.1.4 - simple-swizzle: 0.2.2 - dev: true - - /color/4.2.3: - resolution: {integrity: sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==} - engines: {node: '>=12.5.0'} - dependencies: - color-convert: 2.0.1 - color-string: 1.9.1 - dev: true - /comma-separated-tokens/1.0.8: resolution: {integrity: sha512-GHuDRO12Sypu2cV70d1dkA2EUmXHgntrzbpvOB+Qy+49ypNfGgFQIC2fhhXbnyrJRynDCAARsT7Ou0M6hirpfw==} dev: true @@ -1679,16 +1214,11 @@ packages: /commander/8.3.0: resolution: {integrity: sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==} engines: {node: '>= 12'} - dev: true /common-ancestor-path/1.0.1: resolution: {integrity: sha512-L3sHRo1pXXEqX8VU28kfgUY+YGsk09hPqZiZmLacNib6XNTCM8ubYeT7ryXQw8asB1sKgcU5lkB7ONug08aB8w==} dev: true - /commondir/1.0.1: - resolution: {integrity: sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==} - dev: true - /concat-map/0.0.1: resolution: {integrity: sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=} dev: true @@ -1744,22 +1274,10 @@ packages: character-entities: 2.0.2 dev: true - /decompress-response/6.0.0: - resolution: {integrity: sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==} - engines: {node: '>=10'} - dependencies: - mimic-response: 3.1.0 - dev: true - /dedent-js/1.0.1: resolution: {integrity: sha512-OUepMozQULMLUmhxS95Vudo0jb0UchLimi3+pQ2plj61Fcy8axbP9hbiD4Sz6DPqn6XG3kfmziVfQ1rSys5AJQ==} dev: true - /deep-extend/0.6.0: - resolution: {integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==} - engines: {node: '>=4.0.0'} - dev: true - /deepmerge/4.2.2: resolution: {integrity: sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==} engines: {node: '>=0.10.0'} @@ -1789,18 +1307,6 @@ packages: engines: {node: '>=8'} dev: true - /detect-libc/1.0.3: - resolution: {integrity: sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==} - engines: {node: '>=0.10'} - hasBin: true - dev: true - optional: true - - /detect-libc/2.0.1: - resolution: {integrity: sha512-463v3ZeIrcWtdgIg6vI6XUncguvr2TnGl4SzDXinkt9mSLpBJKXT3mW6xT3VQdDN11+WVs29pgvivTc4Lp8v+w==} - engines: {node: '>=8'} - dev: true - /detective/5.2.1: resolution: {integrity: sha512-v9XE1zRnz1wRtgurGu0Bs8uHKFSTdteYZNbIPFVhUZ39L/S79ppMpdmVOZAnoz1jfEFodc48n6MX483Xo3t1yw==} engines: {node: '>=0.8.0'} @@ -1821,10 +1327,6 @@ packages: /dlv/1.1.3: resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==} - /dom-walk/0.1.2: - resolution: {integrity: sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w==} - dev: true - /dset/3.1.2: resolution: {integrity: sha512-g/M9sqy3oHe477Ar4voQxWtaPIFw1jTdKZuomOjhCcBx9nHUNn0pu6NopuFFrTh/TRZIKEj+76vLWFu9BNKk+Q==} engines: {node: '>=4'} @@ -1853,10 +1355,9 @@ packages: resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} dev: true - /end-of-stream/1.4.4: - resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==} - dependencies: - once: 1.4.0 + /entities/4.4.0: + resolution: {integrity: sha512-oYp7156SP8LkeGD0GF85ad1X9Ai79WtRsZ2gxJqtBuzH+98YUV6jkHEKlZkMbcrjJjIVJNIDP/3WL9wQkoPbWA==} + engines: {node: '>=0.12'} dev: true /eol/0.9.1: @@ -2149,11 +1650,6 @@ packages: resolution: {integrity: sha512-woY0RUD87WzMBUiZLx8NsYr23N5BKsOMZHhu2hoNRVh6NXGfoiT1KOL8G3UHlJAnEDGmfa5ubNA/AacfG+Kb0g==} dev: true - /etag/1.8.1: - resolution: {integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==} - engines: {node: '>= 0.6'} - dev: true - /execa/6.1.0: resolution: {integrity: sha512-QVWlX2e50heYJcCPG0iWtf8r0xjEYfz/OYLGDYH+IyjWezzPNxz63qNFOu0l4YftGWuizFVZHHs8PrLU5p2IDA==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} @@ -2169,15 +1665,6 @@ packages: strip-final-newline: 3.0.0 dev: true - /exif-parser/0.1.12: - resolution: {integrity: sha512-c2bQfLNbMzLPmzQuOr8fy0csy84WmwnER81W88DzTp9CYNPJ6yzOj2EZAh9pywYpqHnshVLHQJ8WzldAyfY+Iw==} - dev: true - - /expand-template/2.0.3: - resolution: {integrity: sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==} - engines: {node: '>=6'} - dev: true - /extend-shallow/2.0.1: resolution: {integrity: sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==} engines: {node: '>=0.10.0'} @@ -2218,35 +1705,12 @@ packages: web-streams-polyfill: 3.2.1 dev: true - /file-type/17.1.1: - resolution: {integrity: sha512-heRUMZHby2Qj6wZAA3YHeMlRmZNQTcb6VxctkGmM+mcM6ROQKvHpr7SS6EgdfEhH+s25LDshBjvPx/Ecm+bOVQ==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - dependencies: - readable-web-to-node-stream: 3.0.2 - strtok3: 7.0.0 - token-types: 5.0.1 - dev: true - - /file-type/9.0.0: - resolution: {integrity: sha512-Qe/5NJrgIOlwijpq3B7BEpzPFcgzggOTagZmkXQY4LA6bsXKTUstK7Wp12lEJ/mLKTpvIZxmIuRcLYWT6ov9lw==} - engines: {node: '>=6'} - dev: true - /fill-range/7.0.1: resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} engines: {node: '>=8'} dependencies: to-regex-range: 5.0.1 - /find-cache-dir/3.3.2: - resolution: {integrity: sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==} - engines: {node: '>=8'} - dependencies: - commondir: 1.0.1 - make-dir: 3.1.0 - pkg-dir: 4.2.0 - dev: true - /find-up/4.1.0: resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} engines: {node: '>=8'} @@ -2263,14 +1727,6 @@ packages: path-exists: 4.0.0 dev: true - /find-up/6.3.0: - resolution: {integrity: sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - dependencies: - locate-path: 7.1.1 - path-exists: 5.0.0 - dev: true - /find-yarn-workspace-root2/1.2.16: resolution: {integrity: sha512-hr6hb1w8ePMpPVUK39S4RlwJzi+xPLuVuG8XlwXU3KD5Yn3qgBWVfy3AzNlDhWvE1EORCE65/Qm26rFQt3VLVA==} dependencies: @@ -2294,10 +1750,6 @@ packages: resolution: {integrity: sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==} dev: true - /fs-constants/1.0.0: - resolution: {integrity: sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==} - dev: true - /fs.realpath/1.0.0: resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} dev: true @@ -2322,17 +1774,6 @@ packages: engines: {node: '>=10'} dev: true - /gifwrap/0.9.4: - resolution: {integrity: sha512-MDMwbhASQuVeD4JKd1fKgNgCRL3fGqMM4WaqpNhWO0JiMOAjbQdumbs4BbBZEy9/M00EHEjKN3HieVhCUlwjeQ==} - dependencies: - image-q: 4.0.0 - omggif: 1.0.10 - dev: true - - /github-from-package/0.0.0: - resolution: {integrity: sha1-l/tdlr/eiXMxPyDoKI75oWf6ZM4=} - dev: true - /github-slugger/1.4.0: resolution: {integrity: sha512-w0dzqw/nt51xMVmlaV1+JRzN+oCa1KfcgGEWhxUG16wbdA+Xnt/yoFO8Z8x/V82ZcZ0wy6ln9QDup5avbhiDhQ==} dev: true @@ -2360,13 +1801,6 @@ packages: path-is-absolute: 1.0.1 dev: true - /global/4.4.0: - resolution: {integrity: sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w==} - dependencies: - min-document: 2.19.0 - process: 0.11.10 - dev: true - /globals/11.12.0: resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} engines: {node: '>=4'} @@ -2428,6 +1862,15 @@ packages: web-namespaces: 2.0.1 dev: true + /hast-util-from-html/1.0.0: + resolution: {integrity: sha512-tXYPhk28aMtDjGb4xNDaxtGKqlyZAEPGjN12jPCjczWppdLSrG/0r604a3FMvrd+9nV1HclILQiVqMnuPxN0WQ==} + dependencies: + '@types/hast': 2.3.4 + hast-util-from-parse5: 7.1.0 + parse5: 7.1.1 + vfile: 5.3.4 + dev: true + /hast-util-from-parse5/5.0.3: resolution: {integrity: sha512-gOc8UB99F6eWVWFtM9jUikjN7QkWxB3nY0df5Z0Zq1/Nkwl5V4hAAsl0tmwlgWl/1shlTF8DnNYLO8X6wRV9pA==} dependencies: @@ -2594,29 +2037,6 @@ packages: resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} dev: true - /image-q/4.0.0: - resolution: {integrity: sha512-PfJGVgIfKQJuq3s0tTDOKtztksibuUEbJQIYT3by6wctQo+Rdlh7ef4evJ5NCdxY4CfMbvFkocEwbl4BF8RlJw==} - dependencies: - '@types/node': 16.9.1 - dev: true - - /image-size/1.0.2: - resolution: {integrity: sha512-xfOoWjceHntRb3qFCrh5ZFORYH8XCdYpASltMhZ/Q0KZiOwjdE/Yl2QCiWdwD+lygV5bMCvauzgu5PxBX/Yerg==} - engines: {node: '>=14.0.0'} - hasBin: true - dependencies: - queue: 6.0.2 - dev: true - - /imagetools-core/3.0.2: - resolution: {integrity: sha512-DlArpNiefCc1syIqvOONcE8L8IahN8GjwaEjm6wIJIvuKoFoI1RcKmWWfS2dYxSlTiSp2X5b3JnHDjUXmWqlVA==} - engines: {node: '>=12.0.0'} - requiresBuild: true - dependencies: - sharp: 0.29.3 - dev: true - optional: true - /inflight/1.0.6: resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} dependencies: @@ -2628,10 +2048,6 @@ packages: resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} dev: true - /ini/1.3.8: - resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==} - dev: true - /inline-style-parser/0.1.1: resolution: {integrity: sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q==} dev: true @@ -2647,10 +2063,6 @@ packages: is-decimal: 2.0.1 dev: true - /is-arrayish/0.3.2: - resolution: {integrity: sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==} - dev: true - /is-binary-path/2.1.0: resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} engines: {node: '>=8'} @@ -2697,10 +2109,6 @@ packages: engines: {node: '>=8'} dev: true - /is-function/1.0.2: - resolution: {integrity: sha512-lw7DUp0aWXYg+CBCN+JKkcE0Q2RayZnSvnZBlwgxHBQhqt5pZNVy4Ri7H9GmmXkdu7LUthszM+Tor1u/2iBcpQ==} - dev: true - /is-glob/4.0.3: resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} engines: {node: '>=0.10.0'} @@ -2762,20 +2170,6 @@ packages: resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} dev: true - /jimp/0.14.0: - resolution: {integrity: sha512-8BXU+J8+SPmwwyq9ELihpSV4dWPTiOKBWCEgtkbnxxAVMjXdf3yGmyaLSshBfXc8sP/JQ9OZj5R8nZzz2wPXgA==} - dependencies: - '@babel/runtime': 7.18.9 - '@jimp/custom': 0.14.0 - '@jimp/plugins': 0.14.0_@jimp+custom@0.14.0 - '@jimp/types': 0.14.0_@jimp+custom@0.14.0 - regenerator-runtime: 0.13.9 - dev: true - - /jpeg-js/0.4.4: - resolution: {integrity: sha512-WZzeDOEtTOBK4Mdsar0IqEU5sMr3vSV2RqkAIzUEV2BHnUfKGyswWFPFwK5EeDo93K3FohSHbLAjj0s1Wzd+dg==} - dev: true - /js-tokens/4.0.0: resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} dev: true @@ -2822,6 +2216,13 @@ packages: commander: 8.3.0 dev: true + /katex/0.16.2: + resolution: {integrity: sha512-70DJdQAyh9EMsthw3AaQlDyFf54X7nWEUIa5W+rq8XOpEk//w5Th7/8SqFqpvi/KZ2t6MHUj4f9wLmztBmAYQA==} + hasBin: true + dependencies: + commander: 8.3.0 + dev: false + /kind-of/6.0.3: resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==} engines: {node: '>=0.10.0'} @@ -2841,19 +2242,6 @@ packages: resolution: {integrity: sha512-9JROoBW7pobfsx+Sq2JsASvCo6Pfo6WWoUW79HuB1BCoBXD4PLWJPqDF6fNj67pqBYTbAHkE57M1kS/+L1neOg==} engines: {node: '>=10'} - /load-bmfont/1.4.1: - resolution: {integrity: sha512-8UyQoYmdRDy81Brz6aLAUhfZLwr5zV0L3taTQ4hju7m6biuwiWiJXjPhBJxbUQJA8PrkvJ/7Enqmwk2sM14soA==} - dependencies: - buffer-equal: 0.0.1 - mime: 1.6.0 - parse-bmfont-ascii: 1.0.6 - parse-bmfont-binary: 1.0.6 - parse-bmfont-xml: 1.1.4 - phin: 2.9.3 - xhr: 2.6.0 - xtend: 4.0.2 - dev: true - /load-yaml-file/0.2.0: resolution: {integrity: sha512-OfCBkGEw4nN6JLtgRidPX6QxjBQGQf72q3si2uvqyFEMbycSFFHwAZeXx6cJgFM9wmLrf9zBwCP3Ivqa+LLZPw==} engines: {node: '>=6'} @@ -2878,13 +2266,6 @@ packages: p-locate: 5.0.0 dev: true - /locate-path/7.1.1: - resolution: {integrity: sha512-vJXaRMJgRVD3+cUZs3Mncj2mxpt5mP0EmNOsxRSZRMlbqjvxzDEOIUWXGmavo0ZC9+tNZCBLQ66reA11nbpHZg==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - dependencies: - p-locate: 6.0.0 - dev: true - /lodash.castarray/4.4.0: resolution: {integrity: sha512-aVx8ztPv7/2ULbArGJ2Y42bG1mEQ5mGjpdvrbJcJFU3TbYybe+QlLS4pst9zV52ymy2in1KpFPiZnAOATxD4+Q==} dev: false @@ -2935,13 +2316,6 @@ packages: sourcemap-codec: 1.4.8 dev: true - /make-dir/3.1.0: - resolution: {integrity: sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==} - engines: {node: '>=8'} - dependencies: - semver: 6.3.0 - dev: true - /markdown-extensions/1.1.1: resolution: {integrity: sha512-WWC0ZuMzCyDHYCasEGs4IPvLyTGftYwh6wIEOULOF0HXcqZlhwRzrK0w2VUlxWA98xnvb/jszw4ZSkJ6ADpM6Q==} engines: {node: '>=0.10.0'} @@ -3543,12 +2917,6 @@ packages: braces: 3.0.2 picomatch: 2.3.1 - /mime/1.6.0: - resolution: {integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==} - engines: {node: '>=4'} - hasBin: true - dev: true - /mime/3.0.0: resolution: {integrity: sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==} engines: {node: '>=10.0.0'} @@ -3565,17 +2933,6 @@ packages: engines: {node: '>=12'} dev: true - /mimic-response/3.1.0: - resolution: {integrity: sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==} - engines: {node: '>=10'} - dev: true - - /min-document/2.19.0: - resolution: {integrity: sha512-9Wy1B3m3f66bPPmU5hdA4DR4PB2OfDU/+GS3yAB7IQozE3tqXaVv2zOjgla7MEGSRv95+ILmOuvhLkOK6wJtCQ==} - dependencies: - dom-walk: 0.1.2 - dev: true - /min-indent/1.0.1: resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==} engines: {node: '>=4'} @@ -3590,10 +2947,6 @@ packages: /minimist/1.2.6: resolution: {integrity: sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==} - /mkdirp-classic/0.5.3: - resolution: {integrity: sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==} - dev: true - /mkdirp/0.5.6: resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==} hasBin: true @@ -3620,10 +2973,6 @@ packages: engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true - /napi-build-utils/1.0.2: - resolution: {integrity: sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg==} - dev: true - /nlcst-to-string/2.0.4: resolution: {integrity: sha512-3x3jwTd6UPG7vi5k4GEzvxJ5rDA7hVUIRNHPblKuMVP9Z3xmlsd9cgLcpAMkc5uPOBna82EeshROFhsPkbnTZg==} dev: true @@ -3641,22 +2990,6 @@ packages: tslib: 2.4.0 dev: true - /node-abi/3.24.0: - resolution: {integrity: sha512-YPG3Co0luSu6GwOBsmIdGW6Wx0NyNDLg/hriIyDllVsNwnI6UeqaWShxC3lbH4LtEQUgoLP3XR1ndXiDAWvmRw==} - engines: {node: '>=10'} - dependencies: - semver: 7.3.7 - dev: true - - /node-addon-api/4.3.0: - resolution: {integrity: sha512-73sE9+3UaLYYFmDsFZnqCInzPyh3MqIwZO9cw58yIqAZhONrrabrYyYe3TuIqtIiOuTXVhsGau8hcrhhwSsDIQ==} - dev: true - optional: true - - /node-addon-api/5.0.0: - resolution: {integrity: sha512-CvkDw2OEnme7ybCykJpVcKH+uAOLV2qLqiyla128dN9TkEWfrYmxG6C2boDe5KcNQqZF3orkqzGgOMvZ/JNekA==} - dev: true - /node-domexception/1.0.0: resolution: {integrity: sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==} engines: {node: '>=10.5.0'} @@ -3695,10 +3028,6 @@ packages: resolution: {integrity: sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==} engines: {node: '>= 6'} - /omggif/1.0.10: - resolution: {integrity: sha512-LMJTtvgc/nugXj0Vcrrs68Mn2D1r0zf630VNtqtpI1FEO7e+O9FP4gqs9AcnBaSEeoHIPm28u6qgPR0oyEpGSw==} - dev: true - /once/1.4.0: resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} dependencies: @@ -3757,13 +3086,6 @@ packages: yocto-queue: 0.1.0 dev: true - /p-limit/4.0.0: - resolution: {integrity: sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - dependencies: - yocto-queue: 1.0.0 - dev: true - /p-locate/4.1.0: resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} engines: {node: '>=8'} @@ -3778,37 +3100,11 @@ packages: p-limit: 3.1.0 dev: true - /p-locate/6.0.0: - resolution: {integrity: sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - dependencies: - p-limit: 4.0.0 - dev: true - /p-try/2.2.0: resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} engines: {node: '>=6'} dev: true - /pako/1.0.11: - resolution: {integrity: sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==} - dev: true - - /parse-bmfont-ascii/1.0.6: - resolution: {integrity: sha512-U4RrVsUFCleIOBsIGYOMKjn9PavsGOXxbvYGtMOEfnId0SVNsgehXh1DxUdVPLoxd5mvcEtvmKs2Mmf0Mpa1ZA==} - dev: true - - /parse-bmfont-binary/1.0.6: - resolution: {integrity: sha512-GxmsRea0wdGdYthjuUeWTMWPqm2+FAd4GI8vCvhgJsFnoGhTrLhXDDupwTo7rXVAgaLIGoVHDZS9p/5XbSqeWA==} - dev: true - - /parse-bmfont-xml/1.1.4: - resolution: {integrity: sha512-bjnliEOmGv3y1aMEfREMBJ9tfL3WR0i0CKPj61DnSLaoxWR3nLrsQrEbCId/8rF4NyRF0cCqisSVXyQYWM+mCQ==} - dependencies: - xml-parse-from-string: 1.0.1 - xml2js: 0.4.23 - dev: true - /parse-entities/4.0.0: resolution: {integrity: sha512-5nk9Fn03x3rEhGaX1FU6IDwG/k+GxLXlFAkgrbM1asuAFl3BhdQWvASaIsmwWypRNcZKHPYnIuOSfIWEyEQnPQ==} dependencies: @@ -3822,10 +3118,6 @@ packages: is-hexadecimal: 2.0.1 dev: true - /parse-headers/2.0.5: - resolution: {integrity: sha512-ft3iAoLOB/MlwbNXgzy43SWGP6sQki2jQvAyBg/zDFAgr9bfNWZIUj42Kw2eJIl8kEi4PbgE6U1Zau/HwI75HA==} - dev: true - /parse-latin/5.0.0: resolution: {integrity: sha512-Ht+4/+AUySMS5HKGAiQpBmkFsHSoGrj6Y83flLCa5OIBdtsVkO3UD4OtboJ0O0vZiOznH02x8qlwg9KLUVXuNg==} dependencies: @@ -3842,6 +3134,12 @@ packages: resolution: {integrity: sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==} dev: true + /parse5/7.1.1: + resolution: {integrity: sha512-kwpuwzB+px5WUg9pyK0IcK/shltJN5/OVhQagxhCQNtT9Y9QRZqNY2e1cmbu/paRh5LMnz/oVTVLBpjFmMZhSg==} + dependencies: + entities: 4.4.0 + dev: true + /pascal-case/3.1.2: resolution: {integrity: sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==} dependencies: @@ -3858,11 +3156,6 @@ packages: engines: {node: '>=8'} dev: true - /path-exists/5.0.0: - resolution: {integrity: sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - dev: true - /path-is-absolute/1.0.1: resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} engines: {node: '>=0.10.0'} @@ -3885,11 +3178,6 @@ packages: resolution: {integrity: sha512-JLyh7xT1kizaEvcaXOQwOc2/Yhw6KZOvPf1S8401UyLk86CU79LN3vl7ztXGm/pZ+YjoyAJ4rxmHwbkBXJX+yw==} dev: true - /peek-readable/5.0.0: - resolution: {integrity: sha512-YtCKvLUOvwtMGmrniQPdO7MwPjgkFBtFIrmfSbYmYuq3tKDV/mcfAhBth1+C3ru7uXIZasc/pHnb+YDYNkkj4A==} - engines: {node: '>=14.16'} - dev: true - /periscopic/3.0.4: resolution: {integrity: sha512-SFx68DxCv0Iyo6APZuw/AKewkkThGwssmU0QWtTlvov3VAtPX+QJ4CadwSaz8nrT5jPIuxdvJWB4PnD2KNDxQg==} dependencies: @@ -3897,10 +3185,6 @@ packages: is-reference: 3.0.0 dev: true - /phin/2.9.3: - resolution: {integrity: sha512-CzFr90qM24ju5f88quFC/6qohjC144rehe5n6DH900lgXmUe86+xCKc10ev56gRKC4/BkHUoG4uSiQgBiIXwDA==} - dev: true - /phosphor-icons/1.4.2: resolution: {integrity: sha512-vDyuRWLSEb87dxpoOGpP1GCjr/TFzA0Ljt0TtJcwXO7/iPdSZW0e/2m1jsANH1ML5ZyZXcjeWx6pzT0A0tgYDA==} dev: false @@ -3921,13 +3205,6 @@ packages: engines: {node: '>=6'} dev: true - /pixelmatch/4.0.2: - resolution: {integrity: sha512-J8B6xqiO37sU/gkcMglv6h5Jbd9xNER7aHzpfRdNmV4IbQBzBpe4l9XmbG+xPF/znacgu2jfEw+wHffaq/YkXA==} - hasBin: true - dependencies: - pngjs: 3.4.0 - dev: true - /pkg-dir/4.2.0: resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==} engines: {node: '>=8'} @@ -3935,11 +3212,6 @@ packages: find-up: 4.1.0 dev: true - /pngjs/3.4.0: - resolution: {integrity: sha512-NCrCHhWmnQklfH4MtJMRjZ2a8c80qXeMlQMv2uVp9ISJMTt562SbGd6n2oq0PaPgKm7Z6pL9E2UlLIhC+SHL3w==} - engines: {node: '>=4.0.0'} - dev: true - /postcss-import/14.1.0_postcss@8.4.16: resolution: {integrity: sha512-flwI+Vgm4SElObFVPpTIT7SU7R3qk2L7PyduMcokiaVKuWv9d/U+Gm/QAd8NDLuykTWTkcrjOeD2Pp1rMeBTGw==} engines: {node: '>=10.0.0'} @@ -4020,31 +3292,6 @@ packages: picocolors: 1.0.0 source-map-js: 1.0.2 - /potrace/2.1.8: - resolution: {integrity: sha512-V9hI7UMJyEhNZjM8CbZaP/804ZRLgzWkCS9OOYnEZkszzj3zKR/erRdj0uFMcN3pp6x4B+AIZebmkQgGRinG/g==} - dependencies: - jimp: 0.14.0 - dev: true - - /prebuild-install/7.1.1: - resolution: {integrity: sha512-jAXscXWMcCK8GgCoHOfIr0ODh5ai8mj63L2nWrjuAgXE6tDyYGnx4/8o/rCgU+B4JSyZBKbeZqzhtwtC3ovxjw==} - engines: {node: '>=10'} - hasBin: true - dependencies: - detect-libc: 2.0.1 - expand-template: 2.0.3 - github-from-package: 0.0.0 - minimist: 1.2.6 - mkdirp-classic: 0.5.3 - napi-build-utils: 1.0.2 - node-abi: 3.24.0 - pump: 3.0.0 - rc: 1.2.8 - simple-get: 4.0.1 - tar-fs: 2.1.1 - tunnel-agent: 0.6.0 - dev: true - /preferred-pm/3.0.3: resolution: {integrity: sha512-+wZgbxNES/KlJs9q40F/1sfOd/j7f1O9JaHcW5Dsn3aUUOZg3L2bjpVUcKV2jvtElYfoTuQiNeMfQJ4kwUAhCQ==} engines: {node: '>=10'} @@ -4080,15 +3327,9 @@ packages: hasBin: true dev: true - /prismjs/1.28.0: - resolution: {integrity: sha512-8aaXdYvl1F7iC7Xm1spqSaY/OJBpYW3v+KJ+F17iYxvdc8sfjW194COK5wVhMZX45tGteiBQgdvD/nhxcRwylw==} + /prismjs/1.29.0: + resolution: {integrity: sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q==} engines: {node: '>=6'} - dev: true - - /process/0.11.10: - resolution: {integrity: sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==} - engines: {node: '>= 0.6.0'} - dev: true /prompts/2.4.2: resolution: {integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==} @@ -4108,36 +3349,13 @@ packages: resolution: {integrity: sha512-hrzC564QIl0r0vy4l6MvRLhafmUowhO/O3KgVSoXIbbA2Sz4j8HGpJc6T2cubRVwMwpdiG/vKGfhT4IixmKN9w==} dev: true - /pump/3.0.0: - resolution: {integrity: sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==} - dependencies: - end-of-stream: 1.4.4 - once: 1.4.0 - dev: true - /queue-microtask/1.2.3: resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} - /queue/6.0.2: - resolution: {integrity: sha512-iHZWu+q3IdFZFX36ro/lKBkSvfkztY5Y7HMiPlOUjhupPcG2JMfst2KKEpu5XndviX/3UhFbRngUPNKtgvtZiA==} - dependencies: - inherits: 2.0.4 - dev: true - /quick-lru/5.1.1: resolution: {integrity: sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==} engines: {node: '>=10'} - /rc/1.2.8: - resolution: {integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==} - hasBin: true - dependencies: - deep-extend: 0.6.0 - ini: 1.3.8 - minimist: 1.2.6 - strip-json-comments: 2.0.1 - dev: true - /read-cache/1.0.0: resolution: {integrity: sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==} dependencies: @@ -4152,13 +3370,6 @@ packages: util-deprecate: 1.0.2 dev: true - /readable-web-to-node-stream/3.0.2: - resolution: {integrity: sha512-ePeK6cc1EcKLEhJFt/AebMCLL+GgSKhuygrZ/GLaKZYEecIgIECf4UaUuaByiGtzckwR4ain9VzUh95T1exYGw==} - engines: {node: '>=8'} - dependencies: - readable-stream: 3.6.0 - dev: true - /readdirp/3.6.0: resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} engines: {node: '>=8.10.0'} @@ -4179,10 +3390,6 @@ packages: tslib: 2.4.0 dev: true - /regenerator-runtime/0.13.9: - resolution: {integrity: sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==} - dev: true - /rehype-autolink-headings/6.1.1: resolution: {integrity: sha512-NMYzZIsHM3sA14nC5rAFuUPIOfg+DFmf9EY1YMhaNlB7+3kK/ZlE6kqPfuxr1tsJ1XWkTrMtMoyHosU70d35mA==} dependencies: @@ -4498,37 +3705,6 @@ packages: lru-cache: 6.0.0 dev: true - /sharp/0.29.3: - resolution: {integrity: sha512-fKWUuOw77E4nhpyzCCJR1ayrttHoFHBT2U/kR/qEMRhvPEcluG4BKj324+SCO1e84+knXHwhJ1HHJGnUt4ElGA==} - engines: {node: '>=12.13.0'} - requiresBuild: true - dependencies: - color: 4.2.3 - detect-libc: 1.0.3 - node-addon-api: 4.3.0 - prebuild-install: 7.1.1 - semver: 7.3.7 - simple-get: 4.0.1 - tar-fs: 2.1.1 - tunnel-agent: 0.6.0 - dev: true - optional: true - - /sharp/0.30.7: - resolution: {integrity: sha512-G+MY2YW33jgflKPTXXptVO28HvNOo9G3j0MybYAHeEmby+QuD2U98dT6ueht9cv/XDqZspSpIhoSW+BAKJ7Hig==} - engines: {node: '>=12.13.0'} - requiresBuild: true - dependencies: - color: 4.2.3 - detect-libc: 2.0.1 - node-addon-api: 5.0.0 - prebuild-install: 7.1.1 - semver: 7.3.7 - simple-get: 4.0.1 - tar-fs: 2.1.1 - tunnel-agent: 0.6.0 - dev: true - /shebang-command/2.0.0: resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} engines: {node: '>=8'} @@ -4557,24 +3733,6 @@ packages: resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} dev: true - /simple-concat/1.0.1: - resolution: {integrity: sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==} - dev: true - - /simple-get/4.0.1: - resolution: {integrity: sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA==} - dependencies: - decompress-response: 6.0.0 - once: 1.4.0 - simple-concat: 1.0.1 - dev: true - - /simple-swizzle/0.2.2: - resolution: {integrity: sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==} - dependencies: - is-arrayish: 0.3.2 - dev: true - /sirv/2.0.2: resolution: {integrity: sha512-4Qog6aE29nIjAOKe/wowFTxOdmbEZKb+3tsLljaBRzJwtqto0BChD2zzH0LhgCSXiI+V7X+Y45v14wBZQ1TK3w==} engines: {node: '>= 10'} @@ -4716,19 +3874,6 @@ packages: min-indent: 1.0.1 dev: true - /strip-json-comments/2.0.1: - resolution: {integrity: sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==} - engines: {node: '>=0.10.0'} - dev: true - - /strtok3/7.0.0: - resolution: {integrity: sha512-pQ+V+nYQdC5H3Q7qBZAz/MO6lwGhoC2gOAjuouGf/VO0m7vQRh8QNMl2Uf6SwAtzZ9bOw3UIeBukEGNJl5dtXQ==} - engines: {node: '>=14.16'} - dependencies: - '@tokenizer/token': 0.3.0 - peek-readable: 5.0.0 - dev: true - /style-to-object/0.3.0: resolution: {integrity: sha512-CzFnRRXhzWIdItT3OmF8SQfWyahHhjq3HwcMNCNLn+N7klOOqPjMeG/4JSu77D7ypZdGvSzvkrbyeTMizz2VrA==} dependencies: @@ -4937,30 +4082,6 @@ packages: transitivePeerDependencies: - ts-node - /tar-fs/2.1.1: - resolution: {integrity: sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==} - dependencies: - chownr: 1.1.4 - mkdirp-classic: 0.5.3 - pump: 3.0.0 - tar-stream: 2.2.0 - dev: true - - /tar-stream/2.2.0: - resolution: {integrity: sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==} - engines: {node: '>=6'} - dependencies: - bl: 4.1.0 - end-of-stream: 1.4.4 - fs-constants: 1.0.0 - inherits: 2.0.4 - readable-stream: 3.6.0 - dev: true - - /timm/1.7.1: - resolution: {integrity: sha512-IjZc9KIotudix8bMaBW6QvMuq64BrJWFs1+4V0lXwWGQZwH+LnX87doAYhem4caOEusRP9/g6jVDQmZ8XOk1nw==} - dev: true - /tiny-glob/0.2.9: resolution: {integrity: sha512-g/55ssRPUjShh+xkfx9UPDXqhckHEsHr4Vd9zX55oSdGZc/MD0m3sferOkwWtp98bv+kcVfEHtRJgBVJzelrzg==} dependencies: @@ -4968,10 +4089,6 @@ packages: globrex: 0.1.2 dev: true - /tinycolor2/1.4.2: - resolution: {integrity: sha512-vJhccZPs965sV/L2sU4oRQVAos0pQXwsvTLkWYdqJ+a8Q5kPFzJTuOFwy7UniPli44NKQGAglksjvOcpo95aZA==} - dev: true - /to-fast-properties/2.0.0: resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} engines: {node: '>=4'} @@ -4983,14 +4100,6 @@ packages: dependencies: is-number: 7.0.0 - /token-types/5.0.1: - resolution: {integrity: sha512-Y2fmSnZjQdDb9W4w4r1tswlMHylzWIeOKpx0aZH9BgGtACHhrk3OkT52AzwcuqTRBZtvvnTjDBh8eynMulu8Vg==} - engines: {node: '>=14.16'} - dependencies: - '@tokenizer/token': 0.3.0 - ieee754: 1.2.1 - dev: true - /toml/3.0.0: resolution: {integrity: sha512-y/mWCZinnvxjTKYhJ+pYxwD0mRLVvOtdS2Awbgxln6iEnt4rk0yBxeSBHkGJcPucRiG0e55mwWp+g/05rsrd6w==} dev: true @@ -5035,12 +4144,6 @@ packages: esbuild: 0.14.54 dev: true - /tunnel-agent/0.6.0: - resolution: {integrity: sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==} - dependencies: - safe-buffer: 5.2.1 - dev: true - /type-fest/0.13.1: resolution: {integrity: sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==} engines: {node: '>=10'} @@ -5082,6 +4185,7 @@ packages: /unified/8.4.2: resolution: {integrity: sha512-JCrmN13jI4+h9UAyKEoGcDZV+i1E7BLFuG7OsaDvTXI5P0qhHX+vZO/kOhz9jn8HGENDKbwSeB0nVOg4gVStGA==} dependencies: + '@types/unist': 2.0.6 bail: 1.0.5 extend: 3.0.2 is-plain-obj: 2.1.0 @@ -5202,12 +4306,6 @@ packages: picocolors: 1.0.0 dev: true - /utif/2.0.1: - resolution: {integrity: sha512-Z/S1fNKCicQTf375lIP9G8Sa1H/phcysstNrrSdZKj1f9g58J4NMgb5IgiEZN9/nLMPDwF0W7hdOe9Qq2IYoLg==} - dependencies: - pako: 1.0.11 - dev: true - /util-deprecate/1.0.2: resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} @@ -5440,32 +4538,6 @@ packages: resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} dev: true - /xhr/2.6.0: - resolution: {integrity: sha512-/eCGLb5rxjx5e3mF1A7s+pLlR6CGyqWN91fv1JgER5mVWg1MZmlhBvy9kjcsOdRk8RrIujotWyJamfyrp+WIcA==} - dependencies: - global: 4.4.0 - is-function: 1.0.2 - parse-headers: 2.0.5 - xtend: 4.0.2 - dev: true - - /xml-parse-from-string/1.0.1: - resolution: {integrity: sha512-ErcKwJTF54uRzzNMXq2X5sMIy88zJvfN2DmdoQvy7PAFJ+tPRU6ydWuOKNMyfmOjdyBQTFREi60s0Y0SyI0G0g==} - dev: true - - /xml2js/0.4.23: - resolution: {integrity: sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==} - engines: {node: '>=4.0.0'} - dependencies: - sax: 1.2.4 - xmlbuilder: 11.0.1 - dev: true - - /xmlbuilder/11.0.1: - resolution: {integrity: sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==} - engines: {node: '>=4.0'} - dev: true - /xtend/4.0.2: resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==} engines: {node: '>=0.4'} @@ -5493,11 +4565,6 @@ packages: engines: {node: '>=10'} dev: true - /yocto-queue/1.0.0: - resolution: {integrity: sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==} - engines: {node: '>=12.20'} - dev: true - /zod/3.18.0: resolution: {integrity: sha512-gwTm8RfUCe8l9rDwN5r2A17DkAa8Ez4Yl4yXqc5VqeGaXaJahzYYXbTwvhroZi0SNBqTwh/bKm2N0mpCzuw4bA==} dev: true diff --git a/src/assets/styles/styles/components.css b/src/assets/styles/styles/components.css index 3f79f0b..2ec2f41 100644 --- a/src/assets/styles/styles/components.css +++ b/src/assets/styles/styles/components.css @@ -33,14 +33,6 @@ } .prose :not(:where([class~="not-prose"] *)) { - &-extension :not(:where([class~="not-prose"] *)) { - @apply mx-auto max-w-[100vw] px-2 md:max-w-[65ch] !important; - - & a :not(:where([class~="not-prose"] *)) { - @apply underline decoration-slate-400 hover:decoration-slate-900; - } - } - & :where(code):not(:where([class~="not-prose"] *))::after, & :where(code):not(:where([class~="not-prose"] *))::before, & @@ -53,6 +45,14 @@ } } + .prose-extension { + @apply mx-auto max-w-[100vw] px-2 md:max-w-[65ch] !important; + + & a :not(:where([class~="not-prose"] *)) { + @apply underline decoration-slate-400 hover:decoration-slate-900; + } + } + /* Prisma adjustements */ pre { @apply mt-0 overflow-x-scroll rounded-t-none !important; @@ -224,7 +224,7 @@ @apply mb-10 list-none; & li a { - @apply flex items-center flex-shrink text-gray-600 hover:text-gray-800; + @apply flex items-center flex-shrink text-gray-600 hover:text-gray-800 no-underline; } } } @@ -252,7 +252,7 @@ /* Main layout */ main { - @apply container mx-auto flex min-h-screen w-full flex-col items-center justify-start; + @apply container mx-auto flex min-h-screen w-full md:gap-5 flex-col md:flex-row items-start justify-start; } /* Index */ diff --git a/src/components/Audio.svelte b/src/components/Audio.svelte new file mode 100644 index 0000000..4bef9b8 --- /dev/null +++ b/src/components/Audio.svelte @@ -0,0 +1,30 @@ +<script lang="ts"> + import { onMount } from "svelte"; + import Shikwasa from "shikwasa"; + + // props for embedded audio ressource + export let title: string; + export let src: string; + export let artist: string; + export let cover: string | undefined; + + // shikwasa container for audio widget + // refer to the shikwasa documentation for more information + let container: HTMLDivElement; + + // create shikwasa instance on load + onMount(() => { + new Shikwasa({ + container, + audio: { + artist, + cover, + src, + title + } + }); + }); +</script> + +<div bind:this={container} class="mb-2" /> + diff --git a/src/components/Avatar.astro b/src/components/Avatar.astro index 8efcc16..5650f70 100644 --- a/src/components/Avatar.astro +++ b/src/components/Avatar.astro @@ -1,6 +1,4 @@ --- -import { Picture } from "@astrojs/image/components"; - export interface Props { src: string; alt: string; @@ -23,6 +21,5 @@ const { src, alt, float } = Astro.props; "md:inline-flex", ]} > - <Picture {src} {alt} class="rounded m-2 ring-2 ring-slate-500 max-w-[20rem]" - /> + <img src={src} alt={alt} class="rounded m-2 ring-2 ring-slate-500 max-w-[20rem]" /> </div> diff --git a/src/components/DescriptionList.astro b/src/components/DescriptionList.astro index 03d3a97..40e610c 100644 --- a/src/components/DescriptionList.astro +++ b/src/components/DescriptionList.astro @@ -5,7 +5,6 @@ export interface Props { } const { title, items } = Astro.props; -console.log(title, items); --- <div class="flex flex-col"> diff --git a/src/components/Figure.astro b/src/components/Figure.astro index 5b18a86..8dbc1f2 100644 --- a/src/components/Figure.astro +++ b/src/components/Figure.astro @@ -1,14 +1,29 @@ --- -import { Picture } from '@astrojs/image/components'; - export interface Props { src: string; - alt: string; - float: "left" | "right" | undefined; - caption: boolean; + // alt of the image, should be "" if image is decorative + alt?: string; + // let the image float besides the content + float?: "left" | "right"; + // show alt as a figure caption + caption?: boolean; + // toggle to disable warnings when loading remote images + gdpr_compliant?: boolean; } -const { src, alt, float = undefined, caption = true } = Astro.props; +const { + src, + alt = "", + float, + caption = true, + gdpr_compliant = false, +} = Astro.props; + +if (src.startsWith("http") && !gdpr_compliant) { + console.warn( + `${src} was included as an image. Please review the privacy policy of the remote host before pushing this change. You can disable this warning by adding: gdpr_compliant={true} to the Figure tag` + ); +} --- <div @@ -17,7 +32,8 @@ const { src, alt, float = undefined, caption = true } = Astro.props; ]} > <figure class="my-0 inline-block bg-transparent px-2"> - <Picture {src} {alt} /> + <img src={src} alt={alt} /> + {caption && <figcaption class="text-end text-sm">{alt}</figcaption>} </figure> </div> diff --git a/src/components/Meta.astro b/src/components/Meta.astro index 488f70d..09d0a68 100644 --- a/src/components/Meta.astro +++ b/src/components/Meta.astro @@ -1,21 +1,10 @@ --- -import { getImage } from "@astrojs/image"; import { base_description } from "$lib/constants"; -import favicon from "../assets/images/favicon.ico"; - -const { src: defaultImage } = getImage !== undefined ? { src: "/favicon.ico" } : await getImage({ - // TODO: Add proper default image - src: favicon, - width: 1200, - height: 628, -}); - const default_title = "CoderDōjō R & B"; let { title } = Astro.props; const { description = base_description, - image = defaultImage, canonical, } = Astro.props; @@ -24,8 +13,6 @@ if (title) { } else { title = default_title; } - -const absoluteImageUrl = new URL(image, Astro.site); --- <title>{title} @@ -50,60 +37,60 @@ const absoluteImageUrl = new URL(image, Astro.site); - + - + - + @@ -111,4 +98,4 @@ const absoluteImageUrl = new URL(image, Astro.site); - + diff --git a/src/components/Placeholder.astro b/src/components/Placeholder.astro index 4c448d9..d3968f4 100644 --- a/src/components/Placeholder.astro +++ b/src/components/Placeholder.astro @@ -1,6 +1,7 @@
+
diff --git a/src/components/TocDropdown.svelte b/src/components/TocDropdown.svelte index e68ab4a..ada840e 100644 --- a/src/components/TocDropdown.svelte +++ b/src/components/TocDropdown.svelte @@ -2,16 +2,15 @@ // Simple dropdown handled over max-height of toc-list // props export let collapsed: boolean; - export let active: boolean; - export let firstHeading: [string, string]; - export let targetUrl: string; + export let first_heading: [string, string]; export let headings: [string, string][]; + export let active: boolean;
{#if headings.length == 0} - - {firstHeading[0]} + + {first_heading[1]} {:else} +
+ ) + } +