[READ-ONLY] Mirror of https://github.com/probablykasper/v3.kasper.space. v3.kasper.space
personal-website website
0

Configure Feed

Select the types of activity you want to include in your feed.

Convert to SvelteKit + Use YT RSS feed

Kasper (Aug 5, 2023, 2:55 PM +0200) 80e8c194 fc79f5a1

+3671 -1012
+26
.eslintrc.cjs
··· 1 + module.exports = { 2 + root: true, 3 + extends: [ 'eslint:recommended', 'plugin:@typescript-eslint/recommended', 'plugin:svelte/recommended', 'prettier'], 4 + parser: '@typescript-eslint/parser', 5 + plugins: ['@typescript-eslint'], 6 + ignorePatterns: ['*.cjs'], 7 + parserOptions: { 8 + sourceType: 'module', 9 + ecmaVersion: 2020, 10 + extraFileExtensions: ['.svelte'], 11 + }, 12 + env: { 13 + browser: true, 14 + es2017: true, 15 + node: true, 16 + }, 17 + overrides: [ 18 + { 19 + files: ['*.svelte'], 20 + parser: 'svelte-eslint-parser', 21 + parserOptions: { 22 + parser: '@typescript-eslint/parser', 23 + }, 24 + }, 25 + ], 26 + }
-2
.gitattributes
··· 1 - # Auto detect text files and perform LF normalization 2 - * text=auto
+25
.github/workflows/test.yml
··· 1 + name: Test 2 + on: 3 + push: 4 + branches: 5 + - '*' 6 + pull_request: 7 + workflow_dispatch: 8 + 9 + jobs: 10 + test: 11 + runs-on: ubuntu-latest 12 + steps: 13 + - name: Checkout repository 14 + uses: actions/checkout@v3 15 + 16 + - name: Node.js setup 17 + uses: actions/setup-node@v3 18 + with: 19 + node-version: 18 20 + 21 + - run: npm install 22 + 23 + - run: npm run build 24 + 25 + - run: npm run lint
+7
.gitignore
··· 1 + .DS_Store 2 + node_modules 3 + /build 4 + /.svelte-kit 5 + /package 6 + .env 7 + .env.*
-1
CNAME
··· 1 - v3.kasper.space
+10 -2
README.md
··· 1 - # v3 of my personal website. 1 + # kasper.space 2 2 3 - I believe it was made in 2017. 3 + v3 of my personal website. I believe it was made in 2017. 4 + 5 + ## Commands 6 + 7 + - `npm run dev`: Start in dev mode 8 + - `npm run build`: Build 9 + - `npm run preview`: Preview production app 10 + - `npm run lint`: Lint 11 + - `npm run format`: Format
cdn/chevron-down-128-F6F1F1.png static/chevron-down-128-F6F1F1.png
cdn/favicon.ico static/favicon.ico
cdn/logos/kh-transparent.png static/logos/kh-transparent.png
cdn/logos/personal/discord.png static/logos/personal/discord.png
cdn/logos/personal/email.png static/logos/personal/email.png
cdn/logos/personal/facebook.png static/logos/personal/facebook.png
cdn/logos/personal/github.png static/logos/personal/github.png
cdn/logos/personal/instagram.png static/logos/personal/instagram.png
cdn/logos/personal/soundcloud.png static/logos/personal/soundcloud.png
cdn/logos/personal/twitter.png static/logos/personal/twitter.png
cdn/logos/personal/youtube.png static/logos/personal/youtube.png
cdn/logos/project/github.png static/logos/project/github.png
cdn/logos/project/lacuna.png static/logos/project/lacuna.png
cdn/logos/project/minecraft.png static/logos/project/minecraft.png
cdn/logos/project/synctan.png static/logos/project/synctan.png
cdn/logos/project/trap-united-original.png static/logos/project/trap-united-original.png
cdn/logos/project/trap-united.png static/logos/project/trap-united.png
cdn/logos/project/youtube.png static/logos/project/youtube.png
cdn/open-in-new.png static/open-in-new.png
-186
css/global.css
··· 1 - html ::selection { background-color: #27E1E7; } 2 - 3 - html body { overflow-x: hidden; background-color: #3D566E; font-family: 'Roboto', Arial, sans-serif; margin: 0px; } 4 - 5 - html p { margin: 0; } 6 - 7 - html a, html a:link, html a:visited, html a:link:active, html a:visited:active { text-decoration: none; outline: none; color: white; } 8 - 9 - html img { display: block; } 10 - 11 - html .flex-row { display: flex; justify-content: center; flex-direction: row; width: 100%; } 12 - 13 - html .flex-col { display: flex; justify-content: center; flex-direction: column; height: 100%; } 14 - 15 - div.top { z-index: 1; display: block; position: absolute; height: 100%; width: 100%; } 16 - 17 - div.bottom { position: absolute; height: 100%; width: 100%; } 18 - 19 - div.bottom div.spacer { display: block; width: 100%; height: 100%; min-height: 700px; position: relative; } 20 - 21 - div.bottom div.spacer .personal-links { width: 100%; height: 54px; position: absolute; bottom: 0px; align-items: center; justify-content: space-around; left: 50%; transform: translateX(-50%); z-index: 999999; } 22 - 23 - div.bottom div.spacer .personal-links a { width: 26px; height: 26px; padding: 8px; background-repeat: no-repeat; background-position: center; } 24 - 25 - div.bottom div.spacer .personal-links .discord, div.bottom div.spacer .personal-links .email { position: relative; cursor: pointer; -webkit-backface-visibility: hidden; } 26 - 27 - div.bottom div.spacer .personal-links .discord .popup, div.bottom div.spacer .personal-links .email .popup { position: absolute; top: 0px; left: 50%; transform: translate(-50%, -100%); transition: opacity 0.15s cubic-bezier(0.23, 1, 0.32, 1); } 28 - 29 - div.bottom div.spacer .personal-links .discord .popup input, div.bottom div.spacer .personal-links .email .popup input { background-color: rgba(246, 241, 241, 0.15); border-radius: 2px; color: #E1E5E9; border: none; outline: none; font-size: 16px; padding: 12px; text-align: center; cursor: text; position: relative; } 30 - 31 - div.bottom div.spacer .personal-links .discord .popup.hidden, div.bottom div.spacer .personal-links .email .popup.hidden { opacity: 0; pointer-events: none; } 32 - 33 - div.bottom div.spacer .personal-links .twitter { background-image: url("/cdn/logos/personal/twitter.png"); } 34 - 35 - div.bottom div.spacer .personal-links .discord { background-image: url("/cdn/logos/personal/discord.png"); } 36 - 37 - div.bottom div.spacer .personal-links .discord input { width: 225px; } 38 - 39 - @media (max-width: 750px) { div.bottom div.spacer .personal-links .discord input { left: 40px; } } 40 - 41 - @media (max-width: 500px) { div.bottom div.spacer .personal-links .discord input { left: 60px; } } 42 - 43 - div.bottom div.spacer .personal-links .facebook { background-image: url("/cdn/logos/personal/facebook.png"); } 44 - 45 - div.bottom div.spacer .personal-links .youtube { background-image: url("/cdn/logos/personal/youtube.png"); } 46 - 47 - div.bottom div.spacer .personal-links .soundcloud { background-image: url("/cdn/logos/personal/soundcloud.png"); } 48 - 49 - div.bottom div.spacer .personal-links .github { background-image: url("/cdn/logos/personal/github.png"); } 50 - 51 - div.bottom div.spacer .personal-links .steam { background-image: url("/cdn/logos/personal/steam.png"); } 52 - 53 - div.bottom div.spacer .personal-links .instagram { background-image: url("/cdn/logos/personal/instagram.png"); } 54 - 55 - div.bottom div.spacer .personal-links .email { background-image: url("/cdn/logos/personal/email.png"); } 56 - 57 - div.bottom div.spacer .personal-links .email input { width: 185px; } 58 - 59 - @media (max-width: 1750px) { div.bottom div.spacer .personal-links .email input { right: 20px; } } 60 - 61 - @media (max-width: 1500px) { div.bottom div.spacer .personal-links .email input { right: 35px; } } 62 - 63 - @media (max-width: 1250px) { div.bottom div.spacer .personal-links .email input { right: 50px; } } 64 - 65 - @media (max-width: 1000px) { div.bottom div.spacer .personal-links .email input { right: 65px; } } 66 - 67 - @media (max-width: 750px) { div.bottom div.spacer .personal-links .email input { right: 80px; } } 68 - 69 - @media (max-width: 500px) { div.bottom div.spacer .personal-links .email input { right: 90px; } } 70 - 71 - header.page { box-shadow: rgba(0, 0, 0, 0.117647) 0px 1px 6px, rgba(0, 0, 0, 0.117647) 0px 1px 4px; background-color: #F6F1F1; transform: rotate(4deg); width: calc(100% + 100px); left: -50px; position: relative; height: 210px; } 72 - 73 - header.page img { width: 180px; height: 180px; display: block; position: absolute; margin: auto; padding: 15px 0px; top: 50%; left: 50%; transform: translate(-50%, -50%) rotate(-4deg); } 74 - 75 - header.page p.one { position: absolute; top: 50%; transform: translate(-50%, -50%); left: 75%; } 76 - 77 - p.two { position: absolute; text-align: left; left: 20%; transform: translateX(-50%); } 78 - 79 - @media (max-width: 500px) { p.two { transform: translateX(-50%) scale(0.8); } } 80 - 81 - section.projects { box-shadow: rgba(0, 0, 0, 0.156863) 0px 3px 10px, rgba(0, 0, 0, 0.227451) 0px 3px 10px; background-color: #17E7A4; height: 300px; position: relative; padding: 0px 50px; justify-content: space-around; align-items: center; padding: 0px 50px; transform: rotate(-4deg) translateX(-50px) translateY(35px); } 82 - 83 - section.projects div.chevron { min-width: 64px; min-height: 64px; cursor: pointer; background-image: url("/cdn/chevron-down-128-F6F1F1.png"); background-repeat: no-repeat; background-position: center; animation: hover-in-air 2s ease-in-out infinite; } 84 - 85 - @keyframes hover-in-air { 0% { transform: translateY(-5px); } 86 - 50% { transform: translateY(5px); } 87 - 100% { transform: translateY(-5px); } } 88 - 89 - html p { display: block; text-align: center; } 90 - 91 - html p.one { font-size: 50px; color: #3D566E; } 92 - 93 - html p.two { font-size: 30px; color: #F6F1F1; } 94 - 95 - html p.three { font-size: 60px; color: #3D566E; } 96 - 97 - html div.text { color: #F6F1F1; width: 280px; min-width: 100px; } 98 - 99 - html div.text .title { font-size: 40px; } 100 - 101 - html div.text .description { font-size: 17px; color: #E1E5E9; } 102 - 103 - html div.text.r p { text-align: right; } 104 - 105 - html div.text.l p { text-align: left; } 106 - 107 - div.bottom section { position: relative; padding-bottom: 140px; } 108 - 109 - div.bottom section header { box-shadow: inset 0px 0px 15px 0px rgba(0, 0, 0, 0.25); height: 160px; align-items: center; justify-content: space-around; background-color: #324659; padding: 0px 50px; transform: translateX(-50px); } 110 - 111 - div.bottom section header img { width: 100px; } 112 - 113 - div.bottom section main { flex-wrap: wrap; box-shadow: rgba(0, 0, 0, 0.156863) 0px 3px 10px, rgba(0, 0, 0, 0.227451) 0px 3px 10px; } 114 - 115 - div.bottom section main .item { z-index: 2; overflow: hidden; position: relative; width: calc(100% / 8); transition: transform 0.45s cubic-bezier(0.23, 1, 0.32, 1), box-shadow 0.45s cubic-bezier(0.23, 1, 0.32, 1); } 116 - 117 - div.bottom section main .item .overlay { z-index: 987654; width: 100%; height: 100%; position: absolute; background-color: black; opacity: 0; } 118 - 119 - div.bottom section main .item .title { -webkit-backface-visibility: hidden; z-index: 987654; position: absolute; left: 50%; transform: translateX(-50%); padding: 5px 13px; width: calc(100% - 26px); font-size: 17px; opacity: 0; transition: opacity 0.45s cubic-bezier(0.23, 1, 0.32, 1); } 120 - 121 - div.bottom section main .item .img { width: 100%; height: 100%; background-repeat: no-repeat; background-size: 101% auto; background-position-y: center; position: relative; } 122 - 123 - div.bottom section main .item:hover { transform: scale(1.1); box-shadow: rgba(0, 0, 0, 0.298039) 0px 19px 60px, rgba(0, 0, 0, 0.219608) 0px 15px 20px; } 124 - 125 - div.bottom section main .item:hover .overlay { opacity: 0.25; } 126 - 127 - div.bottom section main .item:hover .title { opacity: 1; } 128 - 129 - @media (max-width: 2000px) { div.bottom section main.adjust-height .item { width: calc(100% / 7); } 130 - div.bottom section main.adjust-height .item:nth-child(8) { display: none; } } 131 - 132 - @media (max-width: 1750px) { div.bottom section main.adjust-height .item { width: calc(100% / 6); } 133 - div.bottom section main.adjust-height .item:nth-child(7) { display: none; } } 134 - 135 - @media (max-width: 1500px) { div.bottom section main.adjust-height .item { width: calc(100% / 5); } 136 - div.bottom section main.adjust-height .item:nth-child(6) { display: none; } } 137 - 138 - @media (max-width: 1250px) { div.bottom section main.adjust-height .item { width: calc(100% / 4); } 139 - div.bottom section main.adjust-height .item:nth-child(6), div.bottom section main.adjust-height .item:nth-child(7), div.bottom section main.adjust-height .item:nth-child(8) { display: block; } } 140 - 141 - @media (max-width: 1000px) { div.bottom section main.adjust-height .item { width: calc(100% / 3); } 142 - div.bottom section main.adjust-height .item:nth-child(7), div.bottom section main.adjust-height .item:nth-child(8) { display: none; } } 143 - 144 - @media (max-width: 750px) { div.bottom section main.adjust-height .item { width: calc(100% / 2); } } 145 - 146 - @media (max-width: 500px) { div.bottom section main.adjust-height .item { width: calc(100%); } 147 - div.bottom section main.adjust-height .item:nth-child(1n+5) { display: none; } } 148 - 149 - div.bottom section.lacuna p.title { width: 300px; } 150 - 151 - div.bottom section.lacuna .item { width: calc(100% / 8); } 152 - 153 - @media (max-width: 1750px) { div.bottom section.lacuna .item { width: calc(100% / 7); } 154 - div.bottom section.lacuna .item:nth-child(8) { display: none; } } 155 - 156 - @media (max-width: 1500px) { div.bottom section.lacuna .item { width: calc(100% / 6); } 157 - div.bottom section.lacuna .item:nth-child(7) { display: none; } } 158 - 159 - @media (max-width: 1250px) { div.bottom section.lacuna .item { width: calc(100% / 5); } 160 - div.bottom section.lacuna .item:nth-child(6) { display: none; } } 161 - 162 - @media (max-width: 1000px) { div.bottom section.lacuna .item { width: calc(100% / 4); } 163 - div.bottom section.lacuna .item:nth-child(6), div.bottom section.lacuna .item:nth-child(7), div.bottom section.lacuna .item:nth-child(8) { display: block; } } 164 - 165 - @media (max-width: 750px) { div.bottom section.lacuna .item { width: calc(100% / 3); } 166 - div.bottom section.lacuna .item:nth-child(7), div.bottom section.lacuna .item:nth-child(8) { display: none; } } 167 - 168 - @media (max-width: 500px) { div.bottom section.lacuna .item { width: calc(100% / 2); } } 169 - 170 - div.bottom section.dev .item { background-color: #20202A; } 171 - 172 - div.bottom section.dev .item .title { color: white; opacity: 1; width: calc(100% - 26px); } 173 - 174 - div.bottom section.dev .item .description { color: #E1E5E9; font-size: 15px; z-index: 987654; position: absolute; bottom: 0px; -webkit-backface-visibility: hidden; } 175 - 176 - div.bottom section.dev .item:hover .links { opacity: 1; } 177 - 178 - div.bottom section.dev .item div.links { z-index: 987654; opacity: 0; position: absolute; bottom: 0px; right: 0px; transition: opacity 0.45s cubic-bezier(0.23, 1, 0.32, 1); } 179 - 180 - div.bottom section.dev .item div.links a { width: 24px; height: 24px; padding: 4px; background-repeat: no-repeat; background-position: center; float: right; } 181 - 182 - div.bottom section.dev .item div.links .github-link { background-size: 18px; background-image: url("/cdn/logos/project/github.png"); padding-right: 2px; } 183 - 184 - div.bottom section.dev .item div.links .link { background-size: 16px; background-image: url("/cdn/open-in-new.png"); padding-left: 2px; } 185 - 186 - div.bottom .footnote { color: white; transform: translateY(-200%); }
+14 -15
css/global.sass src/routes/global.sass
··· 23 23 $c-darker: #324659 24 24 // #2ABFDF 25 25 26 - 27 26 html 28 27 ::selection 29 28 background-color: #27E1E7 ··· 112 111 opacity: 0 113 112 pointer-events: none 114 113 .twitter 115 - background-image: url("/cdn/logos/personal/twitter.png") 114 + background-image: url("/logos/personal/twitter.png") 116 115 .discord 117 - background-image: url("/cdn/logos/personal/discord.png") 116 + background-image: url("/logos/personal/discord.png") 118 117 input 119 118 width: 225px 120 119 @media (max-width: 750px) ··· 122 121 @media (max-width: 500px) 123 122 left: 60px 124 123 .facebook 125 - background-image: url("/cdn/logos/personal/facebook.png") 124 + background-image: url("/logos/personal/facebook.png") 126 125 .youtube 127 - background-image: url("/cdn/logos/personal/youtube.png") 126 + background-image: url("/logos/personal/youtube.png") 128 127 .soundcloud 129 - background-image: url("/cdn/logos/personal/soundcloud.png") 128 + background-image: url("/logos/personal/soundcloud.png") 130 129 .github 131 - background-image: url("/cdn/logos/personal/github.png") 130 + background-image: url("/logos/personal/github.png") 132 131 .steam 133 - background-image: url("/cdn/logos/personal/steam.png") 132 + background-image: url("/logos/personal/steam.png") 134 133 .instagram 135 - background-image: url("/cdn/logos/personal/instagram.png") 134 + background-image: url("/logos/personal/instagram.png") 136 135 .email 137 - background-image: url("/cdn/logos/personal/email.png") 136 + background-image: url("/logos/personal/email.png") 138 137 input 139 138 width: 185px 140 139 @media (max-width: 1750px) ··· 196 195 min-height: 64px 197 196 cursor: pointer 198 197 199 - background-image: url("/cdn/chevron-down-128-F6F1F1.png") 198 + background-image: url("/chevron-down-128-F6F1F1.png") 200 199 background-repeat: no-repeat 201 200 background-position: center 202 201 ··· 252 251 width: 100px 253 252 main 254 253 flex-wrap: wrap 254 + box-shadow: $shadow-lv2 255 255 .item 256 256 z-index: 2 257 257 overflow: hidden 258 258 position: relative 259 259 width: calc(100% / 8) 260 + transition: transform $transition-item, box-shadow $transition-item 260 261 .overlay 261 262 z-index: 987654 262 263 width: 100% ··· 282 283 background-size: 101% auto 283 284 background-position-y: center 284 285 position: relative 285 - transition: transform $transition-item, box-shadow $transition-item 286 286 &:hover 287 287 transform: scale(1.1) 288 288 box-shadow: $shadow-items ··· 290 290 opacity: 0.25 291 291 .title 292 292 opacity: 1 293 - box-shadow: $shadow-lv2 294 293 &.adjust-height .item 295 294 @media (max-width: 2000px) 296 295 width: calc(100% / 7) ··· 380 379 float: right 381 380 .github-link 382 381 background-size: 18px 383 - background-image: url("/cdn/logos/project/github.png") 382 + background-image: url("/logos/project/github.png") 384 383 padding-right: 2px 385 384 .link 386 385 background-size: 16px 387 - background-image: url("/cdn/open-in-new.png") 386 + background-image: url("/open-in-new.png") 388 387 padding-left: 2px 389 388 390 389 .footnote
-342
index.html
··· 1 - <!DOCTYPE html> 2 - 3 - <head> 4 - <title>KH</title> 5 - <link href="/cdn/favicon.ico" rel="icon" type="image/x-icon" /> 6 - <link rel="stylesheet" type="text/css" href="/css/global.css?r=<?=rand(0,999)?>"> 7 - </head> 8 - 9 - <body> 10 - <div class="top"> 11 - <header class="page"> 12 - <img src="/cdn/logos/kh-transparent.png"> 13 - <p class="one">Hi.</p> 14 - </header> 15 - <p class="two">I make things.</p> 16 - <section class="projects flex-row"> 17 - <div class="chevron"></div> 18 - <p class="three">Let me</span> show you.</p> 19 - </section> 20 - </div> 21 - <div class="bottom"> 22 - <div class="spacer"> 23 - <div class="personal-links flex-row"> 24 - <a target="_blank" class="twitter" title="Twitter" 25 - href="https://twitter.com/SpectralKH"></a> 26 - <a class="discord" title="Discord"> 27 - <div class="popup hidden"> 28 - <input readonly class="popup-input" 29 - value="KH | Synctan &amp; Lacuna#6425"></input> 30 - </div> 31 - </a> 32 - <a target="_blank" class="facebook" title="Facebook" 33 - href="https://www.facebook.com/SpectralKH"></a> 34 - <a target="_blank" class="youtube" title="YouTube" 35 - href="https://youtube.com/SpectralKH"></a> 36 - <a target="_blank" class="soundcloud" title="SoundCloud" 37 - href="https://soundcloud.com/SpectralKH"></a> 38 - <a target="_blank" class="github" title="GitHub" 39 - href="https://github.com/SpectralKH"></a> 40 - <a target="_blank" class="instagram" title="Instagram" 41 - href="https://www.instagram.com/spckh/"></a> 42 - <!-- <a target="_blank" class="email" title="email" href="mailto:kasperkh.kh@gmail.com"></a> --> 43 - <a class="email" title="Email"> 44 - <div class="popup hidden"> 45 - <input readonly class="popup-input" value="kasperkh.kh@gmail.com"></input> 46 - </div> 47 - </a> 48 - </div> 49 - </div> 50 - 51 - <section class="synctan adjust-height"> 52 - <header class="flex-row"> 53 - <a target="_blank" href="https://www.youtube.com/Synctan"> 54 - <img src="/cdn/logos/project/synctan.png"> 55 - </a> 56 - <div class="text r"> 57 - <p class="title"> 58 - <a target="_blank" href="https://www.youtube.com/Synctan">Synctan</a> 59 - </p> 60 - <p class="description">A YouTube channel where I curate all kinds of music, 61 - every Monday, Wednesday and Friday.</p> 62 - </div> 63 - </header> 64 - <main class="adjust-height flex-row"> 65 - <a target="_blank" class="item"> 66 - <div class="overlay"></div> 67 - <p class="title"></p> 68 - <div class="img"></div> 69 - </a> 70 - <a target="_blank" class="item"> 71 - <div class="overlay"></div> 72 - <p class="title"></p> 73 - <div class="img"></div> 74 - </a> 75 - <a target="_blank" class="item"> 76 - <div class="overlay"></div> 77 - <p class="title"></p> 78 - <div class="img"></div> 79 - </a> 80 - <a target="_blank" class="item"> 81 - <div class="overlay"></div> 82 - <p class="title"></p> 83 - <div class="img"></div> 84 - </a> 85 - <a target="_blank" class="item"> 86 - <div class="overlay"></div> 87 - <p class="title"></p> 88 - <div class="img"></div> 89 - </a> 90 - <a target="_blank" class="item"> 91 - <div class="overlay"></div> 92 - <p class="title"></p> 93 - <div class="img"></div> 94 - </a> 95 - <a target="_blank" class="item"> 96 - <div class="overlay"></div> 97 - <p class="title"></p> 98 - <div class="img"></div> 99 - </a> 100 - <a target="_blank" class="item"> 101 - <div class="overlay"></div> 102 - <p class="title"></p> 103 - <div class="img"></div> 104 - </a> 105 - </main> 106 - </section> 107 - 108 - <section class="lacuna"> 109 - <header class="flex-row"> 110 - <div class="text l"> 111 - <p class="title"> 112 - <a target="_blank" href="https://soundcloud.com/LacunaRecords">Lacuna 113 - Records</a> 114 - </p> 115 - <p class="description">I am a co-owner of this independent indie record label, 116 - with a nice community behind it.</p> 117 - </div> 118 - <a target="_blank" href="https://soundcloud.com/LacunaRecords"> 119 - <img src="/cdn/logos/project/lacuna.png"> 120 - </a> 121 - </header> 122 - <main class="flex-row"><a target="_blank" class="item"> 123 - <div class="overlay"></div> 124 - <p class="title"></p> 125 - <div class="img"></div> 126 - </a> 127 - <a target="_blank" class="item"> 128 - <div class="overlay"></div> 129 - <p class="title"></p> 130 - <div class="img"></div> 131 - </a> 132 - <a target="_blank" class="item"> 133 - <div class="overlay"></div> 134 - <p class="title"></p> 135 - <div class="img"></div> 136 - </a> 137 - <a target="_blank" class="item"> 138 - <div class="overlay"></div> 139 - <p class="title"></p> 140 - <div class="img"></div> 141 - </a> 142 - <a target="_blank" class="item"> 143 - <div class="overlay"></div> 144 - <p class="title"></p> 145 - <div class="img"></div> 146 - </a> 147 - <a target="_blank" class="item"> 148 - <div class="overlay"></div> 149 - <p class="title"></p> 150 - <div class="img"></div> 151 - </a> 152 - <a target="_blank" class="item"> 153 - <div class="overlay"></div> 154 - <p class="title"></p> 155 - <div class="img"></div> 156 - </a> 157 - <a target="_blank" class="item"> 158 - <div class="overlay"></div> 159 - <p class="title"></p> 160 - <div class="img"></div> 161 - </a> 162 - </main> 163 - </section> 164 - 165 - <section class="trap-united adjust-height"> 166 - <header class="flex-row"> 167 - <a target="_blank" href="https://www.youtube.com/TrapUnited"> 168 - <img src="/cdn/logos/project/trap-united.png"> 169 - </a> 170 - <div class="text r"> 171 - <p class="title"> 172 - <a target="_blank" href="https://www.youtube.com/TrapUnited">Trap United</a> 173 - </p> 174 - <p class="description">Another music curation channel, this one with daily trap 175 - music uploads, and part of to the "United" channel network.</p> 176 - </div> 177 - </header> 178 - <main class="adjust-height flex-row"><a target="_blank" class="item"> 179 - <div class="overlay"></div> 180 - <p class="title"></p> 181 - <div class="img"></div> 182 - </a> 183 - <a target="_blank" class="item"> 184 - <div class="overlay"></div> 185 - <p class="title"></p> 186 - <div class="img"></div> 187 - </a> 188 - <a target="_blank" class="item"> 189 - <div class="overlay"></div> 190 - <p class="title"></p> 191 - <div class="img"></div> 192 - </a> 193 - <a target="_blank" class="item"> 194 - <div class="overlay"></div> 195 - <p class="title"></p> 196 - <div class="img"></div> 197 - </a> 198 - <a target="_blank" class="item"> 199 - <div class="overlay"></div> 200 - <p class="title"></p> 201 - <div class="img"></div> 202 - </a> 203 - <a target="_blank" class="item"> 204 - <div class="overlay"></div> 205 - <p class="title"></p> 206 - <div class="img"></div> 207 - </a> 208 - <a target="_blank" class="item"> 209 - <div class="overlay"></div> 210 - <p class="title"></p> 211 - <div class="img"></div> 212 - </a> 213 - <a target="_blank" class="item"> 214 - <div class="overlay"></div> 215 - <p class="title"></p> 216 - <div class="img"></div> 217 - </a> 218 - </main> 219 - </section> 220 - 221 - <section class="dev"> 222 - <header class="flex-row"> 223 - <div class="text l"> 224 - <p class="title"> 225 - <a target="_blank" href="https://github.com/SpectralKH">Dev</a> 226 - </p> 227 - <p class="description">HTML5, Sass, JS, jQuery, PHP, MySQL. It's a start.</p> 228 - </div> 229 - <a target="_blank" href="https://github.com/SpectralKH"> 230 - <img src="/cdn/logos/project/github.png"> 231 - </a> 232 - </header> 233 - <main class="adjust-height flex-row"> 234 - <div target="_blank" class="item"> 235 - <div class="overlay"></div> 236 - <p class="title">Nelation</p> 237 - <p class="description">Website for the record label Nelation.</p> 238 - <div class="links"> 239 - <a class="link" href=""></a> 240 - <a class="github-link" href=""></a> 241 - </div> 242 - <div class="img"></div> 243 - </div> 244 - <div target="_blank" class="item"> 245 - <div class="overlay"></div> 246 - <p class="title">Personal Website</p> 247 - <p class="description">I think it's self explanatory</p> 248 - <div class="links"> 249 - <a class="link" href="http://kh.henningsen.se/"></a> 250 - <a class="github-link" href=""></a> 251 - </div> 252 - <div class="img"></div> 253 - </div> 254 - </main> 255 - </section> 256 - 257 - <section class="video adjust-height"> 258 - <header class="flex-row"> 259 - <a target="_blank" href="https://www.youtube.com/user/SpectralKH"> 260 - <img src="/cdn/logos/project/youtube.png"> 261 - </a> 262 - <div class="text r"> 263 - <p class="title"> 264 - <a target="_blank" href="https://www.youtube.com/user/SpectralKH">Video</a> 265 - </p> 266 - <p class="description">I'm experienced with After Effects and Final Cut. My 267 - personal YouTube channel has audio visualizers, animations, sketches etc. 268 - </p> 269 - </div> 270 - </header> 271 - <main class="adjust-height flex-row"><a target="_blank" class="item"> 272 - <div class="overlay"></div> 273 - <p class="title"></p> 274 - <div class="img"></div> 275 - </a> 276 - <a target="_blank" class="item"> 277 - <div class="overlay"></div> 278 - <p class="title"></p> 279 - <div class="img"></div> 280 - </a> 281 - <a target="_blank" class="item"> 282 - <div class="overlay"></div> 283 - <p class="title"></p> 284 - <div class="img"></div> 285 - </a> 286 - <a target="_blank" class="item"> 287 - <div class="overlay"></div> 288 - <p class="title"></p> 289 - <div class="img"></div> 290 - </a> 291 - <a target="_blank" class="item"> 292 - <div class="overlay"></div> 293 - <p class="title"></p> 294 - <div class="img"></div> 295 - </a> 296 - <a target="_blank" class="item"> 297 - <div class="overlay"></div> 298 - <p class="title"></p> 299 - <div class="img"></div> 300 - </a> 301 - <a target="_blank" class="item"> 302 - <div class="overlay"></div> 303 - <p class="title"></p> 304 - <div class="img"></div> 305 - </a> 306 - <a target="_blank" class="item"> 307 - <div class="overlay"></div> 308 - <p class="title"></p> 309 - <div class="img"></div> 310 - </a> 311 - </main> 312 - </section> 313 - 314 - <!-- <section class="minecraft"> 315 - <header class="flex-row"> 316 - <div class="text l"> 317 - <p class="title"> 318 - <a target="_blank" 319 - href="http://www.planetminecraft.com/member/SpectralKH/">Minecraft</a> 320 - </p> 321 - <p class="description">Minecraft was a big part of my life previously. I 322 - gathered lots of friends, and had fun with different projects.</p> 323 - </div> 324 - <a target="_blank" href="http://www.planetminecraft.com/member/SpectralKH/"> 325 - <img src="/cdn/logos/project/minecraft.png"> 326 - </a> 327 - </header> 328 - <main> 329 - Maybe I'll care to add something here eventually.<br> 330 - http://www.planetminecraft.com/member/spectralkh/<br> 331 - http://www.planetminecraft.com/mod/spectralguns/<br> 332 - http://www.planetminecraft.com/member/nectoxbt/<br> 333 - </main> 334 - </section> 335 - <p class="footnote">This piece of text is dedicated god, aka Elon Musk</p> --> 336 - </div> 337 - <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script> 338 - <script src="https://apis.google.com/js/api.js"></script> 339 - <script src="https://connect.soundcloud.com/sdk/sdk-3.1.2.js"></script> 340 - <script src="/js/smoothscroll.js?r=<?=rand(0,999)?>"></script> 341 - <script src="/js/home.js?r=<?=rand(0,999)?>"></script> 342 - </body>
-150
js/home.js
··· 1 - // YouTube API 2 - function start() { 3 - gapi.client.init({ 4 - "apiKey": "AIzaSyBnQnpboWUfWyR8aW6HuQV5MAlxZ5FQ090", 5 - "discoveryDocs": ["https://www.googleapis.com/discovery/v1/apis/youtube/v3/rest"] 6 - }).then(function() { 7 - 8 - // SYNCTAN 9 - // API request details 10 - var requestSynctan = gapi.client.youtube.playlistItems.list({ 11 - part: "snippet", 12 - playlistId: "UUoMimPRPeR28TM3_0cinjVQ", 13 - maxResults: 8 14 - }); 15 - // Perform API request, process response 16 - requestSynctan.execute(function(response) { 17 - var nthChild, arrayLength = response.result.items.length; 18 - for (var i = 0; i < arrayLength; i++) { 19 - nthChild = i+1; 20 - $("section.synctan .item:nth-child("+nthChild+")") 21 - .attr("href", "https://www.youtube.com/watch?v="+response.result.items[i].snippet.resourceId.videoId); 22 - $("section.synctan .item:nth-child("+nthChild+") div.img") 23 - .attr("style", 'background-image: url("'+response.result.items[i].snippet.thumbnails.high.url+'")') 24 - .siblings(".title").html(response.result.items[i].snippet.title); 25 - } 26 - }); 27 - 28 - // TRAP UNITED 29 - // API request details 30 - var requestTrapUnited = gapi.client.youtube.playlistItems.list({ 31 - part: "snippet", 32 - playlistId: "UU0kHs8aHGQEtQODjt9XHjfQ", 33 - maxResults: 8 34 - }); 35 - // Perform API request, process response 36 - requestTrapUnited.execute(function(response) { 37 - var nthChild, arrayLength = response.result.items.length; 38 - for (var i = 0; i < arrayLength; i++) { 39 - nthChild = i+1; 40 - $("section.trap-united .item:nth-child("+nthChild+")") 41 - .attr("href", "https://www.youtube.com/watch?v="+response.result.items[i].snippet.resourceId.videoId); 42 - $("section.trap-united .item:nth-child("+nthChild+") div.img") 43 - .attr("style", 'background-image: url("'+response.result.items[i].snippet.thumbnails.high.url+'")') 44 - .siblings(".title").html(response.result.items[i].snippet.title); 45 - } 46 - }); 47 - 48 - // VIDEO (personal) 49 - // API request details 50 - var requestVideo = gapi.client.youtube.playlistItems.list({ 51 - part: "snippet", 52 - playlistId: "UUy6jcAF6fZGttRvihyQixbA", 53 - maxResults: 8 54 - }); 55 - // Perform API request, process response 56 - requestVideo.execute(function(response) { 57 - var nthChild, arrayLength = response.result.items.length; 58 - for (var i = 0; i < arrayLength; i++) { 59 - nthChild = i+1; 60 - $("section.video .item:nth-child("+nthChild+") div.img") 61 - .attr("style", 'background-image: url("'+response.result.items[i].snippet.thumbnails.high.url+'")') 62 - .siblings(".title").html(response.result.items[i].snippet.title) 63 - .parent().attr("href", "https://www.youtube.com/watch?v="+response.result.items[i].snippet.resourceId.videoId); 64 - } 65 - }); 66 - 67 - }); 68 - } 69 - gapi.load("client", start); 70 - 71 - // SoundCloud API 72 - SC.initialize({ 73 - client_id: "6ibYZTmF5qnpvp88S9V3werVrC18WCdC" //change 74 - }); 75 - SC.get("/users/247370320/tracks", {limit: 8}).then(function(tracks) { 76 - for (var i = 0; i < tracks.length; i++) { 77 - nthChild = i+1; 78 - // coverSrc = JSON.stringify(tracks[i].artwork_url.replace("large", "t300x300")); 79 - $("section.lacuna .item:nth-child("+nthChild+") div.img") 80 - .attr("style", 'background-image: url("'+tracks[i].artwork_url.replace("large", "t300x300")+'")') 81 - .parent().attr("href", tracks[i].permalink_url); 82 - } 83 - }); 84 - 85 - // Responsive YT thumbnails/SC covers 86 - function resizeStuff() { 87 - var newHeight = $("section.adjust-height .item").width() / 16 * 9; 88 - $("section.adjust-height .item").css("height", newHeight+"px"); 89 - 90 - var newHeight = $("section:not(.adjust-height) .item").width(); 91 - $("section:not(.adjust-height) .item").css("height", newHeight+"px"); 92 - } 93 - resizeStuff(); 94 - $(window).resize(resizeStuff); 95 - 96 - // Image hover z-index fix 97 - var high = 3; 98 - $(".item").hover(function() { 99 - $(this).css({"z-index": high}); 100 - high++; 101 - }); 102 - 103 - // Chevron scroller 104 - var spacerHeight; 105 - $(".chevron").on("click", function() { 106 - spacerHeight = $(".spacer").height(); 107 - console.log(spacerHeight); 108 - window.scroll({ top: spacerHeight, left: 0, behavior: "smooth" }); 109 - }); 110 - 111 - // Discord link popup 112 - $("body").on("click", function(e) { 113 - // Stop if input field was clicked 114 - if (!$(e.target).hasClass("popup-input")) { 115 - // If icon was clicked 116 - if ($(e.target).hasClass("discord")) { 117 - // Select text if hidden 118 - if ($(e.target).children(".popup").hasClass("hidden")) { 119 - $(e.target).children(".popup").children("input").select(); 120 - } 121 - // Toggle visibility 122 - $(e.target).children(".popup").toggleClass("hidden"); 123 - } 124 - // If hidden and icon was not clicked 125 - if (!$(".discord .popup").hasClass("hidden") && !$(e.target).hasClass("discord")) { 126 - // Hide 127 - $(".discord .popup").addClass("hidden"); 128 - } 129 - } 130 - }); 131 - // Email link popup 132 - $("body").on("click", function(e) { 133 - // Stop if input field was clicked 134 - if (!$(e.target).hasClass("popup-input")) { 135 - // If icon was clicked 136 - if ($(e.target).hasClass("email")) { 137 - // Select text if hidden 138 - if ($(e.target).children(".popup").hasClass("hidden")) { 139 - $(e.target).children(".popup").children("input").select(); 140 - } 141 - // Toggle visibility 142 - $(e.target).children(".popup").toggleClass("hidden"); 143 - } 144 - // If hidden and icon was not clicked 145 - if (!$(".email .popup").hasClass("hidden") && !$(e.target).hasClass("email")) { 146 - // Hide 147 - $(".email .popup").addClass("hidden"); 148 - } 149 - } 150 - });
-314
js/smoothscroll.js
··· 1 - (function(w, d, undefined) { 2 - 'use strict'; 3 - 4 - /* 5 - * aliases 6 - * w: window global object 7 - * d: document 8 - * undefined: undefined 9 - */ 10 - 11 - // polyfill 12 - function polyfill() { 13 - // return when scrollBehavior interface is supported 14 - if ('scrollBehavior' in d.documentElement.style) { 15 - return; 16 - } 17 - 18 - /* 19 - * globals 20 - */ 21 - var Element = w.HTMLElement || w.Element; 22 - var SCROLL_TIME = 468; 23 - 24 - /* 25 - * object gathering original scroll methods 26 - */ 27 - var original = { 28 - scroll: w.scroll || w.scrollTo, 29 - scrollBy: w.scrollBy, 30 - elScroll: Element.prototype.scroll || scrollElement, 31 - scrollIntoView: Element.prototype.scrollIntoView 32 - }; 33 - 34 - /* 35 - * define timing method 36 - */ 37 - var now = w.performance && w.performance.now 38 - ? w.performance.now.bind(w.performance) : Date.now; 39 - 40 - /** 41 - * changes scroll position inside an element 42 - * @method scrollElement 43 - * @param {Number} x 44 - * @param {Number} y 45 - */ 46 - function scrollElement(x, y) { 47 - this.scrollLeft = x; 48 - this.scrollTop = y; 49 - } 50 - 51 - /** 52 - * returns result of applying ease math function to a number 53 - * @method ease 54 - * @param {Number} k 55 - * @returns {Number} 56 - */ 57 - function ease(k) { 58 - return 0.5 * (1 - Math.cos(Math.PI * k)); 59 - } 60 - 61 - /** 62 - * indicates if a smooth behavior should be applied 63 - * @method shouldBailOut 64 - * @param {Number|Object} x 65 - * @returns {Boolean} 66 - */ 67 - function shouldBailOut(x) { 68 - if (typeof x !== 'object' 69 - || x === null 70 - || x.behavior === undefined 71 - || x.behavior === 'auto' 72 - || x.behavior === 'instant') { 73 - // first arg not an object/null 74 - // or behavior is auto, instant or undefined 75 - return true; 76 - } 77 - 78 - if (typeof x === 'object' 79 - && x.behavior === 'smooth') { 80 - // first argument is an object and behavior is smooth 81 - return false; 82 - } 83 - 84 - // throw error when behavior is not supported 85 - throw new TypeError('behavior not valid'); 86 - } 87 - 88 - /** 89 - * finds scrollable parent of an element 90 - * @method findScrollableParent 91 - * @param {Node} el 92 - * @returns {Node} el 93 - */ 94 - function findScrollableParent(el) { 95 - var isBody; 96 - var hasScrollableSpace; 97 - var hasVisibleOverflow; 98 - 99 - do { 100 - el = el.parentNode; 101 - 102 - // set condition variables 103 - isBody = el === d.body; 104 - hasScrollableSpace = 105 - el.clientHeight < el.scrollHeight || 106 - el.clientWidth < el.scrollWidth; 107 - hasVisibleOverflow = 108 - w.getComputedStyle(el, null).overflow === 'visible'; 109 - } while (!isBody && !(hasScrollableSpace && !hasVisibleOverflow)); 110 - 111 - isBody = hasScrollableSpace = hasVisibleOverflow = null; 112 - 113 - return el; 114 - } 115 - 116 - /** 117 - * self invoked function that, given a context, steps through scrolling 118 - * @method step 119 - * @param {Object} context 120 - */ 121 - function step(context) { 122 - var time = now(); 123 - var value; 124 - var currentX; 125 - var currentY; 126 - var elapsed = (time - context.startTime) / SCROLL_TIME; 127 - 128 - // avoid elapsed times higher than one 129 - elapsed = elapsed > 1 ? 1 : elapsed; 130 - 131 - // apply easing to elapsed time 132 - value = ease(elapsed); 133 - 134 - currentX = context.startX + (context.x - context.startX) * value; 135 - currentY = context.startY + (context.y - context.startY) * value; 136 - 137 - context.method.call(context.scrollable, currentX, currentY); 138 - 139 - // scroll more if we have not reached our destination 140 - if (currentX !== context.x || currentY !== context.y) { 141 - w.requestAnimationFrame(step.bind(w, context)); 142 - } 143 - } 144 - 145 - /** 146 - * scrolls window with a smooth behavior 147 - * @method smoothScroll 148 - * @param {Object|Node} el 149 - * @param {Number} x 150 - * @param {Number} y 151 - */ 152 - function smoothScroll(el, x, y) { 153 - var scrollable; 154 - var startX; 155 - var startY; 156 - var method; 157 - var startTime = now(); 158 - 159 - // define scroll context 160 - if (el === d.body) { 161 - scrollable = w; 162 - startX = w.scrollX || w.pageXOffset; 163 - startY = w.scrollY || w.pageYOffset; 164 - method = original.scroll; 165 - } else { 166 - scrollable = el; 167 - startX = el.scrollLeft; 168 - startY = el.scrollTop; 169 - method = scrollElement; 170 - } 171 - 172 - // scroll looping over a frame 173 - step({ 174 - scrollable: scrollable, 175 - method: method, 176 - startTime: startTime, 177 - startX: startX, 178 - startY: startY, 179 - x: x, 180 - y: y 181 - }); 182 - } 183 - 184 - /* 185 - * ORIGINAL METHODS OVERRIDES 186 - */ 187 - 188 - // w.scroll and w.scrollTo 189 - w.scroll = w.scrollTo = function() { 190 - // avoid smooth behavior if not required 191 - if (shouldBailOut(arguments[0])) { 192 - original.scroll.call( 193 - w, 194 - arguments[0].left || arguments[0], 195 - arguments[0].top || arguments[1] 196 - ); 197 - return; 198 - } 199 - 200 - // LET THE SMOOTHNESS BEGIN! 201 - smoothScroll.call( 202 - w, 203 - d.body, 204 - ~~arguments[0].left, 205 - ~~arguments[0].top 206 - ); 207 - }; 208 - 209 - // w.scrollBy 210 - w.scrollBy = function() { 211 - // avoid smooth behavior if not required 212 - if (shouldBailOut(arguments[0])) { 213 - original.scrollBy.call( 214 - w, 215 - arguments[0].left || arguments[0], 216 - arguments[0].top || arguments[1] 217 - ); 218 - return; 219 - } 220 - 221 - // LET THE SMOOTHNESS BEGIN! 222 - smoothScroll.call( 223 - w, 224 - d.body, 225 - ~~arguments[0].left + (w.scrollX || w.pageXOffset), 226 - ~~arguments[0].top + (w.scrollY || w.pageYOffset) 227 - ); 228 - }; 229 - 230 - // Element.prototype.scroll and Element.prototype.scrollTo 231 - Element.prototype.scroll = Element.prototype.scrollTo = function() { 232 - // avoid smooth behavior if not required 233 - if (shouldBailOut(arguments[0])) { 234 - original.elScroll.call( 235 - this, 236 - arguments[0].left || arguments[0], 237 - arguments[0].top || arguments[1] 238 - ); 239 - return; 240 - } 241 - 242 - // LET THE SMOOTHNESS BEGIN! 243 - smoothScroll.call( 244 - this, 245 - this, 246 - arguments[0].left, 247 - arguments[0].top 248 - ); 249 - }; 250 - 251 - // Element.prototype.scrollBy 252 - Element.prototype.scrollBy = function() { 253 - var arg0 = arguments[0]; 254 - 255 - if (typeof arg0 === 'object') { 256 - this.scroll({ 257 - left: arg0.left + this.scrollLeft, 258 - top: arg0.top + this.scrollTop, 259 - behavior: arg0.behavior 260 - }); 261 - } else { 262 - this.scroll( 263 - this.scrollLeft + arg0, 264 - this.scrollTop + arguments[1] 265 - ); 266 - } 267 - }; 268 - 269 - // Element.prototype.scrollIntoView 270 - Element.prototype.scrollIntoView = function() { 271 - // avoid smooth behavior if not required 272 - if (shouldBailOut(arguments[0])) { 273 - original.scrollIntoView.call(this, arguments[0] || true); 274 - return; 275 - } 276 - 277 - // LET THE SMOOTHNESS BEGIN! 278 - var scrollableParent = findScrollableParent(this); 279 - var parentRects = scrollableParent.getBoundingClientRect(); 280 - var clientRects = this.getBoundingClientRect(); 281 - 282 - if (scrollableParent !== d.body) { 283 - // reveal element inside parent 284 - smoothScroll.call( 285 - this, 286 - scrollableParent, 287 - scrollableParent.scrollLeft + clientRects.left - parentRects.left, 288 - scrollableParent.scrollTop + clientRects.top - parentRects.top 289 - ); 290 - // reveal parent in viewport 291 - w.scrollBy({ 292 - left: parentRects.left, 293 - top: parentRects.top, 294 - behavior: 'smooth' 295 - }); 296 - } else { 297 - // reveal element in viewport 298 - w.scrollBy({ 299 - left: clientRects.left, 300 - top: clientRects.top, 301 - behavior: 'smooth' 302 - }); 303 - } 304 - }; 305 - } 306 - 307 - if (typeof exports === 'object') { 308 - // commonjs 309 - module.exports = { polyfill: polyfill }; 310 - } else { 311 - // global 312 - polyfill(); 313 - } 314 - })(window, document);
+3153
package-lock.json
··· 1 + { 2 + "name": "v3.kasper.space", 3 + "lockfileVersion": 3, 4 + "requires": true, 5 + "packages": { 6 + "": { 7 + "devDependencies": { 8 + "@sveltejs/adapter-static": "^2.0.3", 9 + "@sveltejs/kit": "^1.22.4", 10 + "@types/jquery": "^3.5.16", 11 + "@typescript-eslint/eslint-plugin": "^6.2.1", 12 + "@typescript-eslint/parser": "^6.2.1", 13 + "eslint": "^8.46.0", 14 + "eslint-config-prettier": "^8.10.0", 15 + "eslint-plugin-svelte": "^2.32.4", 16 + "fast-xml-parser": "^4.2.7", 17 + "jquery": "^3.7.0", 18 + "prettier": "^3.0.1", 19 + "prettier-plugin-svelte": "^3.0.3", 20 + "sass": "^1.64.2", 21 + "svelte": "^4.1.2", 22 + "svelte-check": "^3.4.6", 23 + "typescript": "^5.1.6", 24 + "vite": "^4.4.8" 25 + } 26 + }, 27 + "node_modules/@aashutoshrathi/word-wrap": { 28 + "version": "1.2.6", 29 + "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz", 30 + "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==", 31 + "dev": true, 32 + "engines": { 33 + "node": ">=0.10.0" 34 + } 35 + }, 36 + "node_modules/@ampproject/remapping": { 37 + "version": "2.2.1", 38 + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz", 39 + "integrity": "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==", 40 + "dev": true, 41 + "dependencies": { 42 + "@jridgewell/gen-mapping": "^0.3.0", 43 + "@jridgewell/trace-mapping": "^0.3.9" 44 + }, 45 + "engines": { 46 + "node": ">=6.0.0" 47 + } 48 + }, 49 + "node_modules/@esbuild/android-arm": { 50 + "version": "0.18.17", 51 + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.18.17.tgz", 52 + "integrity": "sha512-wHsmJG/dnL3OkpAcwbgoBTTMHVi4Uyou3F5mf58ZtmUyIKfcdA7TROav/6tCzET4A3QW2Q2FC+eFneMU+iyOxg==", 53 + "cpu": [ 54 + "arm" 55 + ], 56 + "dev": true, 57 + "optional": true, 58 + "os": [ 59 + "android" 60 + ], 61 + "engines": { 62 + "node": ">=12" 63 + } 64 + }, 65 + "node_modules/@esbuild/android-arm64": { 66 + "version": "0.18.17", 67 + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.18.17.tgz", 68 + "integrity": "sha512-9np+YYdNDed5+Jgr1TdWBsozZ85U1Oa3xW0c7TWqH0y2aGghXtZsuT8nYRbzOMcl0bXZXjOGbksoTtVOlWrRZg==", 69 + "cpu": [ 70 + "arm64" 71 + ], 72 + "dev": true, 73 + "optional": true, 74 + "os": [ 75 + "android" 76 + ], 77 + "engines": { 78 + "node": ">=12" 79 + } 80 + }, 81 + "node_modules/@esbuild/android-x64": { 82 + "version": "0.18.17", 83 + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.18.17.tgz", 84 + "integrity": "sha512-O+FeWB/+xya0aLg23hHEM2E3hbfwZzjqumKMSIqcHbNvDa+dza2D0yLuymRBQQnC34CWrsJUXyH2MG5VnLd6uw==", 85 + "cpu": [ 86 + "x64" 87 + ], 88 + "dev": true, 89 + "optional": true, 90 + "os": [ 91 + "android" 92 + ], 93 + "engines": { 94 + "node": ">=12" 95 + } 96 + }, 97 + "node_modules/@esbuild/darwin-arm64": { 98 + "version": "0.18.17", 99 + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.18.17.tgz", 100 + "integrity": "sha512-M9uJ9VSB1oli2BE/dJs3zVr9kcCBBsE883prage1NWz6pBS++1oNn/7soPNS3+1DGj0FrkSvnED4Bmlu1VAE9g==", 101 + "cpu": [ 102 + "arm64" 103 + ], 104 + "dev": true, 105 + "optional": true, 106 + "os": [ 107 + "darwin" 108 + ], 109 + "engines": { 110 + "node": ">=12" 111 + } 112 + }, 113 + "node_modules/@esbuild/darwin-x64": { 114 + "version": "0.18.17", 115 + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.18.17.tgz", 116 + "integrity": "sha512-XDre+J5YeIJDMfp3n0279DFNrGCXlxOuGsWIkRb1NThMZ0BsrWXoTg23Jer7fEXQ9Ye5QjrvXpxnhzl3bHtk0g==", 117 + "cpu": [ 118 + "x64" 119 + ], 120 + "dev": true, 121 + "optional": true, 122 + "os": [ 123 + "darwin" 124 + ], 125 + "engines": { 126 + "node": ">=12" 127 + } 128 + }, 129 + "node_modules/@esbuild/freebsd-arm64": { 130 + "version": "0.18.17", 131 + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.18.17.tgz", 132 + "integrity": "sha512-cjTzGa3QlNfERa0+ptykyxs5A6FEUQQF0MuilYXYBGdBxD3vxJcKnzDlhDCa1VAJCmAxed6mYhA2KaJIbtiNuQ==", 133 + "cpu": [ 134 + "arm64" 135 + ], 136 + "dev": true, 137 + "optional": true, 138 + "os": [ 139 + "freebsd" 140 + ], 141 + "engines": { 142 + "node": ">=12" 143 + } 144 + }, 145 + "node_modules/@esbuild/freebsd-x64": { 146 + "version": "0.18.17", 147 + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.18.17.tgz", 148 + "integrity": "sha512-sOxEvR8d7V7Kw8QqzxWc7bFfnWnGdaFBut1dRUYtu+EIRXefBc/eIsiUiShnW0hM3FmQ5Zf27suDuHsKgZ5QrA==", 149 + "cpu": [ 150 + "x64" 151 + ], 152 + "dev": true, 153 + "optional": true, 154 + "os": [ 155 + "freebsd" 156 + ], 157 + "engines": { 158 + "node": ">=12" 159 + } 160 + }, 161 + "node_modules/@esbuild/linux-arm": { 162 + "version": "0.18.17", 163 + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.18.17.tgz", 164 + "integrity": "sha512-2d3Lw6wkwgSLC2fIvXKoMNGVaeY8qdN0IC3rfuVxJp89CRfA3e3VqWifGDfuakPmp90+ZirmTfye1n4ncjv2lg==", 165 + "cpu": [ 166 + "arm" 167 + ], 168 + "dev": true, 169 + "optional": true, 170 + "os": [ 171 + "linux" 172 + ], 173 + "engines": { 174 + "node": ">=12" 175 + } 176 + }, 177 + "node_modules/@esbuild/linux-arm64": { 178 + "version": "0.18.17", 179 + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.18.17.tgz", 180 + "integrity": "sha512-c9w3tE7qA3CYWjT+M3BMbwMt+0JYOp3vCMKgVBrCl1nwjAlOMYzEo+gG7QaZ9AtqZFj5MbUc885wuBBmu6aADQ==", 181 + "cpu": [ 182 + "arm64" 183 + ], 184 + "dev": true, 185 + "optional": true, 186 + "os": [ 187 + "linux" 188 + ], 189 + "engines": { 190 + "node": ">=12" 191 + } 192 + }, 193 + "node_modules/@esbuild/linux-ia32": { 194 + "version": "0.18.17", 195 + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.18.17.tgz", 196 + "integrity": "sha512-1DS9F966pn5pPnqXYz16dQqWIB0dmDfAQZd6jSSpiT9eX1NzKh07J6VKR3AoXXXEk6CqZMojiVDSZi1SlmKVdg==", 197 + "cpu": [ 198 + "ia32" 199 + ], 200 + "dev": true, 201 + "optional": true, 202 + "os": [ 203 + "linux" 204 + ], 205 + "engines": { 206 + "node": ">=12" 207 + } 208 + }, 209 + "node_modules/@esbuild/linux-loong64": { 210 + "version": "0.18.17", 211 + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.18.17.tgz", 212 + "integrity": "sha512-EvLsxCk6ZF0fpCB6w6eOI2Fc8KW5N6sHlIovNe8uOFObL2O+Mr0bflPHyHwLT6rwMg9r77WOAWb2FqCQrVnwFg==", 213 + "cpu": [ 214 + "loong64" 215 + ], 216 + "dev": true, 217 + "optional": true, 218 + "os": [ 219 + "linux" 220 + ], 221 + "engines": { 222 + "node": ">=12" 223 + } 224 + }, 225 + "node_modules/@esbuild/linux-mips64el": { 226 + "version": "0.18.17", 227 + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.18.17.tgz", 228 + "integrity": "sha512-e0bIdHA5p6l+lwqTE36NAW5hHtw2tNRmHlGBygZC14QObsA3bD4C6sXLJjvnDIjSKhW1/0S3eDy+QmX/uZWEYQ==", 229 + "cpu": [ 230 + "mips64el" 231 + ], 232 + "dev": true, 233 + "optional": true, 234 + "os": [ 235 + "linux" 236 + ], 237 + "engines": { 238 + "node": ">=12" 239 + } 240 + }, 241 + "node_modules/@esbuild/linux-ppc64": { 242 + "version": "0.18.17", 243 + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.18.17.tgz", 244 + "integrity": "sha512-BAAilJ0M5O2uMxHYGjFKn4nJKF6fNCdP1E0o5t5fvMYYzeIqy2JdAP88Az5LHt9qBoUa4tDaRpfWt21ep5/WqQ==", 245 + "cpu": [ 246 + "ppc64" 247 + ], 248 + "dev": true, 249 + "optional": true, 250 + "os": [ 251 + "linux" 252 + ], 253 + "engines": { 254 + "node": ">=12" 255 + } 256 + }, 257 + "node_modules/@esbuild/linux-riscv64": { 258 + "version": "0.18.17", 259 + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.18.17.tgz", 260 + "integrity": "sha512-Wh/HW2MPnC3b8BqRSIme/9Zhab36PPH+3zam5pqGRH4pE+4xTrVLx2+XdGp6fVS3L2x+DrsIcsbMleex8fbE6g==", 261 + "cpu": [ 262 + "riscv64" 263 + ], 264 + "dev": true, 265 + "optional": true, 266 + "os": [ 267 + "linux" 268 + ], 269 + "engines": { 270 + "node": ">=12" 271 + } 272 + }, 273 + "node_modules/@esbuild/linux-s390x": { 274 + "version": "0.18.17", 275 + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.18.17.tgz", 276 + "integrity": "sha512-j/34jAl3ul3PNcK3pfI0NSlBANduT2UO5kZ7FCaK33XFv3chDhICLY8wJJWIhiQ+YNdQ9dxqQctRg2bvrMlYgg==", 277 + "cpu": [ 278 + "s390x" 279 + ], 280 + "dev": true, 281 + "optional": true, 282 + "os": [ 283 + "linux" 284 + ], 285 + "engines": { 286 + "node": ">=12" 287 + } 288 + }, 289 + "node_modules/@esbuild/linux-x64": { 290 + "version": "0.18.17", 291 + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.18.17.tgz", 292 + "integrity": "sha512-QM50vJ/y+8I60qEmFxMoxIx4de03pGo2HwxdBeFd4nMh364X6TIBZ6VQ5UQmPbQWUVWHWws5MmJXlHAXvJEmpQ==", 293 + "cpu": [ 294 + "x64" 295 + ], 296 + "dev": true, 297 + "optional": true, 298 + "os": [ 299 + "linux" 300 + ], 301 + "engines": { 302 + "node": ">=12" 303 + } 304 + }, 305 + "node_modules/@esbuild/netbsd-x64": { 306 + "version": "0.18.17", 307 + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.18.17.tgz", 308 + "integrity": "sha512-/jGlhWR7Sj9JPZHzXyyMZ1RFMkNPjC6QIAan0sDOtIo2TYk3tZn5UDrkE0XgsTQCxWTTOcMPf9p6Rh2hXtl5TQ==", 309 + "cpu": [ 310 + "x64" 311 + ], 312 + "dev": true, 313 + "optional": true, 314 + "os": [ 315 + "netbsd" 316 + ], 317 + "engines": { 318 + "node": ">=12" 319 + } 320 + }, 321 + "node_modules/@esbuild/openbsd-x64": { 322 + "version": "0.18.17", 323 + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.18.17.tgz", 324 + "integrity": "sha512-rSEeYaGgyGGf4qZM2NonMhMOP/5EHp4u9ehFiBrg7stH6BYEEjlkVREuDEcQ0LfIl53OXLxNbfuIj7mr5m29TA==", 325 + "cpu": [ 326 + "x64" 327 + ], 328 + "dev": true, 329 + "optional": true, 330 + "os": [ 331 + "openbsd" 332 + ], 333 + "engines": { 334 + "node": ">=12" 335 + } 336 + }, 337 + "node_modules/@esbuild/sunos-x64": { 338 + "version": "0.18.17", 339 + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.18.17.tgz", 340 + "integrity": "sha512-Y7ZBbkLqlSgn4+zot4KUNYst0bFoO68tRgI6mY2FIM+b7ZbyNVtNbDP5y8qlu4/knZZ73fgJDlXID+ohY5zt5g==", 341 + "cpu": [ 342 + "x64" 343 + ], 344 + "dev": true, 345 + "optional": true, 346 + "os": [ 347 + "sunos" 348 + ], 349 + "engines": { 350 + "node": ">=12" 351 + } 352 + }, 353 + "node_modules/@esbuild/win32-arm64": { 354 + "version": "0.18.17", 355 + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.18.17.tgz", 356 + "integrity": "sha512-bwPmTJsEQcbZk26oYpc4c/8PvTY3J5/QK8jM19DVlEsAB41M39aWovWoHtNm78sd6ip6prilxeHosPADXtEJFw==", 357 + "cpu": [ 358 + "arm64" 359 + ], 360 + "dev": true, 361 + "optional": true, 362 + "os": [ 363 + "win32" 364 + ], 365 + "engines": { 366 + "node": ">=12" 367 + } 368 + }, 369 + "node_modules/@esbuild/win32-ia32": { 370 + "version": "0.18.17", 371 + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.18.17.tgz", 372 + "integrity": "sha512-H/XaPtPKli2MhW+3CQueo6Ni3Avggi6hP/YvgkEe1aSaxw+AeO8MFjq8DlgfTd9Iz4Yih3QCZI6YLMoyccnPRg==", 373 + "cpu": [ 374 + "ia32" 375 + ], 376 + "dev": true, 377 + "optional": true, 378 + "os": [ 379 + "win32" 380 + ], 381 + "engines": { 382 + "node": ">=12" 383 + } 384 + }, 385 + "node_modules/@esbuild/win32-x64": { 386 + "version": "0.18.17", 387 + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.18.17.tgz", 388 + "integrity": "sha512-fGEb8f2BSA3CW7riJVurug65ACLuQAzKq0SSqkY2b2yHHH0MzDfbLyKIGzHwOI/gkHcxM/leuSW6D5w/LMNitA==", 389 + "cpu": [ 390 + "x64" 391 + ], 392 + "dev": true, 393 + "optional": true, 394 + "os": [ 395 + "win32" 396 + ], 397 + "engines": { 398 + "node": ">=12" 399 + } 400 + }, 401 + "node_modules/@eslint-community/eslint-utils": { 402 + "version": "4.4.0", 403 + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", 404 + "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", 405 + "dev": true, 406 + "dependencies": { 407 + "eslint-visitor-keys": "^3.3.0" 408 + }, 409 + "engines": { 410 + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" 411 + }, 412 + "peerDependencies": { 413 + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" 414 + } 415 + }, 416 + "node_modules/@eslint-community/regexpp": { 417 + "version": "4.6.2", 418 + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.6.2.tgz", 419 + "integrity": "sha512-pPTNuaAG3QMH+buKyBIGJs3g/S5y0caxw0ygM3YyE6yJFySwiGGSzA+mM3KJ8QQvzeLh3blwgSonkFjgQdxzMw==", 420 + "dev": true, 421 + "engines": { 422 + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" 423 + } 424 + }, 425 + "node_modules/@eslint/eslintrc": { 426 + "version": "2.1.1", 427 + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.1.tgz", 428 + "integrity": "sha512-9t7ZA7NGGK8ckelF0PQCfcxIUzs1Md5rrO6U/c+FIQNanea5UZC0wqKXH4vHBccmu4ZJgZ2idtPeW7+Q2npOEA==", 429 + "dev": true, 430 + "dependencies": { 431 + "ajv": "^6.12.4", 432 + "debug": "^4.3.2", 433 + "espree": "^9.6.0", 434 + "globals": "^13.19.0", 435 + "ignore": "^5.2.0", 436 + "import-fresh": "^3.2.1", 437 + "js-yaml": "^4.1.0", 438 + "minimatch": "^3.1.2", 439 + "strip-json-comments": "^3.1.1" 440 + }, 441 + "engines": { 442 + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" 443 + }, 444 + "funding": { 445 + "url": "https://opencollective.com/eslint" 446 + } 447 + }, 448 + "node_modules/@eslint/js": { 449 + "version": "8.46.0", 450 + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.46.0.tgz", 451 + "integrity": "sha512-a8TLtmPi8xzPkCbp/OGFUo5yhRkHM2Ko9kOWP4znJr0WAhWyThaw3PnwX4vOTWOAMsV2uRt32PPDcEz63esSaA==", 452 + "dev": true, 453 + "engines": { 454 + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" 455 + } 456 + }, 457 + "node_modules/@humanwhocodes/config-array": { 458 + "version": "0.11.10", 459 + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.10.tgz", 460 + "integrity": "sha512-KVVjQmNUepDVGXNuoRRdmmEjruj0KfiGSbS8LVc12LMsWDQzRXJ0qdhN8L8uUigKpfEHRhlaQFY0ib1tnUbNeQ==", 461 + "dev": true, 462 + "dependencies": { 463 + "@humanwhocodes/object-schema": "^1.2.1", 464 + "debug": "^4.1.1", 465 + "minimatch": "^3.0.5" 466 + }, 467 + "engines": { 468 + "node": ">=10.10.0" 469 + } 470 + }, 471 + "node_modules/@humanwhocodes/module-importer": { 472 + "version": "1.0.1", 473 + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", 474 + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", 475 + "dev": true, 476 + "engines": { 477 + "node": ">=12.22" 478 + }, 479 + "funding": { 480 + "type": "github", 481 + "url": "https://github.com/sponsors/nzakas" 482 + } 483 + }, 484 + "node_modules/@humanwhocodes/object-schema": { 485 + "version": "1.2.1", 486 + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", 487 + "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", 488 + "dev": true 489 + }, 490 + "node_modules/@jridgewell/gen-mapping": { 491 + "version": "0.3.3", 492 + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", 493 + "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", 494 + "dev": true, 495 + "dependencies": { 496 + "@jridgewell/set-array": "^1.0.1", 497 + "@jridgewell/sourcemap-codec": "^1.4.10", 498 + "@jridgewell/trace-mapping": "^0.3.9" 499 + }, 500 + "engines": { 501 + "node": ">=6.0.0" 502 + } 503 + }, 504 + "node_modules/@jridgewell/resolve-uri": { 505 + "version": "3.1.0", 506 + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", 507 + "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", 508 + "dev": true, 509 + "engines": { 510 + "node": ">=6.0.0" 511 + } 512 + }, 513 + "node_modules/@jridgewell/set-array": { 514 + "version": "1.1.2", 515 + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", 516 + "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", 517 + "dev": true, 518 + "engines": { 519 + "node": ">=6.0.0" 520 + } 521 + }, 522 + "node_modules/@jridgewell/sourcemap-codec": { 523 + "version": "1.4.15", 524 + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", 525 + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", 526 + "dev": true 527 + }, 528 + "node_modules/@jridgewell/trace-mapping": { 529 + "version": "0.3.18", 530 + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.18.tgz", 531 + "integrity": "sha512-w+niJYzMHdd7USdiH2U6869nqhD2nbfZXND5Yp93qIbEmnDNk7PD48o+YchRVpzMU7M6jVCbenTR7PA1FLQ9pA==", 532 + "dev": true, 533 + "dependencies": { 534 + "@jridgewell/resolve-uri": "3.1.0", 535 + "@jridgewell/sourcemap-codec": "1.4.14" 536 + } 537 + }, 538 + "node_modules/@jridgewell/trace-mapping/node_modules/@jridgewell/sourcemap-codec": { 539 + "version": "1.4.14", 540 + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", 541 + "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", 542 + "dev": true 543 + }, 544 + "node_modules/@nodelib/fs.scandir": { 545 + "version": "2.1.5", 546 + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", 547 + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", 548 + "dev": true, 549 + "dependencies": { 550 + "@nodelib/fs.stat": "2.0.5", 551 + "run-parallel": "^1.1.9" 552 + }, 553 + "engines": { 554 + "node": ">= 8" 555 + } 556 + }, 557 + "node_modules/@nodelib/fs.stat": { 558 + "version": "2.0.5", 559 + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", 560 + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", 561 + "dev": true, 562 + "engines": { 563 + "node": ">= 8" 564 + } 565 + }, 566 + "node_modules/@nodelib/fs.walk": { 567 + "version": "1.2.8", 568 + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", 569 + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", 570 + "dev": true, 571 + "dependencies": { 572 + "@nodelib/fs.scandir": "2.1.5", 573 + "fastq": "^1.6.0" 574 + }, 575 + "engines": { 576 + "node": ">= 8" 577 + } 578 + }, 579 + "node_modules/@polka/url": { 580 + "version": "1.0.0-next.21", 581 + "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.21.tgz", 582 + "integrity": "sha512-a5Sab1C4/icpTZVzZc5Ghpz88yQtGOyNqYXcZgOssB2uuAr+wF/MvN6bgtW32q7HHrvBki+BsZ0OuNv6EV3K9g==", 583 + "dev": true 584 + }, 585 + "node_modules/@sveltejs/adapter-static": { 586 + "version": "2.0.3", 587 + "resolved": "https://registry.npmjs.org/@sveltejs/adapter-static/-/adapter-static-2.0.3.tgz", 588 + "integrity": "sha512-VUqTfXsxYGugCpMqQv1U0LIdbR3S5nBkMMDmpjGVJyM6Q2jHVMFtdWJCkeHMySc6mZxJ+0eZK3T7IgmUCDrcUQ==", 589 + "dev": true, 590 + "peerDependencies": { 591 + "@sveltejs/kit": "^1.5.0" 592 + } 593 + }, 594 + "node_modules/@sveltejs/kit": { 595 + "version": "1.22.4", 596 + "resolved": "https://registry.npmjs.org/@sveltejs/kit/-/kit-1.22.4.tgz", 597 + "integrity": "sha512-Opkqw1QXk4Cc25b/heJP2D7mX+OUBFAq4MXKfET58svTTxdeiHFKzmnuRsSF3nmxESqrLjqPAgHpib+knNGzRw==", 598 + "dev": true, 599 + "hasInstallScript": true, 600 + "dependencies": { 601 + "@sveltejs/vite-plugin-svelte": "^2.4.1", 602 + "@types/cookie": "^0.5.1", 603 + "cookie": "^0.5.0", 604 + "devalue": "^4.3.1", 605 + "esm-env": "^1.0.0", 606 + "kleur": "^4.1.5", 607 + "magic-string": "^0.30.0", 608 + "mime": "^3.0.0", 609 + "sade": "^1.8.1", 610 + "set-cookie-parser": "^2.6.0", 611 + "sirv": "^2.0.2", 612 + "undici": "~5.22.0" 613 + }, 614 + "bin": { 615 + "svelte-kit": "svelte-kit.js" 616 + }, 617 + "engines": { 618 + "node": "^16.14 || >=18" 619 + }, 620 + "peerDependencies": { 621 + "svelte": "^3.54.0 || ^4.0.0-next.0", 622 + "vite": "^4.0.0" 623 + } 624 + }, 625 + "node_modules/@sveltejs/vite-plugin-svelte": { 626 + "version": "2.4.3", 627 + "resolved": "https://registry.npmjs.org/@sveltejs/vite-plugin-svelte/-/vite-plugin-svelte-2.4.3.tgz", 628 + "integrity": "sha512-NY2h+B54KHZO3kDURTdARqthn6D4YSIebtfW75NvZ/fwyk4G+AJw3V/i0OBjyN4406Ht9yZcnNWMuRUFnDNNiA==", 629 + "dev": true, 630 + "dependencies": { 631 + "@sveltejs/vite-plugin-svelte-inspector": "^1.0.3", 632 + "debug": "^4.3.4", 633 + "deepmerge": "^4.3.1", 634 + "kleur": "^4.1.5", 635 + "magic-string": "^0.30.1", 636 + "svelte-hmr": "^0.15.2", 637 + "vitefu": "^0.2.4" 638 + }, 639 + "engines": { 640 + "node": "^14.18.0 || >= 16" 641 + }, 642 + "peerDependencies": { 643 + "svelte": "^3.54.0 || ^4.0.0", 644 + "vite": "^4.0.0" 645 + } 646 + }, 647 + "node_modules/@sveltejs/vite-plugin-svelte-inspector": { 648 + "version": "1.0.3", 649 + "resolved": "https://registry.npmjs.org/@sveltejs/vite-plugin-svelte-inspector/-/vite-plugin-svelte-inspector-1.0.3.tgz", 650 + "integrity": "sha512-Khdl5jmmPN6SUsVuqSXatKpQTMIifoQPDanaxC84m9JxIibWvSABJyHpyys0Z+1yYrxY5TTEQm+6elh0XCMaOA==", 651 + "dev": true, 652 + "dependencies": { 653 + "debug": "^4.3.4" 654 + }, 655 + "engines": { 656 + "node": "^14.18.0 || >= 16" 657 + }, 658 + "peerDependencies": { 659 + "@sveltejs/vite-plugin-svelte": "^2.2.0", 660 + "svelte": "^3.54.0 || ^4.0.0", 661 + "vite": "^4.0.0" 662 + } 663 + }, 664 + "node_modules/@types/cookie": { 665 + "version": "0.5.1", 666 + "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.5.1.tgz", 667 + "integrity": "sha512-COUnqfB2+ckwXXSFInsFdOAWQzCCx+a5hq2ruyj+Vjund94RJQd4LG2u9hnvJrTgunKAaax7ancBYlDrNYxA0g==", 668 + "dev": true 669 + }, 670 + "node_modules/@types/estree": { 671 + "version": "1.0.1", 672 + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.1.tgz", 673 + "integrity": "sha512-LG4opVs2ANWZ1TJoKc937iMmNstM/d0ae1vNbnBvBhqCSezgVUOzcLCqbI5elV8Vy6WKwKjaqR+zO9VKirBBCA==", 674 + "dev": true 675 + }, 676 + "node_modules/@types/jquery": { 677 + "version": "3.5.16", 678 + "resolved": "https://registry.npmjs.org/@types/jquery/-/jquery-3.5.16.tgz", 679 + "integrity": "sha512-bsI7y4ZgeMkmpG9OM710RRzDFp+w4P1RGiIt30C1mSBT+ExCleeh4HObwgArnDFELmRrOpXgSYN9VF1hj+f1lw==", 680 + "dev": true, 681 + "dependencies": { 682 + "@types/sizzle": "*" 683 + } 684 + }, 685 + "node_modules/@types/json-schema": { 686 + "version": "7.0.12", 687 + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.12.tgz", 688 + "integrity": "sha512-Hr5Jfhc9eYOQNPYO5WLDq/n4jqijdHNlDXjuAQkkt+mWdQR+XJToOHrsD4cPaMXpn6KO7y2+wM8AZEs8VpBLVA==", 689 + "dev": true 690 + }, 691 + "node_modules/@types/pug": { 692 + "version": "2.0.6", 693 + "resolved": "https://registry.npmjs.org/@types/pug/-/pug-2.0.6.tgz", 694 + "integrity": "sha512-SnHmG9wN1UVmagJOnyo/qkk0Z7gejYxOYYmaAwr5u2yFYfsupN3sg10kyzN8Hep/2zbHxCnsumxOoRIRMBwKCg==", 695 + "dev": true 696 + }, 697 + "node_modules/@types/semver": { 698 + "version": "7.5.0", 699 + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.0.tgz", 700 + "integrity": "sha512-G8hZ6XJiHnuhQKR7ZmysCeJWE08o8T0AXtk5darsCaTVsYZhhgUrq53jizaR2FvsoeCwJhlmwTjkXBY5Pn/ZHw==", 701 + "dev": true 702 + }, 703 + "node_modules/@types/sizzle": { 704 + "version": "2.3.3", 705 + "resolved": "https://registry.npmjs.org/@types/sizzle/-/sizzle-2.3.3.tgz", 706 + "integrity": "sha512-JYM8x9EGF163bEyhdJBpR2QX1R5naCJHC8ucJylJ3w9/CVBaskdQ8WqBf8MmQrd1kRvp/a4TS8HJ+bxzR7ZJYQ==", 707 + "dev": true 708 + }, 709 + "node_modules/@typescript-eslint/eslint-plugin": { 710 + "version": "6.2.1", 711 + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.2.1.tgz", 712 + "integrity": "sha512-iZVM/ALid9kO0+I81pnp1xmYiFyqibAHzrqX4q5YvvVEyJqY+e6rfTXSCsc2jUxGNqJqTfFSSij/NFkZBiBzLw==", 713 + "dev": true, 714 + "dependencies": { 715 + "@eslint-community/regexpp": "^4.5.1", 716 + "@typescript-eslint/scope-manager": "6.2.1", 717 + "@typescript-eslint/type-utils": "6.2.1", 718 + "@typescript-eslint/utils": "6.2.1", 719 + "@typescript-eslint/visitor-keys": "6.2.1", 720 + "debug": "^4.3.4", 721 + "graphemer": "^1.4.0", 722 + "ignore": "^5.2.4", 723 + "natural-compare": "^1.4.0", 724 + "natural-compare-lite": "^1.4.0", 725 + "semver": "^7.5.4", 726 + "ts-api-utils": "^1.0.1" 727 + }, 728 + "engines": { 729 + "node": "^16.0.0 || >=18.0.0" 730 + }, 731 + "funding": { 732 + "type": "opencollective", 733 + "url": "https://opencollective.com/typescript-eslint" 734 + }, 735 + "peerDependencies": { 736 + "@typescript-eslint/parser": "^6.0.0 || ^6.0.0-alpha", 737 + "eslint": "^7.0.0 || ^8.0.0" 738 + }, 739 + "peerDependenciesMeta": { 740 + "typescript": { 741 + "optional": true 742 + } 743 + } 744 + }, 745 + "node_modules/@typescript-eslint/parser": { 746 + "version": "6.2.1", 747 + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.2.1.tgz", 748 + "integrity": "sha512-Ld+uL1kYFU8e6btqBFpsHkwQ35rw30IWpdQxgOqOh4NfxSDH6uCkah1ks8R/RgQqI5hHPXMaLy9fbFseIe+dIg==", 749 + "dev": true, 750 + "dependencies": { 751 + "@typescript-eslint/scope-manager": "6.2.1", 752 + "@typescript-eslint/types": "6.2.1", 753 + "@typescript-eslint/typescript-estree": "6.2.1", 754 + "@typescript-eslint/visitor-keys": "6.2.1", 755 + "debug": "^4.3.4" 756 + }, 757 + "engines": { 758 + "node": "^16.0.0 || >=18.0.0" 759 + }, 760 + "funding": { 761 + "type": "opencollective", 762 + "url": "https://opencollective.com/typescript-eslint" 763 + }, 764 + "peerDependencies": { 765 + "eslint": "^7.0.0 || ^8.0.0" 766 + }, 767 + "peerDependenciesMeta": { 768 + "typescript": { 769 + "optional": true 770 + } 771 + } 772 + }, 773 + "node_modules/@typescript-eslint/scope-manager": { 774 + "version": "6.2.1", 775 + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.2.1.tgz", 776 + "integrity": "sha512-UCqBF9WFqv64xNsIEPfBtenbfodPXsJ3nPAr55mGPkQIkiQvgoWNo+astj9ZUfJfVKiYgAZDMnM6dIpsxUMp3Q==", 777 + "dev": true, 778 + "dependencies": { 779 + "@typescript-eslint/types": "6.2.1", 780 + "@typescript-eslint/visitor-keys": "6.2.1" 781 + }, 782 + "engines": { 783 + "node": "^16.0.0 || >=18.0.0" 784 + }, 785 + "funding": { 786 + "type": "opencollective", 787 + "url": "https://opencollective.com/typescript-eslint" 788 + } 789 + }, 790 + "node_modules/@typescript-eslint/type-utils": { 791 + "version": "6.2.1", 792 + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.2.1.tgz", 793 + "integrity": "sha512-fTfCgomBMIgu2Dh2Or3gMYgoNAnQm3RLtRp+jP7A8fY+LJ2+9PNpi5p6QB5C4RSP+U3cjI0vDlI3mspAkpPVbQ==", 794 + "dev": true, 795 + "dependencies": { 796 + "@typescript-eslint/typescript-estree": "6.2.1", 797 + "@typescript-eslint/utils": "6.2.1", 798 + "debug": "^4.3.4", 799 + "ts-api-utils": "^1.0.1" 800 + }, 801 + "engines": { 802 + "node": "^16.0.0 || >=18.0.0" 803 + }, 804 + "funding": { 805 + "type": "opencollective", 806 + "url": "https://opencollective.com/typescript-eslint" 807 + }, 808 + "peerDependencies": { 809 + "eslint": "^7.0.0 || ^8.0.0" 810 + }, 811 + "peerDependenciesMeta": { 812 + "typescript": { 813 + "optional": true 814 + } 815 + } 816 + }, 817 + "node_modules/@typescript-eslint/types": { 818 + "version": "6.2.1", 819 + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.2.1.tgz", 820 + "integrity": "sha512-528bGcoelrpw+sETlyM91k51Arl2ajbNT9L4JwoXE2dvRe1yd8Q64E4OL7vHYw31mlnVsf+BeeLyAZUEQtqahQ==", 821 + "dev": true, 822 + "engines": { 823 + "node": "^16.0.0 || >=18.0.0" 824 + }, 825 + "funding": { 826 + "type": "opencollective", 827 + "url": "https://opencollective.com/typescript-eslint" 828 + } 829 + }, 830 + "node_modules/@typescript-eslint/typescript-estree": { 831 + "version": "6.2.1", 832 + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.2.1.tgz", 833 + "integrity": "sha512-G+UJeQx9AKBHRQBpmvr8T/3K5bJa485eu+4tQBxFq0KoT22+jJyzo1B50JDT9QdC1DEmWQfdKsa8ybiNWYsi0Q==", 834 + "dev": true, 835 + "dependencies": { 836 + "@typescript-eslint/types": "6.2.1", 837 + "@typescript-eslint/visitor-keys": "6.2.1", 838 + "debug": "^4.3.4", 839 + "globby": "^11.1.0", 840 + "is-glob": "^4.0.3", 841 + "semver": "^7.5.4", 842 + "ts-api-utils": "^1.0.1" 843 + }, 844 + "engines": { 845 + "node": "^16.0.0 || >=18.0.0" 846 + }, 847 + "funding": { 848 + "type": "opencollective", 849 + "url": "https://opencollective.com/typescript-eslint" 850 + }, 851 + "peerDependenciesMeta": { 852 + "typescript": { 853 + "optional": true 854 + } 855 + } 856 + }, 857 + "node_modules/@typescript-eslint/utils": { 858 + "version": "6.2.1", 859 + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.2.1.tgz", 860 + "integrity": "sha512-eBIXQeupYmxVB6S7x+B9SdBeB6qIdXKjgQBge2J+Ouv8h9Cxm5dHf/gfAZA6dkMaag+03HdbVInuXMmqFB/lKQ==", 861 + "dev": true, 862 + "dependencies": { 863 + "@eslint-community/eslint-utils": "^4.4.0", 864 + "@types/json-schema": "^7.0.12", 865 + "@types/semver": "^7.5.0", 866 + "@typescript-eslint/scope-manager": "6.2.1", 867 + "@typescript-eslint/types": "6.2.1", 868 + "@typescript-eslint/typescript-estree": "6.2.1", 869 + "semver": "^7.5.4" 870 + }, 871 + "engines": { 872 + "node": "^16.0.0 || >=18.0.0" 873 + }, 874 + "funding": { 875 + "type": "opencollective", 876 + "url": "https://opencollective.com/typescript-eslint" 877 + }, 878 + "peerDependencies": { 879 + "eslint": "^7.0.0 || ^8.0.0" 880 + } 881 + }, 882 + "node_modules/@typescript-eslint/visitor-keys": { 883 + "version": "6.2.1", 884 + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.2.1.tgz", 885 + "integrity": "sha512-iTN6w3k2JEZ7cyVdZJTVJx2Lv7t6zFA8DCrJEHD2mwfc16AEvvBWVhbFh34XyG2NORCd0viIgQY1+u7kPI0WpA==", 886 + "dev": true, 887 + "dependencies": { 888 + "@typescript-eslint/types": "6.2.1", 889 + "eslint-visitor-keys": "^3.4.1" 890 + }, 891 + "engines": { 892 + "node": "^16.0.0 || >=18.0.0" 893 + }, 894 + "funding": { 895 + "type": "opencollective", 896 + "url": "https://opencollective.com/typescript-eslint" 897 + } 898 + }, 899 + "node_modules/acorn": { 900 + "version": "8.10.0", 901 + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.10.0.tgz", 902 + "integrity": "sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==", 903 + "dev": true, 904 + "bin": { 905 + "acorn": "bin/acorn" 906 + }, 907 + "engines": { 908 + "node": ">=0.4.0" 909 + } 910 + }, 911 + "node_modules/acorn-jsx": { 912 + "version": "5.3.2", 913 + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", 914 + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", 915 + "dev": true, 916 + "peerDependencies": { 917 + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" 918 + } 919 + }, 920 + "node_modules/ajv": { 921 + "version": "6.12.6", 922 + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", 923 + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", 924 + "dev": true, 925 + "dependencies": { 926 + "fast-deep-equal": "^3.1.1", 927 + "fast-json-stable-stringify": "^2.0.0", 928 + "json-schema-traverse": "^0.4.1", 929 + "uri-js": "^4.2.2" 930 + }, 931 + "funding": { 932 + "type": "github", 933 + "url": "https://github.com/sponsors/epoberezkin" 934 + } 935 + }, 936 + "node_modules/ansi-regex": { 937 + "version": "5.0.1", 938 + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", 939 + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", 940 + "dev": true, 941 + "engines": { 942 + "node": ">=8" 943 + } 944 + }, 945 + "node_modules/ansi-styles": { 946 + "version": "4.3.0", 947 + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", 948 + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", 949 + "dev": true, 950 + "dependencies": { 951 + "color-convert": "^2.0.1" 952 + }, 953 + "engines": { 954 + "node": ">=8" 955 + }, 956 + "funding": { 957 + "url": "https://github.com/chalk/ansi-styles?sponsor=1" 958 + } 959 + }, 960 + "node_modules/anymatch": { 961 + "version": "3.1.3", 962 + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", 963 + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", 964 + "dev": true, 965 + "dependencies": { 966 + "normalize-path": "^3.0.0", 967 + "picomatch": "^2.0.4" 968 + }, 969 + "engines": { 970 + "node": ">= 8" 971 + } 972 + }, 973 + "node_modules/argparse": { 974 + "version": "2.0.1", 975 + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", 976 + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", 977 + "dev": true 978 + }, 979 + "node_modules/aria-query": { 980 + "version": "5.3.0", 981 + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.0.tgz", 982 + "integrity": "sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==", 983 + "dev": true, 984 + "dependencies": { 985 + "dequal": "^2.0.3" 986 + } 987 + }, 988 + "node_modules/array-union": { 989 + "version": "2.1.0", 990 + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", 991 + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", 992 + "dev": true, 993 + "engines": { 994 + "node": ">=8" 995 + } 996 + }, 997 + "node_modules/axobject-query": { 998 + "version": "3.2.1", 999 + "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-3.2.1.tgz", 1000 + "integrity": "sha512-jsyHu61e6N4Vbz/v18DHwWYKK0bSWLqn47eeDSKPB7m8tqMHF9YJ+mhIk2lVteyZrY8tnSj/jHOv4YiTCuCJgg==", 1001 + "dev": true, 1002 + "dependencies": { 1003 + "dequal": "^2.0.3" 1004 + } 1005 + }, 1006 + "node_modules/balanced-match": { 1007 + "version": "1.0.2", 1008 + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", 1009 + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", 1010 + "dev": true 1011 + }, 1012 + "node_modules/binary-extensions": { 1013 + "version": "2.2.0", 1014 + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", 1015 + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", 1016 + "dev": true, 1017 + "engines": { 1018 + "node": ">=8" 1019 + } 1020 + }, 1021 + "node_modules/brace-expansion": { 1022 + "version": "1.1.11", 1023 + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", 1024 + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", 1025 + "dev": true, 1026 + "dependencies": { 1027 + "balanced-match": "^1.0.0", 1028 + "concat-map": "0.0.1" 1029 + } 1030 + }, 1031 + "node_modules/braces": { 1032 + "version": "3.0.2", 1033 + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", 1034 + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", 1035 + "dev": true, 1036 + "dependencies": { 1037 + "fill-range": "^7.0.1" 1038 + }, 1039 + "engines": { 1040 + "node": ">=8" 1041 + } 1042 + }, 1043 + "node_modules/buffer-crc32": { 1044 + "version": "0.2.13", 1045 + "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", 1046 + "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", 1047 + "dev": true, 1048 + "engines": { 1049 + "node": "*" 1050 + } 1051 + }, 1052 + "node_modules/busboy": { 1053 + "version": "1.6.0", 1054 + "resolved": "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz", 1055 + "integrity": "sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==", 1056 + "dev": true, 1057 + "dependencies": { 1058 + "streamsearch": "^1.1.0" 1059 + }, 1060 + "engines": { 1061 + "node": ">=10.16.0" 1062 + } 1063 + }, 1064 + "node_modules/callsites": { 1065 + "version": "3.1.0", 1066 + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", 1067 + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", 1068 + "dev": true, 1069 + "engines": { 1070 + "node": ">=6" 1071 + } 1072 + }, 1073 + "node_modules/chalk": { 1074 + "version": "4.1.2", 1075 + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", 1076 + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", 1077 + "dev": true, 1078 + "dependencies": { 1079 + "ansi-styles": "^4.1.0", 1080 + "supports-color": "^7.1.0" 1081 + }, 1082 + "engines": { 1083 + "node": ">=10" 1084 + }, 1085 + "funding": { 1086 + "url": "https://github.com/chalk/chalk?sponsor=1" 1087 + } 1088 + }, 1089 + "node_modules/chokidar": { 1090 + "version": "3.5.3", 1091 + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", 1092 + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", 1093 + "dev": true, 1094 + "funding": [ 1095 + { 1096 + "type": "individual", 1097 + "url": "https://paulmillr.com/funding/" 1098 + } 1099 + ], 1100 + "dependencies": { 1101 + "anymatch": "~3.1.2", 1102 + "braces": "~3.0.2", 1103 + "glob-parent": "~5.1.2", 1104 + "is-binary-path": "~2.1.0", 1105 + "is-glob": "~4.0.1", 1106 + "normalize-path": "~3.0.0", 1107 + "readdirp": "~3.6.0" 1108 + }, 1109 + "engines": { 1110 + "node": ">= 8.10.0" 1111 + }, 1112 + "optionalDependencies": { 1113 + "fsevents": "~2.3.2" 1114 + } 1115 + }, 1116 + "node_modules/chokidar/node_modules/glob-parent": { 1117 + "version": "5.1.2", 1118 + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", 1119 + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", 1120 + "dev": true, 1121 + "dependencies": { 1122 + "is-glob": "^4.0.1" 1123 + }, 1124 + "engines": { 1125 + "node": ">= 6" 1126 + } 1127 + }, 1128 + "node_modules/code-red": { 1129 + "version": "1.0.3", 1130 + "resolved": "https://registry.npmjs.org/code-red/-/code-red-1.0.3.tgz", 1131 + "integrity": "sha512-kVwJELqiILQyG5aeuyKFbdsI1fmQy1Cmf7dQ8eGmVuJoaRVdwey7WaMknr2ZFeVSYSKT0rExsa8EGw0aoI/1QQ==", 1132 + "dev": true, 1133 + "dependencies": { 1134 + "@jridgewell/sourcemap-codec": "^1.4.14", 1135 + "@types/estree": "^1.0.0", 1136 + "acorn": "^8.8.2", 1137 + "estree-walker": "^3.0.3", 1138 + "periscopic": "^3.1.0" 1139 + } 1140 + }, 1141 + "node_modules/color-convert": { 1142 + "version": "2.0.1", 1143 + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", 1144 + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", 1145 + "dev": true, 1146 + "dependencies": { 1147 + "color-name": "~1.1.4" 1148 + }, 1149 + "engines": { 1150 + "node": ">=7.0.0" 1151 + } 1152 + }, 1153 + "node_modules/color-name": { 1154 + "version": "1.1.4", 1155 + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", 1156 + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", 1157 + "dev": true 1158 + }, 1159 + "node_modules/concat-map": { 1160 + "version": "0.0.1", 1161 + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", 1162 + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", 1163 + "dev": true 1164 + }, 1165 + "node_modules/cookie": { 1166 + "version": "0.5.0", 1167 + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", 1168 + "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==", 1169 + "dev": true, 1170 + "engines": { 1171 + "node": ">= 0.6" 1172 + } 1173 + }, 1174 + "node_modules/cross-spawn": { 1175 + "version": "7.0.3", 1176 + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", 1177 + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", 1178 + "dev": true, 1179 + "dependencies": { 1180 + "path-key": "^3.1.0", 1181 + "shebang-command": "^2.0.0", 1182 + "which": "^2.0.1" 1183 + }, 1184 + "engines": { 1185 + "node": ">= 8" 1186 + } 1187 + }, 1188 + "node_modules/css-tree": { 1189 + "version": "2.3.1", 1190 + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.3.1.tgz", 1191 + "integrity": "sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==", 1192 + "dev": true, 1193 + "dependencies": { 1194 + "mdn-data": "2.0.30", 1195 + "source-map-js": "^1.0.1" 1196 + }, 1197 + "engines": { 1198 + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0" 1199 + } 1200 + }, 1201 + "node_modules/cssesc": { 1202 + "version": "3.0.0", 1203 + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", 1204 + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", 1205 + "dev": true, 1206 + "bin": { 1207 + "cssesc": "bin/cssesc" 1208 + }, 1209 + "engines": { 1210 + "node": ">=4" 1211 + } 1212 + }, 1213 + "node_modules/debug": { 1214 + "version": "4.3.4", 1215 + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", 1216 + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", 1217 + "dev": true, 1218 + "dependencies": { 1219 + "ms": "2.1.2" 1220 + }, 1221 + "engines": { 1222 + "node": ">=6.0" 1223 + }, 1224 + "peerDependenciesMeta": { 1225 + "supports-color": { 1226 + "optional": true 1227 + } 1228 + } 1229 + }, 1230 + "node_modules/deep-is": { 1231 + "version": "0.1.4", 1232 + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", 1233 + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", 1234 + "dev": true 1235 + }, 1236 + "node_modules/deepmerge": { 1237 + "version": "4.3.1", 1238 + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", 1239 + "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", 1240 + "dev": true, 1241 + "engines": { 1242 + "node": ">=0.10.0" 1243 + } 1244 + }, 1245 + "node_modules/dequal": { 1246 + "version": "2.0.3", 1247 + "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", 1248 + "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", 1249 + "dev": true, 1250 + "engines": { 1251 + "node": ">=6" 1252 + } 1253 + }, 1254 + "node_modules/detect-indent": { 1255 + "version": "6.1.0", 1256 + "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-6.1.0.tgz", 1257 + "integrity": "sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==", 1258 + "dev": true, 1259 + "engines": { 1260 + "node": ">=8" 1261 + } 1262 + }, 1263 + "node_modules/devalue": { 1264 + "version": "4.3.2", 1265 + "resolved": "https://registry.npmjs.org/devalue/-/devalue-4.3.2.tgz", 1266 + "integrity": "sha512-KqFl6pOgOW+Y6wJgu80rHpo2/3H07vr8ntR9rkkFIRETewbf5GaYYcakYfiKz89K+sLsuPkQIZaXDMjUObZwWg==", 1267 + "dev": true 1268 + }, 1269 + "node_modules/dir-glob": { 1270 + "version": "3.0.1", 1271 + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", 1272 + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", 1273 + "dev": true, 1274 + "dependencies": { 1275 + "path-type": "^4.0.0" 1276 + }, 1277 + "engines": { 1278 + "node": ">=8" 1279 + } 1280 + }, 1281 + "node_modules/doctrine": { 1282 + "version": "3.0.0", 1283 + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", 1284 + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", 1285 + "dev": true, 1286 + "dependencies": { 1287 + "esutils": "^2.0.2" 1288 + }, 1289 + "engines": { 1290 + "node": ">=6.0.0" 1291 + } 1292 + }, 1293 + "node_modules/es6-promise": { 1294 + "version": "3.3.1", 1295 + "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-3.3.1.tgz", 1296 + "integrity": "sha512-SOp9Phqvqn7jtEUxPWdWfWoLmyt2VaJ6MpvP9Comy1MceMXqE6bxvaTu4iaxpYYPzhny28Lc+M87/c2cPK6lDg==", 1297 + "dev": true 1298 + }, 1299 + "node_modules/esbuild": { 1300 + "version": "0.18.17", 1301 + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.18.17.tgz", 1302 + "integrity": "sha512-1GJtYnUxsJreHYA0Y+iQz2UEykonY66HNWOb0yXYZi9/kNrORUEHVg87eQsCtqh59PEJ5YVZJO98JHznMJSWjg==", 1303 + "dev": true, 1304 + "hasInstallScript": true, 1305 + "bin": { 1306 + "esbuild": "bin/esbuild" 1307 + }, 1308 + "engines": { 1309 + "node": ">=12" 1310 + }, 1311 + "optionalDependencies": { 1312 + "@esbuild/android-arm": "0.18.17", 1313 + "@esbuild/android-arm64": "0.18.17", 1314 + "@esbuild/android-x64": "0.18.17", 1315 + "@esbuild/darwin-arm64": "0.18.17", 1316 + "@esbuild/darwin-x64": "0.18.17", 1317 + "@esbuild/freebsd-arm64": "0.18.17", 1318 + "@esbuild/freebsd-x64": "0.18.17", 1319 + "@esbuild/linux-arm": "0.18.17", 1320 + "@esbuild/linux-arm64": "0.18.17", 1321 + "@esbuild/linux-ia32": "0.18.17", 1322 + "@esbuild/linux-loong64": "0.18.17", 1323 + "@esbuild/linux-mips64el": "0.18.17", 1324 + "@esbuild/linux-ppc64": "0.18.17", 1325 + "@esbuild/linux-riscv64": "0.18.17", 1326 + "@esbuild/linux-s390x": "0.18.17", 1327 + "@esbuild/linux-x64": "0.18.17", 1328 + "@esbuild/netbsd-x64": "0.18.17", 1329 + "@esbuild/openbsd-x64": "0.18.17", 1330 + "@esbuild/sunos-x64": "0.18.17", 1331 + "@esbuild/win32-arm64": "0.18.17", 1332 + "@esbuild/win32-ia32": "0.18.17", 1333 + "@esbuild/win32-x64": "0.18.17" 1334 + } 1335 + }, 1336 + "node_modules/escape-string-regexp": { 1337 + "version": "4.0.0", 1338 + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", 1339 + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", 1340 + "dev": true, 1341 + "engines": { 1342 + "node": ">=10" 1343 + }, 1344 + "funding": { 1345 + "url": "https://github.com/sponsors/sindresorhus" 1346 + } 1347 + }, 1348 + "node_modules/eslint": { 1349 + "version": "8.46.0", 1350 + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.46.0.tgz", 1351 + "integrity": "sha512-cIO74PvbW0qU8e0mIvk5IV3ToWdCq5FYG6gWPHHkx6gNdjlbAYvtfHmlCMXxjcoVaIdwy/IAt3+mDkZkfvb2Dg==", 1352 + "dev": true, 1353 + "dependencies": { 1354 + "@eslint-community/eslint-utils": "^4.2.0", 1355 + "@eslint-community/regexpp": "^4.6.1", 1356 + "@eslint/eslintrc": "^2.1.1", 1357 + "@eslint/js": "^8.46.0", 1358 + "@humanwhocodes/config-array": "^0.11.10", 1359 + "@humanwhocodes/module-importer": "^1.0.1", 1360 + "@nodelib/fs.walk": "^1.2.8", 1361 + "ajv": "^6.12.4", 1362 + "chalk": "^4.0.0", 1363 + "cross-spawn": "^7.0.2", 1364 + "debug": "^4.3.2", 1365 + "doctrine": "^3.0.0", 1366 + "escape-string-regexp": "^4.0.0", 1367 + "eslint-scope": "^7.2.2", 1368 + "eslint-visitor-keys": "^3.4.2", 1369 + "espree": "^9.6.1", 1370 + "esquery": "^1.4.2", 1371 + "esutils": "^2.0.2", 1372 + "fast-deep-equal": "^3.1.3", 1373 + "file-entry-cache": "^6.0.1", 1374 + "find-up": "^5.0.0", 1375 + "glob-parent": "^6.0.2", 1376 + "globals": "^13.19.0", 1377 + "graphemer": "^1.4.0", 1378 + "ignore": "^5.2.0", 1379 + "imurmurhash": "^0.1.4", 1380 + "is-glob": "^4.0.0", 1381 + "is-path-inside": "^3.0.3", 1382 + "js-yaml": "^4.1.0", 1383 + "json-stable-stringify-without-jsonify": "^1.0.1", 1384 + "levn": "^0.4.1", 1385 + "lodash.merge": "^4.6.2", 1386 + "minimatch": "^3.1.2", 1387 + "natural-compare": "^1.4.0", 1388 + "optionator": "^0.9.3", 1389 + "strip-ansi": "^6.0.1", 1390 + "text-table": "^0.2.0" 1391 + }, 1392 + "bin": { 1393 + "eslint": "bin/eslint.js" 1394 + }, 1395 + "engines": { 1396 + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" 1397 + }, 1398 + "funding": { 1399 + "url": "https://opencollective.com/eslint" 1400 + } 1401 + }, 1402 + "node_modules/eslint-config-prettier": { 1403 + "version": "8.10.0", 1404 + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.10.0.tgz", 1405 + "integrity": "sha512-SM8AMJdeQqRYT9O9zguiruQZaN7+z+E4eAP9oiLNGKMtomwaB1E9dcgUD6ZAn/eQAb52USbvezbiljfZUhbJcg==", 1406 + "dev": true, 1407 + "bin": { 1408 + "eslint-config-prettier": "bin/cli.js" 1409 + }, 1410 + "peerDependencies": { 1411 + "eslint": ">=7.0.0" 1412 + } 1413 + }, 1414 + "node_modules/eslint-plugin-svelte": { 1415 + "version": "2.32.4", 1416 + "resolved": "https://registry.npmjs.org/eslint-plugin-svelte/-/eslint-plugin-svelte-2.32.4.tgz", 1417 + "integrity": "sha512-VJ12i2Iogug1jvhwxSlognnfGj76P5gks/V4pUD4SCSVQOp14u47MNP0zAG8AQR3LT0Fi1iUvIFnY4l9z5Rwbg==", 1418 + "dev": true, 1419 + "dependencies": { 1420 + "@eslint-community/eslint-utils": "^4.2.0", 1421 + "@jridgewell/sourcemap-codec": "^1.4.14", 1422 + "debug": "^4.3.1", 1423 + "esutils": "^2.0.3", 1424 + "known-css-properties": "^0.28.0", 1425 + "postcss": "^8.4.5", 1426 + "postcss-load-config": "^3.1.4", 1427 + "postcss-safe-parser": "^6.0.0", 1428 + "postcss-selector-parser": "^6.0.11", 1429 + "semver": "^7.5.3", 1430 + "svelte-eslint-parser": "^0.32.2" 1431 + }, 1432 + "engines": { 1433 + "node": "^14.17.0 || >=16.0.0" 1434 + }, 1435 + "funding": { 1436 + "url": "https://github.com/sponsors/ota-meshi" 1437 + }, 1438 + "peerDependencies": { 1439 + "eslint": "^7.0.0 || ^8.0.0-0", 1440 + "svelte": "^3.37.0 || ^4.0.0" 1441 + }, 1442 + "peerDependenciesMeta": { 1443 + "svelte": { 1444 + "optional": true 1445 + } 1446 + } 1447 + }, 1448 + "node_modules/eslint-scope": { 1449 + "version": "7.2.2", 1450 + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", 1451 + "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", 1452 + "dev": true, 1453 + "dependencies": { 1454 + "esrecurse": "^4.3.0", 1455 + "estraverse": "^5.2.0" 1456 + }, 1457 + "engines": { 1458 + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" 1459 + }, 1460 + "funding": { 1461 + "url": "https://opencollective.com/eslint" 1462 + } 1463 + }, 1464 + "node_modules/eslint-visitor-keys": { 1465 + "version": "3.4.2", 1466 + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.2.tgz", 1467 + "integrity": "sha512-8drBzUEyZ2llkpCA67iYrgEssKDUu68V8ChqqOfFupIaG/LCVPUT+CoGJpT77zJprs4T/W7p07LP7zAIMuweVw==", 1468 + "dev": true, 1469 + "engines": { 1470 + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" 1471 + }, 1472 + "funding": { 1473 + "url": "https://opencollective.com/eslint" 1474 + } 1475 + }, 1476 + "node_modules/esm-env": { 1477 + "version": "1.0.0", 1478 + "resolved": "https://registry.npmjs.org/esm-env/-/esm-env-1.0.0.tgz", 1479 + "integrity": "sha512-Cf6VksWPsTuW01vU9Mk/3vRue91Zevka5SjyNf3nEpokFRuqt/KjUQoGAwq9qMmhpLTHmXzSIrFRw8zxWzmFBA==", 1480 + "dev": true 1481 + }, 1482 + "node_modules/espree": { 1483 + "version": "9.6.1", 1484 + "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", 1485 + "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", 1486 + "dev": true, 1487 + "dependencies": { 1488 + "acorn": "^8.9.0", 1489 + "acorn-jsx": "^5.3.2", 1490 + "eslint-visitor-keys": "^3.4.1" 1491 + }, 1492 + "engines": { 1493 + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" 1494 + }, 1495 + "funding": { 1496 + "url": "https://opencollective.com/eslint" 1497 + } 1498 + }, 1499 + "node_modules/esquery": { 1500 + "version": "1.5.0", 1501 + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", 1502 + "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", 1503 + "dev": true, 1504 + "dependencies": { 1505 + "estraverse": "^5.1.0" 1506 + }, 1507 + "engines": { 1508 + "node": ">=0.10" 1509 + } 1510 + }, 1511 + "node_modules/esrecurse": { 1512 + "version": "4.3.0", 1513 + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", 1514 + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", 1515 + "dev": true, 1516 + "dependencies": { 1517 + "estraverse": "^5.2.0" 1518 + }, 1519 + "engines": { 1520 + "node": ">=4.0" 1521 + } 1522 + }, 1523 + "node_modules/estraverse": { 1524 + "version": "5.3.0", 1525 + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", 1526 + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", 1527 + "dev": true, 1528 + "engines": { 1529 + "node": ">=4.0" 1530 + } 1531 + }, 1532 + "node_modules/estree-walker": { 1533 + "version": "3.0.3", 1534 + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz", 1535 + "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", 1536 + "dev": true, 1537 + "dependencies": { 1538 + "@types/estree": "^1.0.0" 1539 + } 1540 + }, 1541 + "node_modules/esutils": { 1542 + "version": "2.0.3", 1543 + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", 1544 + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", 1545 + "dev": true, 1546 + "engines": { 1547 + "node": ">=0.10.0" 1548 + } 1549 + }, 1550 + "node_modules/fast-deep-equal": { 1551 + "version": "3.1.3", 1552 + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", 1553 + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", 1554 + "dev": true 1555 + }, 1556 + "node_modules/fast-glob": { 1557 + "version": "3.2.12", 1558 + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz", 1559 + "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==", 1560 + "dev": true, 1561 + "dependencies": { 1562 + "@nodelib/fs.stat": "^2.0.2", 1563 + "@nodelib/fs.walk": "^1.2.3", 1564 + "glob-parent": "^5.1.2", 1565 + "merge2": "^1.3.0", 1566 + "micromatch": "^4.0.4" 1567 + }, 1568 + "engines": { 1569 + "node": ">=8.6.0" 1570 + } 1571 + }, 1572 + "node_modules/fast-glob/node_modules/glob-parent": { 1573 + "version": "5.1.2", 1574 + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", 1575 + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", 1576 + "dev": true, 1577 + "dependencies": { 1578 + "is-glob": "^4.0.1" 1579 + }, 1580 + "engines": { 1581 + "node": ">= 6" 1582 + } 1583 + }, 1584 + "node_modules/fast-json-stable-stringify": { 1585 + "version": "2.1.0", 1586 + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", 1587 + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", 1588 + "dev": true 1589 + }, 1590 + "node_modules/fast-levenshtein": { 1591 + "version": "2.0.6", 1592 + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", 1593 + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", 1594 + "dev": true 1595 + }, 1596 + "node_modules/fast-xml-parser": { 1597 + "version": "4.2.7", 1598 + "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.2.7.tgz", 1599 + "integrity": "sha512-J8r6BriSLO1uj2miOk1NW0YVm8AGOOu3Si2HQp/cSmo6EA4m3fcwu2WKjJ4RK9wMLBtg69y1kS8baDiQBR41Ig==", 1600 + "dev": true, 1601 + "funding": [ 1602 + { 1603 + "type": "paypal", 1604 + "url": "https://paypal.me/naturalintelligence" 1605 + }, 1606 + { 1607 + "type": "github", 1608 + "url": "https://github.com/sponsors/NaturalIntelligence" 1609 + } 1610 + ], 1611 + "dependencies": { 1612 + "strnum": "^1.0.5" 1613 + }, 1614 + "bin": { 1615 + "fxparser": "src/cli/cli.js" 1616 + } 1617 + }, 1618 + "node_modules/fastq": { 1619 + "version": "1.15.0", 1620 + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", 1621 + "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", 1622 + "dev": true, 1623 + "dependencies": { 1624 + "reusify": "^1.0.4" 1625 + } 1626 + }, 1627 + "node_modules/file-entry-cache": { 1628 + "version": "6.0.1", 1629 + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", 1630 + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", 1631 + "dev": true, 1632 + "dependencies": { 1633 + "flat-cache": "^3.0.4" 1634 + }, 1635 + "engines": { 1636 + "node": "^10.12.0 || >=12.0.0" 1637 + } 1638 + }, 1639 + "node_modules/fill-range": { 1640 + "version": "7.0.1", 1641 + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", 1642 + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", 1643 + "dev": true, 1644 + "dependencies": { 1645 + "to-regex-range": "^5.0.1" 1646 + }, 1647 + "engines": { 1648 + "node": ">=8" 1649 + } 1650 + }, 1651 + "node_modules/find-up": { 1652 + "version": "5.0.0", 1653 + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", 1654 + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", 1655 + "dev": true, 1656 + "dependencies": { 1657 + "locate-path": "^6.0.0", 1658 + "path-exists": "^4.0.0" 1659 + }, 1660 + "engines": { 1661 + "node": ">=10" 1662 + }, 1663 + "funding": { 1664 + "url": "https://github.com/sponsors/sindresorhus" 1665 + } 1666 + }, 1667 + "node_modules/flat-cache": { 1668 + "version": "3.0.4", 1669 + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", 1670 + "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", 1671 + "dev": true, 1672 + "dependencies": { 1673 + "flatted": "^3.1.0", 1674 + "rimraf": "^3.0.2" 1675 + }, 1676 + "engines": { 1677 + "node": "^10.12.0 || >=12.0.0" 1678 + } 1679 + }, 1680 + "node_modules/flatted": { 1681 + "version": "3.2.7", 1682 + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz", 1683 + "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==", 1684 + "dev": true 1685 + }, 1686 + "node_modules/fs.realpath": { 1687 + "version": "1.0.0", 1688 + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", 1689 + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", 1690 + "dev": true 1691 + }, 1692 + "node_modules/fsevents": { 1693 + "version": "2.3.2", 1694 + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", 1695 + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", 1696 + "dev": true, 1697 + "hasInstallScript": true, 1698 + "optional": true, 1699 + "os": [ 1700 + "darwin" 1701 + ], 1702 + "engines": { 1703 + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" 1704 + } 1705 + }, 1706 + "node_modules/glob": { 1707 + "version": "7.2.3", 1708 + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", 1709 + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", 1710 + "dev": true, 1711 + "dependencies": { 1712 + "fs.realpath": "^1.0.0", 1713 + "inflight": "^1.0.4", 1714 + "inherits": "2", 1715 + "minimatch": "^3.1.1", 1716 + "once": "^1.3.0", 1717 + "path-is-absolute": "^1.0.0" 1718 + }, 1719 + "engines": { 1720 + "node": "*" 1721 + }, 1722 + "funding": { 1723 + "url": "https://github.com/sponsors/isaacs" 1724 + } 1725 + }, 1726 + "node_modules/glob-parent": { 1727 + "version": "6.0.2", 1728 + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", 1729 + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", 1730 + "dev": true, 1731 + "dependencies": { 1732 + "is-glob": "^4.0.3" 1733 + }, 1734 + "engines": { 1735 + "node": ">=10.13.0" 1736 + } 1737 + }, 1738 + "node_modules/globals": { 1739 + "version": "13.20.0", 1740 + "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz", 1741 + "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==", 1742 + "dev": true, 1743 + "dependencies": { 1744 + "type-fest": "^0.20.2" 1745 + }, 1746 + "engines": { 1747 + "node": ">=8" 1748 + }, 1749 + "funding": { 1750 + "url": "https://github.com/sponsors/sindresorhus" 1751 + } 1752 + }, 1753 + "node_modules/globby": { 1754 + "version": "11.1.0", 1755 + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", 1756 + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", 1757 + "dev": true, 1758 + "dependencies": { 1759 + "array-union": "^2.1.0", 1760 + "dir-glob": "^3.0.1", 1761 + "fast-glob": "^3.2.9", 1762 + "ignore": "^5.2.0", 1763 + "merge2": "^1.4.1", 1764 + "slash": "^3.0.0" 1765 + }, 1766 + "engines": { 1767 + "node": ">=10" 1768 + }, 1769 + "funding": { 1770 + "url": "https://github.com/sponsors/sindresorhus" 1771 + } 1772 + }, 1773 + "node_modules/graceful-fs": { 1774 + "version": "4.2.11", 1775 + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", 1776 + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", 1777 + "dev": true 1778 + }, 1779 + "node_modules/graphemer": { 1780 + "version": "1.4.0", 1781 + "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", 1782 + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", 1783 + "dev": true 1784 + }, 1785 + "node_modules/has-flag": { 1786 + "version": "4.0.0", 1787 + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", 1788 + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", 1789 + "dev": true, 1790 + "engines": { 1791 + "node": ">=8" 1792 + } 1793 + }, 1794 + "node_modules/ignore": { 1795 + "version": "5.2.4", 1796 + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", 1797 + "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", 1798 + "dev": true, 1799 + "engines": { 1800 + "node": ">= 4" 1801 + } 1802 + }, 1803 + "node_modules/immutable": { 1804 + "version": "4.3.0", 1805 + "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.3.0.tgz", 1806 + "integrity": "sha512-0AOCmOip+xgJwEVTQj1EfiDDOkPmuyllDuTuEX+DDXUgapLAsBIfkg3sxCYyCEA8mQqZrrxPUGjcOQ2JS3WLkg==", 1807 + "dev": true 1808 + }, 1809 + "node_modules/import-fresh": { 1810 + "version": "3.3.0", 1811 + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", 1812 + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", 1813 + "dev": true, 1814 + "dependencies": { 1815 + "parent-module": "^1.0.0", 1816 + "resolve-from": "^4.0.0" 1817 + }, 1818 + "engines": { 1819 + "node": ">=6" 1820 + }, 1821 + "funding": { 1822 + "url": "https://github.com/sponsors/sindresorhus" 1823 + } 1824 + }, 1825 + "node_modules/imurmurhash": { 1826 + "version": "0.1.4", 1827 + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", 1828 + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", 1829 + "dev": true, 1830 + "engines": { 1831 + "node": ">=0.8.19" 1832 + } 1833 + }, 1834 + "node_modules/inflight": { 1835 + "version": "1.0.6", 1836 + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", 1837 + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", 1838 + "dev": true, 1839 + "dependencies": { 1840 + "once": "^1.3.0", 1841 + "wrappy": "1" 1842 + } 1843 + }, 1844 + "node_modules/inherits": { 1845 + "version": "2.0.4", 1846 + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", 1847 + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", 1848 + "dev": true 1849 + }, 1850 + "node_modules/is-binary-path": { 1851 + "version": "2.1.0", 1852 + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", 1853 + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", 1854 + "dev": true, 1855 + "dependencies": { 1856 + "binary-extensions": "^2.0.0" 1857 + }, 1858 + "engines": { 1859 + "node": ">=8" 1860 + } 1861 + }, 1862 + "node_modules/is-extglob": { 1863 + "version": "2.1.1", 1864 + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", 1865 + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", 1866 + "dev": true, 1867 + "engines": { 1868 + "node": ">=0.10.0" 1869 + } 1870 + }, 1871 + "node_modules/is-glob": { 1872 + "version": "4.0.3", 1873 + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", 1874 + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", 1875 + "dev": true, 1876 + "dependencies": { 1877 + "is-extglob": "^2.1.1" 1878 + }, 1879 + "engines": { 1880 + "node": ">=0.10.0" 1881 + } 1882 + }, 1883 + "node_modules/is-number": { 1884 + "version": "7.0.0", 1885 + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", 1886 + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", 1887 + "dev": true, 1888 + "engines": { 1889 + "node": ">=0.12.0" 1890 + } 1891 + }, 1892 + "node_modules/is-path-inside": { 1893 + "version": "3.0.3", 1894 + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", 1895 + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", 1896 + "dev": true, 1897 + "engines": { 1898 + "node": ">=8" 1899 + } 1900 + }, 1901 + "node_modules/is-reference": { 1902 + "version": "3.0.1", 1903 + "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-3.0.1.tgz", 1904 + "integrity": "sha512-baJJdQLiYaJdvFbJqXrcGv3WU3QCzBlUcI5QhbesIm6/xPsvmO+2CDoi/GMOFBQEQm+PXkwOPrp9KK5ozZsp2w==", 1905 + "dev": true, 1906 + "dependencies": { 1907 + "@types/estree": "*" 1908 + } 1909 + }, 1910 + "node_modules/isexe": { 1911 + "version": "2.0.0", 1912 + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", 1913 + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", 1914 + "dev": true 1915 + }, 1916 + "node_modules/jquery": { 1917 + "version": "3.7.0", 1918 + "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.7.0.tgz", 1919 + "integrity": "sha512-umpJ0/k8X0MvD1ds0P9SfowREz2LenHsQaxSohMZ5OMNEU2r0tf8pdeEFTHMFxWVxKNyU9rTtK3CWzUCTKJUeQ==", 1920 + "dev": true 1921 + }, 1922 + "node_modules/js-yaml": { 1923 + "version": "4.1.0", 1924 + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", 1925 + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", 1926 + "dev": true, 1927 + "dependencies": { 1928 + "argparse": "^2.0.1" 1929 + }, 1930 + "bin": { 1931 + "js-yaml": "bin/js-yaml.js" 1932 + } 1933 + }, 1934 + "node_modules/json-schema-traverse": { 1935 + "version": "0.4.1", 1936 + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", 1937 + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", 1938 + "dev": true 1939 + }, 1940 + "node_modules/json-stable-stringify-without-jsonify": { 1941 + "version": "1.0.1", 1942 + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", 1943 + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", 1944 + "dev": true 1945 + }, 1946 + "node_modules/kleur": { 1947 + "version": "4.1.5", 1948 + "resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.5.tgz", 1949 + "integrity": "sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==", 1950 + "dev": true, 1951 + "engines": { 1952 + "node": ">=6" 1953 + } 1954 + }, 1955 + "node_modules/known-css-properties": { 1956 + "version": "0.28.0", 1957 + "resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.28.0.tgz", 1958 + "integrity": "sha512-9pSL5XB4J+ifHP0e0jmmC98OGC1nL8/JjS+fi6mnTlIf//yt/MfVLtKg7S6nCtj/8KTcWX7nRlY0XywoYY1ISQ==", 1959 + "dev": true 1960 + }, 1961 + "node_modules/levn": { 1962 + "version": "0.4.1", 1963 + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", 1964 + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", 1965 + "dev": true, 1966 + "dependencies": { 1967 + "prelude-ls": "^1.2.1", 1968 + "type-check": "~0.4.0" 1969 + }, 1970 + "engines": { 1971 + "node": ">= 0.8.0" 1972 + } 1973 + }, 1974 + "node_modules/lilconfig": { 1975 + "version": "2.1.0", 1976 + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz", 1977 + "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==", 1978 + "dev": true, 1979 + "engines": { 1980 + "node": ">=10" 1981 + } 1982 + }, 1983 + "node_modules/locate-character": { 1984 + "version": "3.0.0", 1985 + "resolved": "https://registry.npmjs.org/locate-character/-/locate-character-3.0.0.tgz", 1986 + "integrity": "sha512-SW13ws7BjaeJ6p7Q6CO2nchbYEc3X3J6WrmTTDto7yMPqVSZTUyY5Tjbid+Ab8gLnATtygYtiDIJGQRRn2ZOiA==", 1987 + "dev": true 1988 + }, 1989 + "node_modules/locate-path": { 1990 + "version": "6.0.0", 1991 + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", 1992 + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", 1993 + "dev": true, 1994 + "dependencies": { 1995 + "p-locate": "^5.0.0" 1996 + }, 1997 + "engines": { 1998 + "node": ">=10" 1999 + }, 2000 + "funding": { 2001 + "url": "https://github.com/sponsors/sindresorhus" 2002 + } 2003 + }, 2004 + "node_modules/lodash.merge": { 2005 + "version": "4.6.2", 2006 + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", 2007 + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", 2008 + "dev": true 2009 + }, 2010 + "node_modules/lru-cache": { 2011 + "version": "6.0.0", 2012 + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", 2013 + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", 2014 + "dev": true, 2015 + "dependencies": { 2016 + "yallist": "^4.0.0" 2017 + }, 2018 + "engines": { 2019 + "node": ">=10" 2020 + } 2021 + }, 2022 + "node_modules/magic-string": { 2023 + "version": "0.30.2", 2024 + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.2.tgz", 2025 + "integrity": "sha512-lNZdu7pewtq/ZvWUp9Wpf/x7WzMTsR26TWV03BRZrXFsv+BI6dy8RAiKgm1uM/kyR0rCfUcqvOlXKG66KhIGug==", 2026 + "dev": true, 2027 + "dependencies": { 2028 + "@jridgewell/sourcemap-codec": "^1.4.15" 2029 + }, 2030 + "engines": { 2031 + "node": ">=12" 2032 + } 2033 + }, 2034 + "node_modules/mdn-data": { 2035 + "version": "2.0.30", 2036 + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.30.tgz", 2037 + "integrity": "sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==", 2038 + "dev": true 2039 + }, 2040 + "node_modules/merge2": { 2041 + "version": "1.4.1", 2042 + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", 2043 + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", 2044 + "dev": true, 2045 + "engines": { 2046 + "node": ">= 8" 2047 + } 2048 + }, 2049 + "node_modules/micromatch": { 2050 + "version": "4.0.5", 2051 + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", 2052 + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", 2053 + "dev": true, 2054 + "dependencies": { 2055 + "braces": "^3.0.2", 2056 + "picomatch": "^2.3.1" 2057 + }, 2058 + "engines": { 2059 + "node": ">=8.6" 2060 + } 2061 + }, 2062 + "node_modules/mime": { 2063 + "version": "3.0.0", 2064 + "resolved": "https://registry.npmjs.org/mime/-/mime-3.0.0.tgz", 2065 + "integrity": "sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==", 2066 + "dev": true, 2067 + "bin": { 2068 + "mime": "cli.js" 2069 + }, 2070 + "engines": { 2071 + "node": ">=10.0.0" 2072 + } 2073 + }, 2074 + "node_modules/min-indent": { 2075 + "version": "1.0.1", 2076 + "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", 2077 + "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==", 2078 + "dev": true, 2079 + "engines": { 2080 + "node": ">=4" 2081 + } 2082 + }, 2083 + "node_modules/minimatch": { 2084 + "version": "3.1.2", 2085 + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", 2086 + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", 2087 + "dev": true, 2088 + "dependencies": { 2089 + "brace-expansion": "^1.1.7" 2090 + }, 2091 + "engines": { 2092 + "node": "*" 2093 + } 2094 + }, 2095 + "node_modules/minimist": { 2096 + "version": "1.2.8", 2097 + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", 2098 + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", 2099 + "dev": true, 2100 + "funding": { 2101 + "url": "https://github.com/sponsors/ljharb" 2102 + } 2103 + }, 2104 + "node_modules/mkdirp": { 2105 + "version": "0.5.6", 2106 + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", 2107 + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", 2108 + "dev": true, 2109 + "dependencies": { 2110 + "minimist": "^1.2.6" 2111 + }, 2112 + "bin": { 2113 + "mkdirp": "bin/cmd.js" 2114 + } 2115 + }, 2116 + "node_modules/mri": { 2117 + "version": "1.2.0", 2118 + "resolved": "https://registry.npmjs.org/mri/-/mri-1.2.0.tgz", 2119 + "integrity": "sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==", 2120 + "dev": true, 2121 + "engines": { 2122 + "node": ">=4" 2123 + } 2124 + }, 2125 + "node_modules/mrmime": { 2126 + "version": "1.0.1", 2127 + "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-1.0.1.tgz", 2128 + "integrity": "sha512-hzzEagAgDyoU1Q6yg5uI+AorQgdvMCur3FcKf7NhMKWsaYg+RnbTyHRa/9IlLF9rf455MOCtcqqrQQ83pPP7Uw==", 2129 + "dev": true, 2130 + "engines": { 2131 + "node": ">=10" 2132 + } 2133 + }, 2134 + "node_modules/ms": { 2135 + "version": "2.1.2", 2136 + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", 2137 + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", 2138 + "dev": true 2139 + }, 2140 + "node_modules/nanoid": { 2141 + "version": "3.3.6", 2142 + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz", 2143 + "integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==", 2144 + "dev": true, 2145 + "funding": [ 2146 + { 2147 + "type": "github", 2148 + "url": "https://github.com/sponsors/ai" 2149 + } 2150 + ], 2151 + "bin": { 2152 + "nanoid": "bin/nanoid.cjs" 2153 + }, 2154 + "engines": { 2155 + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" 2156 + } 2157 + }, 2158 + "node_modules/natural-compare": { 2159 + "version": "1.4.0", 2160 + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", 2161 + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", 2162 + "dev": true 2163 + }, 2164 + "node_modules/natural-compare-lite": { 2165 + "version": "1.4.0", 2166 + "resolved": "https://registry.npmjs.org/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz", 2167 + "integrity": "sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==", 2168 + "dev": true 2169 + }, 2170 + "node_modules/normalize-path": { 2171 + "version": "3.0.0", 2172 + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", 2173 + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", 2174 + "dev": true, 2175 + "engines": { 2176 + "node": ">=0.10.0" 2177 + } 2178 + }, 2179 + "node_modules/once": { 2180 + "version": "1.4.0", 2181 + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", 2182 + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", 2183 + "dev": true, 2184 + "dependencies": { 2185 + "wrappy": "1" 2186 + } 2187 + }, 2188 + "node_modules/optionator": { 2189 + "version": "0.9.3", 2190 + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz", 2191 + "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==", 2192 + "dev": true, 2193 + "dependencies": { 2194 + "@aashutoshrathi/word-wrap": "^1.2.3", 2195 + "deep-is": "^0.1.3", 2196 + "fast-levenshtein": "^2.0.6", 2197 + "levn": "^0.4.1", 2198 + "prelude-ls": "^1.2.1", 2199 + "type-check": "^0.4.0" 2200 + }, 2201 + "engines": { 2202 + "node": ">= 0.8.0" 2203 + } 2204 + }, 2205 + "node_modules/p-limit": { 2206 + "version": "3.1.0", 2207 + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", 2208 + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", 2209 + "dev": true, 2210 + "dependencies": { 2211 + "yocto-queue": "^0.1.0" 2212 + }, 2213 + "engines": { 2214 + "node": ">=10" 2215 + }, 2216 + "funding": { 2217 + "url": "https://github.com/sponsors/sindresorhus" 2218 + } 2219 + }, 2220 + "node_modules/p-locate": { 2221 + "version": "5.0.0", 2222 + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", 2223 + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", 2224 + "dev": true, 2225 + "dependencies": { 2226 + "p-limit": "^3.0.2" 2227 + }, 2228 + "engines": { 2229 + "node": ">=10" 2230 + }, 2231 + "funding": { 2232 + "url": "https://github.com/sponsors/sindresorhus" 2233 + } 2234 + }, 2235 + "node_modules/parent-module": { 2236 + "version": "1.0.1", 2237 + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", 2238 + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", 2239 + "dev": true, 2240 + "dependencies": { 2241 + "callsites": "^3.0.0" 2242 + }, 2243 + "engines": { 2244 + "node": ">=6" 2245 + } 2246 + }, 2247 + "node_modules/path-exists": { 2248 + "version": "4.0.0", 2249 + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", 2250 + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", 2251 + "dev": true, 2252 + "engines": { 2253 + "node": ">=8" 2254 + } 2255 + }, 2256 + "node_modules/path-is-absolute": { 2257 + "version": "1.0.1", 2258 + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", 2259 + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", 2260 + "dev": true, 2261 + "engines": { 2262 + "node": ">=0.10.0" 2263 + } 2264 + }, 2265 + "node_modules/path-key": { 2266 + "version": "3.1.1", 2267 + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", 2268 + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", 2269 + "dev": true, 2270 + "engines": { 2271 + "node": ">=8" 2272 + } 2273 + }, 2274 + "node_modules/path-type": { 2275 + "version": "4.0.0", 2276 + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", 2277 + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", 2278 + "dev": true, 2279 + "engines": { 2280 + "node": ">=8" 2281 + } 2282 + }, 2283 + "node_modules/periscopic": { 2284 + "version": "3.1.0", 2285 + "resolved": "https://registry.npmjs.org/periscopic/-/periscopic-3.1.0.tgz", 2286 + "integrity": "sha512-vKiQ8RRtkl9P+r/+oefh25C3fhybptkHKCZSPlcXiJux2tJF55GnEj3BVn4A5gKfq9NWWXXrxkHBwVPUfH0opw==", 2287 + "dev": true, 2288 + "dependencies": { 2289 + "@types/estree": "^1.0.0", 2290 + "estree-walker": "^3.0.0", 2291 + "is-reference": "^3.0.0" 2292 + } 2293 + }, 2294 + "node_modules/picocolors": { 2295 + "version": "1.0.0", 2296 + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", 2297 + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", 2298 + "dev": true 2299 + }, 2300 + "node_modules/picomatch": { 2301 + "version": "2.3.1", 2302 + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", 2303 + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", 2304 + "dev": true, 2305 + "engines": { 2306 + "node": ">=8.6" 2307 + }, 2308 + "funding": { 2309 + "url": "https://github.com/sponsors/jonschlinkert" 2310 + } 2311 + }, 2312 + "node_modules/postcss": { 2313 + "version": "8.4.27", 2314 + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.27.tgz", 2315 + "integrity": "sha512-gY/ACJtJPSmUFPDCHtX78+01fHa64FaU4zaaWfuh1MhGJISufJAH4cun6k/8fwsHYeK4UQmENQK+tRLCFJE8JQ==", 2316 + "dev": true, 2317 + "funding": [ 2318 + { 2319 + "type": "opencollective", 2320 + "url": "https://opencollective.com/postcss/" 2321 + }, 2322 + { 2323 + "type": "tidelift", 2324 + "url": "https://tidelift.com/funding/github/npm/postcss" 2325 + }, 2326 + { 2327 + "type": "github", 2328 + "url": "https://github.com/sponsors/ai" 2329 + } 2330 + ], 2331 + "dependencies": { 2332 + "nanoid": "^3.3.6", 2333 + "picocolors": "^1.0.0", 2334 + "source-map-js": "^1.0.2" 2335 + }, 2336 + "engines": { 2337 + "node": "^10 || ^12 || >=14" 2338 + } 2339 + }, 2340 + "node_modules/postcss-load-config": { 2341 + "version": "3.1.4", 2342 + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-3.1.4.tgz", 2343 + "integrity": "sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==", 2344 + "dev": true, 2345 + "dependencies": { 2346 + "lilconfig": "^2.0.5", 2347 + "yaml": "^1.10.2" 2348 + }, 2349 + "engines": { 2350 + "node": ">= 10" 2351 + }, 2352 + "funding": { 2353 + "type": "opencollective", 2354 + "url": "https://opencollective.com/postcss/" 2355 + }, 2356 + "peerDependencies": { 2357 + "postcss": ">=8.0.9", 2358 + "ts-node": ">=9.0.0" 2359 + }, 2360 + "peerDependenciesMeta": { 2361 + "postcss": { 2362 + "optional": true 2363 + }, 2364 + "ts-node": { 2365 + "optional": true 2366 + } 2367 + } 2368 + }, 2369 + "node_modules/postcss-safe-parser": { 2370 + "version": "6.0.0", 2371 + "resolved": "https://registry.npmjs.org/postcss-safe-parser/-/postcss-safe-parser-6.0.0.tgz", 2372 + "integrity": "sha512-FARHN8pwH+WiS2OPCxJI8FuRJpTVnn6ZNFiqAM2aeW2LwTHWWmWgIyKC6cUo0L8aeKiF/14MNvnpls6R2PBeMQ==", 2373 + "dev": true, 2374 + "engines": { 2375 + "node": ">=12.0" 2376 + }, 2377 + "funding": { 2378 + "type": "opencollective", 2379 + "url": "https://opencollective.com/postcss/" 2380 + }, 2381 + "peerDependencies": { 2382 + "postcss": "^8.3.3" 2383 + } 2384 + }, 2385 + "node_modules/postcss-scss": { 2386 + "version": "4.0.6", 2387 + "resolved": "https://registry.npmjs.org/postcss-scss/-/postcss-scss-4.0.6.tgz", 2388 + "integrity": "sha512-rLDPhJY4z/i4nVFZ27j9GqLxj1pwxE80eAzUNRMXtcpipFYIeowerzBgG3yJhMtObGEXidtIgbUpQ3eLDsf5OQ==", 2389 + "dev": true, 2390 + "funding": [ 2391 + { 2392 + "type": "opencollective", 2393 + "url": "https://opencollective.com/postcss/" 2394 + }, 2395 + { 2396 + "type": "tidelift", 2397 + "url": "https://tidelift.com/funding/github/npm/postcss-scss" 2398 + } 2399 + ], 2400 + "engines": { 2401 + "node": ">=12.0" 2402 + }, 2403 + "peerDependencies": { 2404 + "postcss": "^8.4.19" 2405 + } 2406 + }, 2407 + "node_modules/postcss-selector-parser": { 2408 + "version": "6.0.13", 2409 + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.13.tgz", 2410 + "integrity": "sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ==", 2411 + "dev": true, 2412 + "dependencies": { 2413 + "cssesc": "^3.0.0", 2414 + "util-deprecate": "^1.0.2" 2415 + }, 2416 + "engines": { 2417 + "node": ">=4" 2418 + } 2419 + }, 2420 + "node_modules/prelude-ls": { 2421 + "version": "1.2.1", 2422 + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", 2423 + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", 2424 + "dev": true, 2425 + "engines": { 2426 + "node": ">= 0.8.0" 2427 + } 2428 + }, 2429 + "node_modules/prettier": { 2430 + "version": "3.0.1", 2431 + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.0.1.tgz", 2432 + "integrity": "sha512-fcOWSnnpCrovBsmFZIGIy9UqK2FaI7Hqax+DIO0A9UxeVoY4iweyaFjS5TavZN97Hfehph0nhsZnjlVKzEQSrQ==", 2433 + "dev": true, 2434 + "bin": { 2435 + "prettier": "bin/prettier.cjs" 2436 + }, 2437 + "engines": { 2438 + "node": ">=14" 2439 + }, 2440 + "funding": { 2441 + "url": "https://github.com/prettier/prettier?sponsor=1" 2442 + } 2443 + }, 2444 + "node_modules/prettier-plugin-svelte": { 2445 + "version": "3.0.3", 2446 + "resolved": "https://registry.npmjs.org/prettier-plugin-svelte/-/prettier-plugin-svelte-3.0.3.tgz", 2447 + "integrity": "sha512-dLhieh4obJEK1hnZ6koxF+tMUrZbV5YGvRpf2+OADyanjya5j0z1Llo8iGwiHmFWZVG/hLEw/AJD5chXd9r3XA==", 2448 + "dev": true, 2449 + "peerDependencies": { 2450 + "prettier": "^3.0.0", 2451 + "svelte": "^3.2.0 || ^4.0.0-next.0" 2452 + } 2453 + }, 2454 + "node_modules/punycode": { 2455 + "version": "2.3.0", 2456 + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", 2457 + "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", 2458 + "dev": true, 2459 + "engines": { 2460 + "node": ">=6" 2461 + } 2462 + }, 2463 + "node_modules/queue-microtask": { 2464 + "version": "1.2.3", 2465 + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", 2466 + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", 2467 + "dev": true, 2468 + "funding": [ 2469 + { 2470 + "type": "github", 2471 + "url": "https://github.com/sponsors/feross" 2472 + }, 2473 + { 2474 + "type": "patreon", 2475 + "url": "https://www.patreon.com/feross" 2476 + }, 2477 + { 2478 + "type": "consulting", 2479 + "url": "https://feross.org/support" 2480 + } 2481 + ] 2482 + }, 2483 + "node_modules/readdirp": { 2484 + "version": "3.6.0", 2485 + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", 2486 + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", 2487 + "dev": true, 2488 + "dependencies": { 2489 + "picomatch": "^2.2.1" 2490 + }, 2491 + "engines": { 2492 + "node": ">=8.10.0" 2493 + } 2494 + }, 2495 + "node_modules/resolve-from": { 2496 + "version": "4.0.0", 2497 + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", 2498 + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", 2499 + "dev": true, 2500 + "engines": { 2501 + "node": ">=4" 2502 + } 2503 + }, 2504 + "node_modules/reusify": { 2505 + "version": "1.0.4", 2506 + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", 2507 + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", 2508 + "dev": true, 2509 + "engines": { 2510 + "iojs": ">=1.0.0", 2511 + "node": ">=0.10.0" 2512 + } 2513 + }, 2514 + "node_modules/rimraf": { 2515 + "version": "3.0.2", 2516 + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", 2517 + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", 2518 + "dev": true, 2519 + "dependencies": { 2520 + "glob": "^7.1.3" 2521 + }, 2522 + "bin": { 2523 + "rimraf": "bin.js" 2524 + }, 2525 + "funding": { 2526 + "url": "https://github.com/sponsors/isaacs" 2527 + } 2528 + }, 2529 + "node_modules/rollup": { 2530 + "version": "3.27.2", 2531 + "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.27.2.tgz", 2532 + "integrity": "sha512-YGwmHf7h2oUHkVBT248x0yt6vZkYQ3/rvE5iQuVBh3WO8GcJ6BNeOkpoX1yMHIiBm18EMLjBPIoUDkhgnyxGOQ==", 2533 + "dev": true, 2534 + "bin": { 2535 + "rollup": "dist/bin/rollup" 2536 + }, 2537 + "engines": { 2538 + "node": ">=14.18.0", 2539 + "npm": ">=8.0.0" 2540 + }, 2541 + "optionalDependencies": { 2542 + "fsevents": "~2.3.2" 2543 + } 2544 + }, 2545 + "node_modules/run-parallel": { 2546 + "version": "1.2.0", 2547 + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", 2548 + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", 2549 + "dev": true, 2550 + "funding": [ 2551 + { 2552 + "type": "github", 2553 + "url": "https://github.com/sponsors/feross" 2554 + }, 2555 + { 2556 + "type": "patreon", 2557 + "url": "https://www.patreon.com/feross" 2558 + }, 2559 + { 2560 + "type": "consulting", 2561 + "url": "https://feross.org/support" 2562 + } 2563 + ], 2564 + "dependencies": { 2565 + "queue-microtask": "^1.2.2" 2566 + } 2567 + }, 2568 + "node_modules/sade": { 2569 + "version": "1.8.1", 2570 + "resolved": "https://registry.npmjs.org/sade/-/sade-1.8.1.tgz", 2571 + "integrity": "sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==", 2572 + "dev": true, 2573 + "dependencies": { 2574 + "mri": "^1.1.0" 2575 + }, 2576 + "engines": { 2577 + "node": ">=6" 2578 + } 2579 + }, 2580 + "node_modules/sander": { 2581 + "version": "0.5.1", 2582 + "resolved": "https://registry.npmjs.org/sander/-/sander-0.5.1.tgz", 2583 + "integrity": "sha512-3lVqBir7WuKDHGrKRDn/1Ye3kwpXaDOMsiRP1wd6wpZW56gJhsbp5RqQpA6JG/P+pkXizygnr1dKR8vzWaVsfA==", 2584 + "dev": true, 2585 + "dependencies": { 2586 + "es6-promise": "^3.1.2", 2587 + "graceful-fs": "^4.1.3", 2588 + "mkdirp": "^0.5.1", 2589 + "rimraf": "^2.5.2" 2590 + } 2591 + }, 2592 + "node_modules/sander/node_modules/rimraf": { 2593 + "version": "2.7.1", 2594 + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", 2595 + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", 2596 + "dev": true, 2597 + "dependencies": { 2598 + "glob": "^7.1.3" 2599 + }, 2600 + "bin": { 2601 + "rimraf": "bin.js" 2602 + } 2603 + }, 2604 + "node_modules/sass": { 2605 + "version": "1.64.2", 2606 + "resolved": "https://registry.npmjs.org/sass/-/sass-1.64.2.tgz", 2607 + "integrity": "sha512-TnDlfc+CRnUAgLO9D8cQLFu/GIjJIzJCGkE7o4ekIGQOH7T3GetiRR/PsTWJUHhkzcSPrARkPI+gNWn5alCzDg==", 2608 + "dev": true, 2609 + "dependencies": { 2610 + "chokidar": ">=3.0.0 <4.0.0", 2611 + "immutable": "^4.0.0", 2612 + "source-map-js": ">=0.6.2 <2.0.0" 2613 + }, 2614 + "bin": { 2615 + "sass": "sass.js" 2616 + }, 2617 + "engines": { 2618 + "node": ">=14.0.0" 2619 + } 2620 + }, 2621 + "node_modules/semver": { 2622 + "version": "7.5.4", 2623 + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", 2624 + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", 2625 + "dev": true, 2626 + "dependencies": { 2627 + "lru-cache": "^6.0.0" 2628 + }, 2629 + "bin": { 2630 + "semver": "bin/semver.js" 2631 + }, 2632 + "engines": { 2633 + "node": ">=10" 2634 + } 2635 + }, 2636 + "node_modules/set-cookie-parser": { 2637 + "version": "2.6.0", 2638 + "resolved": "https://registry.npmjs.org/set-cookie-parser/-/set-cookie-parser-2.6.0.tgz", 2639 + "integrity": "sha512-RVnVQxTXuerk653XfuliOxBP81Sf0+qfQE73LIYKcyMYHG94AuH0kgrQpRDuTZnSmjpysHmzxJXKNfa6PjFhyQ==", 2640 + "dev": true 2641 + }, 2642 + "node_modules/shebang-command": { 2643 + "version": "2.0.0", 2644 + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", 2645 + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", 2646 + "dev": true, 2647 + "dependencies": { 2648 + "shebang-regex": "^3.0.0" 2649 + }, 2650 + "engines": { 2651 + "node": ">=8" 2652 + } 2653 + }, 2654 + "node_modules/shebang-regex": { 2655 + "version": "3.0.0", 2656 + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", 2657 + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", 2658 + "dev": true, 2659 + "engines": { 2660 + "node": ">=8" 2661 + } 2662 + }, 2663 + "node_modules/sirv": { 2664 + "version": "2.0.3", 2665 + "resolved": "https://registry.npmjs.org/sirv/-/sirv-2.0.3.tgz", 2666 + "integrity": "sha512-O9jm9BsID1P+0HOi81VpXPoDxYP374pkOLzACAoyUQ/3OUVndNpsz6wMnY2z+yOxzbllCKZrM+9QrWsv4THnyA==", 2667 + "dev": true, 2668 + "dependencies": { 2669 + "@polka/url": "^1.0.0-next.20", 2670 + "mrmime": "^1.0.0", 2671 + "totalist": "^3.0.0" 2672 + }, 2673 + "engines": { 2674 + "node": ">= 10" 2675 + } 2676 + }, 2677 + "node_modules/slash": { 2678 + "version": "3.0.0", 2679 + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", 2680 + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", 2681 + "dev": true, 2682 + "engines": { 2683 + "node": ">=8" 2684 + } 2685 + }, 2686 + "node_modules/sorcery": { 2687 + "version": "0.11.0", 2688 + "resolved": "https://registry.npmjs.org/sorcery/-/sorcery-0.11.0.tgz", 2689 + "integrity": "sha512-J69LQ22xrQB1cIFJhPfgtLuI6BpWRiWu1Y3vSsIwK/eAScqJxd/+CJlUuHQRdX2C9NGFamq+KqNywGgaThwfHw==", 2690 + "dev": true, 2691 + "dependencies": { 2692 + "@jridgewell/sourcemap-codec": "^1.4.14", 2693 + "buffer-crc32": "^0.2.5", 2694 + "minimist": "^1.2.0", 2695 + "sander": "^0.5.0" 2696 + }, 2697 + "bin": { 2698 + "sorcery": "bin/sorcery" 2699 + } 2700 + }, 2701 + "node_modules/source-map-js": { 2702 + "version": "1.0.2", 2703 + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", 2704 + "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", 2705 + "dev": true, 2706 + "engines": { 2707 + "node": ">=0.10.0" 2708 + } 2709 + }, 2710 + "node_modules/streamsearch": { 2711 + "version": "1.1.0", 2712 + "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz", 2713 + "integrity": "sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==", 2714 + "dev": true, 2715 + "engines": { 2716 + "node": ">=10.0.0" 2717 + } 2718 + }, 2719 + "node_modules/strip-ansi": { 2720 + "version": "6.0.1", 2721 + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", 2722 + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", 2723 + "dev": true, 2724 + "dependencies": { 2725 + "ansi-regex": "^5.0.1" 2726 + }, 2727 + "engines": { 2728 + "node": ">=8" 2729 + } 2730 + }, 2731 + "node_modules/strip-indent": { 2732 + "version": "3.0.0", 2733 + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", 2734 + "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", 2735 + "dev": true, 2736 + "dependencies": { 2737 + "min-indent": "^1.0.0" 2738 + }, 2739 + "engines": { 2740 + "node": ">=8" 2741 + } 2742 + }, 2743 + "node_modules/strip-json-comments": { 2744 + "version": "3.1.1", 2745 + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", 2746 + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", 2747 + "dev": true, 2748 + "engines": { 2749 + "node": ">=8" 2750 + }, 2751 + "funding": { 2752 + "url": "https://github.com/sponsors/sindresorhus" 2753 + } 2754 + }, 2755 + "node_modules/strnum": { 2756 + "version": "1.0.5", 2757 + "resolved": "https://registry.npmjs.org/strnum/-/strnum-1.0.5.tgz", 2758 + "integrity": "sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA==", 2759 + "dev": true 2760 + }, 2761 + "node_modules/supports-color": { 2762 + "version": "7.2.0", 2763 + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", 2764 + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", 2765 + "dev": true, 2766 + "dependencies": { 2767 + "has-flag": "^4.0.0" 2768 + }, 2769 + "engines": { 2770 + "node": ">=8" 2771 + } 2772 + }, 2773 + "node_modules/svelte": { 2774 + "version": "4.1.2", 2775 + "resolved": "https://registry.npmjs.org/svelte/-/svelte-4.1.2.tgz", 2776 + "integrity": "sha512-/evA8U6CgOHe5ZD1C1W3va9iJG7mWflcCdghBORJaAhD2JzrVERJty/2gl0pIPrJYBGZwZycH6onYf+64XXF9g==", 2777 + "dev": true, 2778 + "dependencies": { 2779 + "@ampproject/remapping": "^2.2.1", 2780 + "@jridgewell/sourcemap-codec": "^1.4.15", 2781 + "@jridgewell/trace-mapping": "^0.3.18", 2782 + "acorn": "^8.9.0", 2783 + "aria-query": "^5.3.0", 2784 + "axobject-query": "^3.2.1", 2785 + "code-red": "^1.0.3", 2786 + "css-tree": "^2.3.1", 2787 + "estree-walker": "^3.0.3", 2788 + "is-reference": "^3.0.1", 2789 + "locate-character": "^3.0.0", 2790 + "magic-string": "^0.30.0", 2791 + "periscopic": "^3.1.0" 2792 + }, 2793 + "engines": { 2794 + "node": ">=16" 2795 + } 2796 + }, 2797 + "node_modules/svelte-check": { 2798 + "version": "3.4.6", 2799 + "resolved": "https://registry.npmjs.org/svelte-check/-/svelte-check-3.4.6.tgz", 2800 + "integrity": "sha512-OBlY8866Zh1zHQTkBMPS6psPi7o2umTUyj6JWm4SacnIHXpWFm658pG32m3dKvKFL49V4ntAkfFHKo4ztH07og==", 2801 + "dev": true, 2802 + "dependencies": { 2803 + "@jridgewell/trace-mapping": "^0.3.17", 2804 + "chokidar": "^3.4.1", 2805 + "fast-glob": "^3.2.7", 2806 + "import-fresh": "^3.2.1", 2807 + "picocolors": "^1.0.0", 2808 + "sade": "^1.7.4", 2809 + "svelte-preprocess": "^5.0.4", 2810 + "typescript": "^5.0.3" 2811 + }, 2812 + "bin": { 2813 + "svelte-check": "bin/svelte-check" 2814 + }, 2815 + "peerDependencies": { 2816 + "svelte": "^3.55.0 || ^4.0.0-next.0 || ^4.0.0" 2817 + } 2818 + }, 2819 + "node_modules/svelte-eslint-parser": { 2820 + "version": "0.32.2", 2821 + "resolved": "https://registry.npmjs.org/svelte-eslint-parser/-/svelte-eslint-parser-0.32.2.tgz", 2822 + "integrity": "sha512-Ok9D3A4b23iLQsONrjqtXtYDu5ZZ/826Blaw2LeFZVTg1pwofKDG4mz3/GYTax8fQ0plRGHI6j+d9VQYy5Lo/A==", 2823 + "dev": true, 2824 + "dependencies": { 2825 + "eslint-scope": "^7.0.0", 2826 + "eslint-visitor-keys": "^3.0.0", 2827 + "espree": "^9.0.0", 2828 + "postcss": "^8.4.25", 2829 + "postcss-scss": "^4.0.6" 2830 + }, 2831 + "engines": { 2832 + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" 2833 + }, 2834 + "funding": { 2835 + "url": "https://github.com/sponsors/ota-meshi" 2836 + }, 2837 + "peerDependencies": { 2838 + "svelte": "^3.37.0 || ^4.0.0" 2839 + }, 2840 + "peerDependenciesMeta": { 2841 + "svelte": { 2842 + "optional": true 2843 + } 2844 + } 2845 + }, 2846 + "node_modules/svelte-hmr": { 2847 + "version": "0.15.3", 2848 + "resolved": "https://registry.npmjs.org/svelte-hmr/-/svelte-hmr-0.15.3.tgz", 2849 + "integrity": "sha512-41snaPswvSf8TJUhlkoJBekRrABDXDMdpNpT2tfHIv4JuhgvHqLMhEPGtaQn0BmbNSTkuz2Ed20DF2eHw0SmBQ==", 2850 + "dev": true, 2851 + "engines": { 2852 + "node": "^12.20 || ^14.13.1 || >= 16" 2853 + }, 2854 + "peerDependencies": { 2855 + "svelte": "^3.19.0 || ^4.0.0" 2856 + } 2857 + }, 2858 + "node_modules/svelte-preprocess": { 2859 + "version": "5.0.4", 2860 + "resolved": "https://registry.npmjs.org/svelte-preprocess/-/svelte-preprocess-5.0.4.tgz", 2861 + "integrity": "sha512-ABia2QegosxOGsVlsSBJvoWeXy1wUKSfF7SWJdTjLAbx/Y3SrVevvvbFNQqrSJw89+lNSsM58SipmZJ5SRi5iw==", 2862 + "dev": true, 2863 + "hasInstallScript": true, 2864 + "dependencies": { 2865 + "@types/pug": "^2.0.6", 2866 + "detect-indent": "^6.1.0", 2867 + "magic-string": "^0.27.0", 2868 + "sorcery": "^0.11.0", 2869 + "strip-indent": "^3.0.0" 2870 + }, 2871 + "engines": { 2872 + "node": ">= 14.10.0" 2873 + }, 2874 + "peerDependencies": { 2875 + "@babel/core": "^7.10.2", 2876 + "coffeescript": "^2.5.1", 2877 + "less": "^3.11.3 || ^4.0.0", 2878 + "postcss": "^7 || ^8", 2879 + "postcss-load-config": "^2.1.0 || ^3.0.0 || ^4.0.0", 2880 + "pug": "^3.0.0", 2881 + "sass": "^1.26.8", 2882 + "stylus": "^0.55.0", 2883 + "sugarss": "^2.0.0 || ^3.0.0 || ^4.0.0", 2884 + "svelte": "^3.23.0 || ^4.0.0-next.0 || ^4.0.0", 2885 + "typescript": ">=3.9.5 || ^4.0.0 || ^5.0.0" 2886 + }, 2887 + "peerDependenciesMeta": { 2888 + "@babel/core": { 2889 + "optional": true 2890 + }, 2891 + "coffeescript": { 2892 + "optional": true 2893 + }, 2894 + "less": { 2895 + "optional": true 2896 + }, 2897 + "postcss": { 2898 + "optional": true 2899 + }, 2900 + "postcss-load-config": { 2901 + "optional": true 2902 + }, 2903 + "pug": { 2904 + "optional": true 2905 + }, 2906 + "sass": { 2907 + "optional": true 2908 + }, 2909 + "stylus": { 2910 + "optional": true 2911 + }, 2912 + "sugarss": { 2913 + "optional": true 2914 + }, 2915 + "typescript": { 2916 + "optional": true 2917 + } 2918 + } 2919 + }, 2920 + "node_modules/svelte-preprocess/node_modules/magic-string": { 2921 + "version": "0.27.0", 2922 + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.27.0.tgz", 2923 + "integrity": "sha512-8UnnX2PeRAPZuN12svgR9j7M1uWMovg/CEnIwIG0LFkXSJJe4PdfUGiTGl8V9bsBHFUtfVINcSyYxd7q+kx9fA==", 2924 + "dev": true, 2925 + "dependencies": { 2926 + "@jridgewell/sourcemap-codec": "^1.4.13" 2927 + }, 2928 + "engines": { 2929 + "node": ">=12" 2930 + } 2931 + }, 2932 + "node_modules/text-table": { 2933 + "version": "0.2.0", 2934 + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", 2935 + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", 2936 + "dev": true 2937 + }, 2938 + "node_modules/to-regex-range": { 2939 + "version": "5.0.1", 2940 + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", 2941 + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", 2942 + "dev": true, 2943 + "dependencies": { 2944 + "is-number": "^7.0.0" 2945 + }, 2946 + "engines": { 2947 + "node": ">=8.0" 2948 + } 2949 + }, 2950 + "node_modules/totalist": { 2951 + "version": "3.0.1", 2952 + "resolved": "https://registry.npmjs.org/totalist/-/totalist-3.0.1.tgz", 2953 + "integrity": "sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==", 2954 + "dev": true, 2955 + "engines": { 2956 + "node": ">=6" 2957 + } 2958 + }, 2959 + "node_modules/ts-api-utils": { 2960 + "version": "1.0.1", 2961 + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.0.1.tgz", 2962 + "integrity": "sha512-lC/RGlPmwdrIBFTX59wwNzqh7aR2otPNPR/5brHZm/XKFYKsfqxihXUe9pU3JI+3vGkl+vyCoNNnPhJn3aLK1A==", 2963 + "dev": true, 2964 + "engines": { 2965 + "node": ">=16.13.0" 2966 + }, 2967 + "peerDependencies": { 2968 + "typescript": ">=4.2.0" 2969 + } 2970 + }, 2971 + "node_modules/type-check": { 2972 + "version": "0.4.0", 2973 + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", 2974 + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", 2975 + "dev": true, 2976 + "dependencies": { 2977 + "prelude-ls": "^1.2.1" 2978 + }, 2979 + "engines": { 2980 + "node": ">= 0.8.0" 2981 + } 2982 + }, 2983 + "node_modules/type-fest": { 2984 + "version": "0.20.2", 2985 + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", 2986 + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", 2987 + "dev": true, 2988 + "engines": { 2989 + "node": ">=10" 2990 + }, 2991 + "funding": { 2992 + "url": "https://github.com/sponsors/sindresorhus" 2993 + } 2994 + }, 2995 + "node_modules/typescript": { 2996 + "version": "5.1.6", 2997 + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.1.6.tgz", 2998 + "integrity": "sha512-zaWCozRZ6DLEWAWFrVDz1H6FVXzUSfTy5FUMWsQlU8Ym5JP9eO4xkTIROFCQvhQf61z6O/G6ugw3SgAnvvm+HA==", 2999 + "dev": true, 3000 + "bin": { 3001 + "tsc": "bin/tsc", 3002 + "tsserver": "bin/tsserver" 3003 + }, 3004 + "engines": { 3005 + "node": ">=14.17" 3006 + } 3007 + }, 3008 + "node_modules/undici": { 3009 + "version": "5.22.0", 3010 + "resolved": "https://registry.npmjs.org/undici/-/undici-5.22.0.tgz", 3011 + "integrity": "sha512-fR9RXCc+6Dxav4P9VV/sp5w3eFiSdOjJYsbtWfd4s5L5C4ogyuVpdKIVHeW0vV1MloM65/f7W45nR9ZxwVdyiA==", 3012 + "dev": true, 3013 + "dependencies": { 3014 + "busboy": "^1.6.0" 3015 + }, 3016 + "engines": { 3017 + "node": ">=14.0" 3018 + } 3019 + }, 3020 + "node_modules/uri-js": { 3021 + "version": "4.4.1", 3022 + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", 3023 + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", 3024 + "dev": true, 3025 + "dependencies": { 3026 + "punycode": "^2.1.0" 3027 + } 3028 + }, 3029 + "node_modules/util-deprecate": { 3030 + "version": "1.0.2", 3031 + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", 3032 + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", 3033 + "dev": true 3034 + }, 3035 + "node_modules/vite": { 3036 + "version": "4.4.8", 3037 + "resolved": "https://registry.npmjs.org/vite/-/vite-4.4.8.tgz", 3038 + "integrity": "sha512-LONawOUUjxQridNWGQlNizfKH89qPigK36XhMI7COMGztz8KNY0JHim7/xDd71CZwGT4HtSRgI7Hy+RlhG0Gvg==", 3039 + "dev": true, 3040 + "dependencies": { 3041 + "esbuild": "^0.18.10", 3042 + "postcss": "^8.4.26", 3043 + "rollup": "^3.25.2" 3044 + }, 3045 + "bin": { 3046 + "vite": "bin/vite.js" 3047 + }, 3048 + "engines": { 3049 + "node": "^14.18.0 || >=16.0.0" 3050 + }, 3051 + "funding": { 3052 + "url": "https://github.com/vitejs/vite?sponsor=1" 3053 + }, 3054 + "optionalDependencies": { 3055 + "fsevents": "~2.3.2" 3056 + }, 3057 + "peerDependencies": { 3058 + "@types/node": ">= 14", 3059 + "less": "*", 3060 + "lightningcss": "^1.21.0", 3061 + "sass": "*", 3062 + "stylus": "*", 3063 + "sugarss": "*", 3064 + "terser": "^5.4.0" 3065 + }, 3066 + "peerDependenciesMeta": { 3067 + "@types/node": { 3068 + "optional": true 3069 + }, 3070 + "less": { 3071 + "optional": true 3072 + }, 3073 + "lightningcss": { 3074 + "optional": true 3075 + }, 3076 + "sass": { 3077 + "optional": true 3078 + }, 3079 + "stylus": { 3080 + "optional": true 3081 + }, 3082 + "sugarss": { 3083 + "optional": true 3084 + }, 3085 + "terser": { 3086 + "optional": true 3087 + } 3088 + } 3089 + }, 3090 + "node_modules/vitefu": { 3091 + "version": "0.2.4", 3092 + "resolved": "https://registry.npmjs.org/vitefu/-/vitefu-0.2.4.tgz", 3093 + "integrity": "sha512-fanAXjSaf9xXtOOeno8wZXIhgia+CZury481LsDaV++lSvcU2R9Ch2bPh3PYFyoHW+w9LqAeYRISVQjUIew14g==", 3094 + "dev": true, 3095 + "peerDependencies": { 3096 + "vite": "^3.0.0 || ^4.0.0" 3097 + }, 3098 + "peerDependenciesMeta": { 3099 + "vite": { 3100 + "optional": true 3101 + } 3102 + } 3103 + }, 3104 + "node_modules/which": { 3105 + "version": "2.0.2", 3106 + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", 3107 + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", 3108 + "dev": true, 3109 + "dependencies": { 3110 + "isexe": "^2.0.0" 3111 + }, 3112 + "bin": { 3113 + "node-which": "bin/node-which" 3114 + }, 3115 + "engines": { 3116 + "node": ">= 8" 3117 + } 3118 + }, 3119 + "node_modules/wrappy": { 3120 + "version": "1.0.2", 3121 + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", 3122 + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", 3123 + "dev": true 3124 + }, 3125 + "node_modules/yallist": { 3126 + "version": "4.0.0", 3127 + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", 3128 + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", 3129 + "dev": true 3130 + }, 3131 + "node_modules/yaml": { 3132 + "version": "1.10.2", 3133 + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", 3134 + "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", 3135 + "dev": true, 3136 + "engines": { 3137 + "node": ">= 6" 3138 + } 3139 + }, 3140 + "node_modules/yocto-queue": { 3141 + "version": "0.1.0", 3142 + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", 3143 + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", 3144 + "dev": true, 3145 + "engines": { 3146 + "node": ">=10" 3147 + }, 3148 + "funding": { 3149 + "url": "https://github.com/sponsors/sindresorhus" 3150 + } 3151 + } 3152 + } 3153 + }
+39
package.json
··· 1 + { 2 + "private": true, 3 + "type": "module", 4 + "scripts": { 5 + "dev": "vite dev", 6 + "build": "vite build", 7 + "preview": "vite preview", 8 + "lint": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json && eslint src && prettier --check src", 9 + "format": "eslint --fix src && prettier --write src" 10 + }, 11 + "devDependencies": { 12 + "@sveltejs/adapter-static": "^2.0.3", 13 + "@sveltejs/kit": "^1.22.4", 14 + "@types/jquery": "^3.5.16", 15 + "@typescript-eslint/eslint-plugin": "^6.2.1", 16 + "@typescript-eslint/parser": "^6.2.1", 17 + "eslint": "^8.46.0", 18 + "eslint-config-prettier": "^8.10.0", 19 + "eslint-plugin-svelte": "^2.32.4", 20 + "fast-xml-parser": "^4.2.7", 21 + "jquery": "^3.7.0", 22 + "prettier": "^3.0.1", 23 + "prettier-plugin-svelte": "^3.0.3", 24 + "sass": "^1.64.2", 25 + "svelte": "^4.1.2", 26 + "svelte-check": "^3.4.6", 27 + "typescript": "^5.1.6", 28 + "vite": "^4.4.8" 29 + }, 30 + "prettier": { 31 + "useTabs": true, 32 + "printWidth": 100, 33 + "semi": false, 34 + "singleQuote": true, 35 + "plugins": [ 36 + "prettier-plugin-svelte" 37 + ] 38 + } 39 + }
+9
src/app.d.ts
··· 1 + // See https://kit.svelte.dev/docs/types#app 2 + // for information about these interfaces 3 + // and what to do when importing types 4 + declare namespace App { 5 + // interface Error {} 6 + // interface Locals {} 7 + // interface PageData {} 8 + // interface Platform {} 9 + }
+13
src/app.html
··· 1 + <!DOCTYPE html> 2 + <html lang="en"> 3 + <head> 4 + <meta charset="utf-8" /> 5 + <meta name="viewport" content="width=device-width, initial-scale=1" /> 6 + 7 + <link rel="icon" href="%sveltekit.assets%/favicon.ico" /> 8 + %sveltekit.head% 9 + </head> 10 + <body data-sveltekit-preload-data="hover"> 11 + <div style="display: contents">%sveltekit.body%</div> 12 + </body> 13 + </html>
+45
src/routes/+layout.server.ts
··· 1 + import { XMLParser } from 'fast-xml-parser' 2 + 3 + export const prerender = true 4 + 5 + async function fetch_channel_yt_videos(channel_id: string) { 6 + const response = await fetch( 7 + 'https://www.youtube.com/feeds/videos.xml?channel_id='+channel_id, 8 + ) 9 + const text = await response.text() 10 + const parser = new XMLParser() 11 + const xml: { 12 + feed: { 13 + entry: { 14 + title: string 15 + 'yt:videoId': string 16 + }[] 17 + } 18 + } = parser.parse(text) 19 + return xml.feed.entry.map((entry) => ({ 20 + title: entry.title, 21 + id: entry['yt:videoId'], 22 + })) 23 + } 24 + 25 + // old code for Lacuna SoundCloud tracks - SoundCloud API token is not valid 26 + // SC.initialize({ 27 + // client_id: "6ibYZTmF5qnpvp88S9V3werVrC18WCdC" //change 28 + // }); 29 + // SC.get("/users/247370320/tracks", {limit: 8}).then(function(tracks) { 30 + // for (var i = 0; i < tracks.length; i++) { 31 + // nthChild = i+1; 32 + // // coverSrc = JSON.stringify(tracks[i].artwork_url.replace("large", "t300x300")); 33 + // $("section.lacuna .item:nth-child("+nthChild+") div.img") 34 + // .attr("style", 'background-image: url("'+tracks[i].artwork_url.replace("large", "t300x300")+'")') 35 + // .parent().attr("href", tracks[i].permalink_url); 36 + // } 37 + // }); 38 + 39 + export async function load() { 40 + return { 41 + synctan_videos: fetch_channel_yt_videos('UCoMimPRPeR28TM3_0cinjVQ'), 42 + trap_united_videos: fetch_channel_yt_videos('UC0kHs8aHGQEtQODjt9XHjfQ'), 43 + personal_videos: fetch_channel_yt_videos('UCy6jcAF6fZGttRvihyQixbA'), 44 + } 45 + }
+299
src/routes/+page.svelte
··· 1 + <script lang="ts"> 2 + import { PUBLIC_EMAIL } from '$env/static/public' 3 + import { onMount } from 'svelte' 4 + import jq$ from 'jquery' 5 + import './global.sass' 6 + 7 + export let data 8 + 9 + // Responsive YT thumbnails/SC covers 10 + function resizeStuff() { 11 + const width = jq$('section.adjust-height .item').width() 12 + if (width) { 13 + const newHeight = (width / 16) * 9 14 + console.log(width) 15 + jq$('section.adjust-height .item').css('height', newHeight + 'px') 16 + } 17 + 18 + const newHeight2 = jq$('section:not(.adjust-height) .item').width() 19 + if (newHeight2) { 20 + jq$('section:not(.adjust-height) .item').css('height', newHeight2 + 'px') 21 + } 22 + } 23 + 24 + onMount(() => { 25 + resizeStuff() 26 + 27 + // Image hover z-index fix 28 + var high = 3 29 + jq$('.item').hover(function () { 30 + jq$(this).css({ 'z-index': high }) 31 + high++ 32 + }) 33 + 34 + // Chevron scroller 35 + var spacerHeight 36 + jq$('.chevron').on('click', function () { 37 + spacerHeight = jq$('.spacer').height() 38 + console.log(spacerHeight) 39 + window.scroll({ top: spacerHeight, left: 0, behavior: 'smooth' }) 40 + }) 41 + 42 + // Discord link popup 43 + jq$('body').on('click', function (e) { 44 + // Stop if input field was clicked 45 + if (!jq$(e.target).hasClass('popup-input')) { 46 + // If icon was clicked 47 + if (jq$(e.target).hasClass('discord')) { 48 + // Select text if hidden 49 + if (jq$(e.target).children('.popup').hasClass('hidden')) { 50 + jq$(e.target).children('.popup').children('input').select() 51 + } 52 + // Toggle visibility 53 + jq$(e.target).children('.popup').toggleClass('hidden') 54 + } 55 + // If hidden and icon was not clicked 56 + if (!jq$('.discord .popup').hasClass('hidden') && !jq$(e.target).hasClass('discord')) { 57 + // Hide 58 + jq$('.discord .popup').addClass('hidden') 59 + } 60 + } 61 + }) 62 + // Email link popup 63 + jq$('body').on('click', function (e) { 64 + // Stop if input field was clicked 65 + if (!jq$(e.target).hasClass('popup-input')) { 66 + // If icon was clicked 67 + if (jq$(e.target).hasClass('email')) { 68 + // Select text if hidden 69 + if (jq$(e.target).children('.popup').hasClass('hidden')) { 70 + jq$(e.target).children('.popup').children('input').select() 71 + } 72 + // Toggle visibility 73 + jq$(e.target).children('.popup').toggleClass('hidden') 74 + } 75 + // If hidden and icon was not clicked 76 + if (!jq$('.email .popup').hasClass('hidden') && !jq$(e.target).hasClass('email')) { 77 + // Hide 78 + jq$('.email .popup').addClass('hidden') 79 + } 80 + } 81 + }) 82 + }) 83 + </script> 84 + 85 + <svelte:window on:resize={resizeStuff} /> 86 + 87 + <div class="top"> 88 + <header class="page"> 89 + <img src="/logos/kh-transparent.png" /> 90 + <p class="one">Hi.</p> 91 + </header> 92 + <p class="two">I make things.</p> 93 + <section class="projects flex-row"> 94 + <div class="chevron"></div> 95 + <p class="three">Let me show you.</p> 96 + </section> 97 + </div> 98 + <div class="bottom"> 99 + <div class="spacer"> 100 + <div class="personal-links flex-row"> 101 + <a target="_blank" class="twitter" title="Twitter" href="https://twitter.com/SpectralKH"></a> 102 + <a class="discord" title="Discord"> 103 + <div class="popup hidden"> 104 + <input readonly class="popup-input" value="KH | Synctan &amp; Lacuna#6425" /> 105 + </div> 106 + </a> 107 + <a 108 + target="_blank" 109 + class="facebook" 110 + title="Facebook" 111 + href="https://www.facebook.com/SpectralKH" 112 + ></a> 113 + <a target="_blank" class="youtube" title="YouTube" href="https://youtube.com/SpectralKH"></a> 114 + <a 115 + target="_blank" 116 + class="soundcloud" 117 + title="SoundCloud" 118 + href="https://soundcloud.com/SpectralKH" 119 + ></a> 120 + <a target="_blank" class="github" title="GitHub" href="https://github.com/SpectralKH"></a> 121 + <a target="_blank" class="instagram" title="Instagram" href="https://www.instagram.com/spckh/" 122 + ></a> 123 + <a class="email" title="Email"> 124 + <div class="popup hidden"> 125 + <input readonly class="popup-input" value={PUBLIC_EMAIL} /> 126 + </div> 127 + </a> 128 + </div> 129 + </div> 130 + 131 + <section class="synctan adjust-height"> 132 + <header class="flex-row"> 133 + <a target="_blank" href="https://www.youtube.com/Synctan"> 134 + <img src="/logos/project/synctan.png" /> 135 + </a> 136 + <div class="text r"> 137 + <p class="title"> 138 + <a target="_blank" href="https://www.youtube.com/Synctan">Synctan</a> 139 + </p> 140 + <p class="description"> 141 + A YouTube channel where I curate all kinds of music, every Monday, Wednesday and Friday. 142 + </p> 143 + </div> 144 + </header> 145 + <main class="adjust-height flex-row"> 146 + {#each data.synctan_videos.slice(0, 8) as video} 147 + <a target="_blank" class="item" href="https://www.youtube.com/watch?v={video.id}"> 148 + <div class="overlay"></div> 149 + <p class="title">{video.title}</p> 150 + <div 151 + class="img" 152 + style:background-image="url(https://i.ytimg.com/vi/{video.id}/sddefault.jpg)" 153 + ></div> 154 + </a> 155 + {/each} 156 + </main> 157 + </section> 158 + 159 + <section class="lacuna"> 160 + <header class="flex-row"> 161 + <div class="text l"> 162 + <p class="title"> 163 + <a target="_blank" href="https://soundcloud.com/LacunaRecords">Lacuna Records</a> 164 + </p> 165 + <p class="description"> 166 + I am a co-owner of this independent indie record label, with a nice community behind it. 167 + </p> 168 + </div> 169 + <a target="_blank" href="https://soundcloud.com/LacunaRecords"> 170 + <img src="/logos/project/lacuna.png" /> 171 + </a> 172 + </header> 173 + <main class="flex-row"> 174 + {#each Array(8) as _} 175 + <a target="_blank" class="item"> 176 + <div class="overlay"></div> 177 + <p class="title"></p> 178 + <div class="img"></div> 179 + </a> 180 + {/each} 181 + </main> 182 + </section> 183 + 184 + <section class="trap-united adjust-height"> 185 + <header class="flex-row"> 186 + <a target="_blank" href="https://www.youtube.com/TrapUnited"> 187 + <img src="/logos/project/trap-united.png" /> 188 + </a> 189 + <div class="text r"> 190 + <p class="title"> 191 + <a target="_blank" href="https://www.youtube.com/TrapUnited">Trap United</a> 192 + </p> 193 + <p class="description"> 194 + Another music curation channel, this one with daily trap music uploads, and part of to the 195 + "United" channel network. 196 + </p> 197 + </div> 198 + </header> 199 + <main class="adjust-height flex-row"> 200 + {#each data.trap_united_videos.slice(0, 8) as video} 201 + <a target="_blank" class="item" href="https://www.youtube.com/watch?v={video.id}"> 202 + <div class="overlay"></div> 203 + <p class="title">{video.title}</p> 204 + <div 205 + class="img" 206 + style:background-image="url(https://i.ytimg.com/vi/{video.id}/sddefault.jpg)" 207 + ></div> 208 + </a> 209 + {/each} 210 + </main> 211 + </section> 212 + 213 + <section class="dev"> 214 + <header class="flex-row"> 215 + <div class="text l"> 216 + <p class="title"> 217 + <a target="_blank" href="https://github.com/SpectralKH">Dev</a> 218 + </p> 219 + <p class="description">HTML5, Sass, JS, jQuery, PHP, MySQL. It's a start.</p> 220 + </div> 221 + <a target="_blank" href="https://github.com/SpectralKH"> 222 + <img src="/logos/project/github.png" /> 223 + </a> 224 + </header> 225 + <main class="adjust-height flex-row"> 226 + <div class="item"> 227 + <div class="overlay"></div> 228 + <p class="title">Nelation</p> 229 + <p class="description">Website for the record label Nelation.</p> 230 + <div class="links"> 231 + <a class="link" href=""></a> 232 + <a class="github-link" href=""></a> 233 + </div> 234 + <div class="img"></div> 235 + </div> 236 + <div class="item"> 237 + <div class="overlay"></div> 238 + <p class="title">Personal Website</p> 239 + <p class="description">I think it's self explanatory</p> 240 + <div class="links"> 241 + <a class="link" href="http://kh.henningsen.se/"></a> 242 + <a class="github-link" href=""></a> 243 + </div> 244 + <div class="img"></div> 245 + </div> 246 + </main> 247 + </section> 248 + 249 + <section class="video adjust-height"> 250 + <header class="flex-row"> 251 + <a target="_blank" href="https://www.youtube.com/user/SpectralKH"> 252 + <img src="/logos/project/youtube.png" /> 253 + </a> 254 + <div class="text r"> 255 + <p class="title"> 256 + <a target="_blank" href="https://www.youtube.com/user/SpectralKH">Video</a> 257 + </p> 258 + <p class="description"> 259 + I'm experienced with After Effects and Final Cut. My personal YouTube channel has audio 260 + visualizers, animations, sketches etc. 261 + </p> 262 + </div> 263 + </header> 264 + <main class="adjust-height flex-row"> 265 + {#each data.personal_videos.slice(0, 8) as video} 266 + <a target="_blank" class="item" href="https://www.youtube.com/watch?v={video.id}"> 267 + <div class="overlay"></div> 268 + <p class="title">{video.title}</p> 269 + <div 270 + class="img" 271 + style:background-image="url(https://i.ytimg.com/vi/{video.id}/sddefault.jpg)" 272 + ></div> 273 + </a> 274 + {/each} 275 + </main> 276 + </section> 277 + 278 + <!-- <section class="minecraft"> 279 + <header class="flex-row"> 280 + <div class="text l"> 281 + <p class="title"> 282 + <a target="_blank" 283 + href="http://www.planetminecraft.com/member/SpectralKH/">Minecraft</a> 284 + </p> 285 + <p class="description">Minecraft was a big part of my life previously. I 286 + gathered lots of friends, and had fun with different projects.</p> 287 + </div> 288 + <a target="_blank" href="http://www.planetminecraft.com/member/SpectralKH/"> 289 + <img src="/logos/project/minecraft.png"> 290 + </a> 291 + </header> 292 + <main> 293 + Maybe I'll care to add something here eventually.<br> 294 + http://www.planetminecraft.com/member/spectralkh/<br> 295 + http://www.planetminecraft.com/mod/spectralguns/<br> 296 + http://www.planetminecraft.com/member/nectoxbt/<br> 297 + </main> 298 + </section> --> 299 + </div>
+11
svelte.config.js
··· 1 + import adapter from '@sveltejs/adapter-static' 2 + import { vitePreprocess } from '@sveltejs/kit/vite' 3 + 4 + /** @type {import('@sveltejs/kit').Config} */ 5 + export default { 6 + preprocess: vitePreprocess(), 7 + 8 + kit: { 9 + adapter: adapter(), 10 + }, 11 + }
+14
tsconfig.json
··· 1 + { 2 + "extends": "./.svelte-kit/tsconfig.json", 3 + "compilerOptions": { 4 + "allowJs": true, 5 + "checkJs": true, 6 + "esModuleInterop": true, 7 + "forceConsistentCasingInFileNames": true, 8 + "resolveJsonModule": true, 9 + "skipLibCheck": true, 10 + "sourceMap": true, 11 + "strict": true, 12 + "moduleResolution": "NodeNext" 13 + } 14 + }
+6
vite.config.ts
··· 1 + import { sveltekit } from '@sveltejs/kit/vite' 2 + import { defineConfig } from 'vite' 3 + 4 + export default defineConfig({ 5 + plugins: [sveltekit()], 6 + })