From 8c024d74cda56f2a9133dbfb9648551936ba942d Mon Sep 17 00:00:00 2001 From: Eric Woodward Date: Fri, 23 Sep 2022 02:40:26 -0400 Subject: [PATCH] Major update - simpler file structure, better layouts, moar content --- .gitignore | 4 + .prettierignore | 2 + LICENSE | 21 + README.md | 19 + app.js | 30 + lib/build.js | 370 +++ lib/defaults.json5 | 19 + lib/loadConfig.js | 43 + lib/serve.js | 26 + lib/utils.js | 57 + lib/watch.js | 58 + package-lock.json | 2653 +++++++++++++++++ package.json | 34 + site.config.json5 | 26 + src/assets/_root/browserconfig.xml | 2 + src/assets/_root/chim/chim-exe.zip | Bin 0 -> 46533 bytes src/assets/_root/chim/js-dos-api.js | 348 +++ src/assets/_root/favicon.ico | Bin 0 -> 1150 bytes src/assets/_root/favicon.png | Bin 0 -> 1645 bytes src/assets/_root/manifest.json | 41 + src/assets/_root/root/favicon.ico | Bin 0 -> 1150 bytes src/assets/_root/root/favicon.png | Bin 0 -> 1645 bytes src/assets/files/chim/chim.exe | Bin 0 -> 109334 bytes src/assets/files/chim/chim.faq | 422 +++ src/assets/files/chim/chim.zip | Bin 0 -> 57457 bytes src/assets/files/chim/file_id.diz | 9 + src/assets/files/chim/intro.txt | 22 + src/assets/files/chim/license.txt | 22 + src/assets/files/chim/map.txt | 24 + src/assets/files/public.aexpk | 88 + src/assets/fonts/exo2/Exo2-Bold-webfont.eot | Bin 0 -> 27455 bytes src/assets/fonts/exo2/Exo2-Bold-webfont.svg | 1718 +++++++++++ src/assets/fonts/exo2/Exo2-Bold-webfont.ttf | Bin 0 -> 63396 bytes src/assets/fonts/exo2/Exo2-Bold-webfont.woff | Bin 0 -> 30128 bytes .../fonts/exo2/Exo2-BoldItalic-webfont.eot | Bin 0 -> 29301 bytes .../fonts/exo2/Exo2-BoldItalic-webfont.svg | 1694 +++++++++++ .../fonts/exo2/Exo2-BoldItalic-webfont.ttf | Bin 0 -> 66852 bytes .../fonts/exo2/Exo2-BoldItalic-webfont.woff | Bin 0 -> 32044 bytes src/assets/fonts/exo2/Exo2-Italic-webfont.eot | Bin 0 -> 29369 bytes src/assets/fonts/exo2/Exo2-Italic-webfont.svg | 1641 ++++++++++ src/assets/fonts/exo2/Exo2-Italic-webfont.ttf | Bin 0 -> 68376 bytes .../fonts/exo2/Exo2-Italic-webfont.woff | Bin 0 -> 32152 bytes .../fonts/exo2/Exo2-Regular-webfont.eot | Bin 0 -> 27407 bytes .../fonts/exo2/Exo2-Regular-webfont.svg | 1648 ++++++++++ .../fonts/exo2/Exo2-Regular-webfont.ttf | Bin 0 -> 63752 bytes .../fonts/exo2/Exo2-Regular-webfont.woff | Bin 0 -> 30052 bytes .../fonts/exo2/SIL Open Font License.txt | 43 + src/assets/images/404-opte-1000x800.jpg | Bin 0 -> 139525 bytes .../images/404/hole-bg-1100x1238-50.jpg | Bin 0 -> 68391 bytes src/assets/images/404/hole-bg-1100x900-50.jpg | Bin 0 -> 57761 bytes src/assets/images/404/hole-bg-1600x900-50.jpg | Bin 0 -> 85067 bytes src/assets/images/404/hole-bg.jpg | Bin 0 -> 68391 bytes src/assets/images/anachronism/ana_logo.jpg | Bin 0 -> 13163 bytes .../anachronism/immortals/amanda_darieux.jpg | Bin 0 -> 45380 bytes .../anachronism/immortals/antonius_kalas.jpg | Bin 0 -> 41753 bytes .../anachronism/immortals/black_longcoat.jpg | Bin 0 -> 40474 bytes .../immortals/black_trenchcoat.jpg | Bin 0 -> 35629 bytes .../immortals/clamshell_rapier.jpg | Bin 0 -> 30950 bytes .../anachronism/immortals/clan_macleod.jpg | Bin 0 -> 43439 bytes .../anachronism/immortals/connor_macleod.jpg | Bin 0 -> 44587 bytes .../images/anachronism/immortals/darius.jpg | Bin 0 -> 37826 bytes .../immortals/dragons_head_katana.jpg | Bin 0 -> 37164 bytes .../anachronism/immortals/duncan_macleod.jpg | Bin 0 -> 41708 bytes .../anachronism/immortals/four_horsemen.jpg | Bin 0 -> 41124 bytes .../anachronism/immortals/glenfinnan.jpg | Bin 0 -> 43810 bytes .../anachronism/immortals/grey_trenchcoat.jpg | Bin 0 -> 40607 bytes .../anachronism/immortals/holy_ground.jpg | Bin 0 -> 43587 bytes .../anachronism/immortals/hugh_fitzcairn.jpg | Bin 0 -> 44199 bytes .../immortals/immortal_healing.jpg | Bin 0 -> 43058 bytes .../anachronism/immortals/jacob_kell.jpg | Bin 0 -> 43803 bytes .../anachronism/immortals/james_horton.jpg | Bin 0 -> 36877 bytes .../anachronism/immortals/joe_dawson.jpg | Bin 0 -> 35089 bytes .../immortals/juan_sanchez_ramirez_tak_ne.jpg | Bin 0 -> 49135 bytes .../anachronism/immortals/kells_gang.jpg | Bin 0 -> 41500 bytes .../images/anachronism/immortals/kronos.jpg | Bin 0 -> 42266 bytes .../immortals/kurgans_broadsword.jpg | Bin 0 -> 35361 bytes .../anachronism/immortals/leather_coat.jpg | Bin 0 -> 40154 bytes .../anachronism/immortals/leather_jacket.jpg | Bin 0 -> 36222 bytes .../anachronism/immortals/masamune_katana.jpg | Bin 0 -> 35827 bytes .../images/anachronism/immortals/methos.jpg | Bin 0 -> 43548 bytes .../immortals/methos_broadsword.jpg | Bin 0 -> 37077 bytes .../immortals/motorcycle_jacket.jpg | Bin 0 -> 40021 bytes .../anachronism/immortals/quickening.jpg | Bin 0 -> 42175 bytes .../anachronism/immortals/richie_ryan.jpg | Bin 0 -> 40877 bytes .../anachronism/immortals/rocker_jacket.jpg | Bin 0 -> 36847 bytes .../anachronism/immortals/tessa_noel.jpg | Bin 0 -> 39295 bytes .../images/anachronism/immortals/the_game.jpg | Bin 0 -> 45641 bytes .../anachronism/immortals/the_hunters.jpg | Bin 0 -> 37491 bytes .../anachronism/immortals/the_kurgan.jpg | Bin 0 -> 44163 bytes .../anachronism/immortals/the_prize.jpg | Bin 0 -> 38354 bytes .../immortals/the_sword_of_kronos.jpg | Bin 0 -> 34975 bytes .../anachronism/immortals/the_watchers.jpg | Bin 0 -> 31399 bytes .../immortals/xavier_saint_cloud.jpg | Bin 0 -> 41456 bytes .../anachronism/links/abraham_lincoln.jpg | Bin 0 -> 13453 bytes .../anachronism/links/billy_the_kid.jpg | Bin 0 -> 21742 bytes .../anachronism/links/george_washington.jpg | Bin 0 -> 25039 bytes .../images/anachronism/links/robert_e_lee.jpg | Bin 0 -> 19226 bytes .../images/anachronism/links/stetson_hat.jpg | Bin 0 -> 19215 bytes .../images/anachronism/links/the_dictator.jpg | Bin 0 -> 29201 bytes .../anachronism/links/the_us_constitution.jpg | Bin 0 -> 29730 bytes .../anachronism/links/ulysses_s_grant.jpg | Bin 0 -> 19631 bytes .../images/anachronism/links/wyatt_earp.jpg | Bin 0 -> 24760 bytes .../images/anachronism/others/bruce_lee.jpg | Bin 0 -> 42862 bytes .../anachronism/others/elric_of_melnibone.jpg | Bin 0 -> 48255 bytes .../anachronism/others/gods_of_law__chaos.jpg | Bin 0 -> 48198 bytes .../anachronism/others/john_blackthorn.jpg | Bin 0 -> 43408 bytes .../images/anachronism/others/long_sky.jpg | Bin 0 -> 38546 bytes .../anachronism/others/moonglum_of_elwher.jpg | Bin 0 -> 44656 bytes .../images/anachronism/others/nameless.jpg | Bin 0 -> 43559 bytes .../others/royal_armor_of_melnibone.jpg | Bin 0 -> 44056 bytes .../anachronism/others/stormbringer.jpg | Bin 0 -> 38685 bytes .../us_americans/abraham_lincoln.jpg | Bin 0 -> 38730 bytes .../us_americans/benjamin_franklin.jpg | Bin 0 -> 40276 bytes .../us_americans/billy_the_kid.jpg | Bin 0 -> 44851 bytes .../us_americans/cavalry_sabre.jpg | Bin 0 -> 37288 bytes .../us_americans/colonial_tricorne.jpg | Bin 0 -> 36016 bytes .../us_americans/colt_45_single_action.jpg | Bin 0 -> 37099 bytes .../us_americans/confederate_grey.jpg | Bin 0 -> 52906 bytes .../anachronism/us_americans/deputization.jpg | Bin 0 -> 41306 bytes .../us_americans/earp_vendetta_ride.jpg | Bin 0 -> 43940 bytes .../us_americans/george_washington.jpg | Bin 0 -> 49605 bytes .../us_americans/jefferson_davis.jpg | Bin 0 -> 38482 bytes .../us_americans/john_henry_doc_holliday.jpg | Bin 0 -> 41636 bytes .../lincoln_county_regulators.jpg | Bin 0 -> 45068 bytes .../anachronism/us_americans/robert_e_lee.jpg | Bin 0 -> 45705 bytes .../us_americans/springfield_musket.jpg | Bin 0 -> 38967 bytes .../us_americans/states_rights.jpg | Bin 0 -> 45134 bytes .../anachronism/us_americans/stetson_hat.jpg | Bin 0 -> 37073 bytes .../anachronism/us_americans/the_dictator.jpg | Bin 0 -> 54950 bytes .../us_americans/the_us_constitution.jpg | Bin 0 -> 48339 bytes .../us_americans/ulysses_s_grant.jpg | Bin 0 -> 47162 bytes .../anachronism/us_americans/union_blue.jpg | Bin 0 -> 43498 bytes .../anachronism/us_americans/wanted_man.jpg | Bin 0 -> 46517 bytes .../anachronism/us_americans/west_point.jpg | Bin 0 -> 48366 bytes .../winchester_model_1873_rifle.jpg | Bin 0 -> 38939 bytes .../anachronism/us_americans/wyatt_earp.jpg | Bin 0 -> 47753 bytes src/assets/images/code-bg.jpg | Bin 0 -> 72843 bytes src/assets/images/eric-8bit.gif | Bin 0 -> 48157 bytes .../images/favicons/android-icon-144x144.png | Bin 0 -> 15299 bytes .../images/favicons/android-icon-192x192.png | Bin 0 -> 22798 bytes .../images/favicons/android-icon-36x36.png | Bin 0 -> 3252 bytes .../images/favicons/android-icon-48x48.png | Bin 0 -> 4460 bytes .../images/favicons/android-icon-72x72.png | Bin 0 -> 6644 bytes .../images/favicons/android-icon-96x96.png | Bin 0 -> 9240 bytes .../images/favicons/apple-icon-114x114.png | Bin 0 -> 11242 bytes .../images/favicons/apple-icon-120x120.png | Bin 0 -> 12037 bytes .../images/favicons/apple-icon-144x144.png | Bin 0 -> 15299 bytes .../images/favicons/apple-icon-152x152.png | Bin 0 -> 15877 bytes .../images/favicons/apple-icon-180x180.png | Bin 0 -> 21175 bytes .../images/favicons/apple-icon-57x57.png | Bin 0 -> 5319 bytes .../images/favicons/apple-icon-60x60.png | Bin 0 -> 5651 bytes .../images/favicons/apple-icon-72x72.png | Bin 0 -> 6644 bytes .../images/favicons/apple-icon-76x76.png | Bin 0 -> 7195 bytes .../favicons/apple-icon-precomposed.png | Bin 0 -> 23372 bytes src/assets/images/favicons/apple-icon.png | Bin 0 -> 23372 bytes src/assets/images/favicons/favicon-32x32.png | Bin 0 -> 2822 bytes src/assets/images/favicons/favicon-96x96.png | Bin 0 -> 9240 bytes src/assets/images/favicons/favicon.ico | Bin 0 -> 1150 bytes src/assets/images/favicons/favicon.png | Bin 0 -> 1645 bytes .../images/favicons/ms-icon-144x144.png | Bin 0 -> 15299 bytes .../images/favicons/ms-icon-150x150.png | Bin 0 -> 16235 bytes .../images/favicons/ms-icon-310x310.png | Bin 0 -> 47087 bytes src/assets/images/favicons/ms-icon-70x70.png | Bin 0 -> 6412 bytes src/assets/images/illuminati/aanwo.jpg | Bin 0 -> 123646 bytes src/assets/images/illuminati/cobra.jpg | Bin 0 -> 85756 bytes src/assets/images/illuminati/evil-inc.jpg | Bin 0 -> 85884 bytes src/assets/images/illuminati/league.jpg | Bin 0 -> 107061 bytes src/assets/images/illuminati/satanic.jpg | Bin 0 -> 114769 bytes src/assets/images/illuminati/umbrella.jpg | Bin 0 -> 97003 bytes src/assets/images/illuminati/umn.jpg | Bin 0 -> 106090 bytes src/assets/images/illuminati/vatican.jpg | Bin 0 -> 90545 bytes src/assets/images/magic/arafell/ander.jpg | Bin 0 -> 88716 bytes src/assets/images/magic/arafell/damascus.jpg | Bin 0 -> 74539 bytes src/assets/images/magic/arafell/jolene.jpg | Bin 0 -> 92226 bytes src/assets/images/magic/arafell/lafflas.jpg | Bin 0 -> 90605 bytes .../images/magic/commanders/edgar-markov.png | Bin 0 -> 143147 bytes .../magic/commanders/estrid-the-masked.png | Bin 0 -> 137000 bytes .../magic/commanders/heartless-hidetsugu.jpg | Bin 0 -> 34322 bytes .../magic/commanders/saheeli-the-gifted.png | Bin 0 -> 148861 bytes .../commanders/slimefoot-the-stowaway.png | Bin 0 -> 138609 bytes .../commanders/syr-gwyn-hero-of-ashvale.png | Bin 0 -> 187940 bytes .../commanders/temmet-vizier-of-naktamun.png | Bin 0 -> 140746 bytes .../images/magic/commanders/ur-dragon.png | Bin 0 -> 138357 bytes .../commanders/wrexial-the-risen-deep.png | Bin 0 -> 142155 bytes .../images/magic/fun/token-angel-barnaby.png | Bin 0 -> 92619 bytes .../images/magic/fun/token-angel-metatron.png | Bin 0 -> 75682 bytes .../magic/fun/token-demon-azrael-regular.png | Bin 0 -> 92085 bytes .../images/magic/fun/token-demon-azrael.png | Bin 0 -> 106806 bytes .../images/magic/fun/token-thrull-dogma-1.png | Bin 0 -> 95462 bytes .../images/magic/fun/token-thrull-dogma-2.png | Bin 0 -> 96787 bytes .../images/magic/fun/token-thrull-dogma-3.png | Bin 0 -> 102177 bytes .../images/magic/malakyre/mad-baron.jpg | Bin 0 -> 89449 bytes .../images/magic/malakyre/mind-gorger.jpg | Bin 0 -> 96397 bytes .../magic/malakyre/unseen-infiltrator.jpg | Bin 0 -> 96812 bytes .../magic/malakyre/whispering-warlock.jpg | Bin 0 -> 86838 bytes src/assets/images/magic/mythicwars/horror.jpg | Bin 0 -> 146752 bytes src/assets/images/magic/mythicwars/hydra.jpg | Bin 0 -> 82970 bytes src/assets/images/magic/mythicwars/sphinx.jpg | Bin 0 -> 85999 bytes src/assets/images/magic/mythicwars/spirit.jpg | Bin 0 -> 87806 bytes .../magic/planeswalkers/set01/anora.jpg | Bin 0 -> 99418 bytes .../magic/planeswalkers/set01/arzachai.jpg | Bin 0 -> 88915 bytes .../magic/planeswalkers/set01/freyjef.jpg | Bin 0 -> 86948 bytes .../images/magic/planeswalkers/set01/hojn.jpg | Bin 0 -> 87832 bytes .../images/magic/planeswalkers/set01/ktor.jpg | Bin 0 -> 87545 bytes .../magic/planeswalkers/set01/mawhett.jpg | Bin 0 -> 82865 bytes .../magic/planeswalkers/set01/momyt.jpg | Bin 0 -> 98651 bytes .../magic/planeswalkers/set01/nasoj.jpg | Bin 0 -> 82201 bytes .../images/magic/planeswalkers/set01/riec.jpg | Bin 0 -> 82226 bytes .../magic/planeswalkers/set01/sahyel.jpg | Bin 0 -> 75513 bytes .../magic/planeswalkers/set02/anora.png | Bin 0 -> 68422 bytes .../magic/planeswalkers/set02/freyjef.png | Bin 0 -> 71393 bytes .../images/magic/planeswalkers/set02/hojn.png | Bin 0 -> 86030 bytes .../magic/planeswalkers/set02/mawhett.png | Bin 0 -> 77381 bytes .../images/magic/planeswalkers/set02/riec.png | Bin 0 -> 81461 bytes .../magic/planeswalkers/set02/sahyel.png | Bin 0 -> 86858 bytes .../images/magic/planeswalkers/set02/tesh.png | Bin 0 -> 78612 bytes src/assets/images/updates/fakebook.jpg | Bin 0 -> 56750 bytes src/assets/images/updates/mw-scotts.jpg | Bin 0 -> 397575 bytes src/assets/images/updates/obit.jpg | Bin 0 -> 12534 bytes src/assets/images/updates/swamp4.png | Bin 0 -> 7585410 bytes src/assets/images/updates/syncthing.gif | Bin 0 -> 56693 bytes src/assets/images/updates/wave-original.jpg | Bin 0 -> 88154 bytes src/assets/scripts/1-docready.min.js | 9 + src/assets/scripts/2-es6-promise.auto.min.js | 9 + .../3-lazy-progressive-enhancement.min.js | 9 + src/assets/scripts/4-js.cookie.min.js | 9 + src/assets/scripts/5-fontfaceobserver.min.js | 10 + src/assets/scripts/6-classlist.min.js | 9 + src/assets/scripts/7-dayjs.min.js | 10 + src/assets/scripts/scripts.js | 80 + src/assets/styles/fonts.css | 43 + src/assets/styles/imports.css | 297 ++ src/assets/styles/styles.css | 1262 ++++++++ src/layouts/default.ejs | 66 + src/layouts/functions.ejs | 103 + src/layouts/journal-year.ejs | 170 ++ src/layouts/partials/anachronism/menusub.ejs | 75 + src/layouts/partials/bio.ejs | 76 + src/layouts/partials/bottom.ejs | 16 + .../partials/content_types/feature.ejs | 14 + .../partials/content_types/journal.ejs | 108 + .../partials/content_types/magic-deck.ejs | 99 + src/layouts/partials/embed_switch.ejs | 15 + src/layouts/partials/footer.ejs | 51 + src/layouts/partials/header.ejs | 30 + src/layouts/partials/journal/menusub.ejs | 60 + src/layouts/partials/linklists/menusub.ejs | 43 + src/layouts/partials/magic-cards/menusub.ejs | 36 + src/layouts/partials/magic-decks/menusub.ejs | 62 + src/layouts/partials/menusub.ejs | 21 + src/layouts/partials/navmain.ejs | 40 + src/layouts/partials/pageMenu.ejs | 17 + src/layouts/partials/thur/menusub.ejs | 43 + src/layouts/partials/toolbar.ejs | 11 + src/layouts/partials/top.ejs | 88 + src/layouts/partials/topLink.ejs | 0 src/layouts/tag.ejs | 161 + src/pages/about.ejs | 111 + src/pages/anachronism/armors.md | 52 + src/pages/anachronism/index.md | 57 + src/pages/anachronism/inspirations.md | 52 + src/pages/anachronism/specials.md | 52 + .../anachronism/us_americans/billy_the_kid.md | 54 + .../us_americans/george_washington.md | 56 + src/pages/anachronism/us_americans/index.md | 25 + .../anachronism/us_americans/robert_e_lee.md | 56 + .../us_americans/ulysses_s_grant.md | 54 + .../anachronism/us_americans/wyatt_earp.md | 54 + src/pages/anachronism/warriors.md | 52 + src/pages/anachronism/weapons.md | 52 + src/pages/chim/index.md | 86 + src/pages/games/illuminati.md | 86 + src/pages/games/index.md | 31 + src/pages/index.md | 16 + src/pages/linklists/blogroll.md | 80 + src/pages/linklists/free_gamedev.md | 30 + src/pages/linklists/index.md | 22 + src/pages/linklists/muck_stuff.md | 28 + src/pages/linklists/pd_comics.md | 30 + src/pages/linklists/tabletop_rpg.md | 26 + src/pages/linklists/web_game_tuts.md | 40 + src/pages/magic-cards/dnd.md | 80 + src/pages/magic-cards/index.md | 14 + src/pages/magic-cards/snm-planeswalkers.md | 141 + src/pages/magic-cards/tokens.md | 99 + src/pages/magic-decks/arcades.md | 44 + src/pages/magic-decks/edgar.md | 126 + src/pages/magic-decks/estrid.md | 198 ++ src/pages/magic-decks/hidetsugu.md | 124 + src/pages/magic-decks/index.md | 24 + src/pages/magic-decks/knights.md | 183 ++ src/pages/magic-decks/saheeli.md | 162 + src/pages/magic-decks/slimefoot.md | 122 + src/pages/magic-decks/temmet.md | 177 ++ src/pages/magic-decks/ur-dragon.md | 147 + src/pages/magic-decks/wrexial.md | 130 + src/pages/now.md | 16 + src/pages/projects.md | 19 + src/pages/web.md | 23 + .../journal/2015/03-18-developing-the-web.md | 26 + .../2015/04-22-the-people-vs-john-deere.md | 18 + .../05-04-ethics-in-shilling-videogames.md | 23 + .../journal/2015/05-22-the-web-is-dead.md | 46 + .../journal/2015/06-03-an-act-of-freedom.md | 27 + .../2015/06-18-the-art-of-authorship.md | 13 + .../journal/2015/06-30-two-hard-things.md | 19 + .../2015/07-10-smartphone-cryptogeddon.md | 23 + .../journal/2015/07-15-on-william-gibson.md | 19 + .../journal/2015/07-21-rss-atom-comeback.md | 15 + .../journal/2015/07-22-fatigue-and-mastery.md | 13 + .../2015/07-29-anti-gmo-scaremongering.md | 11 + .../2015/09-18-commercial-web-dying.md | 21 + .../journal/2016/06-16-hello-world.md | 27 + src/sitePosts/journal/2016/08-23-obituary.md | 34 + .../journal/2016/12-12-failing-me-softly.md | 70 + .../journal/2016/12-14-star-trekkin.md | 62 + .../2018/02-18-mythic-wars-have-begun.md | 36 + .../journal/2018/05-15-fixing-gedit.md | 25 + .../06-26-loose-ideas-for-next-social-web.md | 22 + src/sitePosts/journal/2018/07-23-career-20.md | 15 + .../journal/2018/08-19-my-blogging-problem.md | 23 + .../2018/08-25-things-i-couldnt-say.md | 19 + .../journal/2018/09-18-syncthing-ionice.md | 80 + .../journal/2018/10-11-dats-incredible.md | 119 + src/sitePosts/journal/2018/10-29-chim.md | 34 + src/sitePosts/journal/2018/12-03-hacked.md | 140 + .../journal/2019/03-13-wave-of-the-future.md | 23 + .../journal/2019/11-27-hacked-again.md | 80 + .../2021/07-10-hacked-wall-of-shame.md | 91 + .../journal/2022/07-21-hello-again.md | 39 + .../journal/2022/08-18-killing-thur.md | 25 + .../journal/2022/09-18-magical-updates.md | 22 + src/support/_sitemap.ejs.broken | 83 + src/support/browserconfig.xml.ejs | 2 + src/support/errors/404.html.ejs | 84 + src/support/errors/offline.ejs.off | 9 + src/support/feed.json.ejs | 68 + src/support/feed.xml.ejs | 73 + src/support/journal/index.html.ejs | 192 ++ src/support/manifest.json.ejs | 41 + src/support/opensearch.xml.ejs | 13 + src/support/robots.txt.ejs | 2 + src/support/root/index.html.ejs | 306 ++ src/support/sitemap-v2.xml.ejs.broken | 77 + src/support/sitemap.html.ejs.off | 62 + src/support/sitemap.xml.ejs | 16 + 346 files changed, 19555 insertions(+) create mode 100644 .gitignore create mode 100644 .prettierignore create mode 100644 LICENSE create mode 100644 README.md create mode 100644 app.js create mode 100644 lib/build.js create mode 100644 lib/defaults.json5 create mode 100644 lib/loadConfig.js create mode 100644 lib/serve.js create mode 100644 lib/utils.js create mode 100644 lib/watch.js create mode 100644 package-lock.json create mode 100755 package.json create mode 100644 site.config.json5 create mode 100644 src/assets/_root/browserconfig.xml create mode 100644 src/assets/_root/chim/chim-exe.zip create mode 100644 src/assets/_root/chim/js-dos-api.js create mode 100644 src/assets/_root/favicon.ico create mode 100644 src/assets/_root/favicon.png create mode 100644 src/assets/_root/manifest.json create mode 100644 src/assets/_root/root/favicon.ico create mode 100644 src/assets/_root/root/favicon.png create mode 100644 src/assets/files/chim/chim.exe create mode 100644 src/assets/files/chim/chim.faq create mode 100644 src/assets/files/chim/chim.zip create mode 100644 src/assets/files/chim/file_id.diz create mode 100644 src/assets/files/chim/intro.txt create mode 100644 src/assets/files/chim/license.txt create mode 100644 src/assets/files/chim/map.txt create mode 100644 src/assets/files/public.aexpk create mode 100644 src/assets/fonts/exo2/Exo2-Bold-webfont.eot create mode 100644 src/assets/fonts/exo2/Exo2-Bold-webfont.svg create mode 100644 src/assets/fonts/exo2/Exo2-Bold-webfont.ttf create mode 100644 src/assets/fonts/exo2/Exo2-Bold-webfont.woff create mode 100644 src/assets/fonts/exo2/Exo2-BoldItalic-webfont.eot create mode 100644 src/assets/fonts/exo2/Exo2-BoldItalic-webfont.svg create mode 100644 src/assets/fonts/exo2/Exo2-BoldItalic-webfont.ttf create mode 100644 src/assets/fonts/exo2/Exo2-BoldItalic-webfont.woff create mode 100644 src/assets/fonts/exo2/Exo2-Italic-webfont.eot create mode 100644 src/assets/fonts/exo2/Exo2-Italic-webfont.svg create mode 100644 src/assets/fonts/exo2/Exo2-Italic-webfont.ttf create mode 100644 src/assets/fonts/exo2/Exo2-Italic-webfont.woff create mode 100644 src/assets/fonts/exo2/Exo2-Regular-webfont.eot create mode 100644 src/assets/fonts/exo2/Exo2-Regular-webfont.svg create mode 100644 src/assets/fonts/exo2/Exo2-Regular-webfont.ttf create mode 100644 src/assets/fonts/exo2/Exo2-Regular-webfont.woff create mode 100644 src/assets/fonts/exo2/SIL Open Font License.txt create mode 100644 src/assets/images/404-opte-1000x800.jpg create mode 100644 src/assets/images/404/hole-bg-1100x1238-50.jpg create mode 100644 src/assets/images/404/hole-bg-1100x900-50.jpg create mode 100644 src/assets/images/404/hole-bg-1600x900-50.jpg create mode 100644 src/assets/images/404/hole-bg.jpg create mode 100644 src/assets/images/anachronism/ana_logo.jpg create mode 100644 src/assets/images/anachronism/immortals/amanda_darieux.jpg create mode 100644 src/assets/images/anachronism/immortals/antonius_kalas.jpg create mode 100644 src/assets/images/anachronism/immortals/black_longcoat.jpg create mode 100644 src/assets/images/anachronism/immortals/black_trenchcoat.jpg create mode 100644 src/assets/images/anachronism/immortals/clamshell_rapier.jpg create mode 100644 src/assets/images/anachronism/immortals/clan_macleod.jpg create mode 100644 src/assets/images/anachronism/immortals/connor_macleod.jpg create mode 100644 src/assets/images/anachronism/immortals/darius.jpg create mode 100644 src/assets/images/anachronism/immortals/dragons_head_katana.jpg create mode 100644 src/assets/images/anachronism/immortals/duncan_macleod.jpg create mode 100644 src/assets/images/anachronism/immortals/four_horsemen.jpg create mode 100644 src/assets/images/anachronism/immortals/glenfinnan.jpg create mode 100644 src/assets/images/anachronism/immortals/grey_trenchcoat.jpg create mode 100644 src/assets/images/anachronism/immortals/holy_ground.jpg create mode 100644 src/assets/images/anachronism/immortals/hugh_fitzcairn.jpg create mode 100644 src/assets/images/anachronism/immortals/immortal_healing.jpg create mode 100644 src/assets/images/anachronism/immortals/jacob_kell.jpg create mode 100644 src/assets/images/anachronism/immortals/james_horton.jpg create mode 100644 src/assets/images/anachronism/immortals/joe_dawson.jpg create mode 100644 src/assets/images/anachronism/immortals/juan_sanchez_ramirez_tak_ne.jpg create mode 100644 src/assets/images/anachronism/immortals/kells_gang.jpg create mode 100644 src/assets/images/anachronism/immortals/kronos.jpg create mode 100644 src/assets/images/anachronism/immortals/kurgans_broadsword.jpg create mode 100644 src/assets/images/anachronism/immortals/leather_coat.jpg create mode 100644 src/assets/images/anachronism/immortals/leather_jacket.jpg create mode 100644 src/assets/images/anachronism/immortals/masamune_katana.jpg create mode 100644 src/assets/images/anachronism/immortals/methos.jpg create mode 100644 src/assets/images/anachronism/immortals/methos_broadsword.jpg create mode 100644 src/assets/images/anachronism/immortals/motorcycle_jacket.jpg create mode 100644 src/assets/images/anachronism/immortals/quickening.jpg create mode 100644 src/assets/images/anachronism/immortals/richie_ryan.jpg create mode 100644 src/assets/images/anachronism/immortals/rocker_jacket.jpg create mode 100644 src/assets/images/anachronism/immortals/tessa_noel.jpg create mode 100644 src/assets/images/anachronism/immortals/the_game.jpg create mode 100644 src/assets/images/anachronism/immortals/the_hunters.jpg create mode 100644 src/assets/images/anachronism/immortals/the_kurgan.jpg create mode 100644 src/assets/images/anachronism/immortals/the_prize.jpg create mode 100644 src/assets/images/anachronism/immortals/the_sword_of_kronos.jpg create mode 100644 src/assets/images/anachronism/immortals/the_watchers.jpg create mode 100644 src/assets/images/anachronism/immortals/xavier_saint_cloud.jpg create mode 100644 src/assets/images/anachronism/links/abraham_lincoln.jpg create mode 100644 src/assets/images/anachronism/links/billy_the_kid.jpg create mode 100644 src/assets/images/anachronism/links/george_washington.jpg create mode 100644 src/assets/images/anachronism/links/robert_e_lee.jpg create mode 100644 src/assets/images/anachronism/links/stetson_hat.jpg create mode 100644 src/assets/images/anachronism/links/the_dictator.jpg create mode 100644 src/assets/images/anachronism/links/the_us_constitution.jpg create mode 100644 src/assets/images/anachronism/links/ulysses_s_grant.jpg create mode 100644 src/assets/images/anachronism/links/wyatt_earp.jpg create mode 100644 src/assets/images/anachronism/others/bruce_lee.jpg create mode 100644 src/assets/images/anachronism/others/elric_of_melnibone.jpg create mode 100644 src/assets/images/anachronism/others/gods_of_law__chaos.jpg create mode 100644 src/assets/images/anachronism/others/john_blackthorn.jpg create mode 100644 src/assets/images/anachronism/others/long_sky.jpg create mode 100644 src/assets/images/anachronism/others/moonglum_of_elwher.jpg create mode 100644 src/assets/images/anachronism/others/nameless.jpg create mode 100644 src/assets/images/anachronism/others/royal_armor_of_melnibone.jpg create mode 100644 src/assets/images/anachronism/others/stormbringer.jpg create mode 100644 src/assets/images/anachronism/us_americans/abraham_lincoln.jpg create mode 100644 src/assets/images/anachronism/us_americans/benjamin_franklin.jpg create mode 100644 src/assets/images/anachronism/us_americans/billy_the_kid.jpg create mode 100644 src/assets/images/anachronism/us_americans/cavalry_sabre.jpg create mode 100644 src/assets/images/anachronism/us_americans/colonial_tricorne.jpg create mode 100644 src/assets/images/anachronism/us_americans/colt_45_single_action.jpg create mode 100644 src/assets/images/anachronism/us_americans/confederate_grey.jpg create mode 100644 src/assets/images/anachronism/us_americans/deputization.jpg create mode 100644 src/assets/images/anachronism/us_americans/earp_vendetta_ride.jpg create mode 100644 src/assets/images/anachronism/us_americans/george_washington.jpg create mode 100644 src/assets/images/anachronism/us_americans/jefferson_davis.jpg create mode 100644 src/assets/images/anachronism/us_americans/john_henry_doc_holliday.jpg create mode 100644 src/assets/images/anachronism/us_americans/lincoln_county_regulators.jpg create mode 100644 src/assets/images/anachronism/us_americans/robert_e_lee.jpg create mode 100644 src/assets/images/anachronism/us_americans/springfield_musket.jpg create mode 100644 src/assets/images/anachronism/us_americans/states_rights.jpg create mode 100644 src/assets/images/anachronism/us_americans/stetson_hat.jpg create mode 100644 src/assets/images/anachronism/us_americans/the_dictator.jpg create mode 100644 src/assets/images/anachronism/us_americans/the_us_constitution.jpg create mode 100644 src/assets/images/anachronism/us_americans/ulysses_s_grant.jpg create mode 100644 src/assets/images/anachronism/us_americans/union_blue.jpg create mode 100644 src/assets/images/anachronism/us_americans/wanted_man.jpg create mode 100644 src/assets/images/anachronism/us_americans/west_point.jpg create mode 100644 src/assets/images/anachronism/us_americans/winchester_model_1873_rifle.jpg create mode 100644 src/assets/images/anachronism/us_americans/wyatt_earp.jpg create mode 100644 src/assets/images/code-bg.jpg create mode 100644 src/assets/images/eric-8bit.gif create mode 100644 src/assets/images/favicons/android-icon-144x144.png create mode 100644 src/assets/images/favicons/android-icon-192x192.png create mode 100644 src/assets/images/favicons/android-icon-36x36.png create mode 100644 src/assets/images/favicons/android-icon-48x48.png create mode 100644 src/assets/images/favicons/android-icon-72x72.png create mode 100644 src/assets/images/favicons/android-icon-96x96.png create mode 100644 src/assets/images/favicons/apple-icon-114x114.png create mode 100644 src/assets/images/favicons/apple-icon-120x120.png create mode 100644 src/assets/images/favicons/apple-icon-144x144.png create mode 100644 src/assets/images/favicons/apple-icon-152x152.png create mode 100644 src/assets/images/favicons/apple-icon-180x180.png create mode 100644 src/assets/images/favicons/apple-icon-57x57.png create mode 100644 src/assets/images/favicons/apple-icon-60x60.png create mode 100644 src/assets/images/favicons/apple-icon-72x72.png create mode 100644 src/assets/images/favicons/apple-icon-76x76.png create mode 100644 src/assets/images/favicons/apple-icon-precomposed.png create mode 100644 src/assets/images/favicons/apple-icon.png create mode 100644 src/assets/images/favicons/favicon-32x32.png create mode 100644 src/assets/images/favicons/favicon-96x96.png create mode 100644 src/assets/images/favicons/favicon.ico create mode 100644 src/assets/images/favicons/favicon.png create mode 100644 src/assets/images/favicons/ms-icon-144x144.png create mode 100644 src/assets/images/favicons/ms-icon-150x150.png create mode 100644 src/assets/images/favicons/ms-icon-310x310.png create mode 100644 src/assets/images/favicons/ms-icon-70x70.png create mode 100644 src/assets/images/illuminati/aanwo.jpg create mode 100644 src/assets/images/illuminati/cobra.jpg create mode 100644 src/assets/images/illuminati/evil-inc.jpg create mode 100644 src/assets/images/illuminati/league.jpg create mode 100644 src/assets/images/illuminati/satanic.jpg create mode 100644 src/assets/images/illuminati/umbrella.jpg create mode 100644 src/assets/images/illuminati/umn.jpg create mode 100644 src/assets/images/illuminati/vatican.jpg create mode 100644 src/assets/images/magic/arafell/ander.jpg create mode 100644 src/assets/images/magic/arafell/damascus.jpg create mode 100644 src/assets/images/magic/arafell/jolene.jpg create mode 100644 src/assets/images/magic/arafell/lafflas.jpg create mode 100644 src/assets/images/magic/commanders/edgar-markov.png create mode 100644 src/assets/images/magic/commanders/estrid-the-masked.png create mode 100644 src/assets/images/magic/commanders/heartless-hidetsugu.jpg create mode 100644 src/assets/images/magic/commanders/saheeli-the-gifted.png create mode 100644 src/assets/images/magic/commanders/slimefoot-the-stowaway.png create mode 100644 src/assets/images/magic/commanders/syr-gwyn-hero-of-ashvale.png create mode 100644 src/assets/images/magic/commanders/temmet-vizier-of-naktamun.png create mode 100644 src/assets/images/magic/commanders/ur-dragon.png create mode 100644 src/assets/images/magic/commanders/wrexial-the-risen-deep.png create mode 100644 src/assets/images/magic/fun/token-angel-barnaby.png create mode 100644 src/assets/images/magic/fun/token-angel-metatron.png create mode 100644 src/assets/images/magic/fun/token-demon-azrael-regular.png create mode 100644 src/assets/images/magic/fun/token-demon-azrael.png create mode 100644 src/assets/images/magic/fun/token-thrull-dogma-1.png create mode 100644 src/assets/images/magic/fun/token-thrull-dogma-2.png create mode 100644 src/assets/images/magic/fun/token-thrull-dogma-3.png create mode 100644 src/assets/images/magic/malakyre/mad-baron.jpg create mode 100644 src/assets/images/magic/malakyre/mind-gorger.jpg create mode 100644 src/assets/images/magic/malakyre/unseen-infiltrator.jpg create mode 100644 src/assets/images/magic/malakyre/whispering-warlock.jpg create mode 100644 src/assets/images/magic/mythicwars/horror.jpg create mode 100644 src/assets/images/magic/mythicwars/hydra.jpg create mode 100644 src/assets/images/magic/mythicwars/sphinx.jpg create mode 100644 src/assets/images/magic/mythicwars/spirit.jpg create mode 100644 src/assets/images/magic/planeswalkers/set01/anora.jpg create mode 100644 src/assets/images/magic/planeswalkers/set01/arzachai.jpg create mode 100644 src/assets/images/magic/planeswalkers/set01/freyjef.jpg create mode 100644 src/assets/images/magic/planeswalkers/set01/hojn.jpg create mode 100644 src/assets/images/magic/planeswalkers/set01/ktor.jpg create mode 100644 src/assets/images/magic/planeswalkers/set01/mawhett.jpg create mode 100644 src/assets/images/magic/planeswalkers/set01/momyt.jpg create mode 100644 src/assets/images/magic/planeswalkers/set01/nasoj.jpg create mode 100644 src/assets/images/magic/planeswalkers/set01/riec.jpg create mode 100644 src/assets/images/magic/planeswalkers/set01/sahyel.jpg create mode 100644 src/assets/images/magic/planeswalkers/set02/anora.png create mode 100644 src/assets/images/magic/planeswalkers/set02/freyjef.png create mode 100644 src/assets/images/magic/planeswalkers/set02/hojn.png create mode 100644 src/assets/images/magic/planeswalkers/set02/mawhett.png create mode 100644 src/assets/images/magic/planeswalkers/set02/riec.png create mode 100644 src/assets/images/magic/planeswalkers/set02/sahyel.png create mode 100644 src/assets/images/magic/planeswalkers/set02/tesh.png create mode 100644 src/assets/images/updates/fakebook.jpg create mode 100644 src/assets/images/updates/mw-scotts.jpg create mode 100644 src/assets/images/updates/obit.jpg create mode 100644 src/assets/images/updates/swamp4.png create mode 100644 src/assets/images/updates/syncthing.gif create mode 100644 src/assets/images/updates/wave-original.jpg create mode 100644 src/assets/scripts/1-docready.min.js create mode 100644 src/assets/scripts/2-es6-promise.auto.min.js create mode 100644 src/assets/scripts/3-lazy-progressive-enhancement.min.js create mode 100644 src/assets/scripts/4-js.cookie.min.js create mode 100644 src/assets/scripts/5-fontfaceobserver.min.js create mode 100644 src/assets/scripts/6-classlist.min.js create mode 100644 src/assets/scripts/7-dayjs.min.js create mode 100644 src/assets/scripts/scripts.js create mode 100644 src/assets/styles/fonts.css create mode 100644 src/assets/styles/imports.css create mode 100644 src/assets/styles/styles.css create mode 100644 src/layouts/default.ejs create mode 100644 src/layouts/functions.ejs create mode 100644 src/layouts/journal-year.ejs create mode 100644 src/layouts/partials/anachronism/menusub.ejs create mode 100644 src/layouts/partials/bio.ejs create mode 100644 src/layouts/partials/bottom.ejs create mode 100644 src/layouts/partials/content_types/feature.ejs create mode 100644 src/layouts/partials/content_types/journal.ejs create mode 100644 src/layouts/partials/content_types/magic-deck.ejs create mode 100644 src/layouts/partials/embed_switch.ejs create mode 100644 src/layouts/partials/footer.ejs create mode 100644 src/layouts/partials/header.ejs create mode 100644 src/layouts/partials/journal/menusub.ejs create mode 100644 src/layouts/partials/linklists/menusub.ejs create mode 100644 src/layouts/partials/magic-cards/menusub.ejs create mode 100644 src/layouts/partials/magic-decks/menusub.ejs create mode 100644 src/layouts/partials/menusub.ejs create mode 100644 src/layouts/partials/navmain.ejs create mode 100644 src/layouts/partials/pageMenu.ejs create mode 100644 src/layouts/partials/thur/menusub.ejs create mode 100644 src/layouts/partials/toolbar.ejs create mode 100644 src/layouts/partials/top.ejs create mode 100644 src/layouts/partials/topLink.ejs create mode 100644 src/layouts/tag.ejs create mode 100644 src/pages/about.ejs create mode 100644 src/pages/anachronism/armors.md create mode 100644 src/pages/anachronism/index.md create mode 100644 src/pages/anachronism/inspirations.md create mode 100644 src/pages/anachronism/specials.md create mode 100644 src/pages/anachronism/us_americans/billy_the_kid.md create mode 100644 src/pages/anachronism/us_americans/george_washington.md create mode 100644 src/pages/anachronism/us_americans/index.md create mode 100644 src/pages/anachronism/us_americans/robert_e_lee.md create mode 100644 src/pages/anachronism/us_americans/ulysses_s_grant.md create mode 100644 src/pages/anachronism/us_americans/wyatt_earp.md create mode 100644 src/pages/anachronism/warriors.md create mode 100644 src/pages/anachronism/weapons.md create mode 100644 src/pages/chim/index.md create mode 100644 src/pages/games/illuminati.md create mode 100644 src/pages/games/index.md create mode 100644 src/pages/index.md create mode 100644 src/pages/linklists/blogroll.md create mode 100644 src/pages/linklists/free_gamedev.md create mode 100644 src/pages/linklists/index.md create mode 100644 src/pages/linklists/muck_stuff.md create mode 100644 src/pages/linklists/pd_comics.md create mode 100644 src/pages/linklists/tabletop_rpg.md create mode 100644 src/pages/linklists/web_game_tuts.md create mode 100644 src/pages/magic-cards/dnd.md create mode 100644 src/pages/magic-cards/index.md create mode 100644 src/pages/magic-cards/snm-planeswalkers.md create mode 100644 src/pages/magic-cards/tokens.md create mode 100644 src/pages/magic-decks/arcades.md create mode 100644 src/pages/magic-decks/edgar.md create mode 100644 src/pages/magic-decks/estrid.md create mode 100644 src/pages/magic-decks/hidetsugu.md create mode 100644 src/pages/magic-decks/index.md create mode 100644 src/pages/magic-decks/knights.md create mode 100644 src/pages/magic-decks/saheeli.md create mode 100644 src/pages/magic-decks/slimefoot.md create mode 100644 src/pages/magic-decks/temmet.md create mode 100644 src/pages/magic-decks/ur-dragon.md create mode 100644 src/pages/magic-decks/wrexial.md create mode 100644 src/pages/now.md create mode 100644 src/pages/projects.md create mode 100644 src/pages/web.md create mode 100644 src/sitePosts/journal/2015/03-18-developing-the-web.md create mode 100644 src/sitePosts/journal/2015/04-22-the-people-vs-john-deere.md create mode 100644 src/sitePosts/journal/2015/05-04-ethics-in-shilling-videogames.md create mode 100644 src/sitePosts/journal/2015/05-22-the-web-is-dead.md create mode 100644 src/sitePosts/journal/2015/06-03-an-act-of-freedom.md create mode 100644 src/sitePosts/journal/2015/06-18-the-art-of-authorship.md create mode 100644 src/sitePosts/journal/2015/06-30-two-hard-things.md create mode 100644 src/sitePosts/journal/2015/07-10-smartphone-cryptogeddon.md create mode 100644 src/sitePosts/journal/2015/07-15-on-william-gibson.md create mode 100644 src/sitePosts/journal/2015/07-21-rss-atom-comeback.md create mode 100644 src/sitePosts/journal/2015/07-22-fatigue-and-mastery.md create mode 100644 src/sitePosts/journal/2015/07-29-anti-gmo-scaremongering.md create mode 100644 src/sitePosts/journal/2015/09-18-commercial-web-dying.md create mode 100644 src/sitePosts/journal/2016/06-16-hello-world.md create mode 100644 src/sitePosts/journal/2016/08-23-obituary.md create mode 100644 src/sitePosts/journal/2016/12-12-failing-me-softly.md create mode 100644 src/sitePosts/journal/2016/12-14-star-trekkin.md create mode 100644 src/sitePosts/journal/2018/02-18-mythic-wars-have-begun.md create mode 100644 src/sitePosts/journal/2018/05-15-fixing-gedit.md create mode 100644 src/sitePosts/journal/2018/06-26-loose-ideas-for-next-social-web.md create mode 100644 src/sitePosts/journal/2018/07-23-career-20.md create mode 100644 src/sitePosts/journal/2018/08-19-my-blogging-problem.md create mode 100644 src/sitePosts/journal/2018/08-25-things-i-couldnt-say.md create mode 100644 src/sitePosts/journal/2018/09-18-syncthing-ionice.md create mode 100644 src/sitePosts/journal/2018/10-11-dats-incredible.md create mode 100644 src/sitePosts/journal/2018/10-29-chim.md create mode 100644 src/sitePosts/journal/2018/12-03-hacked.md create mode 100644 src/sitePosts/journal/2019/03-13-wave-of-the-future.md create mode 100644 src/sitePosts/journal/2019/11-27-hacked-again.md create mode 100644 src/sitePosts/journal/2021/07-10-hacked-wall-of-shame.md create mode 100644 src/sitePosts/journal/2022/07-21-hello-again.md create mode 100644 src/sitePosts/journal/2022/08-18-killing-thur.md create mode 100644 src/sitePosts/journal/2022/09-18-magical-updates.md create mode 100644 src/support/_sitemap.ejs.broken create mode 100644 src/support/browserconfig.xml.ejs create mode 100644 src/support/errors/404.html.ejs create mode 100644 src/support/errors/offline.ejs.off create mode 100644 src/support/feed.json.ejs create mode 100644 src/support/feed.xml.ejs create mode 100644 src/support/journal/index.html.ejs create mode 100644 src/support/manifest.json.ejs create mode 100644 src/support/opensearch.xml.ejs create mode 100644 src/support/robots.txt.ejs create mode 100644 src/support/root/index.html.ejs create mode 100644 src/support/sitemap-v2.xml.ejs.broken create mode 100644 src/support/sitemap.html.ejs.off create mode 100644 src/support/sitemap.xml.ejs diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..622a699 --- /dev/null +++ b/.gitignore @@ -0,0 +1,4 @@ +node_modules/ +out/ +IDEAS.md +TODO.md diff --git a/.prettierignore b/.prettierignore new file mode 100644 index 0000000..7d1b5f5 --- /dev/null +++ b/.prettierignore @@ -0,0 +1,2 @@ +*.ejs +*.min.js diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..de354ad --- /dev/null +++ b/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2018 Douglas Matoso + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/README.md b/README.md new file mode 100644 index 0000000..5bd5c1c --- /dev/null +++ b/README.md @@ -0,0 +1,19 @@ +# Mystic Site Builder (2021 Edition) + +Micro static site generator in Node.js + +Based on the ideas in this post: https://medium.com/douglas-matoso-english/build-static-site-generator-nodejs-8969ebe34b22 + +## Setup + +```console +$ npm i +$ npm run build +$ npm run serve +``` + +Go to http://localhost:5000 to see the generated site. + +## How to use + +If you want to use NanoGen to generate your own site, just fork this repository and add your content to the `src` folder. diff --git a/app.js b/app.js new file mode 100644 index 0000000..c805e94 --- /dev/null +++ b/app.js @@ -0,0 +1,30 @@ +#!/usr/bin/env node + +"use strict"; + +require("dotenv").config(); + +const path = require("path"), + build = require("./lib/build"), + serve = require("./lib/serve"), + watch = require("./lib/watch"), + { log, readJsonIfExists } = require("./lib/utils"), + { version } = require("./package.json"), + localConfig = + readJsonIfExists(path.resolve(process.cwd(), "site.config.json5")) || + {}, + siteOpts = require("./lib/loadConfig")(localConfig, "MULE"), + config = { + ...siteOpts, + logFunction: log, + }, + yargs = require("yargs") + .version(version) + .alias("v", "version") + .usage("Usage: $0 start|stop") + .demandCommand(1), + { argv } = yargs; + +if (argv._[0] === "build") return build(config); +else if (argv._[0] === "serve") return serve(config); +else if (argv._[0] === "watch") return watch(config); diff --git a/lib/build.js b/lib/build.js new file mode 100644 index 0000000..39537ba --- /dev/null +++ b/lib/build.js @@ -0,0 +1,370 @@ +const { exists } = require("fs-extra/lib/fs"); + +module.exports = async (config) => { + const { promises: fs } = require("fs"), + fse = require("fs-extra"), + path = require("path"), + ejs = require("ejs"), + frontMatter = require("front-matter"), + glob = require("glob"), + hljs = require("highlight.js"), + md = require("markdown-it")({ + highlight: (str, lang) => { + if (lang && hljs.getLanguage(lang)) { + try { + return hljs.highlight(str, { language: lang }).value; + } catch (__) {} + } + + return ""; // use external default escaping + }, + html: true, + linkify: true, + typographer: true, + xhtmlOut: true, + }), + emoji = require("markdown-it-emoji"), + // { readJsonIfExists } = require("./utils"), + { build, isRebuild, logFunction: log = () => {} } = config || {}, + { outputPath, journalsPerPage = 5, srcPath } = build, + { site } = config, + copyAssets = async (directory) => { + const assets = await fs.readdir(directory); + + assets.forEach(async (asset) => { + // we no longer merge scripts and styles, thanks to http/2's parallel file handling + if (asset === "_root") { + fse.copy(path.join(srcPath, "assets", asset), outputPath); + } else { + fse.copy( + path.join(srcPath, "assets", asset), + path.join(outputPath, asset) + ); + } + }); + }, + getReadTime = (text) => { + const WPM = 275, + fixedString = text.replace(/[^\w\s]+/g, ""), + count = fixedString.split(/\s+/).length; + + if (count < WPM) return "less than 1 minute"; + else return `${Math.ceil(count / WPM)} minutes`; + }, + tagSorter = (a, b) => a.toLowerCase().localeCompare(b.toLowerCase()), + parseFile = (file, pagePath, siteData, isSupport) => { + const { dir, ext, name } = path.parse(file) || {}, + hasExt = name.indexOf(".") > -1, + destPath = path.join(outputPath, dir), + filePath = path.join(pagePath, file), + // read page file + data = fse.readFileSync(filePath, "utf-8"), + // render page + { attributes, body } = frontMatter(data), + { content_type: contentType, tags: originalTags = [] } = + attributes, + // TODO: Look for tags in posts as well, link to them, and add them to tag pages + tags = + typeof originalTags === "string" + ? originalTags.split(/\W+/) + : [].concat(originalTags), + innerTags = ( + contentType === "journal" + ? body.match(/\b#(\w+)/g) || [] + : [] + ).map((val) => val.replace("#", "")), + allTags = [...tags, ...innerTags].sort(tagSorter), + updatedBody = + contentType === "journal" + ? allTags.reduce( + (acc, tag) => + acc.replace( + `#${tag}`, + ` + + #${tag} + ` + ), + body + ) + : body; + + return { + ...config, + page: { + name, + ...attributes, + body: updatedBody, + destPath, + filePath, + path: path.join(dir, hasExt ? name : `${name}.html`), + tags: [...tags, ...innerTags].sort(tagSorter), + ext, + }, + site: { + ...site, + pages: isSupport ? siteData : [], + }, + }; + }, + parseContent = (page, siteData) => { + const { + body, + content_type: contentType, + filePath, + // tags, + } = page || {}, + { ext } = path.parse(filePath) || {}, + { pages, tags } = siteData || {}; + + let content = body, + readTime; + + if (ext === ".md") { + if (contentType === "journal" && typeof body === "string") { + readTime = getReadTime(body); + } + content = md.render(body); + } else if (ext === ".ejs") { + content = ejs.render( + body, + { page, site: { ...site, pages, tags } }, + { filename: filePath } + ); + } + + return { ...page, content, readTime }; + }, + renderFile = async (page, isSupport) => { + const { + content, + destPath, + layout, + path: pagePath, + pages, + siteTags, + tags, + } = page || {}; + try { + const layoutFileName = `${srcPath}/layouts/${ + layout || "default" + }.ejs`, + layoutData = await fs.readFile(layoutFileName, "utf-8"), + completePage = isSupport + ? content + : ejs.render(layoutData, { + content, + page, + site: { + ...site, + pages, + tags: + page.content_type === "journal" + ? siteTags + : tags, + }, + filename: layoutFileName, + }); + + if (!completePage) { + console.log("failed!", pagePath, content); + return; + } + + // create destination directory + fse.mkdirsSync(destPath); + + // save the html file + fse.writeFileSync( + path.join(outputPath, pagePath), + completePage + ); + } catch (e) { + console.log("failed!", pagePath); + console.log("paths", destPath, outputPath); + console.error(e); + return; + } + }; + + md.use(emoji); + + log(`${isRebuild ? "Reb" : "B"}uilding...`); + + // clear destination folder + fse.emptyDirSync(outputPath); + + // copy assets folder + await copyAssets(path.join(srcPath, "assets")); + + const files = ["pages", "sitePosts"].reduce((acc, pageDir) => { + return [ + ...acc, + ...glob + .sync("**/*.@(md|ejs|html)", { + cwd: path.join(srcPath, pageDir), + }) + .map((file) => + parseFile(file, path.join(srcPath, pageDir)) + ), + ]; + }, []), + sortByPubDate = (a, b) => { + if (a.date_pub && b.date_pub) { + let a_dt = new Date(a.date_pub).getTime(), + b_dt = new Date(b.date_pub).getTime(); + if (a_dt < b_dt) { + return 1; + } + if (b_dt < a_dt) { + return -1; + } + return 0; + } + if (a.date_pub) return -1; + if (b.date_pub) return 1; + return 0; + }, + pages = files.map(({ page }) => ({ ...page })).sort(sortByPubDate), + tagCloud = pages.reduce((acc, curr) => { + const { tags } = curr; + tags.forEach((tag) => { + if (acc[tag]) acc[tag]++; + else acc[tag] = 1; + }); + return acc; + }, {}), + tags = Object.keys(tagCloud).sort(tagSorter), + yearCloud = pages + .filter(({ content_type = "" }) => content_type === "journal") + .reduce((acc, curr) => { + const { date_pub } = curr; + if (date_pub) { + const year = new Date(date_pub).getFullYear(); + if (acc[year]) acc[year]++; + else acc[year] = 1; + } + return acc; + }, {}), + years = Object.keys(yearCloud).sort().reverse(), + pagesWithContent = pages.map((page) => + parseContent(page, { pages, tags }) + ); + + // add data for the whole site to each page as it's rendered + pagesWithContent.forEach((page) => { + renderFile({ ...page, pages: pagesWithContent, siteTags: tags }); + }); + + /* Journal Stuff - Tags & Years */ + + // make page(s) for each tag + tags.forEach((tag) => { + // check counts + let postCount = tagCloud[tag], + pageCount = Math.ceil(postCount / journalsPerPage); + for (let i = 1; i <= pageCount; i++) { + const firstEntryIndex = journalsPerPage * (i - 1), + lastEntryIndex = journalsPerPage * i; + + renderFile({ + content: tag, + destPath: path.join(outputPath, "journal", "tags", tag), + entriesToList: pagesWithContent + .filter( + (p) => + p && Array.isArray(p.tags) && p.tags.includes(tag) + ) + .slice(firstEntryIndex, lastEntryIndex), + layout: "tag", + path: `journal/tags/${tag}/${ + i === 1 ? "index.html" : `page${i}.html` + }`, + site: { ...site, pages: pagesWithContent, tags }, + pageCount, + pageNum: i, + pages: pagesWithContent, + tag, + tags, + title: `Journal Entries Tagged with #${tag}`, + }); + } + }); + + // make page(s) for each year + years.forEach((year) => { + // check counts + let postCount = yearCloud[year], + pageCount = Math.ceil(postCount / journalsPerPage); + for (let i = 1; i <= pageCount; i++) { + const firstEntryIndex = journalsPerPage * (i - 1), + lastEntryIndex = journalsPerPage * i; + + // TODO: rethink the data passed in here - you're paging solution works (kinda), take it over the finish line! + renderFile({ + content: year, + destPath: path.join(outputPath, "journal", year), + entriesToList: pagesWithContent + .filter(({ content_type = "", date_pub = "" }) => { + if (!date_pub || content_type !== "journal") + return false; + + const p_dt = new Date(date_pub).getTime(), + y1_dt = new Date( + `${year}-01-01T00:00:00-0500` + ).getTime(), + y2_dt = new Date( + `${year}-12-31T23:59:59-0500` + ).getTime(); + return p_dt >= y1_dt && p_dt <= y2_dt; + }) + .slice(firstEntryIndex, lastEntryIndex), + layout: "journal-year", + path: `journal/${year}/${ + i === 1 ? "index.html" : `page${i}.html` + }`, + site: { ...site, pages: pagesWithContent, tags }, + pageCount, + pageNum: i, + pages: pagesWithContent, + tags, + title: `Journal Entries from ${year}`, + year, + }); + } + }); + + /* Support pages - anything too weird / specific for markdown rendering */ + + // collect support pages + const support = ["support"].reduce((acc, pageDir) => { + return [ + ...acc, + ...glob + .sync("**/*.@(md|ejs|html)", { + cwd: path.join(srcPath, pageDir), + }) + .map((file) => + parseFile( + file, + path.join(srcPath, pageDir), + pagesWithContent, + true + ) + ), + ]; + }, []); + + // write each one out + support.forEach((fileData) => { + const { page } = fileData; + if (page?.ext === ".ejs") { + const pageAndContent = parseContent(page, { + pages: pagesWithContent, + tags, + }); + return renderFile({ ...fileData, ...pageAndContent, tags }, true); + } + return renderFile(fileData, true); + }); +}; diff --git a/lib/defaults.json5 b/lib/defaults.json5 new file mode 100644 index 0000000..c4df493 --- /dev/null +++ b/lib/defaults.json5 @@ -0,0 +1,19 @@ +{ + /* + + */ + + /** TACO Express Default Options **/ + + /* + The function used to log output (console.log, morgan, etc). + Should take one (or more) strings as arguments. + */ + logFunction: null, + + build: {}, + site: {}, + serve: { + port: 5000, + }, +} \ No newline at end of file diff --git a/lib/loadConfig.js b/lib/loadConfig.js new file mode 100644 index 0000000..15842ce --- /dev/null +++ b/lib/loadConfig.js @@ -0,0 +1,43 @@ +module.exports = (opts, envKey) => { + const + fs = require('fs'), + path = require('path'), + + json5 = require('json5'), + + { convertCamelToUpperSnakeCase, readJsonIfExists } = require('./utils'), + + { cwd, env } = process, + + def = readJsonIfExists(path.resolve(__dirname, 'defaults.json5')), + + // gets value from ENV || options || defaults (in that order) + getVal = (envName) => { + const snakeEnvName = `${envKey}_${convertCamelToUpperSnakeCase(envName)}`; + if (env[snakeEnvName]) return env[snakeEnvName]; + if (opts[envName]) return opts[envName]; + return def[envName]; + }, + + // gets array from ENV || options || defaults (in that order) + getArray = (envName, optName = '') => { + if (optName === '') { + optName = envName; + envName = convertCamelToUpperSnakeCase(envName); + } + envName = `${envKey}_${envName}`; + if (env[envName]) return env[envName].split(path.delimiter); + if (Array.isArray(opts[optName]) && opts[optName].length) return opts[optName]; + return def[optName]; + }; + + + return { + + ...Object.keys(def).reduce((acc, curr) => { + if (Array.isArray(def[curr])) acc[curr] = getArray(curr); + else acc[curr] = getVal(curr); + return acc; + }, {}), + }; +}; diff --git a/lib/serve.js b/lib/serve.js new file mode 100644 index 0000000..2bf7728 --- /dev/null +++ b/lib/serve.js @@ -0,0 +1,26 @@ +module.exports = async (config) => { + let isReady = false; + const + http = require('http'), + + address = require('network-address'), + handler = require('serve-handler'), + + build = require('./build'), + + { build: buildOpts, logFunction: log = () => {}, serve: serveOpts } = config || {}, + { outputPath, srcPath } = buildOpts || {}, + { port = 5000 } = serveOpts || {}, + + server = http.createServer((request, response) => { + // You pass two more arguments for config and middleware + // More details here: https://github.com/vercel/serve-handler#options + return handler(request, response, { public: outputPath }); + }); + + await build(config); + + server.listen(port, async () => { + log(`Running at http://${address()}:${port} / http://localhost:${port}`); + }); +}; \ No newline at end of file diff --git a/lib/utils.js b/lib/utils.js new file mode 100644 index 0000000..b8b4e0a --- /dev/null +++ b/lib/utils.js @@ -0,0 +1,57 @@ +module.exports = (() => { + const + chalk = require('chalk'), + + getTime = () => { + const + now = new Date(), + tzo = -now.getTimezoneOffset(), + dif = tzo >= 0 ? '+' : '-', + + pad = (num) => { + const norm = Math.floor(Math.abs(num)); + return `${norm < 10 ? '0' : ''}${norm}`; + }; + return [ + now.getFullYear(), + '-', + pad(now.getMonth() + 1), + '-', + pad(now.getDate()), + 'T', + pad(now.getHours()), + ':', + pad(now.getMinutes()), + ':', + pad(now.getSeconds()), + dif, + pad(tzo / 60), + ':', + pad(tzo % 60) + ].join(''); + }; + + return { + convertCamelToUpperSnakeCase: + str => str.replace(/[A-Z]/g, letter => `_${letter}`).toUpperCase(), + + getTime, + + log: (msg) => console.log(`${chalk.grey(`${getTime()}:`)} ${msg}`), + + readJsonIfExists: (filePath) => { + const + fs = require('fs'), + + json5 = require('json5'); + + try { + return json5.parse(fs.readFileSync(filePath, {encoding: 'utf8'})); + } catch (err) { + if (err.code === 'ENOENT') return {}; + throw err; + } + }, + + }; +})(); diff --git a/lib/watch.js b/lib/watch.js new file mode 100644 index 0000000..5ff368b --- /dev/null +++ b/lib/watch.js @@ -0,0 +1,58 @@ +module.exports = async (config) => { + let isReady = false; + const + http = require('http'), + + chokidar = require('chokidar'), + address = require('network-address'), + handler = require('serve-handler'), + + build = require('./build'), + rebuild = (cfg) => { + isReady = false; + build({ ...cfg, isRebuild: true }); + isReady = true; + }, + + { build: buildOpts, logFunction: log = () => {}, serve: serveOpts } = config || {}, + { outputPath, srcPath } = buildOpts || {}, + { port = 5000 } = serveOpts || {}, + + watcher = chokidar.watch([srcPath, '*.json'], { + ignored: /(^|[\/\\])\../, // ignore dotfiles + persistent: true + }) + .on('add', (path) => { + if (isReady) { + log(`File ${path} has been added`) + rebuild(config); + } + }) + .on('change', (path) => { + if (isReady) { + log(`File ${path} has been changed`) + rebuild(config); + } + }) + .on('ready', () => { + isReady = true; + }) + .on('unlink', (path) => { + if (isReady) { + log(`File ${path} has been removed`) + rebuild(config); + } + }), + + server = http.createServer((request, response) => { + // You pass two more arguments for config and middleware + // More details here: https://github.com/vercel/serve-handler#options + return handler(request, response, { public: outputPath }); + }); + + await build(config); + + server.listen(port, () => { + log(`Running at http://${address()}:${port} / http://localhost:${port}`); + }); +}; \ No newline at end of file diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..64e36ac --- /dev/null +++ b/package-lock.json @@ -0,0 +1,2653 @@ +{ + "name": "mystic-site-builder", + "version": "0.8.0", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "name": "mystic-site-builder", + "version": "0.8.0", + "license": "ISC", + "dependencies": { + "chalk": "^4.1.2", + "chokidar": "^3.4.3", + "dotenv": "^16.0.1", + "highlight.js": "^11.3.1", + "json5": "^2.1.3", + "markdown-it": "^13.0.1", + "markdown-it-emoji": "^2.0.0", + "network-address": "^1.1.2", + "serve-handler": "^6.1.3" + }, + "devDependencies": { + "ejs": "^3.1.5", + "front-matter": "^4.0.2", + "fs-extra": "^10.0.0", + "glob": "^8.0.3", + "serve": "^13.0.2", + "yargs": "^17.3.1" + } + }, + "node_modules/@zeit/schemas": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/@zeit/schemas/-/schemas-2.6.0.tgz", + "integrity": "sha512-uUrgZ8AxS+Lio0fZKAipJjAh415JyrOZowliZAzmnJSsf7piVL5w+G0+gFJ0KSu3QRhvui/7zuvpLz03YjXAhg==", + "dev": true + }, + "node_modules/accepts": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "dev": true, + "dependencies": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ansi-align": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz", + "integrity": "sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==", + "dev": true, + "dependencies": { + "string-width": "^4.1.0" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/anymatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", + "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/arch": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/arch/-/arch-2.2.0.tgz", + "integrity": "sha512-Of/R0wqp83cgHozfIYLbBMnej79U/SVGOOyuB3VVFv1NRM/PSFMK12x9KVtiYzJqmnU5WR2qp0Z5rHb7sWGnFQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/arg": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/arg/-/arg-2.0.0.tgz", + "integrity": "sha512-XxNTUzKnz1ctK3ZIcI2XUPlD96wbHP2nGqkPKpvk/HNRlPveYrXIVSTk9m3LcqOgDPg3B1nMvdV/K8wZd7PG4w==", + "dev": true + }, + "node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/async": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.4.tgz", + "integrity": "sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==", + "dev": true + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + }, + "node_modules/binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "engines": { + "node": ">=8" + } + }, + "node_modules/boxen": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/boxen/-/boxen-5.1.2.tgz", + "integrity": "sha512-9gYgQKXx+1nP8mP7CzFyaUARhg7D3n1dF/FnErWmu9l6JvGpNUN278h0aSb+QjoiKSWG+iZ3uHrcqk0qrY9RQQ==", + "dev": true, + "dependencies": { + "ansi-align": "^3.0.0", + "camelcase": "^6.2.0", + "chalk": "^4.1.0", + "cli-boxes": "^2.2.1", + "string-width": "^4.2.2", + "type-fest": "^0.20.2", + "widest-line": "^3.1.0", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/bytes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", + "integrity": "sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/cli-boxes": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.1.tgz", + "integrity": "sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==", + "dev": true, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/clipboardy": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/clipboardy/-/clipboardy-2.3.0.tgz", + "integrity": "sha512-mKhiIL2DrQIsuXMgBgnfEHOZOryC7kY7YO//TN6c63wlEm3NG5tz+YgY5rVi29KCmq/QQjKYvM7a19+MDOTHOQ==", + "dev": true, + "dependencies": { + "arch": "^2.1.1", + "execa": "^1.0.0", + "is-wsl": "^2.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/compressible": { + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", + "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", + "dev": true, + "dependencies": { + "mime-db": ">= 1.43.0 < 2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/compression": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.3.tgz", + "integrity": "sha512-HSjyBG5N1Nnz7tF2+O7A9XUhyjru71/fwgNb7oIsEVHR0WShfs2tIS/EySLgiTe98aOK18YDlMXpzjCXY/n9mg==", + "dev": true, + "dependencies": { + "accepts": "~1.3.5", + "bytes": "3.0.0", + "compressible": "~2.0.14", + "debug": "2.6.9", + "on-headers": "~1.0.1", + "safe-buffer": "5.1.2", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" + }, + "node_modules/content-disposition": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.2.tgz", + "integrity": "sha512-kRGRZw3bLlFISDBgwTSA1TMBFN6J6GWDeubmDE3AF+3+yXL8hTWv8r5rkLbqYXY4RjPk/EzHnClI3zQf1cFmHA==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "dev": true, + "dependencies": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + }, + "engines": { + "node": ">=4.8" + } + }, + "node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/deep-extend": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", + "dev": true, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/dotenv": { + "version": "16.0.1", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.0.1.tgz", + "integrity": "sha512-1K6hR6wtk2FviQ4kEiSjFiH5rpzEVi8WW0x96aztHVMhEspNpc4DVOUTEHtEva5VThQ8IaBX1Pe4gSzpVVUsKQ==", + "engines": { + "node": ">=12" + } + }, + "node_modules/ejs": { + "version": "3.1.8", + "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.8.tgz", + "integrity": "sha512-/sXZeMlhS0ArkfX2Aw780gJzXSMPnKjtspYZv+f3NiKLlubezAHDU5+9xz6gd3/NhG3txQCo6xlglmTS+oTGEQ==", + "dev": true, + "dependencies": { + "jake": "^10.8.5" + }, + "bin": { + "ejs": "bin/cli.js" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dev": true, + "dependencies": { + "once": "^1.4.0" + } + }, + "node_modules/entities": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/entities/-/entities-3.0.1.tgz", + "integrity": "sha512-WiyBqoomrwMdFG1e0kqvASYfnlb0lp8M5o5Fw2OFq1hNZxxcNk8Ik0Xm7LxzBhuidnZB/UtBqVCgUz3kBOP51Q==", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true, + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/execa": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", + "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", + "dev": true, + "dependencies": { + "cross-spawn": "^6.0.0", + "get-stream": "^4.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "node_modules/fast-url-parser": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/fast-url-parser/-/fast-url-parser-1.1.3.tgz", + "integrity": "sha512-5jOCVXADYNuRkKFzNJ0dCCewsZiYo0dz8QNYljkOpFC6r2U4OBmKtvm/Tsuh4w1YYdDqDb31a8TVhBJ2OJKdqQ==", + "dependencies": { + "punycode": "^1.3.2" + } + }, + "node_modules/filelist": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.4.tgz", + "integrity": "sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==", + "dev": true, + "dependencies": { + "minimatch": "^5.0.1" + } + }, + "node_modules/filelist/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/filelist/node_modules/minimatch": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.0.tgz", + "integrity": "sha512-9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/front-matter": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/front-matter/-/front-matter-4.0.2.tgz", + "integrity": "sha512-I8ZuJ/qG92NWX8i5x1Y8qyj3vizhXS31OxjKDu3LKP+7/qBgfIKValiZIEwoVoJKUHlhWtYrktkxV1XsX+pPlg==", + "dev": true, + "dependencies": { + "js-yaml": "^3.13.1" + } + }, + "node_modules/fs-extra": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true + }, + "node_modules/fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true, + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "dev": true, + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/glob": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-8.0.3.tgz", + "integrity": "sha512-ull455NHSHI/Y1FqGaaYFaLGkNMMJbavMrEGFXG/PGrg6y7sutWHUHrz6gy6WEBH6akM1M414dWKCNs+IhKdiQ==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^5.0.1", + "once": "^1.3.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/glob/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/glob/node_modules/minimatch": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.0.tgz", + "integrity": "sha512-9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.10", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", + "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", + "dev": true + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/highlight.js": { + "version": "11.6.0", + "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-11.6.0.tgz", + "integrity": "sha512-ig1eqDzJaB0pqEvlPVIpSSyMaO92bH1N2rJpLMN/nX396wTpDA4Eq0uK+7I/2XG17pFaaKE0kjV/XPeGt7Evjw==", + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dev": true, + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "node_modules/ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "dev": true + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-docker": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", + "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", + "dev": true, + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-wsl": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "dev": true, + "dependencies": { + "is-docker": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true + }, + "node_modules/jake": { + "version": "10.8.5", + "resolved": "https://registry.npmjs.org/jake/-/jake-10.8.5.tgz", + "integrity": "sha512-sVpxYeuAhWt0OTWITwT98oyV0GsXyMlXCF+3L1SuafBVUIr/uILGRB+NqwkzhgXKvoJpDIpQvqkUALgdmQsQxw==", + "dev": true, + "dependencies": { + "async": "^3.2.3", + "chalk": "^4.0.2", + "filelist": "^1.0.1", + "minimatch": "^3.0.4" + }, + "bin": { + "jake": "bin/cli.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dev": true, + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "node_modules/json5": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz", + "integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==", + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/linkify-it": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-4.0.1.tgz", + "integrity": "sha512-C7bfi1UZmoj8+PQx22XyeXCuBlokoyWQL5pWSP+EI6nzRylyThouddufc2c1NDIcP9k5agmN9fLpA7VNJfIiqw==", + "dependencies": { + "uc.micro": "^1.0.1" + } + }, + "node_modules/markdown-it": { + "version": "13.0.1", + "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-13.0.1.tgz", + "integrity": "sha512-lTlxriVoy2criHP0JKRhO2VDG9c2ypWCsT237eDiLqi09rmbKoUetyGHq2uOIRoRS//kfoJckS0eUzzkDR+k2Q==", + "dependencies": { + "argparse": "^2.0.1", + "entities": "~3.0.1", + "linkify-it": "^4.0.1", + "mdurl": "^1.0.1", + "uc.micro": "^1.0.5" + }, + "bin": { + "markdown-it": "bin/markdown-it.js" + } + }, + "node_modules/markdown-it-emoji": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/markdown-it-emoji/-/markdown-it-emoji-2.0.2.tgz", + "integrity": "sha512-zLftSaNrKuYl0kR5zm4gxXjHaOI3FAOEaloKmRA5hijmJZvSjmxcokOLlzycb/HXlUFWzXqpIEoyEMCE4i9MvQ==" + }, + "node_modules/markdown-it/node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" + }, + "node_modules/mdurl": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz", + "integrity": "sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g==" + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dev": true, + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", + "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==", + "dev": true + }, + "node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "node_modules/negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/network-address": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/network-address/-/network-address-1.1.2.tgz", + "integrity": "sha512-Q6878fmvItA1mE7H9Il46lONgFgTzX2f98zkS0c2YlkCACzNjwvum/8Kq693IQpxe9zy+w+Zm/4p0wQreLEtZw==", + "bin": { + "network-address": "cli.js" + } + }, + "node_modules/nice-try": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", + "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", + "dev": true + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm-run-path": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", + "integrity": "sha512-lJxZYlT4DW/bRUtFh1MQIWqmLwQfAxnqWG4HhEdjMlkrJYnJn0Jrr2u3mgxqaWsdiBc76TYkTG/mhrnYTuzfHw==", + "dev": true, + "dependencies": { + "path-key": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/on-headers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", + "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/p-finally": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/path-is-inside": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", + "integrity": "sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w==" + }, + "node_modules/path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/path-to-regexp": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-2.2.1.tgz", + "integrity": "sha512-gu9bD6Ta5bwGrrU8muHzVOBFFREpp2iRkVfhBJahwJ6p6Xw20SjT0MxLnwkjOibQmGSYhiUnf2FLe7k+jcFmGQ==" + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "dev": true, + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==" + }, + "node_modules/range-parser": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz", + "integrity": "sha512-kA5WQoNVo4t9lNx2kQNFCxKeBl5IbbSNBl1M/tLkw9WCn+hxNBAW5Qh8gdhs63CJnhjJ2zQWFoqPJP2sK1AV5A==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/rc": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", + "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", + "dev": true, + "dependencies": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + }, + "bin": { + "rc": "cli.js" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/registry-auth-token": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-3.3.2.tgz", + "integrity": "sha512-JL39c60XlzCVgNrO+qq68FoNb56w/m7JYvGR2jT5iR1xBrUA3Mfx5Twk5rqTThPmQKMWydGmq8oFtDlxfrmxnQ==", + "dev": true, + "dependencies": { + "rc": "^1.1.6", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/registry-url": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-3.1.0.tgz", + "integrity": "sha512-ZbgR5aZEdf4UKZVBPYIgaglBmSF2Hi94s2PcIHhRGFjKYu+chjJdYfHn4rt3hB6eCKLJ8giVIIfgMa1ehDfZKA==", + "dev": true, + "dependencies": { + "rc": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/serve": { + "version": "13.0.4", + "resolved": "https://registry.npmjs.org/serve/-/serve-13.0.4.tgz", + "integrity": "sha512-Lj8rhXmphJCRQVv5qwu0NQZ2h+0MrRyRJxDZu5y3qLH2i/XY6a0FPj/VmjMUdkJb672MBfE8hJ274PU6JzBd0Q==", + "dev": true, + "dependencies": { + "@zeit/schemas": "2.6.0", + "ajv": "6.12.6", + "arg": "2.0.0", + "boxen": "5.1.2", + "chalk": "2.4.1", + "clipboardy": "2.3.0", + "compression": "1.7.3", + "serve-handler": "6.1.3", + "update-check": "1.5.2" + }, + "bin": { + "serve": "bin/serve.js" + } + }, + "node_modules/serve-handler": { + "version": "6.1.3", + "resolved": "https://registry.npmjs.org/serve-handler/-/serve-handler-6.1.3.tgz", + "integrity": "sha512-FosMqFBNrLyeiIDvP1zgO6YoTzFYHxLDEIavhlmQ+knB2Z7l1t+kGLHkZIDN7UVWqQAmKI3D20A6F6jo3nDd4w==", + "dependencies": { + "bytes": "3.0.0", + "content-disposition": "0.5.2", + "fast-url-parser": "1.1.3", + "mime-types": "2.1.18", + "minimatch": "3.0.4", + "path-is-inside": "1.0.2", + "path-to-regexp": "2.2.1", + "range-parser": "1.2.0" + } + }, + "node_modules/serve-handler/node_modules/mime-db": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.33.0.tgz", + "integrity": "sha512-BHJ/EKruNIqJf/QahvxwQZXKygOQ256myeN/Ew+THcAa5q+PjyTTMMeNQC4DZw5AwfvelsUrA6B67NKMqXDbzQ==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve-handler/node_modules/mime-types": { + "version": "2.1.18", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.18.tgz", + "integrity": "sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ==", + "dependencies": { + "mime-db": "~1.33.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve-handler/node_modules/minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/serve/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/serve/node_modules/chalk": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", + "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/serve/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/serve/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "node_modules/serve/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/serve/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==", + "dev": true, + "dependencies": { + "shebang-regex": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true + }, + "node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", + "dev": true + }, + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-eof": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", + "integrity": "sha512-7FCwGGmx8mD5xQd3RPUvnSpUXHM3BWuzjtpD4TXsfcZ9EL4azvVVUscFYwD9nx8Kh+uCBC00XBtAykoMHwTh8Q==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/uc.micro": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.6.tgz", + "integrity": "sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==" + }, + "node_modules/universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "dev": true, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/update-check": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/update-check/-/update-check-1.5.2.tgz", + "integrity": "sha512-1TrmYLuLj/5ZovwUS7fFd1jMH3NnFDN1y1A8dboedIDt7zs/zJMo6TwwlhYKkSeEwzleeiSBV5/3c9ufAQWDaQ==", + "dev": true, + "dependencies": { + "registry-auth-token": "3.3.2", + "registry-url": "3.1.0" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/uri-js/node_modules/punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, + "node_modules/widest-line": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz", + "integrity": "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==", + "dev": true, + "dependencies": { + "string-width": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true + }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/yargs": { + "version": "17.5.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.5.1.tgz", + "integrity": "sha512-t6YAJcxDkNX7NFYiVtKvWUz8l+PaKTLiL63mJYWR2GnHq2gjEWISzsLp9wg3aY36dY1j+gfIEL3pIF+XlJJfbA==", + "dev": true, + "dependencies": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/yargs-parser": { + "version": "21.0.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.0.1.tgz", + "integrity": "sha512-9BK1jFpLzJROCI5TzwZL/TU4gqjK5xiHV/RfWLOahrjAko/e4DJkRDZQXfvqAsiZzzYhgAzbgz6lg48jcm4GLg==", + "dev": true, + "engines": { + "node": ">=12" + } + } + }, + "dependencies": { + "@zeit/schemas": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/@zeit/schemas/-/schemas-2.6.0.tgz", + "integrity": "sha512-uUrgZ8AxS+Lio0fZKAipJjAh415JyrOZowliZAzmnJSsf7piVL5w+G0+gFJ0KSu3QRhvui/7zuvpLz03YjXAhg==", + "dev": true + }, + "accepts": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "dev": true, + "requires": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + } + }, + "ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "ansi-align": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz", + "integrity": "sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==", + "dev": true, + "requires": { + "string-width": "^4.1.0" + } + }, + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + } + }, + "anymatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", + "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } + }, + "arch": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/arch/-/arch-2.2.0.tgz", + "integrity": "sha512-Of/R0wqp83cgHozfIYLbBMnej79U/SVGOOyuB3VVFv1NRM/PSFMK12x9KVtiYzJqmnU5WR2qp0Z5rHb7sWGnFQ==", + "dev": true + }, + "arg": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/arg/-/arg-2.0.0.tgz", + "integrity": "sha512-XxNTUzKnz1ctK3ZIcI2XUPlD96wbHP2nGqkPKpvk/HNRlPveYrXIVSTk9m3LcqOgDPg3B1nMvdV/K8wZd7PG4w==", + "dev": true + }, + "argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "requires": { + "sprintf-js": "~1.0.2" + } + }, + "async": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.4.tgz", + "integrity": "sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==", + "dev": true + }, + "balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + }, + "binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==" + }, + "boxen": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/boxen/-/boxen-5.1.2.tgz", + "integrity": "sha512-9gYgQKXx+1nP8mP7CzFyaUARhg7D3n1dF/FnErWmu9l6JvGpNUN278h0aSb+QjoiKSWG+iZ3uHrcqk0qrY9RQQ==", + "dev": true, + "requires": { + "ansi-align": "^3.0.0", + "camelcase": "^6.2.0", + "chalk": "^4.1.0", + "cli-boxes": "^2.2.1", + "string-width": "^4.2.2", + "type-fest": "^0.20.2", + "widest-line": "^3.1.0", + "wrap-ansi": "^7.0.0" + } + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "requires": { + "fill-range": "^7.0.1" + } + }, + "bytes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", + "integrity": "sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==" + }, + "camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "dev": true + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "requires": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "fsevents": "~2.3.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + } + }, + "cli-boxes": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.1.tgz", + "integrity": "sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==", + "dev": true + }, + "clipboardy": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/clipboardy/-/clipboardy-2.3.0.tgz", + "integrity": "sha512-mKhiIL2DrQIsuXMgBgnfEHOZOryC7kY7YO//TN6c63wlEm3NG5tz+YgY5rVi29KCmq/QQjKYvM7a19+MDOTHOQ==", + "dev": true, + "requires": { + "arch": "^2.1.1", + "execa": "^1.0.0", + "is-wsl": "^2.1.1" + } + }, + "cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dev": true, + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "compressible": { + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", + "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", + "dev": true, + "requires": { + "mime-db": ">= 1.43.0 < 2" + } + }, + "compression": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.3.tgz", + "integrity": "sha512-HSjyBG5N1Nnz7tF2+O7A9XUhyjru71/fwgNb7oIsEVHR0WShfs2tIS/EySLgiTe98aOK18YDlMXpzjCXY/n9mg==", + "dev": true, + "requires": { + "accepts": "~1.3.5", + "bytes": "3.0.0", + "compressible": "~2.0.14", + "debug": "2.6.9", + "on-headers": "~1.0.1", + "safe-buffer": "5.1.2", + "vary": "~1.1.2" + } + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" + }, + "content-disposition": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.2.tgz", + "integrity": "sha512-kRGRZw3bLlFISDBgwTSA1TMBFN6J6GWDeubmDE3AF+3+yXL8hTWv8r5rkLbqYXY4RjPk/EzHnClI3zQf1cFmHA==" + }, + "cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "dev": true, + "requires": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "deep-extend": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", + "dev": true + }, + "dotenv": { + "version": "16.0.1", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.0.1.tgz", + "integrity": "sha512-1K6hR6wtk2FviQ4kEiSjFiH5rpzEVi8WW0x96aztHVMhEspNpc4DVOUTEHtEva5VThQ8IaBX1Pe4gSzpVVUsKQ==" + }, + "ejs": { + "version": "3.1.8", + "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.8.tgz", + "integrity": "sha512-/sXZeMlhS0ArkfX2Aw780gJzXSMPnKjtspYZv+f3NiKLlubezAHDU5+9xz6gd3/NhG3txQCo6xlglmTS+oTGEQ==", + "dev": true, + "requires": { + "jake": "^10.8.5" + } + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dev": true, + "requires": { + "once": "^1.4.0" + } + }, + "entities": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/entities/-/entities-3.0.1.tgz", + "integrity": "sha512-WiyBqoomrwMdFG1e0kqvASYfnlb0lp8M5o5Fw2OFq1hNZxxcNk8Ik0Xm7LxzBhuidnZB/UtBqVCgUz3kBOP51Q==" + }, + "escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "dev": true + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true + }, + "esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true + }, + "execa": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", + "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", + "dev": true, + "requires": { + "cross-spawn": "^6.0.0", + "get-stream": "^4.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + } + }, + "fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "fast-url-parser": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/fast-url-parser/-/fast-url-parser-1.1.3.tgz", + "integrity": "sha512-5jOCVXADYNuRkKFzNJ0dCCewsZiYo0dz8QNYljkOpFC6r2U4OBmKtvm/Tsuh4w1YYdDqDb31a8TVhBJ2OJKdqQ==", + "requires": { + "punycode": "^1.3.2" + } + }, + "filelist": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.4.tgz", + "integrity": "sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==", + "dev": true, + "requires": { + "minimatch": "^5.0.1" + }, + "dependencies": { + "brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0" + } + }, + "minimatch": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.0.tgz", + "integrity": "sha512-9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg==", + "dev": true, + "requires": { + "brace-expansion": "^2.0.1" + } + } + } + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "front-matter": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/front-matter/-/front-matter-4.0.2.tgz", + "integrity": "sha512-I8ZuJ/qG92NWX8i5x1Y8qyj3vizhXS31OxjKDu3LKP+7/qBgfIKValiZIEwoVoJKUHlhWtYrktkxV1XsX+pPlg==", + "dev": true, + "requires": { + "js-yaml": "^3.13.1" + } + }, + "fs-extra": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true + }, + "fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "optional": true + }, + "get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true + }, + "get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "dev": true, + "requires": { + "pump": "^3.0.0" + } + }, + "glob": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-8.0.3.tgz", + "integrity": "sha512-ull455NHSHI/Y1FqGaaYFaLGkNMMJbavMrEGFXG/PGrg6y7sutWHUHrz6gy6WEBH6akM1M414dWKCNs+IhKdiQ==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^5.0.1", + "once": "^1.3.0" + }, + "dependencies": { + "brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0" + } + }, + "minimatch": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.0.tgz", + "integrity": "sha512-9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg==", + "dev": true, + "requires": { + "brace-expansion": "^2.0.1" + } + } + } + }, + "glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "requires": { + "is-glob": "^4.0.1" + } + }, + "graceful-fs": { + "version": "4.2.10", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", + "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "highlight.js": { + "version": "11.6.0", + "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-11.6.0.tgz", + "integrity": "sha512-ig1eqDzJaB0pqEvlPVIpSSyMaO92bH1N2rJpLMN/nX396wTpDA4Eq0uK+7I/2XG17pFaaKE0kjV/XPeGt7Evjw==" + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dev": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "dev": true + }, + "is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "requires": { + "binary-extensions": "^2.0.0" + } + }, + "is-docker": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", + "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", + "dev": true + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==" + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true + }, + "is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" + }, + "is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==", + "dev": true + }, + "is-wsl": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "dev": true, + "requires": { + "is-docker": "^2.0.0" + } + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true + }, + "jake": { + "version": "10.8.5", + "resolved": "https://registry.npmjs.org/jake/-/jake-10.8.5.tgz", + "integrity": "sha512-sVpxYeuAhWt0OTWITwT98oyV0GsXyMlXCF+3L1SuafBVUIr/uILGRB+NqwkzhgXKvoJpDIpQvqkUALgdmQsQxw==", + "dev": true, + "requires": { + "async": "^3.2.3", + "chalk": "^4.0.2", + "filelist": "^1.0.1", + "minimatch": "^3.0.4" + } + }, + "js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dev": true, + "requires": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + } + }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "json5": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz", + "integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==" + }, + "jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6", + "universalify": "^2.0.0" + } + }, + "linkify-it": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-4.0.1.tgz", + "integrity": "sha512-C7bfi1UZmoj8+PQx22XyeXCuBlokoyWQL5pWSP+EI6nzRylyThouddufc2c1NDIcP9k5agmN9fLpA7VNJfIiqw==", + "requires": { + "uc.micro": "^1.0.1" + } + }, + "markdown-it": { + "version": "13.0.1", + "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-13.0.1.tgz", + "integrity": "sha512-lTlxriVoy2criHP0JKRhO2VDG9c2ypWCsT237eDiLqi09rmbKoUetyGHq2uOIRoRS//kfoJckS0eUzzkDR+k2Q==", + "requires": { + "argparse": "^2.0.1", + "entities": "~3.0.1", + "linkify-it": "^4.0.1", + "mdurl": "^1.0.1", + "uc.micro": "^1.0.5" + }, + "dependencies": { + "argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" + } + } + }, + "markdown-it-emoji": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/markdown-it-emoji/-/markdown-it-emoji-2.0.2.tgz", + "integrity": "sha512-zLftSaNrKuYl0kR5zm4gxXjHaOI3FAOEaloKmRA5hijmJZvSjmxcokOLlzycb/HXlUFWzXqpIEoyEMCE4i9MvQ==" + }, + "mdurl": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz", + "integrity": "sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g==" + }, + "mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "dev": true + }, + "mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dev": true, + "requires": { + "mime-db": "1.52.0" + } + }, + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", + "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==", + "dev": true + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "dev": true + }, + "network-address": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/network-address/-/network-address-1.1.2.tgz", + "integrity": "sha512-Q6878fmvItA1mE7H9Il46lONgFgTzX2f98zkS0c2YlkCACzNjwvum/8Kq693IQpxe9zy+w+Zm/4p0wQreLEtZw==" + }, + "nice-try": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", + "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", + "dev": true + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==" + }, + "npm-run-path": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", + "integrity": "sha512-lJxZYlT4DW/bRUtFh1MQIWqmLwQfAxnqWG4HhEdjMlkrJYnJn0Jrr2u3mgxqaWsdiBc76TYkTG/mhrnYTuzfHw==", + "dev": true, + "requires": { + "path-key": "^2.0.0" + } + }, + "on-headers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", + "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", + "dev": true + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "requires": { + "wrappy": "1" + } + }, + "p-finally": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==", + "dev": true + }, + "path-is-inside": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", + "integrity": "sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w==" + }, + "path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==", + "dev": true + }, + "path-to-regexp": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-2.2.1.tgz", + "integrity": "sha512-gu9bD6Ta5bwGrrU8muHzVOBFFREpp2iRkVfhBJahwJ6p6Xw20SjT0MxLnwkjOibQmGSYhiUnf2FLe7k+jcFmGQ==" + }, + "picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==" + }, + "pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "dev": true, + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==" + }, + "range-parser": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz", + "integrity": "sha512-kA5WQoNVo4t9lNx2kQNFCxKeBl5IbbSNBl1M/tLkw9WCn+hxNBAW5Qh8gdhs63CJnhjJ2zQWFoqPJP2sK1AV5A==" + }, + "rc": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", + "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", + "dev": true, + "requires": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + } + }, + "readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "requires": { + "picomatch": "^2.2.1" + } + }, + "registry-auth-token": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-3.3.2.tgz", + "integrity": "sha512-JL39c60XlzCVgNrO+qq68FoNb56w/m7JYvGR2jT5iR1xBrUA3Mfx5Twk5rqTThPmQKMWydGmq8oFtDlxfrmxnQ==", + "dev": true, + "requires": { + "rc": "^1.1.6", + "safe-buffer": "^5.0.1" + } + }, + "registry-url": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-3.1.0.tgz", + "integrity": "sha512-ZbgR5aZEdf4UKZVBPYIgaglBmSF2Hi94s2PcIHhRGFjKYu+chjJdYfHn4rt3hB6eCKLJ8giVIIfgMa1ehDfZKA==", + "dev": true, + "requires": { + "rc": "^1.0.1" + } + }, + "require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "dev": true + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + }, + "serve": { + "version": "13.0.4", + "resolved": "https://registry.npmjs.org/serve/-/serve-13.0.4.tgz", + "integrity": "sha512-Lj8rhXmphJCRQVv5qwu0NQZ2h+0MrRyRJxDZu5y3qLH2i/XY6a0FPj/VmjMUdkJb672MBfE8hJ274PU6JzBd0Q==", + "dev": true, + "requires": { + "@zeit/schemas": "2.6.0", + "ajv": "6.12.6", + "arg": "2.0.0", + "boxen": "5.1.2", + "chalk": "2.4.1", + "clipboardy": "2.3.0", + "compression": "1.7.3", + "serve-handler": "6.1.3", + "update-check": "1.5.2" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", + "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "serve-handler": { + "version": "6.1.3", + "resolved": "https://registry.npmjs.org/serve-handler/-/serve-handler-6.1.3.tgz", + "integrity": "sha512-FosMqFBNrLyeiIDvP1zgO6YoTzFYHxLDEIavhlmQ+knB2Z7l1t+kGLHkZIDN7UVWqQAmKI3D20A6F6jo3nDd4w==", + "requires": { + "bytes": "3.0.0", + "content-disposition": "0.5.2", + "fast-url-parser": "1.1.3", + "mime-types": "2.1.18", + "minimatch": "3.0.4", + "path-is-inside": "1.0.2", + "path-to-regexp": "2.2.1", + "range-parser": "1.2.0" + }, + "dependencies": { + "mime-db": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.33.0.tgz", + "integrity": "sha512-BHJ/EKruNIqJf/QahvxwQZXKygOQ256myeN/Ew+THcAa5q+PjyTTMMeNQC4DZw5AwfvelsUrA6B67NKMqXDbzQ==" + }, + "mime-types": { + "version": "2.1.18", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.18.tgz", + "integrity": "sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ==", + "requires": { + "mime-db": "~1.33.0" + } + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "requires": { + "brace-expansion": "^1.1.7" + } + } + } + }, + "shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==", + "dev": true, + "requires": { + "shebang-regex": "^1.0.0" + } + }, + "shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==", + "dev": true + }, + "signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true + }, + "sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", + "dev": true + }, + "string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + }, + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.1" + } + }, + "strip-eof": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", + "integrity": "sha512-7FCwGGmx8mD5xQd3RPUvnSpUXHM3BWuzjtpD4TXsfcZ9EL4azvVVUscFYwD9nx8Kh+uCBC00XBtAykoMHwTh8Q==", + "dev": true + }, + "strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "requires": { + "has-flag": "^4.0.0" + } + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "requires": { + "is-number": "^7.0.0" + } + }, + "type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true + }, + "uc.micro": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.6.tgz", + "integrity": "sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==" + }, + "universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "dev": true + }, + "update-check": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/update-check/-/update-check-1.5.2.tgz", + "integrity": "sha512-1TrmYLuLj/5ZovwUS7fFd1jMH3NnFDN1y1A8dboedIDt7zs/zJMo6TwwlhYKkSeEwzleeiSBV5/3c9ufAQWDaQ==", + "dev": true, + "requires": { + "registry-auth-token": "3.3.2", + "registry-url": "3.1.0" + } + }, + "uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "requires": { + "punycode": "^2.1.0" + }, + "dependencies": { + "punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "dev": true + } + } + }, + "vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "dev": true + }, + "which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + }, + "widest-line": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz", + "integrity": "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==", + "dev": true, + "requires": { + "string-width": "^4.0.0" + } + }, + "wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true + }, + "y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true + }, + "yargs": { + "version": "17.5.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.5.1.tgz", + "integrity": "sha512-t6YAJcxDkNX7NFYiVtKvWUz8l+PaKTLiL63mJYWR2GnHq2gjEWISzsLp9wg3aY36dY1j+gfIEL3pIF+XlJJfbA==", + "dev": true, + "requires": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.0.0" + } + }, + "yargs-parser": { + "version": "21.0.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.0.1.tgz", + "integrity": "sha512-9BK1jFpLzJROCI5TzwZL/TU4gqjK5xiHV/RfWLOahrjAko/e4DJkRDZQXfvqAsiZzzYhgAzbgz6lg48jcm4GLg==", + "dev": true + } + } +} diff --git a/package.json b/package.json new file mode 100755 index 0000000..511d66b --- /dev/null +++ b/package.json @@ -0,0 +1,34 @@ +{ + "name": "iew-site-builder", + "version": "0.9.0", + "description": "", + "main": "index.js", + "scripts": { + "build": "node app.js build", + "build:prod": "cross-env NODE_ENV=production node ./lib/build", + "serve": "node app.js serve", + "watch": "node app.js watch" + }, + "keywords": [], + "author": "", + "license": "ISC", + "dependencies": { + "chalk": "^4.1.2", + "chokidar": "^3.4.3", + "dotenv": "^16.0.1", + "highlight.js": "^11.3.1", + "json5": "^2.1.3", + "markdown-it": "^13.0.1", + "markdown-it-emoji": "^2.0.0", + "network-address": "^1.1.2", + "serve-handler": "^6.1.3" + }, + "devDependencies": { + "ejs": "^3.1.5", + "front-matter": "^4.0.2", + "fs-extra": "^10.0.0", + "glob": "^8.0.3", + "serve": "^13.0.2", + "yargs": "^17.3.1" + } +} diff --git a/site.config.json5 b/site.config.json5 new file mode 100644 index 0000000..be7aa29 --- /dev/null +++ b/site.config.json5 @@ -0,0 +1,26 @@ +{ + site: { + title: "It's Eric Woodward (dotcom)", + author: { + name: "Eric Woodward", + email: "redacted@nunyodam.com", // not used + photo: "/images/eric-8bit.gif", + site: "https://itsericwoodward.com", + }, + + base_uri: "", + robots: "index,follow", + language: "en-us", + copyright: "Copyright 2014-2022 Eric Woodward, licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.", + basePath: "", + uri: "https://www.itsericwoodward.com", + }, + build: { + journalsPerPage: 5, + srcPath: "src", + outputPath: "out", + }, + serve: { + port: 4997, + }, +} diff --git a/src/assets/_root/browserconfig.xml b/src/assets/_root/browserconfig.xml new file mode 100644 index 0000000..989db79 --- /dev/null +++ b/src/assets/_root/browserconfig.xml @@ -0,0 +1,2 @@ + +#0d1852 diff --git a/src/assets/_root/chim/chim-exe.zip b/src/assets/_root/chim/chim-exe.zip new file mode 100644 index 0000000000000000000000000000000000000000..6ef9b0f7869b5f5fdbee0ebc699b063755fac057 GIT binary patch literal 46533 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 NRsaA1S+xKF008|~H+KL4 literal 0 HcmV?d00001 diff --git a/src/assets/_root/chim/js-dos-api.js b/src/assets/_root/chim/js-dos-api.js new file mode 100644 index 0000000..21331e6 --- /dev/null +++ b/src/assets/_root/chim/js-dos-api.js @@ -0,0 +1,348 @@ +/*! + * jQLite JavaScript Library v1.1.1 (http://code.google.com/p/jqlite/) + * Copyright (c) 2010 Brett Fattori (bfattori@gmail.com) + * Licensed under the MIT license + * http://www.opensource.org/licenses/mit-license.php + * + * Many thanks to the jQuery team's efforts. Some code is + * Copyright (c) 2010, John Resig. See + * http://jquery.org/license + * + * @author Brett Fattori (bfattori@gmail.com) + * @author $Author: bfattori $ + * @version $Revision: 145 $ + * + * Created: 03/29/2010 + * Modified: $Date: 2010-06-21 11:08:14 -0400 (Mon, 21 Jun 2010) $ + */ +(function(){function B(){return+new Date}var D=function(a,b){if(a===""&&b)return b;var d=a.split(" "),c=d.shift(),e;if(c.charAt(0)=="#"){var g=i.getElementById(c.substring(1));e=g?[g]:[]}else{e=c.charAt(0)!=="."?c.split(".")[0]:"*";var h=c.split("."),j=null;if(e.indexOf("[")!=-1){j=e;e=e.substr(0,e.indexOf("["))}g=function(o){var n=arguments.callee,k;if(!(k=!n.needClass)){k=n.classes;if(o.className.length==0)k=false;else{for(var r=o.className.split(" "),l=k.length,p=0;p0;g.needAttribute=j!=null;for(c=0;c0;)A.shift()()};var t="jQuery"+B(),S=0,O={};f.noData={embed:true,object:true,applet:true};f.cache={};f.data=function(a,b,d){if(!(a.nodeName&&jQuery.noData[a.nodeName.toLowerCase()])){a=a==window?O:a;var c=a[t];c||(c=a[t]=++S);if(b&&!jQuery.cache[c])jQuery.cache[c]={};if(d!==undefined)jQuery.cache[c][b]=d;return b?jQuery.cache[c][b]:c}};f.removeData= +function(a,b){a=a==window?O:a;var d=a[t];if(b){if(jQuery.cache[d]){delete jQuery.cache[d][b];b="";for(b in jQuery.cache[d])break;b||jQuery.removeData(a)}}else{try{delete a[t]}catch(c){a.removeAttribute&&a.removeAttribute(t)}delete jQuery.cache[d]}};f.ajax={status:-1,statusText:"",responseText:null,responseXML:null,send:function(a,b,d){if(f.isFunction(b)){d=b;b={}}if(a){var c=true,e=null,g=null;if(typeof b.async!=="undefined"){c=b.async;delete b.async}if(typeof b.username!=="undefined"){e=b.username; +delete b.username}if(typeof b.password!=="undefined"){g=b.password;delete b.password}b=f.param(b);if(b.length!=0)a+=(a.indexOf("?")==-1?"?":"&")+b;b=new XMLHttpRequest;b.open("GET",a,c,e,g);b.send();if(c){a=function(h){var j=arguments.callee;h.status==200?f.ajax.complete(h,j.cb):f.ajax.error(h,j.cb)};a.cb=d;d=function(){var h=arguments.callee;h.req.readyState!=4?setTimeout(h,250):h.xcb(h.req)};d.req=b;d.xcb=a;setTimeout(d,250)}}},complete:function(a,b){f.ajax.status=a.status;f.ajax.responseText=a.responseText; +f.ajax.responseXML=a.responseXML;f.isFunction(b)&&b(a.responseText,a.status)},error:function(a,b){f.ajax.status=a.status;f.ajax.statusText=a.statusText;f.isFunction(b)&&b(a.status,a.statusText)}};f.makeArray=function(a,b){var d=b||[];if(a!=null)a.length==null||typeof a==="string"||jQuery.isFunction(a)||typeof a!=="function"&&a.setInterval?L.call(d,a):f.merge(d,a);return d};f.inArray=function(a,b){for(var d=0;d")!=-1){d=f.trim(a).toLowerCase();d=d.indexOf("'); + this.canvas = $(''); + this.overlay = $('
'); + this.loaderMessage = $('
'); + this.loader = $('
').append($('
').append($(''))).append(this.loaderMessage); + this.start = $('
Click to start'); + this.div.append(this.wrapper); + this.wrapper.append(this.canvas); + this.wrapper.append(this.loader); + this.wrapper.append(this.overlay); + this.overlay.append($('
Powered by  ').append($('js-dos.com'))); + this.overlay.append(this.start); + } + + UI.prototype.onStart = function(fun) { + return this.start.click((function(_this) { + return function() { + fun(); + return _this.overlay.hide(); + }; + })(this)); + }; + + UI.prototype.appendCss = function() { + var head, style; + head = document.head || document.getElementsByTagName('head')[0]; + style = document.createElement('style'); + style.type = 'text/css'; + if (style.styleSheet) { + style.styleSheet.cssText = this.css; + } else { + style.appendChild(document.createTextNode(this.css)); + } + return head.appendChild(style); + }; + + UI.prototype.showLoader = function() { + this.loader.show(); + return this.loaderMessage.html(''); + }; + + UI.prototype.updateMessage = function(message) { + return this.loaderMessage.html(message); + }; + + UI.prototype.hideLoader = function() { + return this.loader.hide(); + }; + + UI.prototype.css = '.dosbox-container { position: relative; min-width: 320px; min-height: 200px; } .dosbox-canvas { } .dosbox-overlay, .dosbox-loader { position: absolute; left: 0; right: 0; top: 0; bottom: 0; background-color: #333; } .dosbox-start { text-align: center; position: absolute; left: 0; right: 0; bottom: 50%; color: #f80; font-size: 1.5em; text-decoration: underline; cursor: pointer; } .dosbox-overlay a { color: #f80; } .dosbox-loader { display: none; } .dosbox-powered { position: absolute; right: 1em; bottom: 1em; font-size: 0.8em; color: #9C9C9C; } .dosbox-loader-message { text-align: center; position: absolute; left: 0; right: 0; bottom: 50%; margin: 0 0 -3em 0; box-sizing: border-box; color: #f80; font-size: 1.5em; } @-moz-keyframes loading { 0% { left: 0; } 50% { left: 8.33333em; } 100% { left: 0; } } @-webkit-keyframes loading { 0% { left: 0; } 50% { left: 8.33333em; } 100% { left: 0; } } @keyframes loading { 0% { left: 0; } 50% { left: 8.33333em; } 100% { left: 0; } } .st-loader { width: 10em; height: 2.5em; position: absolute; top: 50%; left: 50%; margin: -1.25em 0 0 -5em; box-sizing: border-box; } .st-loader:before, .st-loader:after { content: ""; display: block; position: absolute; top: 0; bottom: 0; width: 1.25em; box-sizing: border-box; border: 0.25em solid #f80; } .st-loader:before { left: -0.76923em; border-right: 0; } .st-loader:after { right: -0.76923em; border-left: 0; } .st-loader .equal { display: block; position: absolute; top: 50%; margin-top: -0.5em; left: 4.16667em; height: 1em; width: 1.66667em; border: 0.25em solid #f80; box-sizing: border-box; border-width: 0.25em 0; -moz-animation: loading 1.5s infinite ease-in-out; -webkit-animation: loading 1.5s infinite ease-in-out; animation: loading 1.5s infinite ease-in-out; }'; + + return UI; + + })(); + +}).call(this); + +(function() { + Dosbox.Xhr = (function() { + function Xhr(url, options) { + var e; + this.success = options.success; + this.progress = options.progress; + if (window.ActiveXObject) { + try { + this.xhr = new ActiveXObject('Microsoft.XMLHTTP'); + } catch (error) { + e = error; + this.xhr = null; + } + } else { + this.xhr = new XMLHttpRequest(); + } + this.xhr.open('GET', url, true); + this.xhr.overrideMimeType('text/plain; charset=x-user-defined'); + this.xhr.addEventListener('progress', (function(_this) { + return function(evt) { + if (_this.progress) { + return _this.progress(evt.total, evt.loaded); + } + }; + })(this)); + this.xhr.onreadystatechange = (function(_this) { + return function() { + return _this._onReadyStateChange(); + }; + })(this); + this.xhr.send(); + } + + Xhr.prototype._onReadyStateChange = function() { + if (this.xhr.readyState === 4 && this.success) { + return this.success(this.xhr.responseText); + } + }; + + return Xhr; + + })(); + +}).call(this); diff --git a/src/assets/_root/favicon.ico b/src/assets/_root/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..d9f98dfb97cf424be1631ea7105dc8171dc5d774 GIT binary patch literal 1150 zcmbu8Yfn^H6o%K4%gk`ssvm5PrjAI(08XtVms&0j%7EMkxep)~f#Djwp%^3}pdhVj zqXi~Fwf2Ih?T5A>+F-?Cw3f7rOl>9dTb`~nH2niTC+}YCtbN|K*V_BtB8I*(F{0yk zX$ltEEFy6V4QXU8u0}-X7NXV=_}1a=0|pL-#VSNcuO})h8VzF@1`!dFgoj52d@~jk zv!2MvXhK4SeJKVh8S6-XPXe&o1e+~PVIwFw6npG0yxta?nwr_M!;ZybB`ho)tJOwm zsF0c|Wab#89~KVf3$eRJd5R!|xVPf?YIc_U^AC9V=nyA@8W* zDmFM&AQV*!B{f2}`iBdJ^14W7ex77};W56)i%kDCL8&K-w#-nzr7+jnRg>!5Qmk<(Y5wDsAkZ#VEXnLHz~cBSU> z_B**Y|2@-xE;IDw4;=40%h`*U0;oUP&FH;3ru@r{&E2J`H<22zP}yKm;t{G&2tBuY zne?wR_16m57k}3phUhrcqc~67z%ZZwvBcDi6(;>Z%>#w5O_C8l4la^u+wuGVf6_J`oEHpq18`uPTlX6Y58-a}QT-a^ zx`m7!lV=d0r2YS!!|cV>cY&UXd9FumRig^ix~qhI-D|T>^UfVOXz~p6uK%y+9|B?c A<^TWy literal 0 HcmV?d00001 diff --git a/src/assets/_root/favicon.png b/src/assets/_root/favicon.png new file mode 100644 index 0000000000000000000000000000000000000000..8626f74e1b3c592b285c92e3d678a8242d4dea0d GIT binary patch literal 1645 zcmZ{kXHZmE6vxkFDUYQrqF6v9Dj%_kon9EK4s-Z(G;~YzZvgAhI+;)F>!L zz@TEs*pgU43`BxNkrE9EiKc2MnIz-4OeW;wWF{mt`EcHO=icA>pL5?kbN9tY3v8&4 zQ~tCV3Sr!%_1yJq= zP*nr)J6fuG2~b1;{3r$>+W^++kKc;(1uz+mjTD6d;Q<^L1dtHUhj<~R#6U&@WG6y) z5~L?UQZ&Q}AS?j=3d7Vg8ud4vUzz)*TZ1PBAM0G`t> zB0br6!zz3w6;@ecE2)^Hy?LsLw=sYPq6iR0V&Oqpbf}{*qrO)BVDxZlLF{@5OM5Cf z+FNLIBgRG!9BPzq@FOr$1SX1v_;3oz%9jN_o$g$iKRNTbt-Dii+?{N!OzSwBKRMaC zFxx%%_-JWVgeYM#Q#;m$MsokyW zQ%B@(q9Bl@Kx$lUwPIqhHau`U%>ul3IQz2QiuAF%yolAdrhFf|D4aEM$Cyy7gq$=% zm12Cj>2yy4hq;l*+T2_(eKONIGud9OkMVGEh>zr4K3g_6P$x7hL6HGjB1?5Dnk zZm*`iSXW-8t2b&UA03-}(ltNRuIns?ylhOF0cmlZ>fCEXho)z`uivOEE|AvjDJdzG z-X3V0p6R-9rIEWU&b~iAkU=)h` zHurO9`|b@5-oHO`;zW;&t1D0_U}_2;Zjcy>#fO7G5B#}ciBl~t%}ps=-CXi=bJZ%9 z%a$#;1#U&9TH-jEn*-km6Y??cPK?U}++qdIj%I7SG~gI!V{L71WwpZ2j%H&EW@Z@a zWfDj(E-ub;O|T_G8X*XN6*nztL4l<{EVU58c4W!0Ru5Yz1ULzU14V16F+1#+KT&8x zF*P%{z%4APR@O)nGojh7uwS{#VfC7|>l~fdg9*)Q!&@7jH*MOy#l_Wat2|V^2OoZP z)AZKuJ77I9cz5XD$HOC^+#mgP?7=vE_VCff#N)}S>6y=;JpE#J4xY^~eEHS$7hiw# z;`z7VegDHtMx*Za)WLz%=-as(LQ)Jl5`&zS708hT7Qy6t5*$y0Cn5-v%_EtF2YMk0 zhhr6y|4Pv4a@2~l|4+zyF#Ib@2wkdBs8bk9Bn5I1Y9vZ|ltihP++juufK_k!uYk z8H>1_iZ+F-?Cw3f7rOl>9dTb`~nH2niTC+}YCtbN|K*V_BtB8I*(F{0yk zX$ltEEFy6V4QXU8u0}-X7NXV=_}1a=0|pL-#VSNcuO})h8VzF@1`!dFgoj52d@~jk zv!2MvXhK4SeJKVh8S6-XPXe&o1e+~PVIwFw6npG0yxta?nwr_M!;ZybB`ho)tJOwm zsF0c|Wab#89~KVf3$eRJd5R!|xVPf?YIc_U^AC9V=nyA@8W* zDmFM&AQV*!B{f2}`iBdJ^14W7ex77};W56)i%kDCL8&K-w#-nzr7+jnRg>!5Qmk<(Y5wDsAkZ#VEXnLHz~cBSU> z_B**Y|2@-xE;IDw4;=40%h`*U0;oUP&FH;3ru@r{&E2J`H<22zP}yKm;t{G&2tBuY zne?wR_16m57k}3phUhrcqc~67z%ZZwvBcDi6(;>Z%>#w5O_C8l4la^u+wuGVf6_J`oEHpq18`uPTlX6Y58-a}QT-a^ zx`m7!lV=d0r2YS!!|cV>cY&UXd9FumRig^ix~qhI-D|T>^UfVOXz~p6uK%y+9|B?c A<^TWy literal 0 HcmV?d00001 diff --git a/src/assets/_root/root/favicon.png b/src/assets/_root/root/favicon.png new file mode 100644 index 0000000000000000000000000000000000000000..8626f74e1b3c592b285c92e3d678a8242d4dea0d GIT binary patch literal 1645 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