├── .dockerignore ├── .github ├── FUNDING.yml └── workflows │ ├── contributors.yml │ ├── lint.yml │ ├── publish.yml │ └── version.yml ├── .gitignore ├── .prettierignore ├── .prettierrc.json ├── .vscode └── launch.json ├── Dockerfile ├── Dockerstart.sh ├── LICENSE ├── README.md ├── chart ├── .helmignore ├── Chart.yaml ├── README.md ├── templates │ ├── NOTES.txt │ ├── _helpers.tpl │ ├── deployment.yaml │ ├── ingress.yaml │ ├── pv.yaml │ ├── pvc.yaml │ ├── service.yaml │ ├── serviceaccount.yaml │ └── tests │ │ └── test-connection.yaml └── values.yaml ├── docker-compose.debug.yml ├── docker-compose.yml ├── eslint.config.js ├── package.json ├── postinstall.cjs ├── screenshots ├── link-not-required.png ├── list.png ├── main.png └── name-from-link.png ├── src ├── CC.ts ├── Language.ts ├── PouchDB.ts ├── UpdateNotice.ts ├── config │ ├── index.ts │ ├── secret │ │ └── index.js │ └── wishlist │ │ └── index.js ├── dbMigration.ts ├── env.ts ├── global.d.ts ├── index.ts ├── languages │ ├── cs-cz.ts │ ├── da-dk.ts │ ├── de-de.ts │ ├── en-us.ts │ ├── es-es.ts │ ├── fr-ca.ts │ ├── fr-fr.ts │ ├── nb-no.ts │ ├── nl-nl.ts │ ├── pl-pl.ts │ ├── pt-pt.ts │ ├── ro-ro.ts │ └── ru-ru.ts ├── logger.ts ├── manager.js ├── middlewares │ ├── locals.js │ ├── publicRoute.js │ └── verifyAuth.js ├── routes │ ├── adminSettings │ │ └── index.js │ ├── api │ │ ├── index.js │ │ └── wishlist │ │ │ └── index.js │ ├── confirm-account │ │ └── index.js │ ├── index.js │ ├── login │ │ └── index.js │ ├── logout │ │ └── index.js │ ├── manifest.json │ │ └── index.js │ ├── oidc │ │ └── index.js │ ├── profile │ │ └── index.js │ ├── resetpw │ │ └── index.js │ ├── setup │ │ └── index.js │ ├── supported-sites │ │ └── index.js │ └── wishlist │ │ └── index.js ├── static │ ├── css │ │ └── main.css │ ├── img │ │ ├── default-pfps │ │ │ ├── 1.jpg │ │ │ ├── 10.jpg │ │ │ ├── 2.jpg │ │ │ ├── 3.jpg │ │ │ ├── 4.png │ │ │ ├── 5.png │ │ │ ├── 6.jpg │ │ │ ├── 7.jpg │ │ │ ├── 8.jpg │ │ │ └── 9.jpg │ │ ├── logo.png │ │ └── logo.transparent.png │ ├── js │ │ ├── nav.js │ │ ├── profile.js │ │ └── wishlist.js │ └── libraries │ │ ├── animate.min.css │ │ └── fontawesome │ │ ├── LICENSE.txt │ │ ├── css │ │ ├── all.css │ │ ├── all.min.css │ │ ├── brands.css │ │ ├── brands.min.css │ │ ├── fontawesome.css │ │ ├── fontawesome.min.css │ │ ├── regular.css │ │ ├── regular.min.css │ │ ├── solid.css │ │ ├── solid.min.css │ │ ├── svg-with-js.css │ │ ├── svg-with-js.min.css │ │ ├── v4-shims.css │ │ └── v4-shims.min.css │ │ ├── js │ │ ├── all.js │ │ ├── all.min.js │ │ ├── brands.js │ │ ├── brands.min.js │ │ ├── fontawesome.js │ │ ├── fontawesome.min.js │ │ ├── regular.js │ │ ├── regular.min.js │ │ ├── solid.js │ │ ├── solid.min.js │ │ ├── v4-shims.js │ │ └── v4-shims.min.js │ │ ├── less │ │ ├── _animated.less │ │ ├── _bordered-pulled.less │ │ ├── _core.less │ │ ├── _fixed-width.less │ │ ├── _icons.less │ │ ├── _larger.less │ │ ├── _list.less │ │ ├── _mixins.less │ │ ├── _rotated-flipped.less │ │ ├── _screen-reader.less │ │ ├── _shims.less │ │ ├── _stacked.less │ │ ├── _variables.less │ │ ├── brands.less │ │ ├── fontawesome.less │ │ ├── regular.less │ │ ├── solid.less │ │ └── v4-shims.less │ │ ├── metadata │ │ ├── categories.yml │ │ ├── icons.json │ │ ├── icons.yml │ │ ├── shims.json │ │ ├── shims.yml │ │ └── sponsors.yml │ │ ├── scss │ │ ├── _animated.scss │ │ ├── _bordered-pulled.scss │ │ ├── _core.scss │ │ ├── _fixed-width.scss │ │ ├── _icons.scss │ │ ├── _larger.scss │ │ ├── _list.scss │ │ ├── _mixins.scss │ │ ├── _rotated-flipped.scss │ │ ├── _screen-reader.scss │ │ ├── _shims.scss │ │ ├── _stacked.scss │ │ ├── _variables.scss │ │ ├── brands.scss │ │ ├── fontawesome.scss │ │ ├── regular.scss │ │ ├── solid.scss │ │ └── v4-shims.scss │ │ ├── sprites │ │ ├── brands.svg │ │ ├── regular.svg │ │ └── solid.svg │ │ ├── svgs │ │ ├── brands │ │ │ ├── 500px.svg │ │ │ ├── accessible-icon.svg │ │ │ ├── accusoft.svg │ │ │ ├── acquisitions-incorporated.svg │ │ │ ├── adn.svg │ │ │ ├── adversal.svg │ │ │ ├── affiliatetheme.svg │ │ │ ├── algolia.svg │ │ │ ├── alipay.svg │ │ │ ├── amazon-pay.svg │ │ │ ├── amazon.svg │ │ │ ├── amilia.svg │ │ │ ├── android.svg │ │ │ ├── angellist.svg │ │ │ ├── angrycreative.svg │ │ │ ├── angular.svg │ │ │ ├── app-store-ios.svg │ │ │ ├── app-store.svg │ │ │ ├── apper.svg │ │ │ ├── apple-pay.svg │ │ │ ├── apple.svg │ │ │ ├── asymmetrik.svg │ │ │ ├── audible.svg │ │ │ ├── autoprefixer.svg │ │ │ ├── avianex.svg │ │ │ ├── aviato.svg │ │ │ ├── aws.svg │ │ │ ├── bandcamp.svg │ │ │ ├── behance-square.svg │ │ │ ├── behance.svg │ │ │ ├── bimobject.svg │ │ │ ├── bitbucket.svg │ │ │ ├── bitcoin.svg │ │ │ ├── bity.svg │ │ │ ├── black-tie.svg │ │ │ ├── blackberry.svg │ │ │ ├── blogger-b.svg │ │ │ ├── blogger.svg │ │ │ ├── bluetooth-b.svg │ │ │ ├── bluetooth.svg │ │ │ ├── btc.svg │ │ │ ├── buromobelexperte.svg │ │ │ ├── buysellads.svg │ │ │ ├── cc-amazon-pay.svg │ │ │ ├── cc-amex.svg │ │ │ ├── cc-apple-pay.svg │ │ │ ├── cc-diners-club.svg │ │ │ ├── cc-discover.svg │ │ │ ├── cc-jcb.svg │ │ │ ├── cc-mastercard.svg │ │ │ ├── cc-paypal.svg │ │ │ ├── cc-stripe.svg │ │ │ ├── cc-visa.svg │ │ │ ├── centercode.svg │ │ │ ├── chrome.svg │ │ │ ├── cloudscale.svg │ │ │ ├── cloudsmith.svg │ │ │ ├── cloudversify.svg │ │ │ ├── codepen.svg │ │ │ ├── codiepie.svg │ │ │ ├── connectdevelop.svg │ │ │ ├── contao.svg │ │ │ ├── cpanel.svg │ │ │ ├── creative-commons-by.svg │ │ │ ├── creative-commons-nc-eu.svg │ │ │ ├── creative-commons-nc-jp.svg │ │ │ ├── creative-commons-nc.svg │ │ │ ├── creative-commons-nd.svg │ │ │ ├── creative-commons-pd-alt.svg │ │ │ ├── creative-commons-pd.svg │ │ │ ├── creative-commons-remix.svg │ │ │ ├── creative-commons-sa.svg │ │ │ ├── creative-commons-sampling-plus.svg │ │ │ ├── creative-commons-sampling.svg │ │ │ ├── creative-commons-share.svg │ │ │ ├── creative-commons-zero.svg │ │ │ ├── creative-commons.svg │ │ │ ├── critical-role.svg │ │ │ ├── css3-alt.svg │ │ │ ├── css3.svg │ │ │ ├── cuttlefish.svg │ │ │ ├── d-and-d-beyond.svg │ │ │ ├── d-and-d.svg │ │ │ ├── dashcube.svg │ │ │ ├── delicious.svg │ │ │ ├── deploydog.svg │ │ │ ├── deskpro.svg │ │ │ ├── dev.svg │ │ │ ├── deviantart.svg │ │ │ ├── digg.svg │ │ │ ├── digital-ocean.svg │ │ │ ├── discord.svg │ │ │ ├── discourse.svg │ │ │ ├── dochub.svg │ │ │ ├── docker.svg │ │ │ ├── draft2digital.svg │ │ │ ├── dribbble-square.svg │ │ │ ├── dribbble.svg │ │ │ ├── dropbox.svg │ │ │ ├── drupal.svg │ │ │ ├── dyalog.svg │ │ │ ├── earlybirds.svg │ │ │ ├── ebay.svg │ │ │ ├── edge.svg │ │ │ ├── elementor.svg │ │ │ ├── ello.svg │ │ │ ├── ember.svg │ │ │ ├── empire.svg │ │ │ ├── envira.svg │ │ │ ├── erlang.svg │ │ │ ├── ethereum.svg │ │ │ ├── etsy.svg │ │ │ ├── expeditedssl.svg │ │ │ ├── facebook-f.svg │ │ │ ├── facebook-messenger.svg │ │ │ ├── facebook-square.svg │ │ │ ├── facebook.svg │ │ │ ├── fantasy-flight-games.svg │ │ │ ├── firefox.svg │ │ │ ├── first-order-alt.svg │ │ │ ├── first-order.svg │ │ │ ├── firstdraft.svg │ │ │ ├── flickr.svg │ │ │ ├── flipboard.svg │ │ │ ├── fly.svg │ │ │ ├── font-awesome-alt.svg │ │ │ ├── font-awesome-flag.svg │ │ │ ├── font-awesome-logo-full.svg │ │ │ ├── font-awesome.svg │ │ │ ├── fonticons-fi.svg │ │ │ ├── fonticons.svg │ │ │ ├── fort-awesome-alt.svg │ │ │ ├── fort-awesome.svg │ │ │ ├── forumbee.svg │ │ │ ├── foursquare.svg │ │ │ ├── free-code-camp.svg │ │ │ ├── freebsd.svg │ │ │ ├── fulcrum.svg │ │ │ ├── galactic-republic.svg │ │ │ ├── galactic-senate.svg │ │ │ ├── get-pocket.svg │ │ │ ├── gg-circle.svg │ │ │ ├── gg.svg │ │ │ ├── git-square.svg │ │ │ ├── git.svg │ │ │ ├── github-alt.svg │ │ │ ├── github-square.svg │ │ │ ├── github.svg │ │ │ ├── gitkraken.svg │ │ │ ├── gitlab.svg │ │ │ ├── gitter.svg │ │ │ ├── glide-g.svg │ │ │ ├── glide.svg │ │ │ ├── gofore.svg │ │ │ ├── goodreads-g.svg │ │ │ ├── goodreads.svg │ │ │ ├── google-drive.svg │ │ │ ├── google-play.svg │ │ │ ├── google-plus-g.svg │ │ │ ├── google-plus-square.svg │ │ │ ├── google-plus.svg │ │ │ ├── google-wallet.svg │ │ │ ├── google.svg │ │ │ ├── gratipay.svg │ │ │ ├── grav.svg │ │ │ ├── gripfire.svg │ │ │ ├── grunt.svg │ │ │ ├── gulp.svg │ │ │ ├── hacker-news-square.svg │ │ │ ├── hacker-news.svg │ │ │ ├── hackerrank.svg │ │ │ ├── hips.svg │ │ │ ├── hire-a-helper.svg │ │ │ ├── hooli.svg │ │ │ ├── hornbill.svg │ │ │ ├── hotjar.svg │ │ │ ├── houzz.svg │ │ │ ├── html5.svg │ │ │ ├── hubspot.svg │ │ │ ├── imdb.svg │ │ │ ├── instagram.svg │ │ │ ├── internet-explorer.svg │ │ │ ├── ioxhost.svg │ │ │ ├── itunes-note.svg │ │ │ ├── itunes.svg │ │ │ ├── java.svg │ │ │ ├── jedi-order.svg │ │ │ ├── jenkins.svg │ │ │ ├── joget.svg │ │ │ ├── joomla.svg │ │ │ ├── js-square.svg │ │ │ ├── js.svg │ │ │ ├── jsfiddle.svg │ │ │ ├── kaggle.svg │ │ │ ├── keybase.svg │ │ │ ├── keycdn.svg │ │ │ ├── kickstarter-k.svg │ │ │ ├── kickstarter.svg │ │ │ ├── korvue.svg │ │ │ ├── laravel.svg │ │ │ ├── lastfm-square.svg │ │ │ ├── lastfm.svg │ │ │ ├── leanpub.svg │ │ │ ├── less.svg │ │ │ ├── line.svg │ │ │ ├── linkedin-in.svg │ │ │ ├── linkedin.svg │ │ │ ├── linode.svg │ │ │ ├── linux.svg │ │ │ ├── lyft.svg │ │ │ ├── magento.svg │ │ │ ├── mailchimp.svg │ │ │ ├── mandalorian.svg │ │ │ ├── markdown.svg │ │ │ ├── mastodon.svg │ │ │ ├── maxcdn.svg │ │ │ ├── medapps.svg │ │ │ ├── medium-m.svg │ │ │ ├── medium.svg │ │ │ ├── medrt.svg │ │ │ ├── meetup.svg │ │ │ ├── megaport.svg │ │ │ ├── microsoft.svg │ │ │ ├── mix.svg │ │ │ ├── mixcloud.svg │ │ │ ├── mizuni.svg │ │ │ ├── modx.svg │ │ │ ├── monero.svg │ │ │ ├── napster.svg │ │ │ ├── neos.svg │ │ │ ├── nimblr.svg │ │ │ ├── nintendo-switch.svg │ │ │ ├── node-js.svg │ │ │ ├── node.svg │ │ │ ├── npm.svg │ │ │ ├── ns8.svg │ │ │ ├── nutritionix.svg │ │ │ ├── odnoklassniki-square.svg │ │ │ ├── odnoklassniki.svg │ │ │ ├── old-republic.svg │ │ │ ├── opencart.svg │ │ │ ├── openid.svg │ │ │ ├── opera.svg │ │ │ ├── optin-monster.svg │ │ │ ├── osi.svg │ │ │ ├── page4.svg │ │ │ ├── pagelines.svg │ │ │ ├── palfed.svg │ │ │ ├── patreon.svg │ │ │ ├── paypal.svg │ │ │ ├── penny-arcade.svg │ │ │ ├── periscope.svg │ │ │ ├── phabricator.svg │ │ │ ├── phoenix-framework.svg │ │ │ ├── phoenix-squadron.svg │ │ │ ├── php.svg │ │ │ ├── pied-piper-alt.svg │ │ │ ├── pied-piper-hat.svg │ │ │ ├── pied-piper-pp.svg │ │ │ ├── pied-piper.svg │ │ │ ├── pinterest-p.svg │ │ │ ├── pinterest-square.svg │ │ │ ├── pinterest.svg │ │ │ ├── playstation.svg │ │ │ ├── product-hunt.svg │ │ │ ├── pushed.svg │ │ │ ├── python.svg │ │ │ ├── qq.svg │ │ │ ├── quinscape.svg │ │ │ ├── quora.svg │ │ │ ├── r-project.svg │ │ │ ├── ravelry.svg │ │ │ ├── react.svg │ │ │ ├── reacteurope.svg │ │ │ ├── readme.svg │ │ │ ├── rebel.svg │ │ │ ├── red-river.svg │ │ │ ├── reddit-alien.svg │ │ │ ├── reddit-square.svg │ │ │ ├── reddit.svg │ │ │ ├── renren.svg │ │ │ ├── replyd.svg │ │ │ ├── researchgate.svg │ │ │ ├── resolving.svg │ │ │ ├── rev.svg │ │ │ ├── rocketchat.svg │ │ │ ├── rockrms.svg │ │ │ ├── safari.svg │ │ │ ├── sass.svg │ │ │ ├── schlix.svg │ │ │ ├── scribd.svg │ │ │ ├── searchengin.svg │ │ │ ├── sellcast.svg │ │ │ ├── sellsy.svg │ │ │ ├── servicestack.svg │ │ │ ├── shirtsinbulk.svg │ │ │ ├── shopware.svg │ │ │ ├── simplybuilt.svg │ │ │ ├── sistrix.svg │ │ │ ├── sith.svg │ │ │ ├── skyatlas.svg │ │ │ ├── skype.svg │ │ │ ├── slack-hash.svg │ │ │ ├── slack.svg │ │ │ ├── slideshare.svg │ │ │ ├── snapchat-ghost.svg │ │ │ ├── snapchat-square.svg │ │ │ ├── snapchat.svg │ │ │ ├── soundcloud.svg │ │ │ ├── speakap.svg │ │ │ ├── spotify.svg │ │ │ ├── squarespace.svg │ │ │ ├── stack-exchange.svg │ │ │ ├── stack-overflow.svg │ │ │ ├── staylinked.svg │ │ │ ├── steam-square.svg │ │ │ ├── steam-symbol.svg │ │ │ ├── steam.svg │ │ │ ├── sticker-mule.svg │ │ │ ├── strava.svg │ │ │ ├── stripe-s.svg │ │ │ ├── stripe.svg │ │ │ ├── studiovinari.svg │ │ │ ├── stumbleupon-circle.svg │ │ │ ├── stumbleupon.svg │ │ │ ├── superpowers.svg │ │ │ ├── supple.svg │ │ │ ├── teamspeak.svg │ │ │ ├── telegram-plane.svg │ │ │ ├── telegram.svg │ │ │ ├── tencent-weibo.svg │ │ │ ├── the-red-yeti.svg │ │ │ ├── themeco.svg │ │ │ ├── themeisle.svg │ │ │ ├── think-peaks.svg │ │ │ ├── trade-federation.svg │ │ │ ├── trello.svg │ │ │ ├── tripadvisor.svg │ │ │ ├── tumblr-square.svg │ │ │ ├── tumblr.svg │ │ │ ├── twitch.svg │ │ │ ├── twitter-square.svg │ │ │ ├── twitter.svg │ │ │ ├── typo3.svg │ │ │ ├── uber.svg │ │ │ ├── uikit.svg │ │ │ ├── uniregistry.svg │ │ │ ├── untappd.svg │ │ │ ├── usb.svg │ │ │ ├── ussunnah.svg │ │ │ ├── vaadin.svg │ │ │ ├── viacoin.svg │ │ │ ├── viadeo-square.svg │ │ │ ├── viadeo.svg │ │ │ ├── viber.svg │ │ │ ├── vimeo-square.svg │ │ │ ├── vimeo-v.svg │ │ │ ├── vimeo.svg │ │ │ ├── vine.svg │ │ │ ├── vk.svg │ │ │ ├── vnv.svg │ │ │ ├── vuejs.svg │ │ │ ├── weebly.svg │ │ │ ├── weibo.svg │ │ │ ├── weixin.svg │ │ │ ├── whatsapp-square.svg │ │ │ ├── whatsapp.svg │ │ │ ├── whmcs.svg │ │ │ ├── wikipedia-w.svg │ │ │ ├── windows.svg │ │ │ ├── wix.svg │ │ │ ├── wizards-of-the-coast.svg │ │ │ ├── wolf-pack-battalion.svg │ │ │ ├── wordpress-simple.svg │ │ │ ├── wordpress.svg │ │ │ ├── wpbeginner.svg │ │ │ ├── wpexplorer.svg │ │ │ ├── wpforms.svg │ │ │ ├── wpressr.svg │ │ │ ├── xbox.svg │ │ │ ├── xing-square.svg │ │ │ ├── xing.svg │ │ │ ├── y-combinator.svg │ │ │ ├── yahoo.svg │ │ │ ├── yandex-international.svg │ │ │ ├── yandex.svg │ │ │ ├── yelp.svg │ │ │ ├── yoast.svg │ │ │ ├── youtube-square.svg │ │ │ ├── youtube.svg │ │ │ └── zhihu.svg │ │ ├── regular │ │ │ ├── address-book.svg │ │ │ ├── address-card.svg │ │ │ ├── angry.svg │ │ │ ├── arrow-alt-circle-down.svg │ │ │ ├── arrow-alt-circle-left.svg │ │ │ ├── arrow-alt-circle-right.svg │ │ │ ├── arrow-alt-circle-up.svg │ │ │ ├── bell-slash.svg │ │ │ ├── bell.svg │ │ │ ├── bookmark.svg │ │ │ ├── building.svg │ │ │ ├── calendar-alt.svg │ │ │ ├── calendar-check.svg │ │ │ ├── calendar-minus.svg │ │ │ ├── calendar-plus.svg │ │ │ ├── calendar-times.svg │ │ │ ├── calendar.svg │ │ │ ├── caret-square-down.svg │ │ │ ├── caret-square-left.svg │ │ │ ├── caret-square-right.svg │ │ │ ├── caret-square-up.svg │ │ │ ├── chart-bar.svg │ │ │ ├── check-circle.svg │ │ │ ├── check-square.svg │ │ │ ├── circle.svg │ │ │ ├── clipboard.svg │ │ │ ├── clock.svg │ │ │ ├── clone.svg │ │ │ ├── closed-captioning.svg │ │ │ ├── comment-alt.svg │ │ │ ├── comment-dots.svg │ │ │ ├── comment.svg │ │ │ ├── comments.svg │ │ │ ├── compass.svg │ │ │ ├── copy.svg │ │ │ ├── copyright.svg │ │ │ ├── credit-card.svg │ │ │ ├── dizzy.svg │ │ │ ├── dot-circle.svg │ │ │ ├── edit.svg │ │ │ ├── envelope-open.svg │ │ │ ├── envelope.svg │ │ │ ├── eye-slash.svg │ │ │ ├── eye.svg │ │ │ ├── file-alt.svg │ │ │ ├── file-archive.svg │ │ │ ├── file-audio.svg │ │ │ ├── file-code.svg │ │ │ ├── file-excel.svg │ │ │ ├── file-image.svg │ │ │ ├── file-pdf.svg │ │ │ ├── file-powerpoint.svg │ │ │ ├── file-video.svg │ │ │ ├── file-word.svg │ │ │ ├── file.svg │ │ │ ├── flag.svg │ │ │ ├── flushed.svg │ │ │ ├── folder-open.svg │ │ │ ├── folder.svg │ │ │ ├── font-awesome-logo-full.svg │ │ │ ├── frown-open.svg │ │ │ ├── frown.svg │ │ │ ├── futbol.svg │ │ │ ├── gem.svg │ │ │ ├── grimace.svg │ │ │ ├── grin-alt.svg │ │ │ ├── grin-beam-sweat.svg │ │ │ ├── grin-beam.svg │ │ │ ├── grin-hearts.svg │ │ │ ├── grin-squint-tears.svg │ │ │ ├── grin-squint.svg │ │ │ ├── grin-stars.svg │ │ │ ├── grin-tears.svg │ │ │ ├── grin-tongue-squint.svg │ │ │ ├── grin-tongue-wink.svg │ │ │ ├── grin-tongue.svg │ │ │ ├── grin-wink.svg │ │ │ ├── grin.svg │ │ │ ├── hand-lizard.svg │ │ │ ├── hand-paper.svg │ │ │ ├── hand-peace.svg │ │ │ ├── hand-point-down.svg │ │ │ ├── hand-point-left.svg │ │ │ ├── hand-point-right.svg │ │ │ ├── hand-point-up.svg │ │ │ ├── hand-pointer.svg │ │ │ ├── hand-rock.svg │ │ │ ├── hand-scissors.svg │ │ │ ├── hand-spock.svg │ │ │ ├── handshake.svg │ │ │ ├── hdd.svg │ │ │ ├── heart.svg │ │ │ ├── hospital.svg │ │ │ ├── hourglass.svg │ │ │ ├── id-badge.svg │ │ │ ├── id-card.svg │ │ │ ├── image.svg │ │ │ ├── images.svg │ │ │ ├── keyboard.svg │ │ │ ├── kiss-beam.svg │ │ │ ├── kiss-wink-heart.svg │ │ │ ├── kiss.svg │ │ │ ├── laugh-beam.svg │ │ │ ├── laugh-squint.svg │ │ │ ├── laugh-wink.svg │ │ │ ├── laugh.svg │ │ │ ├── lemon.svg │ │ │ ├── life-ring.svg │ │ │ ├── lightbulb.svg │ │ │ ├── list-alt.svg │ │ │ ├── map.svg │ │ │ ├── meh-blank.svg │ │ │ ├── meh-rolling-eyes.svg │ │ │ ├── meh.svg │ │ │ ├── minus-square.svg │ │ │ ├── money-bill-alt.svg │ │ │ ├── moon.svg │ │ │ ├── newspaper.svg │ │ │ ├── object-group.svg │ │ │ ├── object-ungroup.svg │ │ │ ├── paper-plane.svg │ │ │ ├── pause-circle.svg │ │ │ ├── play-circle.svg │ │ │ ├── plus-square.svg │ │ │ ├── question-circle.svg │ │ │ ├── registered.svg │ │ │ ├── sad-cry.svg │ │ │ ├── sad-tear.svg │ │ │ ├── save.svg │ │ │ ├── share-square.svg │ │ │ ├── smile-beam.svg │ │ │ ├── smile-wink.svg │ │ │ ├── smile.svg │ │ │ ├── snowflake.svg │ │ │ ├── square.svg │ │ │ ├── star-half.svg │ │ │ ├── star.svg │ │ │ ├── sticky-note.svg │ │ │ ├── stop-circle.svg │ │ │ ├── sun.svg │ │ │ ├── surprise.svg │ │ │ ├── thumbs-down.svg │ │ │ ├── thumbs-up.svg │ │ │ ├── times-circle.svg │ │ │ ├── tired.svg │ │ │ ├── trash-alt.svg │ │ │ ├── user-circle.svg │ │ │ ├── user.svg │ │ │ ├── window-close.svg │ │ │ ├── window-maximize.svg │ │ │ ├── window-minimize.svg │ │ │ └── window-restore.svg │ │ └── solid │ │ │ ├── ad.svg │ │ │ ├── address-book.svg │ │ │ ├── address-card.svg │ │ │ ├── adjust.svg │ │ │ ├── air-freshener.svg │ │ │ ├── align-center.svg │ │ │ ├── align-justify.svg │ │ │ ├── align-left.svg │ │ │ ├── align-right.svg │ │ │ ├── allergies.svg │ │ │ ├── ambulance.svg │ │ │ ├── american-sign-language-interpreting.svg │ │ │ ├── anchor.svg │ │ │ ├── angle-double-down.svg │ │ │ ├── angle-double-left.svg │ │ │ ├── angle-double-right.svg │ │ │ ├── angle-double-up.svg │ │ │ ├── angle-down.svg │ │ │ ├── angle-left.svg │ │ │ ├── angle-right.svg │ │ │ ├── angle-up.svg │ │ │ ├── angry.svg │ │ │ ├── ankh.svg │ │ │ ├── apple-alt.svg │ │ │ ├── archive.svg │ │ │ ├── archway.svg │ │ │ ├── arrow-alt-circle-down.svg │ │ │ ├── arrow-alt-circle-left.svg │ │ │ ├── arrow-alt-circle-right.svg │ │ │ ├── arrow-alt-circle-up.svg │ │ │ ├── arrow-circle-down.svg │ │ │ ├── arrow-circle-left.svg │ │ │ ├── arrow-circle-right.svg │ │ │ ├── arrow-circle-up.svg │ │ │ ├── arrow-down.svg │ │ │ ├── arrow-left.svg │ │ │ ├── arrow-right.svg │ │ │ ├── arrow-up.svg │ │ │ ├── arrows-alt-h.svg │ │ │ ├── arrows-alt-v.svg │ │ │ ├── arrows-alt.svg │ │ │ ├── assistive-listening-systems.svg │ │ │ ├── asterisk.svg │ │ │ ├── at.svg │ │ │ ├── atlas.svg │ │ │ ├── atom.svg │ │ │ ├── audio-description.svg │ │ │ ├── award.svg │ │ │ ├── backspace.svg │ │ │ ├── backward.svg │ │ │ ├── balance-scale.svg │ │ │ ├── ban.svg │ │ │ ├── band-aid.svg │ │ │ ├── barcode.svg │ │ │ ├── bars.svg │ │ │ ├── baseball-ball.svg │ │ │ ├── basketball-ball.svg │ │ │ ├── bath.svg │ │ │ ├── battery-empty.svg │ │ │ ├── battery-full.svg │ │ │ ├── battery-half.svg │ │ │ ├── battery-quarter.svg │ │ │ ├── battery-three-quarters.svg │ │ │ ├── bed.svg │ │ │ ├── beer.svg │ │ │ ├── bell-slash.svg │ │ │ ├── bell.svg │ │ │ ├── bezier-curve.svg │ │ │ ├── bible.svg │ │ │ ├── bicycle.svg │ │ │ ├── binoculars.svg │ │ │ ├── birthday-cake.svg │ │ │ ├── blender-phone.svg │ │ │ ├── blender.svg │ │ │ ├── blind.svg │ │ │ ├── bold.svg │ │ │ ├── bolt.svg │ │ │ ├── bomb.svg │ │ │ ├── bone.svg │ │ │ ├── bong.svg │ │ │ ├── book-dead.svg │ │ │ ├── book-open.svg │ │ │ ├── book-reader.svg │ │ │ ├── book.svg │ │ │ ├── bookmark.svg │ │ │ ├── bowling-ball.svg │ │ │ ├── box-open.svg │ │ │ ├── box.svg │ │ │ ├── boxes.svg │ │ │ ├── braille.svg │ │ │ ├── brain.svg │ │ │ ├── briefcase-medical.svg │ │ │ ├── briefcase.svg │ │ │ ├── broadcast-tower.svg │ │ │ ├── broom.svg │ │ │ ├── brush.svg │ │ │ ├── bug.svg │ │ │ ├── building.svg │ │ │ ├── bullhorn.svg │ │ │ ├── bullseye.svg │ │ │ ├── burn.svg │ │ │ ├── bus-alt.svg │ │ │ ├── bus.svg │ │ │ ├── business-time.svg │ │ │ ├── calculator.svg │ │ │ ├── calendar-alt.svg │ │ │ ├── calendar-check.svg │ │ │ ├── calendar-minus.svg │ │ │ ├── calendar-plus.svg │ │ │ ├── calendar-times.svg │ │ │ ├── calendar.svg │ │ │ ├── camera-retro.svg │ │ │ ├── camera.svg │ │ │ ├── campground.svg │ │ │ ├── cannabis.svg │ │ │ ├── capsules.svg │ │ │ ├── car-alt.svg │ │ │ ├── car-battery.svg │ │ │ ├── car-crash.svg │ │ │ ├── car-side.svg │ │ │ ├── car.svg │ │ │ ├── caret-down.svg │ │ │ ├── caret-left.svg │ │ │ ├── caret-right.svg │ │ │ ├── caret-square-down.svg │ │ │ ├── caret-square-left.svg │ │ │ ├── caret-square-right.svg │ │ │ ├── caret-square-up.svg │ │ │ ├── caret-up.svg │ │ │ ├── cart-arrow-down.svg │ │ │ ├── cart-plus.svg │ │ │ ├── cat.svg │ │ │ ├── certificate.svg │ │ │ ├── chair.svg │ │ │ ├── chalkboard-teacher.svg │ │ │ ├── chalkboard.svg │ │ │ ├── charging-station.svg │ │ │ ├── chart-area.svg │ │ │ ├── chart-bar.svg │ │ │ ├── chart-line.svg │ │ │ ├── chart-pie.svg │ │ │ ├── check-circle.svg │ │ │ ├── check-double.svg │ │ │ ├── check-square.svg │ │ │ ├── check.svg │ │ │ ├── chess-bishop.svg │ │ │ ├── chess-board.svg │ │ │ ├── chess-king.svg │ │ │ ├── chess-knight.svg │ │ │ ├── chess-pawn.svg │ │ │ ├── chess-queen.svg │ │ │ ├── chess-rook.svg │ │ │ ├── chess.svg │ │ │ ├── chevron-circle-down.svg │ │ │ ├── chevron-circle-left.svg │ │ │ ├── chevron-circle-right.svg │ │ │ ├── chevron-circle-up.svg │ │ │ ├── chevron-down.svg │ │ │ ├── chevron-left.svg │ │ │ ├── chevron-right.svg │ │ │ ├── chevron-up.svg │ │ │ ├── child.svg │ │ │ ├── church.svg │ │ │ ├── circle-notch.svg │ │ │ ├── circle.svg │ │ │ ├── city.svg │ │ │ ├── clipboard-check.svg │ │ │ ├── clipboard-list.svg │ │ │ ├── clipboard.svg │ │ │ ├── clock.svg │ │ │ ├── clone.svg │ │ │ ├── closed-captioning.svg │ │ │ ├── cloud-download-alt.svg │ │ │ ├── cloud-meatball.svg │ │ │ ├── cloud-moon-rain.svg │ │ │ ├── cloud-moon.svg │ │ │ ├── cloud-rain.svg │ │ │ ├── cloud-showers-heavy.svg │ │ │ ├── cloud-sun-rain.svg │ │ │ ├── cloud-sun.svg │ │ │ ├── cloud-upload-alt.svg │ │ │ ├── cloud.svg │ │ │ ├── cocktail.svg │ │ │ ├── code-branch.svg │ │ │ ├── code.svg │ │ │ ├── coffee.svg │ │ │ ├── cog.svg │ │ │ ├── cogs.svg │ │ │ ├── coins.svg │ │ │ ├── columns.svg │ │ │ ├── comment-alt.svg │ │ │ ├── comment-dollar.svg │ │ │ ├── comment-dots.svg │ │ │ ├── comment-slash.svg │ │ │ ├── comment.svg │ │ │ ├── comments-dollar.svg │ │ │ ├── comments.svg │ │ │ ├── compact-disc.svg │ │ │ ├── compass.svg │ │ │ ├── compress.svg │ │ │ ├── concierge-bell.svg │ │ │ ├── cookie-bite.svg │ │ │ ├── cookie.svg │ │ │ ├── copy.svg │ │ │ ├── copyright.svg │ │ │ ├── couch.svg │ │ │ ├── credit-card.svg │ │ │ ├── crop-alt.svg │ │ │ ├── crop.svg │ │ │ ├── cross.svg │ │ │ ├── crosshairs.svg │ │ │ ├── crow.svg │ │ │ ├── crown.svg │ │ │ ├── cube.svg │ │ │ ├── cubes.svg │ │ │ ├── cut.svg │ │ │ ├── database.svg │ │ │ ├── deaf.svg │ │ │ ├── democrat.svg │ │ │ ├── desktop.svg │ │ │ ├── dharmachakra.svg │ │ │ ├── diagnoses.svg │ │ │ ├── dice-d20.svg │ │ │ ├── dice-d6.svg │ │ │ ├── dice-five.svg │ │ │ ├── dice-four.svg │ │ │ ├── dice-one.svg │ │ │ ├── dice-six.svg │ │ │ ├── dice-three.svg │ │ │ ├── dice-two.svg │ │ │ ├── dice.svg │ │ │ ├── digital-tachograph.svg │ │ │ ├── directions.svg │ │ │ ├── divide.svg │ │ │ ├── dizzy.svg │ │ │ ├── dna.svg │ │ │ ├── dog.svg │ │ │ ├── dollar-sign.svg │ │ │ ├── dolly-flatbed.svg │ │ │ ├── dolly.svg │ │ │ ├── donate.svg │ │ │ ├── door-closed.svg │ │ │ ├── door-open.svg │ │ │ ├── dot-circle.svg │ │ │ ├── dove.svg │ │ │ ├── download.svg │ │ │ ├── drafting-compass.svg │ │ │ ├── dragon.svg │ │ │ ├── draw-polygon.svg │ │ │ ├── drum-steelpan.svg │ │ │ ├── drum.svg │ │ │ ├── drumstick-bite.svg │ │ │ ├── dumbbell.svg │ │ │ ├── dungeon.svg │ │ │ ├── edit.svg │ │ │ ├── eject.svg │ │ │ ├── ellipsis-h.svg │ │ │ ├── ellipsis-v.svg │ │ │ ├── envelope-open-text.svg │ │ │ ├── envelope-open.svg │ │ │ ├── envelope-square.svg │ │ │ ├── envelope.svg │ │ │ ├── equals.svg │ │ │ ├── eraser.svg │ │ │ ├── euro-sign.svg │ │ │ ├── exchange-alt.svg │ │ │ ├── exclamation-circle.svg │ │ │ ├── exclamation-triangle.svg │ │ │ ├── exclamation.svg │ │ │ ├── expand-arrows-alt.svg │ │ │ ├── expand.svg │ │ │ ├── external-link-alt.svg │ │ │ ├── external-link-square-alt.svg │ │ │ ├── eye-dropper.svg │ │ │ ├── eye-slash.svg │ │ │ ├── eye.svg │ │ │ ├── fast-backward.svg │ │ │ ├── fast-forward.svg │ │ │ ├── fax.svg │ │ │ ├── feather-alt.svg │ │ │ ├── feather.svg │ │ │ ├── female.svg │ │ │ ├── fighter-jet.svg │ │ │ ├── file-alt.svg │ │ │ ├── file-archive.svg │ │ │ ├── file-audio.svg │ │ │ ├── file-code.svg │ │ │ ├── file-contract.svg │ │ │ ├── file-csv.svg │ │ │ ├── file-download.svg │ │ │ ├── file-excel.svg │ │ │ ├── file-export.svg │ │ │ ├── file-image.svg │ │ │ ├── file-import.svg │ │ │ ├── file-invoice-dollar.svg │ │ │ ├── file-invoice.svg │ │ │ ├── file-medical-alt.svg │ │ │ ├── file-medical.svg │ │ │ ├── file-pdf.svg │ │ │ ├── file-powerpoint.svg │ │ │ ├── file-prescription.svg │ │ │ ├── file-signature.svg │ │ │ ├── file-upload.svg │ │ │ ├── file-video.svg │ │ │ ├── file-word.svg │ │ │ ├── file.svg │ │ │ ├── fill-drip.svg │ │ │ ├── fill.svg │ │ │ ├── film.svg │ │ │ ├── filter.svg │ │ │ ├── fingerprint.svg │ │ │ ├── fire-extinguisher.svg │ │ │ ├── fire.svg │ │ │ ├── first-aid.svg │ │ │ ├── fish.svg │ │ │ ├── fist-raised.svg │ │ │ ├── flag-checkered.svg │ │ │ ├── flag-usa.svg │ │ │ ├── flag.svg │ │ │ ├── flask.svg │ │ │ ├── flushed.svg │ │ │ ├── folder-minus.svg │ │ │ ├── folder-open.svg │ │ │ ├── folder-plus.svg │ │ │ ├── folder.svg │ │ │ ├── font-awesome-logo-full.svg │ │ │ ├── font.svg │ │ │ ├── football-ball.svg │ │ │ ├── forward.svg │ │ │ ├── frog.svg │ │ │ ├── frown-open.svg │ │ │ ├── frown.svg │ │ │ ├── funnel-dollar.svg │ │ │ ├── futbol.svg │ │ │ ├── gamepad.svg │ │ │ ├── gas-pump.svg │ │ │ ├── gavel.svg │ │ │ ├── gem.svg │ │ │ ├── genderless.svg │ │ │ ├── ghost.svg │ │ │ ├── gift.svg │ │ │ ├── glass-martini-alt.svg │ │ │ ├── glass-martini.svg │ │ │ ├── glasses.svg │ │ │ ├── globe-africa.svg │ │ │ ├── globe-americas.svg │ │ │ ├── globe-asia.svg │ │ │ ├── globe.svg │ │ │ ├── golf-ball.svg │ │ │ ├── gopuram.svg │ │ │ ├── graduation-cap.svg │ │ │ ├── greater-than-equal.svg │ │ │ ├── greater-than.svg │ │ │ ├── grimace.svg │ │ │ ├── grin-alt.svg │ │ │ ├── grin-beam-sweat.svg │ │ │ ├── grin-beam.svg │ │ │ ├── grin-hearts.svg │ │ │ ├── grin-squint-tears.svg │ │ │ ├── grin-squint.svg │ │ │ ├── grin-stars.svg │ │ │ ├── grin-tears.svg │ │ │ ├── grin-tongue-squint.svg │ │ │ ├── grin-tongue-wink.svg │ │ │ ├── grin-tongue.svg │ │ │ ├── grin-wink.svg │ │ │ ├── grin.svg │ │ │ ├── grip-horizontal.svg │ │ │ ├── grip-vertical.svg │ │ │ ├── h-square.svg │ │ │ ├── hammer.svg │ │ │ ├── hamsa.svg │ │ │ ├── hand-holding-heart.svg │ │ │ ├── hand-holding-usd.svg │ │ │ ├── hand-holding.svg │ │ │ ├── hand-lizard.svg │ │ │ ├── hand-paper.svg │ │ │ ├── hand-peace.svg │ │ │ ├── hand-point-down.svg │ │ │ ├── hand-point-left.svg │ │ │ ├── hand-point-right.svg │ │ │ ├── hand-point-up.svg │ │ │ ├── hand-pointer.svg │ │ │ ├── hand-rock.svg │ │ │ ├── hand-scissors.svg │ │ │ ├── hand-spock.svg │ │ │ ├── hands-helping.svg │ │ │ ├── hands.svg │ │ │ ├── handshake.svg │ │ │ ├── hanukiah.svg │ │ │ ├── hashtag.svg │ │ │ ├── hat-wizard.svg │ │ │ ├── haykal.svg │ │ │ ├── hdd.svg │ │ │ ├── heading.svg │ │ │ ├── headphones-alt.svg │ │ │ ├── headphones.svg │ │ │ ├── headset.svg │ │ │ ├── heart.svg │ │ │ ├── heartbeat.svg │ │ │ ├── helicopter.svg │ │ │ ├── highlighter.svg │ │ │ ├── hiking.svg │ │ │ ├── hippo.svg │ │ │ ├── history.svg │ │ │ ├── hockey-puck.svg │ │ │ ├── home.svg │ │ │ ├── horse.svg │ │ │ ├── hospital-alt.svg │ │ │ ├── hospital-symbol.svg │ │ │ ├── hospital.svg │ │ │ ├── hot-tub.svg │ │ │ ├── hotel.svg │ │ │ ├── hourglass-end.svg │ │ │ ├── hourglass-half.svg │ │ │ ├── hourglass-start.svg │ │ │ ├── hourglass.svg │ │ │ ├── house-damage.svg │ │ │ ├── hryvnia.svg │ │ │ ├── i-cursor.svg │ │ │ ├── id-badge.svg │ │ │ ├── id-card-alt.svg │ │ │ ├── id-card.svg │ │ │ ├── image.svg │ │ │ ├── images.svg │ │ │ ├── inbox.svg │ │ │ ├── indent.svg │ │ │ ├── industry.svg │ │ │ ├── infinity.svg │ │ │ ├── info-circle.svg │ │ │ ├── info.svg │ │ │ ├── italic.svg │ │ │ ├── jedi.svg │ │ │ ├── joint.svg │ │ │ ├── journal-whills.svg │ │ │ ├── kaaba.svg │ │ │ ├── key.svg │ │ │ ├── keyboard.svg │ │ │ ├── khanda.svg │ │ │ ├── kiss-beam.svg │ │ │ ├── kiss-wink-heart.svg │ │ │ ├── kiss.svg │ │ │ ├── kiwi-bird.svg │ │ │ ├── landmark.svg │ │ │ ├── language.svg │ │ │ ├── laptop-code.svg │ │ │ ├── laptop.svg │ │ │ ├── laugh-beam.svg │ │ │ ├── laugh-squint.svg │ │ │ ├── laugh-wink.svg │ │ │ ├── laugh.svg │ │ │ ├── layer-group.svg │ │ │ ├── leaf.svg │ │ │ ├── lemon.svg │ │ │ ├── less-than-equal.svg │ │ │ ├── less-than.svg │ │ │ ├── level-down-alt.svg │ │ │ ├── level-up-alt.svg │ │ │ ├── life-ring.svg │ │ │ ├── lightbulb.svg │ │ │ ├── link.svg │ │ │ ├── lira-sign.svg │ │ │ ├── list-alt.svg │ │ │ ├── list-ol.svg │ │ │ ├── list-ul.svg │ │ │ ├── list.svg │ │ │ ├── location-arrow.svg │ │ │ ├── lock-open.svg │ │ │ ├── lock.svg │ │ │ ├── long-arrow-alt-down.svg │ │ │ ├── long-arrow-alt-left.svg │ │ │ ├── long-arrow-alt-right.svg │ │ │ ├── long-arrow-alt-up.svg │ │ │ ├── low-vision.svg │ │ │ ├── luggage-cart.svg │ │ │ ├── magic.svg │ │ │ ├── magnet.svg │ │ │ ├── mail-bulk.svg │ │ │ ├── male.svg │ │ │ ├── map-marked-alt.svg │ │ │ ├── map-marked.svg │ │ │ ├── map-marker-alt.svg │ │ │ ├── map-marker.svg │ │ │ ├── map-pin.svg │ │ │ ├── map-signs.svg │ │ │ ├── map.svg │ │ │ ├── marker.svg │ │ │ ├── mars-double.svg │ │ │ ├── mars-stroke-h.svg │ │ │ ├── mars-stroke-v.svg │ │ │ ├── mars-stroke.svg │ │ │ ├── mars.svg │ │ │ ├── mask.svg │ │ │ ├── medal.svg │ │ │ ├── medkit.svg │ │ │ ├── meh-blank.svg │ │ │ ├── meh-rolling-eyes.svg │ │ │ ├── meh.svg │ │ │ ├── memory.svg │ │ │ ├── menorah.svg │ │ │ ├── mercury.svg │ │ │ ├── meteor.svg │ │ │ ├── microchip.svg │ │ │ ├── microphone-alt-slash.svg │ │ │ ├── microphone-alt.svg │ │ │ ├── microphone-slash.svg │ │ │ ├── microphone.svg │ │ │ ├── microscope.svg │ │ │ ├── minus-circle.svg │ │ │ ├── minus-square.svg │ │ │ ├── minus.svg │ │ │ ├── mobile-alt.svg │ │ │ ├── mobile.svg │ │ │ ├── money-bill-alt.svg │ │ │ ├── money-bill-wave-alt.svg │ │ │ ├── money-bill-wave.svg │ │ │ ├── money-bill.svg │ │ │ ├── money-check-alt.svg │ │ │ ├── money-check.svg │ │ │ ├── monument.svg │ │ │ ├── moon.svg │ │ │ ├── mortar-pestle.svg │ │ │ ├── mosque.svg │ │ │ ├── motorcycle.svg │ │ │ ├── mountain.svg │ │ │ ├── mouse-pointer.svg │ │ │ ├── music.svg │ │ │ ├── network-wired.svg │ │ │ ├── neuter.svg │ │ │ ├── newspaper.svg │ │ │ ├── not-equal.svg │ │ │ ├── notes-medical.svg │ │ │ ├── object-group.svg │ │ │ ├── object-ungroup.svg │ │ │ ├── oil-can.svg │ │ │ ├── om.svg │ │ │ ├── otter.svg │ │ │ ├── outdent.svg │ │ │ ├── paint-brush.svg │ │ │ ├── paint-roller.svg │ │ │ ├── palette.svg │ │ │ ├── pallet.svg │ │ │ ├── paper-plane.svg │ │ │ ├── paperclip.svg │ │ │ ├── parachute-box.svg │ │ │ ├── paragraph.svg │ │ │ ├── parking.svg │ │ │ ├── passport.svg │ │ │ ├── pastafarianism.svg │ │ │ ├── paste.svg │ │ │ ├── pause-circle.svg │ │ │ ├── pause.svg │ │ │ ├── paw.svg │ │ │ ├── peace.svg │ │ │ ├── pen-alt.svg │ │ │ ├── pen-fancy.svg │ │ │ ├── pen-nib.svg │ │ │ ├── pen-square.svg │ │ │ ├── pen.svg │ │ │ ├── pencil-alt.svg │ │ │ ├── pencil-ruler.svg │ │ │ ├── people-carry.svg │ │ │ ├── percent.svg │ │ │ ├── percentage.svg │ │ │ ├── person-booth.svg │ │ │ ├── phone-slash.svg │ │ │ ├── phone-square.svg │ │ │ ├── phone-volume.svg │ │ │ ├── phone.svg │ │ │ ├── piggy-bank.svg │ │ │ ├── pills.svg │ │ │ ├── place-of-worship.svg │ │ │ ├── plane-arrival.svg │ │ │ ├── plane-departure.svg │ │ │ ├── plane.svg │ │ │ ├── play-circle.svg │ │ │ ├── play.svg │ │ │ ├── plug.svg │ │ │ ├── plus-circle.svg │ │ │ ├── plus-square.svg │ │ │ ├── plus.svg │ │ │ ├── podcast.svg │ │ │ ├── poll-h.svg │ │ │ ├── poll.svg │ │ │ ├── poo-storm.svg │ │ │ ├── poo.svg │ │ │ ├── poop.svg │ │ │ ├── portrait.svg │ │ │ ├── pound-sign.svg │ │ │ ├── power-off.svg │ │ │ ├── pray.svg │ │ │ ├── praying-hands.svg │ │ │ ├── prescription-bottle-alt.svg │ │ │ ├── prescription-bottle.svg │ │ │ ├── prescription.svg │ │ │ ├── print.svg │ │ │ ├── procedures.svg │ │ │ ├── project-diagram.svg │ │ │ ├── puzzle-piece.svg │ │ │ ├── qrcode.svg │ │ │ ├── question-circle.svg │ │ │ ├── question.svg │ │ │ ├── quidditch.svg │ │ │ ├── quote-left.svg │ │ │ ├── quote-right.svg │ │ │ ├── quran.svg │ │ │ ├── rainbow.svg │ │ │ ├── random.svg │ │ │ ├── receipt.svg │ │ │ ├── recycle.svg │ │ │ ├── redo-alt.svg │ │ │ ├── redo.svg │ │ │ ├── registered.svg │ │ │ ├── reply-all.svg │ │ │ ├── reply.svg │ │ │ ├── republican.svg │ │ │ ├── retweet.svg │ │ │ ├── ribbon.svg │ │ │ ├── ring.svg │ │ │ ├── road.svg │ │ │ ├── robot.svg │ │ │ ├── rocket.svg │ │ │ ├── route.svg │ │ │ ├── rss-square.svg │ │ │ ├── rss.svg │ │ │ ├── ruble-sign.svg │ │ │ ├── ruler-combined.svg │ │ │ ├── ruler-horizontal.svg │ │ │ ├── ruler-vertical.svg │ │ │ ├── ruler.svg │ │ │ ├── running.svg │ │ │ ├── rupee-sign.svg │ │ │ ├── sad-cry.svg │ │ │ ├── sad-tear.svg │ │ │ ├── save.svg │ │ │ ├── school.svg │ │ │ ├── screwdriver.svg │ │ │ ├── scroll.svg │ │ │ ├── search-dollar.svg │ │ │ ├── search-location.svg │ │ │ ├── search-minus.svg │ │ │ ├── search-plus.svg │ │ │ ├── search.svg │ │ │ ├── seedling.svg │ │ │ ├── server.svg │ │ │ ├── shapes.svg │ │ │ ├── share-alt-square.svg │ │ │ ├── share-alt.svg │ │ │ ├── share-square.svg │ │ │ ├── share.svg │ │ │ ├── shekel-sign.svg │ │ │ ├── shield-alt.svg │ │ │ ├── ship.svg │ │ │ ├── shipping-fast.svg │ │ │ ├── shoe-prints.svg │ │ │ ├── shopping-bag.svg │ │ │ ├── shopping-basket.svg │ │ │ ├── shopping-cart.svg │ │ │ ├── shower.svg │ │ │ ├── shuttle-van.svg │ │ │ ├── sign-in-alt.svg │ │ │ ├── sign-language.svg │ │ │ ├── sign-out-alt.svg │ │ │ ├── sign.svg │ │ │ ├── signal.svg │ │ │ ├── signature.svg │ │ │ ├── sitemap.svg │ │ │ ├── skull-crossbones.svg │ │ │ ├── skull.svg │ │ │ ├── slash.svg │ │ │ ├── sliders-h.svg │ │ │ ├── smile-beam.svg │ │ │ ├── smile-wink.svg │ │ │ ├── smile.svg │ │ │ ├── smog.svg │ │ │ ├── smoking-ban.svg │ │ │ ├── smoking.svg │ │ │ ├── snowflake.svg │ │ │ ├── socks.svg │ │ │ ├── solar-panel.svg │ │ │ ├── sort-alpha-down.svg │ │ │ ├── sort-alpha-up.svg │ │ │ ├── sort-amount-down.svg │ │ │ ├── sort-amount-up.svg │ │ │ ├── sort-down.svg │ │ │ ├── sort-numeric-down.svg │ │ │ ├── sort-numeric-up.svg │ │ │ ├── sort-up.svg │ │ │ ├── sort.svg │ │ │ ├── spa.svg │ │ │ ├── space-shuttle.svg │ │ │ ├── spider.svg │ │ │ ├── spinner.svg │ │ │ ├── splotch.svg │ │ │ ├── spray-can.svg │ │ │ ├── square-full.svg │ │ │ ├── square-root-alt.svg │ │ │ ├── square.svg │ │ │ ├── stamp.svg │ │ │ ├── star-and-crescent.svg │ │ │ ├── star-half-alt.svg │ │ │ ├── star-half.svg │ │ │ ├── star-of-david.svg │ │ │ ├── star-of-life.svg │ │ │ ├── star.svg │ │ │ ├── step-backward.svg │ │ │ ├── step-forward.svg │ │ │ ├── stethoscope.svg │ │ │ ├── sticky-note.svg │ │ │ ├── stop-circle.svg │ │ │ ├── stop.svg │ │ │ ├── stopwatch.svg │ │ │ ├── store-alt.svg │ │ │ ├── store.svg │ │ │ ├── stream.svg │ │ │ ├── street-view.svg │ │ │ ├── strikethrough.svg │ │ │ ├── stroopwafel.svg │ │ │ ├── subscript.svg │ │ │ ├── subway.svg │ │ │ ├── suitcase-rolling.svg │ │ │ ├── suitcase.svg │ │ │ ├── sun.svg │ │ │ ├── superscript.svg │ │ │ ├── surprise.svg │ │ │ ├── swatchbook.svg │ │ │ ├── swimmer.svg │ │ │ ├── swimming-pool.svg │ │ │ ├── synagogue.svg │ │ │ ├── sync-alt.svg │ │ │ ├── sync.svg │ │ │ ├── syringe.svg │ │ │ ├── table-tennis.svg │ │ │ ├── table.svg │ │ │ ├── tablet-alt.svg │ │ │ ├── tablet.svg │ │ │ ├── tablets.svg │ │ │ ├── tachometer-alt.svg │ │ │ ├── tag.svg │ │ │ ├── tags.svg │ │ │ ├── tape.svg │ │ │ ├── tasks.svg │ │ │ ├── taxi.svg │ │ │ ├── teeth-open.svg │ │ │ ├── teeth.svg │ │ │ ├── temperature-high.svg │ │ │ ├── temperature-low.svg │ │ │ ├── terminal.svg │ │ │ ├── text-height.svg │ │ │ ├── text-width.svg │ │ │ ├── th-large.svg │ │ │ ├── th-list.svg │ │ │ ├── th.svg │ │ │ ├── theater-masks.svg │ │ │ ├── thermometer-empty.svg │ │ │ ├── thermometer-full.svg │ │ │ ├── thermometer-half.svg │ │ │ ├── thermometer-quarter.svg │ │ │ ├── thermometer-three-quarters.svg │ │ │ ├── thermometer.svg │ │ │ ├── thumbs-down.svg │ │ │ ├── thumbs-up.svg │ │ │ ├── thumbtack.svg │ │ │ ├── ticket-alt.svg │ │ │ ├── times-circle.svg │ │ │ ├── times.svg │ │ │ ├── tint-slash.svg │ │ │ ├── tint.svg │ │ │ ├── tired.svg │ │ │ ├── toggle-off.svg │ │ │ ├── toggle-on.svg │ │ │ ├── toilet-paper.svg │ │ │ ├── toolbox.svg │ │ │ ├── tooth.svg │ │ │ ├── torah.svg │ │ │ ├── torii-gate.svg │ │ │ ├── tractor.svg │ │ │ ├── trademark.svg │ │ │ ├── traffic-light.svg │ │ │ ├── train.svg │ │ │ ├── transgender-alt.svg │ │ │ ├── transgender.svg │ │ │ ├── trash-alt.svg │ │ │ ├── trash.svg │ │ │ ├── tree.svg │ │ │ ├── trophy.svg │ │ │ ├── truck-loading.svg │ │ │ ├── truck-monster.svg │ │ │ ├── truck-moving.svg │ │ │ ├── truck-pickup.svg │ │ │ ├── truck.svg │ │ │ ├── tshirt.svg │ │ │ ├── tty.svg │ │ │ ├── tv.svg │ │ │ ├── umbrella-beach.svg │ │ │ ├── umbrella.svg │ │ │ ├── underline.svg │ │ │ ├── undo-alt.svg │ │ │ ├── undo.svg │ │ │ ├── universal-access.svg │ │ │ ├── university.svg │ │ │ ├── unlink.svg │ │ │ ├── unlock-alt.svg │ │ │ ├── unlock.svg │ │ │ ├── upload.svg │ │ │ ├── user-alt-slash.svg │ │ │ ├── user-alt.svg │ │ │ ├── user-astronaut.svg │ │ │ ├── user-check.svg │ │ │ ├── user-circle.svg │ │ │ ├── user-clock.svg │ │ │ ├── user-cog.svg │ │ │ ├── user-edit.svg │ │ │ ├── user-friends.svg │ │ │ ├── user-graduate.svg │ │ │ ├── user-injured.svg │ │ │ ├── user-lock.svg │ │ │ ├── user-md.svg │ │ │ ├── user-minus.svg │ │ │ ├── user-ninja.svg │ │ │ ├── user-plus.svg │ │ │ ├── user-secret.svg │ │ │ ├── user-shield.svg │ │ │ ├── user-slash.svg │ │ │ ├── user-tag.svg │ │ │ ├── user-tie.svg │ │ │ ├── user-times.svg │ │ │ ├── user.svg │ │ │ ├── users-cog.svg │ │ │ ├── users.svg │ │ │ ├── utensil-spoon.svg │ │ │ ├── utensils.svg │ │ │ ├── vector-square.svg │ │ │ ├── venus-double.svg │ │ │ ├── venus-mars.svg │ │ │ ├── venus.svg │ │ │ ├── vial.svg │ │ │ ├── vials.svg │ │ │ ├── video-slash.svg │ │ │ ├── video.svg │ │ │ ├── vihara.svg │ │ │ ├── volleyball-ball.svg │ │ │ ├── volume-down.svg │ │ │ ├── volume-mute.svg │ │ │ ├── volume-off.svg │ │ │ ├── volume-up.svg │ │ │ ├── vote-yea.svg │ │ │ ├── vr-cardboard.svg │ │ │ ├── walking.svg │ │ │ ├── wallet.svg │ │ │ ├── warehouse.svg │ │ │ ├── water.svg │ │ │ ├── weight-hanging.svg │ │ │ ├── weight.svg │ │ │ ├── wheelchair.svg │ │ │ ├── wifi.svg │ │ │ ├── wind.svg │ │ │ ├── window-close.svg │ │ │ ├── window-maximize.svg │ │ │ ├── window-minimize.svg │ │ │ ├── window-restore.svg │ │ │ ├── wine-bottle.svg │ │ │ ├── wine-glass-alt.svg │ │ │ ├── wine-glass.svg │ │ │ ├── won-sign.svg │ │ │ ├── wrench.svg │ │ │ ├── x-ray.svg │ │ │ ├── yen-sign.svg │ │ │ └── yin-yang.svg │ │ └── webfonts │ │ ├── fa-brands-400.eot │ │ ├── fa-brands-400.svg │ │ ├── fa-brands-400.ttf │ │ ├── fa-brands-400.woff │ │ ├── fa-brands-400.woff2 │ │ ├── fa-regular-400.eot │ │ ├── fa-regular-400.svg │ │ ├── fa-regular-400.ttf │ │ ├── fa-regular-400.woff │ │ ├── fa-regular-400.woff2 │ │ ├── fa-solid-900.eot │ │ ├── fa-solid-900.svg │ │ ├── fa-solid-900.ttf │ │ ├── fa-solid-900.woff │ │ └── fa-solid-900.woff2 ├── structures │ ├── Wishlist.js │ └── WishlistManager.js └── views │ ├── admin-clear-wishlists.pug │ ├── admin-user-edit.pug │ ├── adminSettings.pug │ ├── confirm-account.pug │ ├── includes │ ├── messages.pug │ ├── navbar.pug │ └── updateNotice.pug │ ├── layout.pug │ ├── login.pug │ ├── logout.pug │ ├── note.pug │ ├── profile-password.pug │ ├── profile.pug │ ├── resetpw.pug │ ├── setup.pug │ ├── supported-sites.pug │ ├── wishlist.pug │ └── wishlists.pug └── tsconfig.json /.dockerignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | npm-debug.log 3 | Dockerfile* 4 | docker-compose* 5 | .dockerignore 6 | .git 7 | .gitignore 8 | .env 9 | */bin 10 | */obj 11 | README.md 12 | LICENSE 13 | .vscode 14 | screenshots 15 | src/static/librarires/bulmaswatch 16 | built -------------------------------------------------------------------------------- /.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | ko_fi: wingy 2 | -------------------------------------------------------------------------------- /.github/workflows/contributors.yml: -------------------------------------------------------------------------------- 1 | on: 2 | push: 3 | branches: 4 | - master 5 | 6 | jobs: 7 | contrib-readme-job: 8 | runs-on: ubuntu-latest 9 | name: Update README contributors 10 | if: github.repository_owner == 'Wingysam' 11 | steps: 12 | - name: Update contributor list 13 | uses: akhilmhdh/contributors-readme-action@v2.3.10 14 | with: 15 | use_username: true 16 | env: 17 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 18 | -------------------------------------------------------------------------------- /.prettierignore: -------------------------------------------------------------------------------- 1 | src/static/libraries 2 | chart 3 | -------------------------------------------------------------------------------- /.prettierrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "singleQuote": true, 3 | "semi": false 4 | } 5 | -------------------------------------------------------------------------------- /.vscode/launch.json: -------------------------------------------------------------------------------- 1 | { 2 | // Use IntelliSense to learn about possible attributes. 3 | // Hover to view descriptions of existing attributes. 4 | // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 5 | "version": "0.2.0", 6 | "configurations": [ 7 | { 8 | "type": "node", 9 | "request": "launch", 10 | "name": "Launch Program", 11 | "skipFiles": ["/**"], 12 | "program": "${workspaceFolder}/built/index.js", 13 | "env": { 14 | "PORT": "3000" 15 | } 16 | } 17 | ] 18 | } 19 | -------------------------------------------------------------------------------- /Dockerfile: -------------------------------------------------------------------------------- 1 | FROM node:20-alpine 2 | 3 | RUN apk --no-cache add curl 4 | 5 | ENV PORT=80 6 | ENV DB_EXPOSE_PORT=8080 7 | ENV DB_PREFIX=/data/dbs/ 8 | ENV DB_LOG_FILE=/dev/null 9 | 10 | ENV SECRET_DIRNAME=/data 11 | 12 | WORKDIR /usr/src/app 13 | 14 | COPY . . 15 | RUN npm install --silent && \ 16 | npm run build && \ 17 | rm -rf node_modules && \ 18 | npm install --production --silent && \ 19 | mkdir -p /data/dbs 20 | 21 | EXPOSE 80 22 | 23 | CMD ["./Dockerstart.sh"] 24 | -------------------------------------------------------------------------------- /Dockerstart.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | set -e 3 | 4 | if [ -d /data/db ]; then 5 | mkdir -p /data/dbs 6 | mv /data/db /data/dbs/users 7 | echo "Migrated database" 8 | fi 9 | 10 | npm start -------------------------------------------------------------------------------- /chart/.helmignore: -------------------------------------------------------------------------------- 1 | # Patterns to ignore when building packages. 2 | # This supports shell glob matching, relative path matching, and 3 | # negation (prefixed with !). Only one pattern per line. 4 | .DS_Store 5 | # Common VCS dirs 6 | .git/ 7 | .gitignore 8 | .bzr/ 9 | .bzrignore 10 | .hg/ 11 | .hgignore 12 | .svn/ 13 | # Common backup files 14 | *.swp 15 | *.bak 16 | *.tmp 17 | *.orig 18 | *~ 19 | # Various IDEs 20 | .project 21 | .idea/ 22 | *.tmproj 23 | .vscode/ 24 | -------------------------------------------------------------------------------- /chart/templates/pv.yaml: -------------------------------------------------------------------------------- 1 | {{- if .Values.persistence.enabled -}} 2 | apiVersion: v1 3 | kind: PersistentVolume 4 | metadata: 5 | name: {{ include "christmas-community.fullname" . }}-pv 6 | labels: 7 | {{- include "christmas-community.labels" . | nindent 4 }} 8 | spec: 9 | storageClassName: local-path 10 | persistentVolumeReclaimPolicy: Delete 11 | capacity: 12 | storage: 2Gi 13 | accessModes: 14 | - ReadWriteOnce 15 | hostPath: 16 | path: {{- toYaml .Values.persistence.mountPath | indent 8}} 17 | volumeMode: Filesystem 18 | {{- end }} -------------------------------------------------------------------------------- /chart/templates/pvc.yaml: -------------------------------------------------------------------------------- 1 | {{- if .Values.persistence.enabled -}} 2 | apiVersion: v1 3 | kind: PersistentVolumeClaim 4 | metadata: 5 | name: {{ include "christmas-community.fullname" . }}-pvc 6 | labels: 7 | {{- include "christmas-community.labels" . | nindent 4 }} 8 | spec: 9 | accessModes: 10 | - ReadWriteOnce 11 | resources: 12 | requests: 13 | storage: 2Gi 14 | storageClassName: local-path 15 | volumeMode: Filesystem 16 | volumeName: {{ include "christmas-community.fullname" . }}-pv 17 | {{- end }} -------------------------------------------------------------------------------- /chart/templates/service.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Service 3 | metadata: 4 | name: {{ include "christmas-community.fullname" . }} 5 | labels: 6 | {{- include "christmas-community.labels" . | nindent 4 }} 7 | spec: 8 | type: {{ .Values.service.type }} 9 | ports: 10 | - port: {{ .Values.service.port }} 11 | targetPort: http 12 | protocol: TCP 13 | name: http 14 | selector: 15 | {{- include "christmas-community.selectorLabels" . | nindent 4 }} 16 | -------------------------------------------------------------------------------- /chart/templates/serviceaccount.yaml: -------------------------------------------------------------------------------- 1 | {{- if .Values.serviceAccount.create -}} 2 | apiVersion: v1 3 | kind: ServiceAccount 4 | metadata: 5 | name: {{ include "christmas-community.serviceAccountName" . }} 6 | labels: 7 | {{- include "christmas-community.labels" . | nindent 4 }} 8 | {{- with .Values.serviceAccount.annotations }} 9 | annotations: 10 | {{- toYaml . | nindent 4 }} 11 | {{- end }} 12 | {{- end }} 13 | -------------------------------------------------------------------------------- /chart/templates/tests/test-connection.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Pod 3 | metadata: 4 | name: "{{ include "christmas-community.fullname" . }}-test-connection" 5 | labels: 6 | {{- include "christmas-community.labels" . | nindent 4 }} 7 | annotations: 8 | "helm.sh/hook": test 9 | spec: 10 | containers: 11 | - name: wget 12 | image: busybox 13 | command: ['wget'] 14 | args: ['{{ include "christmas-community.fullname" . }}:{{ .Values.service.port }}'] 15 | restartPolicy: Never 16 | -------------------------------------------------------------------------------- /docker-compose.debug.yml: -------------------------------------------------------------------------------- 1 | version: '2.1' 2 | 3 | services: 4 | christmas-community: 5 | image: christmas-community 6 | build: . 7 | environment: 8 | NODE_ENV: development 9 | ports: 10 | - 80:80 11 | - 9229:9229 12 | command: node --inspect=0.0.0.0:9229 src/index.js 13 | -------------------------------------------------------------------------------- /docker-compose.yml: -------------------------------------------------------------------------------- 1 | version: '2.1' 2 | 3 | services: 4 | christmas-community: 5 | image: christmas-community 6 | build: . 7 | environment: 8 | NODE_ENV: production 9 | ports: 10 | - 80:80 11 | -------------------------------------------------------------------------------- /screenshots/link-not-required.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wingysam/Christmas-Community/316568d5b551c4dd0cbc17ba56550d3caac66fe6/screenshots/link-not-required.png -------------------------------------------------------------------------------- /screenshots/list.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wingysam/Christmas-Community/316568d5b551c4dd0cbc17ba56550d3caac66fe6/screenshots/list.png -------------------------------------------------------------------------------- /screenshots/main.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wingysam/Christmas-Community/316568d5b551c4dd0cbc17ba56550d3caac66fe6/screenshots/main.png -------------------------------------------------------------------------------- /screenshots/name-from-link.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wingysam/Christmas-Community/316568d5b551c4dd0cbc17ba56550d3caac66fe6/screenshots/name-from-link.png -------------------------------------------------------------------------------- /src/PouchDB.ts: -------------------------------------------------------------------------------- 1 | import PouchDB from 'pouchdb' 2 | import config from './config/index.js' 3 | import PouchFind from 'pouchdb-find' 4 | PouchDB.plugin(PouchFind) 5 | 6 | export default PouchDB.defaults({ 7 | prefix: config.dbPrefix, 8 | }) 9 | -------------------------------------------------------------------------------- /src/config/secret/index.js: -------------------------------------------------------------------------------- 1 | import { nanoid } from 'nanoid' 2 | import path from 'path' 3 | import fs from 'fs' 4 | import mkdirp from 'mkdirp' 5 | 6 | const secretFilePath = path.join( 7 | process.env.SECRET_DIRNAME ? process.env.SECRET_DIRNAME : 'dbs', 8 | 'secret.txt', 9 | ) 10 | 11 | let secret 12 | 13 | try { 14 | secret = fs.readFileSync(secretFilePath).toString() 15 | } catch (_) { 16 | secret = nanoid(128) 17 | await mkdirp(path.join(secretFilePath, '..')) 18 | fs.writeFileSync(secretFilePath, secret) 19 | } 20 | 21 | export default secret 22 | -------------------------------------------------------------------------------- /src/config/wishlist/index.js: -------------------------------------------------------------------------------- 1 | import { parse as yesNo } from 'yes-no' 2 | 3 | export default { 4 | singleList: yesNo(process.env.SINGLE_LIST || false), 5 | public: yesNo(process.env.LISTS_PUBLIC || false), 6 | table: yesNo(process.env.TABLE || true), 7 | note: { 8 | markdown: yesNo(process.env.MARKDOWN || false), 9 | }, 10 | } 11 | -------------------------------------------------------------------------------- /src/dbMigration.ts: -------------------------------------------------------------------------------- 1 | export async function doDbMigrations() { 2 | await pfpStringToObject() 3 | } 4 | 5 | async function pfpStringToObject() { 6 | for (const { doc: user } of ( 7 | await _CC.usersDb.allDocs({ include_docs: true }) 8 | ).rows) { 9 | if (typeof user.pfp === 'string') { 10 | user.pfp = { url: user.pfp } 11 | await _CC.usersDb.put(user) 12 | console.log(`Migrated user ${user._id} pfp string to object`) 13 | } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /src/env.ts: -------------------------------------------------------------------------------- 1 | import dotenv from 'dotenv' 2 | dotenv.config() 3 | -------------------------------------------------------------------------------- /src/global.d.ts: -------------------------------------------------------------------------------- 1 | import type CC from './CC.js' 2 | 3 | declare global { 4 | const _CC: typeof CC 5 | } 6 | -------------------------------------------------------------------------------- /src/logger.ts: -------------------------------------------------------------------------------- 1 | import chalk from 'chalk' 2 | const colors = { 3 | log: 'blue', 4 | success: 'green', 5 | error: 'red', 6 | warn: 'yellow', 7 | } as const 8 | 9 | const Logger: { [p in keyof typeof colors]: (type, msg) => void } = 10 | Object.fromEntries( 11 | Object.entries(colors).map(([method, color]) => { 12 | return [ 13 | method, 14 | function (type, msg) { 15 | console.log(chalk.keyword(color)(`[ ${type.toUpperCase()} ] ${msg}`)) 16 | }, 17 | ] 18 | }), 19 | ) as any 20 | 21 | export default Logger 22 | -------------------------------------------------------------------------------- /src/middlewares/locals.js: -------------------------------------------------------------------------------- 1 | import config from '../config/index.js' 2 | 3 | export default function (req, res, next) { 4 | res.locals.config = config 5 | res.locals.req = req 6 | res.locals.lang = _CC.lang 7 | next() 8 | } 9 | -------------------------------------------------------------------------------- /src/middlewares/publicRoute.js: -------------------------------------------------------------------------------- 1 | import verifyAuth from './verifyAuth.js' 2 | 3 | const publicMiddleware = () => 4 | global._CC.config.wishlist.public 5 | ? (req, _res, next) => { 6 | if (!req.user) req.user = { _id: '_CCUNKNOWN' } 7 | next() 8 | } 9 | : verifyAuth() 10 | 11 | export default publicMiddleware 12 | -------------------------------------------------------------------------------- /src/routes/api/index.js: -------------------------------------------------------------------------------- 1 | import Wishlist from './wishlist/index.js' 2 | 3 | import verifyAuth from '../../middlewares/verifyAuth.js' 4 | import express from 'express' 5 | 6 | export default function () { 7 | const router = express.Router() 8 | 9 | router.use(verifyAuth()) 10 | 11 | router.get('/', (_req, res) => { 12 | res.send({ 13 | api: true, 14 | }) 15 | }) 16 | 17 | router.use('/wishlist', Wishlist()) 18 | 19 | return router 20 | } 21 | -------------------------------------------------------------------------------- /src/routes/logout/index.js: -------------------------------------------------------------------------------- 1 | import verifyAuth from '../../middlewares/verifyAuth.js' 2 | import express from 'express' 3 | 4 | export default function () { 5 | const router = express.Router() 6 | 7 | router.get('/', verifyAuth(), (_req, res) => res.render('logout')) 8 | router.post('/', (req, res) => { 9 | req.logout() 10 | res.redirect('/') 11 | }) 12 | 13 | return router 14 | } 15 | -------------------------------------------------------------------------------- /src/routes/supported-sites/index.js: -------------------------------------------------------------------------------- 1 | import express from 'express' 2 | 3 | export default function () { 4 | const router = express.Router() 5 | 6 | router.get('/', async (_req, res) => { 7 | res.render('supported-sites', { title: _CC.lang('SUPPORTED_SITES_HEADER') }) 8 | }) 9 | 10 | return router 11 | } 12 | -------------------------------------------------------------------------------- /src/static/img/default-pfps/1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wingysam/Christmas-Community/316568d5b551c4dd0cbc17ba56550d3caac66fe6/src/static/img/default-pfps/1.jpg -------------------------------------------------------------------------------- /src/static/img/default-pfps/10.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wingysam/Christmas-Community/316568d5b551c4dd0cbc17ba56550d3caac66fe6/src/static/img/default-pfps/10.jpg -------------------------------------------------------------------------------- /src/static/img/default-pfps/2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wingysam/Christmas-Community/316568d5b551c4dd0cbc17ba56550d3caac66fe6/src/static/img/default-pfps/2.jpg -------------------------------------------------------------------------------- /src/static/img/default-pfps/3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wingysam/Christmas-Community/316568d5b551c4dd0cbc17ba56550d3caac66fe6/src/static/img/default-pfps/3.jpg -------------------------------------------------------------------------------- /src/static/img/default-pfps/4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wingysam/Christmas-Community/316568d5b551c4dd0cbc17ba56550d3caac66fe6/src/static/img/default-pfps/4.png -------------------------------------------------------------------------------- /src/static/img/default-pfps/5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wingysam/Christmas-Community/316568d5b551c4dd0cbc17ba56550d3caac66fe6/src/static/img/default-pfps/5.png -------------------------------------------------------------------------------- /src/static/img/default-pfps/6.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wingysam/Christmas-Community/316568d5b551c4dd0cbc17ba56550d3caac66fe6/src/static/img/default-pfps/6.jpg -------------------------------------------------------------------------------- /src/static/img/default-pfps/7.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wingysam/Christmas-Community/316568d5b551c4dd0cbc17ba56550d3caac66fe6/src/static/img/default-pfps/7.jpg -------------------------------------------------------------------------------- /src/static/img/default-pfps/8.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wingysam/Christmas-Community/316568d5b551c4dd0cbc17ba56550d3caac66fe6/src/static/img/default-pfps/8.jpg -------------------------------------------------------------------------------- /src/static/img/default-pfps/9.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wingysam/Christmas-Community/316568d5b551c4dd0cbc17ba56550d3caac66fe6/src/static/img/default-pfps/9.jpg -------------------------------------------------------------------------------- /src/static/img/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wingysam/Christmas-Community/316568d5b551c4dd0cbc17ba56550d3caac66fe6/src/static/img/logo.png -------------------------------------------------------------------------------- /src/static/img/logo.transparent.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wingysam/Christmas-Community/316568d5b551c4dd0cbc17ba56550d3caac66fe6/src/static/img/logo.transparent.png -------------------------------------------------------------------------------- /src/static/js/nav.js: -------------------------------------------------------------------------------- 1 | window.onload = () => { 2 | const burger = document.getElementById('navBarBurger') 3 | const navBarMenu = document.getElementById('navBarMenu') 4 | burger.addEventListener('click', () => { 5 | burger.classList.toggle('is-active') 6 | navBarMenu.classList.toggle('is-active') 7 | }) 8 | } 9 | -------------------------------------------------------------------------------- /src/static/js/profile.js: -------------------------------------------------------------------------------- 1 | document.querySelector('.upload-pfp-no-js').remove() 2 | ;(() => { 3 | const uploadPfp = document.querySelector('.upload-pfp-yes-js') 4 | uploadPfp.classList.remove('is-hidden') 5 | const form = uploadPfp.parentElement 6 | const input = uploadPfp.querySelector('input') 7 | input.addEventListener('change', () => { 8 | form.submit() 9 | }) 10 | })() 11 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/less/_animated.less: -------------------------------------------------------------------------------- 1 | // Animated Icons 2 | // -------------------------- 3 | 4 | .@{fa-css-prefix}-spin { 5 | animation: fa-spin 2s infinite linear; 6 | } 7 | 8 | .@{fa-css-prefix}-pulse { 9 | animation: fa-spin 1s infinite steps(8); 10 | } 11 | 12 | @keyframes fa-spin { 13 | 0% { 14 | transform: rotate(0deg); 15 | } 16 | 100% { 17 | transform: rotate(360deg); 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/less/_bordered-pulled.less: -------------------------------------------------------------------------------- 1 | // Bordered & Pulled 2 | // ------------------------- 3 | 4 | .@{fa-css-prefix}-border { 5 | border-radius: .1em; 6 | border: solid .08em @fa-border-color; 7 | padding: .2em .25em .15em; 8 | } 9 | 10 | .@{fa-css-prefix}-pull-left { float: left; } 11 | .@{fa-css-prefix}-pull-right { float: right; } 12 | 13 | .@{fa-css-prefix}, .fas, .far, .fal, .fab { 14 | &.@{fa-css-prefix}-pull-left { margin-right: .3em; } 15 | &.@{fa-css-prefix}-pull-right { margin-left: .3em; } 16 | } 17 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/less/_core.less: -------------------------------------------------------------------------------- 1 | // Base Class Definition 2 | // ------------------------- 3 | 4 | .@{fa-css-prefix}, .fas, .far, .fal, .fab { 5 | -moz-osx-font-smoothing: grayscale; 6 | -webkit-font-smoothing: antialiased; 7 | display: inline-block; 8 | font-style: normal; 9 | font-variant: normal; 10 | text-rendering: auto; 11 | line-height: 1; 12 | } 13 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/less/_fixed-width.less: -------------------------------------------------------------------------------- 1 | // Fixed Width Icons 2 | // ------------------------- 3 | .@{fa-css-prefix}-fw { 4 | text-align: center; 5 | width: (20em / 16); 6 | } 7 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/less/_larger.less: -------------------------------------------------------------------------------- 1 | // Icon Sizes 2 | // ------------------------- 3 | 4 | .larger(@factor) when (@factor > 0) { 5 | .larger((@factor - 1)); 6 | 7 | .@{fa-css-prefix}-@{factor}x { 8 | font-size: (@factor * 1em); 9 | } 10 | } 11 | 12 | /* makes the font 33% larger relative to the icon container */ 13 | .@{fa-css-prefix}-lg { 14 | font-size: (4em / 3); 15 | line-height: (3em / 4); 16 | vertical-align: -.0667em; 17 | } 18 | 19 | .@{fa-css-prefix}-xs { 20 | font-size: .75em; 21 | } 22 | 23 | .@{fa-css-prefix}-sm { 24 | font-size: .875em; 25 | } 26 | 27 | .larger(10); 28 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/less/_list.less: -------------------------------------------------------------------------------- 1 | // List Icons 2 | // ------------------------- 3 | 4 | .@{fa-css-prefix}-ul { 5 | list-style-type: none; 6 | margin-left: @fa-li-width * 5/4; 7 | padding-left: 0; 8 | 9 | > li { position: relative; } 10 | } 11 | 12 | .@{fa-css-prefix}-li { 13 | left: -@fa-li-width; 14 | position: absolute; 15 | text-align: center; 16 | width: @fa-li-width; 17 | line-height: inherit; 18 | } 19 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/less/_screen-reader.less: -------------------------------------------------------------------------------- 1 | // Screen Readers 2 | // ------------------------- 3 | 4 | .sr-only { .sr-only(); } 5 | .sr-only-focusable { .sr-only-focusable(); } 6 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/less/_stacked.less: -------------------------------------------------------------------------------- 1 | // Stacked Icons 2 | // ------------------------- 3 | 4 | .@{fa-css-prefix}-stack { 5 | display: inline-block; 6 | height: 2em; 7 | line-height: 2em; 8 | position: relative; 9 | vertical-align: middle; 10 | width: 2em; 11 | } 12 | 13 | .@{fa-css-prefix}-stack-1x, .@{fa-css-prefix}-stack-2x { 14 | left: 0; 15 | position: absolute; 16 | text-align: center; 17 | width: 100%; 18 | } 19 | 20 | .@{fa-css-prefix}-stack-1x { line-height: inherit; } 21 | .@{fa-css-prefix}-stack-2x { font-size: 2em; } 22 | .@{fa-css-prefix}-inverse { color: @fa-inverse; } 23 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/less/fontawesome.less: -------------------------------------------------------------------------------- 1 | /*! 2 | * Font Awesome Free 5.5.0 by @fontawesome - https://fontawesome.com 3 | * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) 4 | */ 5 | @import "_variables.less"; 6 | @import "_mixins.less"; 7 | @import "_core.less"; 8 | @import "_larger.less"; 9 | @import "_fixed-width.less"; 10 | @import "_list.less"; 11 | @import "_bordered-pulled.less"; 12 | @import "_animated.less"; 13 | @import "_rotated-flipped.less"; 14 | @import "_stacked.less"; 15 | @import "_icons.less"; 16 | @import "_screen-reader.less"; 17 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/less/v4-shims.less: -------------------------------------------------------------------------------- 1 | /*! 2 | * Font Awesome Free 5.5.0 by @fontawesome - https://fontawesome.com 3 | * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) 4 | */ 5 | @import '_variables.less'; 6 | @import '_shims.less'; 7 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/scss/_animated.scss: -------------------------------------------------------------------------------- 1 | // Animated Icons 2 | // -------------------------- 3 | 4 | .#{$fa-css-prefix}-spin { 5 | animation: fa-spin 2s infinite linear; 6 | } 7 | 8 | .#{$fa-css-prefix}-pulse { 9 | animation: fa-spin 1s infinite steps(8); 10 | } 11 | 12 | @keyframes fa-spin { 13 | 0% { 14 | transform: rotate(0deg); 15 | } 16 | 17 | 100% { 18 | transform: rotate(360deg); 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/scss/_bordered-pulled.scss: -------------------------------------------------------------------------------- 1 | // Bordered & Pulled 2 | // ------------------------- 3 | 4 | .#{$fa-css-prefix}-border { 5 | border: solid .08em $fa-border-color; 6 | border-radius: .1em; 7 | padding: .2em .25em .15em; 8 | } 9 | 10 | .#{$fa-css-prefix}-pull-left { float: left; } 11 | .#{$fa-css-prefix}-pull-right { float: right; } 12 | 13 | .#{$fa-css-prefix}, 14 | .fas, 15 | .far, 16 | .fal, 17 | .fab { 18 | &.#{$fa-css-prefix}-pull-left { margin-right: .3em; } 19 | &.#{$fa-css-prefix}-pull-right { margin-left: .3em; } 20 | } 21 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/scss/_core.scss: -------------------------------------------------------------------------------- 1 | // Base Class Definition 2 | // ------------------------- 3 | 4 | .#{$fa-css-prefix}, 5 | .fas, 6 | .far, 7 | .fal, 8 | .fab { 9 | -moz-osx-font-smoothing: grayscale; 10 | -webkit-font-smoothing: antialiased; 11 | display: inline-block; 12 | font-style: normal; 13 | font-variant: normal; 14 | text-rendering: auto; 15 | line-height: 1; 16 | } 17 | 18 | %fa-icon { 19 | @include fa-icon; 20 | } 21 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/scss/_fixed-width.scss: -------------------------------------------------------------------------------- 1 | // Fixed Width Icons 2 | // ------------------------- 3 | .#{$fa-css-prefix}-fw { 4 | text-align: center; 5 | width: $fa-fw-width; 6 | } 7 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/scss/_larger.scss: -------------------------------------------------------------------------------- 1 | // Icon Sizes 2 | // ------------------------- 3 | 4 | // makes the font 33% larger relative to the icon container 5 | .#{$fa-css-prefix}-lg { 6 | font-size: (4em / 3); 7 | line-height: (3em / 4); 8 | vertical-align: -.0667em; 9 | } 10 | 11 | .#{$fa-css-prefix}-xs { 12 | font-size: .75em; 13 | } 14 | 15 | .#{$fa-css-prefix}-sm { 16 | font-size: .875em; 17 | } 18 | 19 | @for $i from 1 through 10 { 20 | .#{$fa-css-prefix}-#{$i}x { 21 | font-size: $i * 1em; 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/scss/_list.scss: -------------------------------------------------------------------------------- 1 | // List Icons 2 | // ------------------------- 3 | 4 | .#{$fa-css-prefix}-ul { 5 | list-style-type: none; 6 | margin-left: $fa-li-width * 5/4; 7 | padding-left: 0; 8 | 9 | > li { position: relative; } 10 | } 11 | 12 | .#{$fa-css-prefix}-li { 13 | left: -$fa-li-width; 14 | position: absolute; 15 | text-align: center; 16 | width: $fa-li-width; 17 | line-height: inherit; 18 | } 19 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/scss/_screen-reader.scss: -------------------------------------------------------------------------------- 1 | // Screen Readers 2 | // ------------------------- 3 | 4 | .sr-only { @include sr-only; } 5 | .sr-only-focusable { @include sr-only-focusable; } 6 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/scss/fontawesome.scss: -------------------------------------------------------------------------------- 1 | /*! 2 | * Font Awesome Free 5.5.0 by @fontawesome - https://fontawesome.com 3 | * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) 4 | */ 5 | @import 'variables'; 6 | @import 'mixins'; 7 | @import 'core'; 8 | @import 'larger'; 9 | @import 'fixed-width'; 10 | @import 'list'; 11 | @import 'bordered-pulled'; 12 | @import 'animated'; 13 | @import 'rotated-flipped'; 14 | @import 'stacked'; 15 | @import 'icons'; 16 | @import 'screen-reader'; 17 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/scss/v4-shims.scss: -------------------------------------------------------------------------------- 1 | /*! 2 | * Font Awesome Free 5.5.0 by @fontawesome - https://fontawesome.com 3 | * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) 4 | */ 5 | @import 'variables'; 6 | @import 'shims'; 7 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/brands/adn.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/brands/angular.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/brands/autoprefixer.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/brands/bandcamp.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/brands/bitbucket.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/brands/black-tie.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/brands/bluetooth-b.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/brands/bluetooth.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/brands/buysellads.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/brands/cloudsmith.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/brands/creative-commons-nd.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/brands/css3-alt.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/brands/css3.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/brands/cuttlefish.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/brands/dashcube.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/brands/deviantart.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/brands/digg.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/brands/digital-ocean.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/brands/discourse.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/brands/dochub.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/brands/dropbox.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/brands/dyalog.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/brands/elementor.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/brands/envira.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/brands/ethereum.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/brands/facebook-f.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/brands/facebook-messenger.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/brands/facebook-square.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/brands/facebook.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/brands/firstdraft.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/brands/flickr.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/brands/flipboard.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/brands/fulcrum.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/brands/gg.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/brands/gitter.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/brands/google-drive.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/brands/google-play.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/brands/google.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/brands/gratipay.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/brands/hacker-news-square.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/brands/hacker-news.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/brands/hotjar.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/brands/houzz.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/brands/html5.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/brands/kickstarter-k.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/brands/korvue.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/brands/linkedin-in.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/brands/magento.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/brands/maxcdn.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/brands/microsoft.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/brands/mix.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/brands/modx.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/brands/monero.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/brands/npm.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/brands/openid.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/brands/patreon.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/brands/pied-piper.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/brands/product-hunt.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/brands/rockrms.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/brands/servicestack.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/brands/sistrix.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/brands/stack-exchange.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/brands/stack-overflow.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/brands/strava.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/brands/stripe-s.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/brands/telegram-plane.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/brands/telegram.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/brands/think-peaks.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/brands/twitch.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/brands/uikit.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/brands/viacoin.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/brands/vuejs.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/brands/windows.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/brands/y-combinator.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/brands/yahoo.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/brands/yandex-international.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/brands/yandex.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/regular/arrow-alt-circle-down.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/regular/arrow-alt-circle-left.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/regular/arrow-alt-circle-up.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/regular/bookmark.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/regular/calendar.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/regular/caret-square-down.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/regular/caret-square-left.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/regular/caret-square-right.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/regular/caret-square-up.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/regular/circle.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/regular/comment-alt.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/regular/dot-circle.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/regular/file.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/regular/folder.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/regular/meh-blank.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/regular/minus-square.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/regular/play-circle.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/regular/square.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/regular/star-half.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/regular/sticky-note.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/regular/stop-circle.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/regular/window-maximize.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/regular/window-minimize.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/regular/window-restore.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/solid/adjust.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/solid/angle-down.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/solid/angle-left.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/solid/angle-right.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/solid/angle-up.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/solid/archive.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/solid/arrow-alt-circle-down.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/solid/arrow-alt-circle-left.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/solid/arrow-alt-circle-right.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/solid/arrow-alt-circle-up.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/solid/arrow-down.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/solid/arrow-left.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/solid/arrow-right.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/solid/arrow-up.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/solid/backward.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/solid/ban.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/solid/battery-empty.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/solid/battery-full.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/solid/battery-half.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/solid/battery-quarter.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/solid/battery-three-quarters.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/solid/bed.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/solid/bolt.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/solid/bookmark.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/solid/bowling-ball.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/solid/box.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/solid/briefcase.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/solid/brush.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/solid/burn.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/solid/calendar.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/solid/caret-down.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/solid/caret-left.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/solid/caret-right.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/solid/caret-square-down.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/solid/caret-square-left.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/solid/caret-square-right.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/solid/caret-square-up.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/solid/caret-up.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/solid/chalkboard.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/solid/chart-area.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/solid/check.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/solid/chevron-circle-down.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/solid/chevron-circle-left.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/solid/chevron-circle-right.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/solid/chevron-circle-up.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/solid/chevron-down.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/solid/chevron-left.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/solid/chevron-right.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/solid/chevron-up.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/solid/circle.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/solid/clipboard.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/solid/clock.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/solid/clone.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/solid/cloud.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/solid/coffee.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/solid/columns.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/solid/comment-alt.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/solid/comment.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/solid/compact-disc.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/solid/concierge-bell.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/solid/crop-alt.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/solid/cross.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/solid/cube.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/solid/desktop.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/solid/dice-one.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/solid/dice-two.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/solid/divide.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/solid/door-closed.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/solid/dot-circle.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/solid/eject.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/solid/ellipsis-h.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/solid/ellipsis-v.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/solid/equals.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/solid/exclamation.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/solid/fast-backward.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/solid/fast-forward.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/solid/file.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/solid/filter.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/solid/fire.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/solid/flask.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/solid/folder-minus.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/solid/folder.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/solid/forward.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/solid/gem.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/solid/genderless.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/solid/glass-martini-alt.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/solid/glass-martini.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/solid/greater-than.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/solid/hand-holding.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/solid/heart.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/solid/hockey-puck.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/solid/hospital-symbol.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/solid/inbox.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/solid/industry.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/solid/info.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/solid/laptop.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/solid/less-than.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/solid/level-down-alt.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/solid/level-up-alt.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/solid/location-arrow.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/solid/lock-open.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/solid/lock.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/solid/long-arrow-alt-down.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/solid/long-arrow-alt-left.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/solid/long-arrow-alt-right.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/solid/long-arrow-alt-up.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/solid/male.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/solid/map-marker-alt.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/solid/map-marker.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/solid/map.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/solid/mars.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/solid/meh-blank.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/solid/meh.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/solid/minus-circle.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/solid/minus-square.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/solid/minus.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/solid/mobile-alt.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/solid/mobile.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/solid/moon.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/solid/mountain.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/solid/mouse-pointer.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/solid/music.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/solid/neuter.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/solid/paper-plane.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/solid/paragraph.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/solid/parking.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/solid/pause-circle.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/solid/pause.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/solid/pen.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/solid/phone.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/solid/play-circle.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/solid/play.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/solid/plus-circle.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/solid/plus-square.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/solid/plus.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/solid/prescription-bottle.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/solid/qrcode.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/solid/reply.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/solid/screwdriver.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/solid/scroll.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/solid/seedling.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/solid/share.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/solid/shield-alt.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/solid/sign.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/solid/slash.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/solid/sort-down.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/solid/sort-up.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/solid/sort.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/solid/square-full.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/solid/square.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/solid/star-half.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/solid/star.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/solid/step-backward.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/solid/step-forward.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/solid/sticky-note.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/solid/stop-circle.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/solid/stop.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/solid/store-alt.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/solid/stream.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/solid/suitcase.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/solid/surprise.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/solid/table.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/solid/tablet-alt.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/solid/tablet.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/solid/tag.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/solid/tape.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/solid/tint.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/solid/toggle-on.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/solid/trash.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/solid/tv.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/solid/unlock.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/solid/user-alt.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/solid/user-tie.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/solid/user.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/solid/utensil-spoon.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/solid/vial.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/solid/video.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/solid/volume-off.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/solid/wallet.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/solid/window-maximize.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/solid/window-minimize.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/solid/window-restore.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/svgs/solid/wine-glass.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/webfonts/fa-brands-400.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wingysam/Christmas-Community/316568d5b551c4dd0cbc17ba56550d3caac66fe6/src/static/libraries/fontawesome/webfonts/fa-brands-400.eot -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/webfonts/fa-brands-400.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wingysam/Christmas-Community/316568d5b551c4dd0cbc17ba56550d3caac66fe6/src/static/libraries/fontawesome/webfonts/fa-brands-400.ttf -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/webfonts/fa-brands-400.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wingysam/Christmas-Community/316568d5b551c4dd0cbc17ba56550d3caac66fe6/src/static/libraries/fontawesome/webfonts/fa-brands-400.woff -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/webfonts/fa-brands-400.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wingysam/Christmas-Community/316568d5b551c4dd0cbc17ba56550d3caac66fe6/src/static/libraries/fontawesome/webfonts/fa-brands-400.woff2 -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/webfonts/fa-regular-400.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wingysam/Christmas-Community/316568d5b551c4dd0cbc17ba56550d3caac66fe6/src/static/libraries/fontawesome/webfonts/fa-regular-400.eot -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/webfonts/fa-regular-400.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wingysam/Christmas-Community/316568d5b551c4dd0cbc17ba56550d3caac66fe6/src/static/libraries/fontawesome/webfonts/fa-regular-400.ttf -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/webfonts/fa-regular-400.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wingysam/Christmas-Community/316568d5b551c4dd0cbc17ba56550d3caac66fe6/src/static/libraries/fontawesome/webfonts/fa-regular-400.woff -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/webfonts/fa-regular-400.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wingysam/Christmas-Community/316568d5b551c4dd0cbc17ba56550d3caac66fe6/src/static/libraries/fontawesome/webfonts/fa-regular-400.woff2 -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/webfonts/fa-solid-900.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wingysam/Christmas-Community/316568d5b551c4dd0cbc17ba56550d3caac66fe6/src/static/libraries/fontawesome/webfonts/fa-solid-900.eot -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/webfonts/fa-solid-900.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wingysam/Christmas-Community/316568d5b551c4dd0cbc17ba56550d3caac66fe6/src/static/libraries/fontawesome/webfonts/fa-solid-900.ttf -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/webfonts/fa-solid-900.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wingysam/Christmas-Community/316568d5b551c4dd0cbc17ba56550d3caac66fe6/src/static/libraries/fontawesome/webfonts/fa-solid-900.woff -------------------------------------------------------------------------------- /src/static/libraries/fontawesome/webfonts/fa-solid-900.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wingysam/Christmas-Community/316568d5b551c4dd0cbc17ba56550d3caac66fe6/src/static/libraries/fontawesome/webfonts/fa-solid-900.woff2 -------------------------------------------------------------------------------- /src/structures/WishlistManager.js: -------------------------------------------------------------------------------- 1 | import { Wishlist } from './Wishlist.js' 2 | 3 | export class WishlistManager { 4 | constructor() { 5 | this.wishlistsCache = new Map() 6 | } 7 | 8 | async get(username) { 9 | const cached = this.wishlistsCache.get(username) 10 | if (cached) return cached 11 | 12 | const wishlist = await Wishlist.new(username) 13 | this.wishlistsCache.set(username, wishlist) 14 | return wishlist 15 | } 16 | 17 | async clearCache() { 18 | this.wishlistsCache = new Map() 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /src/views/admin-clear-wishlists.pug: -------------------------------------------------------------------------------- 1 | extends layout.pug 2 | 3 | block content 4 | h2= lang('ADMIN_CLEAR_WISHLISTS_HEADER') 5 | p!= lang('ADMIN_CLEAR_WISHLISTS_DESCRIPTION') 6 | form(method='POST', action=`${_CC.config.base}admin-settings/clear-wishlists`) 7 | .field 8 | .control 9 | input.button.is-danger(type='submit' value=lang('ADMIN_CLEAR_WISHLISTS_BUTTON')) -------------------------------------------------------------------------------- /src/views/includes/messages.pug: -------------------------------------------------------------------------------- 1 | - successes = req.flash('success'); 2 | - errors = req.flash('error'); 3 | 4 | if successes 5 | each success in successes 6 | p.has-text-success= (success.toString().startsWith('[object ') ? JSON.stringify(success) : success.toString()) 7 | if errors 8 | each error in errors 9 | p.has-text-danger= (error.toString().startsWith('[object ') ? JSON.stringify(error) : error.toString()) -------------------------------------------------------------------------------- /src/views/includes/updateNotice.pug: -------------------------------------------------------------------------------- 1 | if req.user && req.user.admin && _CC.updateNotice.isOutdated 2 | .columns 3 | .column 4 | .column.is-narrow 5 | .box!= lang('UPDATE_NOTICE', _CC.updateNotice.current, _CC.updateNotice.latest) -------------------------------------------------------------------------------- /src/views/logout.pug: -------------------------------------------------------------------------------- 1 | extends layout.pug 2 | 3 | block content 4 | form(method='POST') 5 | .field 6 | .control 7 | input.button.is-primary(type='submit' value=lang('LOGOUT_BUTTON')) -------------------------------------------------------------------------------- /src/views/supported-sites.pug: -------------------------------------------------------------------------------- 1 | extends layout.pug 2 | 3 | block content 4 | if req.headers.referer 5 | span.is-size-3(style='margin-top: 0; padding-top: 0;') 6 | a(href=req.headers.referer) < #{lang('BACK_BUTTON')} 7 | ul 8 | for site of _CC.GetProductData.sites 9 | li= site.name 10 | p!= lang('SUPPORTED_SITES_TEXT') -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "outDir": "./built", 4 | "allowJs": true, 5 | "target": "es2022", 6 | "module": "Node16", 7 | "moduleResolution": "Node16", 8 | "skipLibCheck": true 9 | }, 10 | "include": ["./src/**/*"] 11 | } 12 | --------------------------------------------------------------------------------