├── api ├── .gitignore ├── client.py ├── modal_proto │ ├── api.proto │ ├── api_pb2.py │ └── api_pb2_grpc.py ├── token_flow.py └── app.py ├── web ├── .npmrc ├── src │ ├── lib │ │ ├── index.ts │ │ ├── ui │ │ │ ├── Footer.svelte │ │ │ └── StaticGradient.svelte │ │ ├── schemas.ts │ │ └── assets │ │ │ └── static-gradient.svg │ ├── routes │ │ ├── +layout.svelte │ │ └── +page.svelte │ ├── app.d.ts │ ├── app.html │ └── app.css ├── static │ ├── favicon.ico │ └── fonts │ │ └── ToshModal-[wght].ttf ├── .prettierignore ├── postcss.config.js ├── vite.config.ts ├── .gitignore ├── .eslintignore ├── .prettierrc ├── tailwind.config.js ├── tsconfig.json ├── .eslintrc.cjs ├── svelte.config.js ├── README.md ├── package.json └── pnpm-lock.yaml ├── .gitignore ├── README.md └── LICENSE /api/.gitignore: -------------------------------------------------------------------------------- 1 | __pycache__/ 2 | -------------------------------------------------------------------------------- /web/.npmrc: -------------------------------------------------------------------------------- 1 | engine-strict=true 2 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # MAC 2 | .DS_Store 3 | -------------------------------------------------------------------------------- /web/src/lib/index.ts: -------------------------------------------------------------------------------- 1 | // place files you want to import through the `$lib` alias in this folder. 2 | -------------------------------------------------------------------------------- /web/static/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unknown/modal-deploy/main/web/static/favicon.ico -------------------------------------------------------------------------------- /web/.prettierignore: -------------------------------------------------------------------------------- 1 | # Ignore files for PNPM, NPM and YARN 2 | pnpm-lock.yaml 3 | package-lock.json 4 | yarn.lock 5 | -------------------------------------------------------------------------------- /web/postcss.config.js: -------------------------------------------------------------------------------- 1 | export default { 2 | plugins: { 3 | tailwindcss: {}, 4 | autoprefixer: {} 5 | } 6 | }; 7 | -------------------------------------------------------------------------------- /web/static/fonts/ToshModal-[wght].ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unknown/modal-deploy/main/web/static/fonts/ToshModal-[wght].ttf -------------------------------------------------------------------------------- /web/src/routes/+layout.svelte: -------------------------------------------------------------------------------- 1 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /web/vite.config.ts: -------------------------------------------------------------------------------- 1 | import { sveltekit } from '@sveltejs/kit/vite'; 2 | import { defineConfig } from 'vite'; 3 | 4 | export default defineConfig({ 5 | plugins: [sveltekit()] 6 | }); 7 | -------------------------------------------------------------------------------- /web/.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | node_modules 3 | /build 4 | /.svelte-kit 5 | /package 6 | .env 7 | .env.* 8 | !.env.example 9 | vite.config.js.timestamp-* 10 | vite.config.ts.timestamp-* 11 | -------------------------------------------------------------------------------- /web/.eslintignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | node_modules 3 | /build 4 | /.svelte-kit 5 | /package 6 | .env 7 | .env.* 8 | !.env.example 9 | 10 | # Ignore files for PNPM, NPM and YARN 11 | pnpm-lock.yaml 12 | package-lock.json 13 | yarn.lock 14 | -------------------------------------------------------------------------------- /web/.prettierrc: -------------------------------------------------------------------------------- 1 | { 2 | "useTabs": true, 3 | "singleQuote": true, 4 | "trailingComma": "none", 5 | "printWidth": 100, 6 | "plugins": ["prettier-plugin-svelte", "prettier-plugin-tailwindcss"], 7 | "overrides": [{ "files": "*.svelte", "options": { "parser": "svelte" } }] 8 | } 9 | -------------------------------------------------------------------------------- /web/src/app.d.ts: -------------------------------------------------------------------------------- 1 | // See https://kit.svelte.dev/docs/types#app 2 | // for information about these interfaces 3 | declare global { 4 | namespace App { 5 | // interface Error {} 6 | // interface Locals {} 7 | // interface PageData {} 8 | // interface PageState {} 9 | // interface Platform {} 10 | } 11 | } 12 | 13 | export {}; 14 | -------------------------------------------------------------------------------- /web/src/lib/ui/Footer.svelte: -------------------------------------------------------------------------------- 1 | 10 | -------------------------------------------------------------------------------- /web/src/app.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | %sveltekit.head% 8 | 9 | 10 |
%sveltekit.body%
11 | 12 | 13 | -------------------------------------------------------------------------------- /api/client.py: -------------------------------------------------------------------------------- 1 | import grpc 2 | 3 | from modal_proto import api_pb2_grpc 4 | 5 | 6 | class ModalClient: 7 | def __init__(self): 8 | self._channel = grpc.secure_channel( 9 | "api.modal.com:443", grpc.ssl_channel_credentials() 10 | ) 11 | self._stub = api_pb2_grpc.ModalClientStub(self._channel) 12 | 13 | @property 14 | def stub(self): 15 | return self._stub 16 | -------------------------------------------------------------------------------- /web/src/lib/ui/StaticGradient.svelte: -------------------------------------------------------------------------------- 1 |
2 | 3 | 14 | -------------------------------------------------------------------------------- /web/tailwind.config.js: -------------------------------------------------------------------------------- 1 | import defaultTheme from 'tailwindcss/defaultTheme'; 2 | 3 | /** @type {import('tailwindcss').Config} */ 4 | export default { 5 | content: ['./src/**/*.{html,js,svelte,ts}'], 6 | theme: { 7 | extend: { 8 | fontFamily: { 9 | sans: ['Inter Variable', ...defaultTheme.fontFamily.sans], 10 | tosh_modal: ['Tosh Modal', ...defaultTheme.fontFamily.sans] 11 | }, 12 | colors: { 13 | background: 'rgb(var(--background) / )', 14 | foreground: 'rgb(var(--foreground) / )', 15 | 16 | primary: 'rgb(var(--primary) / )' 17 | } 18 | } 19 | }, 20 | plugins: [] 21 | }; 22 | -------------------------------------------------------------------------------- /web/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": "bundler" 13 | } 14 | // Path aliases are handled by https://kit.svelte.dev/docs/configuration#alias 15 | // except $lib which is handled by https://kit.svelte.dev/docs/configuration#files 16 | // 17 | // If you want to overwrite includes/excludes, make sure to copy over the relevant includes/excludes 18 | // from the referenced tsconfig.json - TypeScript does not merge them in 19 | } 20 | -------------------------------------------------------------------------------- /web/.eslintrc.cjs: -------------------------------------------------------------------------------- 1 | /** @type { import("eslint").Linter.Config } */ 2 | module.exports = { 3 | root: true, 4 | extends: [ 5 | 'eslint:recommended', 6 | 'plugin:@typescript-eslint/recommended', 7 | 'plugin:svelte/recommended', 8 | 'prettier' 9 | ], 10 | parser: '@typescript-eslint/parser', 11 | plugins: ['@typescript-eslint'], 12 | parserOptions: { 13 | sourceType: 'module', 14 | ecmaVersion: 2020, 15 | extraFileExtensions: ['.svelte'] 16 | }, 17 | env: { 18 | browser: true, 19 | es2017: true, 20 | node: true 21 | }, 22 | overrides: [ 23 | { 24 | files: ['*.svelte'], 25 | parser: 'svelte-eslint-parser', 26 | parserOptions: { 27 | parser: '@typescript-eslint/parser' 28 | } 29 | } 30 | ] 31 | }; 32 | -------------------------------------------------------------------------------- /web/svelte.config.js: -------------------------------------------------------------------------------- 1 | import adapter from '@sveltejs/adapter-auto'; 2 | import { vitePreprocess } from '@sveltejs/vite-plugin-svelte'; 3 | 4 | /** @type {import('@sveltejs/kit').Config} */ 5 | const config = { 6 | // Consult https://kit.svelte.dev/docs/integrations#preprocessors 7 | // for more information about preprocessors 8 | preprocess: vitePreprocess(), 9 | 10 | kit: { 11 | // adapter-auto only supports some environments, see https://kit.svelte.dev/docs/adapter-auto for a list. 12 | // If your environment is not supported, or you settled on a specific environment, switch out the adapter. 13 | // See https://kit.svelte.dev/docs/adapters for more information about adapters. 14 | adapter: adapter() 15 | } 16 | }; 17 | 18 | export default config; 19 | -------------------------------------------------------------------------------- /web/src/lib/schemas.ts: -------------------------------------------------------------------------------- 1 | import { z } from 'zod'; 2 | 3 | const errorSchema = z.object({ 4 | success: z.literal(false), 5 | error: z.string() 6 | }); 7 | 8 | const tokenFlowSuccessSchema = z.object({ 9 | success: z.literal(true), 10 | web_url: z.string(), 11 | code: z.string() 12 | }); 13 | 14 | export const tokenFlowSchema = z.union([tokenFlowSuccessSchema, errorSchema]); 15 | 16 | const tokenFlowWaitSuccessSchema = z.object({ 17 | success: z.literal(true) 18 | }); 19 | 20 | export const tokenFlowWaitSchema = z.union([tokenFlowWaitSuccessSchema, errorSchema]); 21 | 22 | const deploySuccessSchema = z.object({ 23 | success: z.literal(true), 24 | modal_url: z.string() 25 | }); 26 | 27 | export const deploySchema = z.union([deploySuccessSchema, errorSchema]); 28 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # modal-deploy 2 | 3 | Modal Deploy makes it easy to deploy Modal apps without having to open a terminal or use the command line. It works on any Modal app, but is most useful for deploying web endpoints because they provide accessible entry points to your app. 4 | 5 | This project is inspired by both [Supafork](https://github.com/chroxify/supafork) and [Vercel's Deploy Button](https://vercel.com/docs/deployments/deploy-button). 6 | 7 | ## How it works 8 | 9 | Modal Deploy first creates a new token that will be used to deploy your app. It then clones the repository 10 | you provide and runs `modal deploy` (using the newly created token) on the file you provide. Tokens are only used once and are not stored. 11 | 12 | While tokens are not persisted, use Modal Deploy at your own risk. 13 | -------------------------------------------------------------------------------- /api/modal_proto/api.proto: -------------------------------------------------------------------------------- 1 | syntax = "proto3"; 2 | 3 | package modal.client; 4 | 5 | message TokenFlowCreateRequest { 6 | string utm_source = 3; 7 | int32 localhost_port = 4; 8 | string next_url = 5; 9 | } 10 | 11 | message TokenFlowCreateResponse { 12 | string token_flow_id = 1; 13 | string web_url = 2; 14 | string code = 3; 15 | string wait_secret = 4; 16 | }; 17 | 18 | message TokenFlowWaitRequest { 19 | float timeout = 1; 20 | string token_flow_id = 2; 21 | string wait_secret = 3; 22 | } 23 | 24 | message TokenFlowWaitResponse { 25 | string token_id = 1; 26 | string token_secret = 2; 27 | bool timeout = 3; 28 | string workspace_username = 4; 29 | } 30 | 31 | service ModalClient { 32 | rpc TokenFlowCreate(TokenFlowCreateRequest) returns (TokenFlowCreateResponse); 33 | rpc TokenFlowWait(TokenFlowWaitRequest) returns (TokenFlowWaitResponse); 34 | } 35 | -------------------------------------------------------------------------------- /api/token_flow.py: -------------------------------------------------------------------------------- 1 | from client import ModalClient 2 | from modal_proto import api_pb2 3 | 4 | 5 | class TokenFlow: 6 | def __init__(self, client: ModalClient): 7 | self.stub = client.stub 8 | 9 | def start(self): 10 | req = api_pb2.TokenFlowCreateRequest( 11 | utm_source="modal-deploy", 12 | localhost_port=None, 13 | next_url=None, 14 | ) 15 | resp = self.stub.TokenFlowCreate(req) 16 | self.token_flow_id = resp.token_flow_id 17 | self.wait_secret = resp.wait_secret 18 | return (resp.token_flow_id, resp.web_url, resp.code) 19 | 20 | def finish(self, timeout: float = 40.0, grpc_extra_timeout: float = 5.0): 21 | req = api_pb2.TokenFlowWaitRequest( 22 | token_flow_id=self.token_flow_id, 23 | timeout=timeout, 24 | wait_secret=self.wait_secret, 25 | ) 26 | resp = self.stub.TokenFlowWait(req, timeout=(timeout + grpc_extra_timeout)) 27 | if not resp.timeout: 28 | return resp 29 | else: 30 | return None 31 | -------------------------------------------------------------------------------- /web/README.md: -------------------------------------------------------------------------------- 1 | # create-svelte 2 | 3 | Everything you need to build a Svelte project, powered by [`create-svelte`](https://github.com/sveltejs/kit/tree/main/packages/create-svelte). 4 | 5 | ## Creating a project 6 | 7 | If you're seeing this, you've probably already done this step. Congrats! 8 | 9 | ```bash 10 | # create a new project in the current directory 11 | npm create svelte@latest 12 | 13 | # create a new project in my-app 14 | npm create svelte@latest my-app 15 | ``` 16 | 17 | ## Developing 18 | 19 | Once you've created a project and installed dependencies with `npm install` (or `pnpm install` or `yarn`), start a development server: 20 | 21 | ```bash 22 | npm run dev 23 | 24 | # or start the server and open the app in a new browser tab 25 | npm run dev -- --open 26 | ``` 27 | 28 | ## Building 29 | 30 | To create a production version of your app: 31 | 32 | ```bash 33 | npm run build 34 | ``` 35 | 36 | You can preview the production build with `npm run preview`. 37 | 38 | > To deploy your app, you may need to install an [adapter](https://kit.svelte.dev/docs/adapters) for your target environment. 39 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2024 David Mo 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /web/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "modal-portfolio", 3 | "version": "0.0.1", 4 | "private": true, 5 | "scripts": { 6 | "dev": "vite dev", 7 | "build": "vite build", 8 | "preview": "vite preview", 9 | "check": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json", 10 | "check:watch": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch", 11 | "lint": "prettier --check . && eslint .", 12 | "format": "prettier --write ." 13 | }, 14 | "devDependencies": { 15 | "@sveltejs/adapter-auto": "^3.0.0", 16 | "@sveltejs/kit": "^2.0.0", 17 | "@sveltejs/vite-plugin-svelte": "^3.0.0", 18 | "@types/eslint": "^8.56.0", 19 | "@typescript-eslint/eslint-plugin": "^7.0.0", 20 | "@typescript-eslint/parser": "^7.0.0", 21 | "autoprefixer": "^10.4.19", 22 | "eslint": "^8.56.0", 23 | "eslint-config-prettier": "^9.1.0", 24 | "eslint-plugin-svelte": "^2.35.1", 25 | "highlight.js": "^11.9.0", 26 | "postcss": "^8.4.38", 27 | "prettier": "^3.1.1", 28 | "prettier-plugin-svelte": "^3.1.2", 29 | "prettier-plugin-tailwindcss": "^0.5.14", 30 | "svelte": "^4.2.7", 31 | "svelte-check": "^3.6.0", 32 | "svelte-highlight": "^7.6.1", 33 | "tailwindcss": "^3.4.3", 34 | "tslib": "^2.4.1", 35 | "typescript": "^5.0.0", 36 | "vite": "^5.0.3" 37 | }, 38 | "type": "module", 39 | "dependencies": { 40 | "@fontsource-variable/inter": "^5.0.18", 41 | "lucide-svelte": "^0.378.0", 42 | "zod": "^3.23.8" 43 | } 44 | } 45 | -------------------------------------------------------------------------------- /web/src/lib/assets/static-gradient.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /api/modal_proto/api_pb2.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # Generated by the protocol buffer compiler. DO NOT EDIT! 3 | # source: api.proto 4 | # Protobuf Python Version: 5.26.1 5 | """Generated protocol buffer code.""" 6 | from google.protobuf import descriptor as _descriptor 7 | from google.protobuf import descriptor_pool as _descriptor_pool 8 | from google.protobuf import symbol_database as _symbol_database 9 | from google.protobuf.internal import builder as _builder 10 | # @@protoc_insertion_point(imports) 11 | 12 | _sym_db = _symbol_database.Default() 13 | 14 | 15 | 16 | 17 | DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\tapi.proto\x12\x0cmodal.client\"V\n\x16TokenFlowCreateRequest\x12\x12\n\nutm_source\x18\x03 \x01(\t\x12\x16\n\x0elocalhost_port\x18\x04 \x01(\x05\x12\x10\n\x08next_url\x18\x05 \x01(\t\"d\n\x17TokenFlowCreateResponse\x12\x15\n\rtoken_flow_id\x18\x01 \x01(\t\x12\x0f\n\x07web_url\x18\x02 \x01(\t\x12\x0c\n\x04\x63ode\x18\x03 \x01(\t\x12\x13\n\x0bwait_secret\x18\x04 \x01(\t\"S\n\x14TokenFlowWaitRequest\x12\x0f\n\x07timeout\x18\x01 \x01(\x02\x12\x15\n\rtoken_flow_id\x18\x02 \x01(\t\x12\x13\n\x0bwait_secret\x18\x03 \x01(\t\"l\n\x15TokenFlowWaitResponse\x12\x10\n\x08token_id\x18\x01 \x01(\t\x12\x14\n\x0ctoken_secret\x18\x02 \x01(\t\x12\x0f\n\x07timeout\x18\x03 \x01(\x08\x12\x1a\n\x12workspace_username\x18\x04 \x01(\t2\xc7\x01\n\x0bModalClient\x12^\n\x0fTokenFlowCreate\x12$.modal.client.TokenFlowCreateRequest\x1a%.modal.client.TokenFlowCreateResponse\x12X\n\rTokenFlowWait\x12\".modal.client.TokenFlowWaitRequest\x1a#.modal.client.TokenFlowWaitResponseb\x06proto3') 18 | 19 | _globals = globals() 20 | _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) 21 | _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'api_pb2', _globals) 22 | if not _descriptor._USE_C_DESCRIPTORS: 23 | DESCRIPTOR._loaded_options = None 24 | _globals['_TOKENFLOWCREATEREQUEST']._serialized_start=27 25 | _globals['_TOKENFLOWCREATEREQUEST']._serialized_end=113 26 | _globals['_TOKENFLOWCREATERESPONSE']._serialized_start=115 27 | _globals['_TOKENFLOWCREATERESPONSE']._serialized_end=215 28 | _globals['_TOKENFLOWWAITREQUEST']._serialized_start=217 29 | _globals['_TOKENFLOWWAITREQUEST']._serialized_end=300 30 | _globals['_TOKENFLOWWAITRESPONSE']._serialized_start=302 31 | _globals['_TOKENFLOWWAITRESPONSE']._serialized_end=410 32 | _globals['_MODALCLIENT']._serialized_start=413 33 | _globals['_MODALCLIENT']._serialized_end=612 34 | # @@protoc_insertion_point(module_scope) 35 | -------------------------------------------------------------------------------- /web/src/routes/+page.svelte: -------------------------------------------------------------------------------- 1 | 85 | 86 | 87 |
88 |
89 | 95 | Star on GitHub 96 | 97 |
98 |

Deploy Modal Endpoints

99 |

100 | Deploy web endpoints to Modal with a single click of a button. 101 |

102 |
103 |
104 | 105 | 112 |
113 | 114 |

115 | Your credentials are never saved! To deploy your app, you will be prompted to create a new 116 | token which will be used to deploy your app. This token is not persisted anywhere. 117 |

118 |
119 | {#if errorMessage} 120 |
{errorMessage}
121 | {/if} 122 | {#if statusMessage} 123 |
{statusMessage}
124 | {/if} 125 |
126 |
127 |
129 | -------------------------------------------------------------------------------- /api/app.py: -------------------------------------------------------------------------------- 1 | import git 2 | import tempfile 3 | import os 4 | import re 5 | import json 6 | import subprocess 7 | from fastapi.responses import StreamingResponse 8 | from client import ModalClient 9 | from token_flow import TokenFlow 10 | 11 | import modal 12 | 13 | app = modal.App("modal-deploy") 14 | image = ( 15 | modal.Image.debian_slim() 16 | .apt_install("git") 17 | .pip_install("GitPython") 18 | .pip_install("grpcio>=1.59.0") 19 | .pip_install("modal") 20 | ) 21 | 22 | 23 | def extract_github_info(url: str): 24 | pattern = ( 25 | r"https:\/\/github\.com\/([^\/]+)\/([^\/]+)\/(?:blob|tree)\/([^\/]+)(?:\/(.*))?" 26 | ) 27 | match = re.search(pattern, url) 28 | 29 | if match: 30 | org = match.group(1) 31 | repo = match.group(2) 32 | branch = match.group(3) 33 | path = match.group(4) if match.group(4) is not None else "" 34 | 35 | return (org, repo, branch, path) 36 | else: 37 | raise ValueError( 38 | "The URL is not in the expected format: https://github.com/{org}/{repo}/(blob|tree)/{branch}/{path}" 39 | ) 40 | 41 | 42 | def deploy_repo(github_file_url: str): 43 | try: 44 | org, repo, branch, path = extract_github_info(github_file_url) 45 | 46 | repo_url = f"https://github.com/{org}/{repo}" 47 | repo_url_with_creds = repo_url.replace( 48 | "https://", "https://" + os.environ["GITHUB_TOKEN"] + "@" 49 | ) 50 | with tempfile.TemporaryDirectory() as dir_name: 51 | print(f"Cloning {repo_url} to {dir_name}") 52 | git.Repo.clone_from(repo_url_with_creds, dir_name, branch=branch) 53 | 54 | # check if the file exists 55 | file_path = os.path.join(dir_name, path) 56 | if not os.path.exists(file_path): 57 | raise ValueError(f'The path "{path}" does not exist in {repo_url}') 58 | elif not os.path.isfile(file_path): 59 | raise ValueError(f'The path "{path}" is not a file in {repo_url}') 60 | 61 | print("Starting token flow...") 62 | token_flow = TokenFlow(ModalClient()) 63 | _, web_url, code = token_flow.start() 64 | 65 | print("Waiting for token flow to complete...") 66 | yield json.dumps({"success": True, "web_url": web_url, "code": code}) + "\n" 67 | 68 | # wait for the token flow to complete 69 | result = None 70 | for attempt in range(5): 71 | result = token_flow.finish() 72 | if result is not None: 73 | break 74 | print(f"Waiting for token flow to complete... (attempt {attempt + 2})") 75 | 76 | if result is None: 77 | raise ValueError("Timeout waiting for token flow to complete") 78 | 79 | print("Web authentication finished successfully!") 80 | yield json.dumps({"success": True}) 81 | 82 | # if the environment is inherited from the parent process, modal does not respect the token 83 | # i'm unsure which variables cause this, but this also works 84 | modal_env = { 85 | "PATH": os.environ["PATH"], 86 | "MODAL_TOKEN_ID": result.token_id, 87 | "MODAL_TOKEN_SECRET": result.token_secret, 88 | } 89 | process = subprocess.Popen( 90 | ["modal", "deploy", file_path], 91 | env=modal_env, 92 | stderr=subprocess.PIPE, 93 | stdout=subprocess.PIPE, 94 | ) 95 | _, stderr = process.communicate() 96 | exit_code = process.wait() 97 | 98 | if exit_code != 0: 99 | raise ValueError("Deployment failed: " + stderr.decode("utf-8")) 100 | 101 | print("Deployment finished successfully!") 102 | yield json.dumps( 103 | { 104 | "success": True, 105 | "modal_url": f"https://modal.com/{result.workspace_username}/apps", 106 | } 107 | ) + "\n" 108 | except ValueError as e: 109 | yield json.dumps( 110 | { 111 | "success": False, 112 | "error": str(e), 113 | } 114 | ) 115 | except git.exc.GitCommandError as e: 116 | yield json.dumps({"success": False, "error": str(e)}) 117 | except Exception as e: 118 | print(e) 119 | yield json.dumps({"success": False, "error": "Unhandled exception"}) 120 | 121 | 122 | @app.function(image=image, secrets=[modal.Secret.from_name("github-secret")]) 123 | @modal.web_endpoint() 124 | def deploy_repo_endpoint(github_file_url: str): 125 | return StreamingResponse( 126 | deploy_repo(github_file_url), media_type="text/event-stream" 127 | ) 128 | -------------------------------------------------------------------------------- /web/src/app.css: -------------------------------------------------------------------------------- 1 | @tailwind base; 2 | @tailwind components; 3 | @tailwind utilities; 4 | 5 | @layer base { 6 | @font-face { 7 | font-family: 'Tosh Modal'; 8 | src: url('/fonts/ToshModal-[wght].ttf') format('truetype'); 9 | font-display: swap; 10 | } 11 | 12 | :root { 13 | --background: 12 15 11; 14 | --foreground: 228 228 231; 15 | 16 | --primary: 127 238 100; 17 | } 18 | } 19 | 20 | @layer base { 21 | body { 22 | @apply bg-background text-foreground antialiased; 23 | } 24 | } 25 | 26 | @layer components { 27 | [multiple], 28 | [type='date'], 29 | [type='datetime-local'], 30 | [type='email'], 31 | [type='month'], 32 | [type='number'], 33 | [type='password'], 34 | [type='search'], 35 | [type='tel'], 36 | [type='text'], 37 | [type='time'], 38 | [type='url'], 39 | [type='week'], 40 | select, 41 | textarea { 42 | @apply appearance-none rounded-none border border-gray-500 bg-white p-2 px-3 text-base leading-6 shadow-none; 43 | } 44 | 45 | [multiple]:focus, 46 | [type='date']:focus, 47 | [type='datetime-local']:focus, 48 | [type='email']:focus, 49 | [type='month']:focus, 50 | [type='number']:focus, 51 | [type='password']:focus, 52 | [type='search']:focus, 53 | [type='tel']:focus, 54 | [type='text']:focus, 55 | [type='time']:focus, 56 | [type='url']:focus, 57 | [type='week']:focus, 58 | select:focus, 59 | textarea:focus { 60 | @apply focus:border-blue-600 focus:outline-none focus:outline-2 focus:outline-offset-2 focus:ring focus:ring-blue-600 focus:ring-offset-0 focus:ring-offset-white; 61 | } 62 | 63 | .btn { 64 | @apply inline-flex items-center justify-center rounded-lg px-4 py-1.5 text-sm leading-5 text-white ring-primary/50 transition-colors; 65 | } 66 | 67 | .btn:focus { 68 | @apply outline-none; 69 | } 70 | 71 | .btn:focus-visible { 72 | @apply ring; 73 | } 74 | 75 | .btn:hover { 76 | @apply bg-white/5; 77 | } 78 | 79 | .btn:active { 80 | @apply bg-white/20; 81 | } 82 | 83 | .btn:disabled { 84 | @apply opacity-50; 85 | } 86 | 87 | .btn:active:disabled { 88 | @apply bg-white/10; 89 | } 90 | 91 | .btn.btn-sm { 92 | @apply rounded-md px-1.5 py-0.5 text-sm leading-5; 93 | } 94 | 95 | .btn.btn-lg { 96 | @apply rounded-xl px-5 py-2.5 font-tosh_modal text-lg font-medium leading-7; 97 | } 98 | 99 | .btn-outlined { 100 | @apply border border-white/20; 101 | } 102 | 103 | .btn-outlined:hover { 104 | @apply bg-white/10; 105 | } 106 | 107 | .btn-outlined:active { 108 | @apply bg-white/20; 109 | } 110 | 111 | .btn-primary { 112 | @apply text-primary; 113 | } 114 | 115 | .btn-primary:hover { 116 | @apply bg-primary/10; 117 | } 118 | 119 | .btn-primary:active { 120 | @apply bg-primary/20; 121 | } 122 | 123 | .btn-primary.btn-outlined { 124 | @apply border-primary bg-primary/10; 125 | } 126 | 127 | .btn-primary.btn-outlined:hover { 128 | @apply bg-primary/20; 129 | } 130 | 131 | .btn-primary.btn-outlined:active { 132 | @apply bg-primary/25; 133 | } 134 | 135 | .type-heading-lg { 136 | @apply font-tosh_modal text-5xl font-medium leading-[1.2] tracking-tight; 137 | } 138 | 139 | @media screen(md) { 140 | .type-heading-lg { 141 | @apply text-6xl leading-[1]; 142 | } 143 | } 144 | 145 | .type-title-lg { 146 | @apply font-tosh_modal text-3xl font-medium leading-[1.2]; 147 | } 148 | 149 | @media screen(md) { 150 | .type-title-lg { 151 | @apply text-4xl leading-9; 152 | } 153 | } 154 | 155 | .type-title-md { 156 | @apply font-tosh_modal text-xl font-medium leading-[1.2]; 157 | } 158 | 159 | @media screen(md) { 160 | .type-title-md { 161 | @apply text-2xl leading-8; 162 | } 163 | } 164 | 165 | .type-subtitle-md { 166 | @apply text-base leading-[1.5]; 167 | } 168 | 169 | @media screen(md) { 170 | .type-subtitle-md { 171 | @apply text-lg leading-7; 172 | } 173 | } 174 | 175 | [multiple], 176 | [type='date'], 177 | [type='datetime-local'], 178 | [type='email'], 179 | [type='month'], 180 | [type='number'], 181 | [type='password'], 182 | [type='search'], 183 | [type='tel'], 184 | [type='text'], 185 | [type='time'], 186 | [type='url'], 187 | [type='week'], 188 | select, 189 | textarea { 190 | @apply border-white/10 bg-white/5; 191 | } 192 | 193 | [multiple]::-moz-placeholder, 194 | [type='date']::-moz-placeholder, 195 | [type='datetime-local']::-moz-placeholder, 196 | [type='email']::-moz-placeholder, 197 | [type='month']::-moz-placeholder, 198 | [type='number']::-moz-placeholder, 199 | [type='password']::-moz-placeholder, 200 | [type='search']::-moz-placeholder, 201 | [type='tel']::-moz-placeholder, 202 | [type='text']::-moz-placeholder, 203 | [type='time']::-moz-placeholder, 204 | [type='url']::-moz-placeholder, 205 | [type='week']::-moz-placeholder, 206 | select::-moz-placeholder, 207 | textarea::-moz-placeholder { 208 | @apply placeholder-zinc-400; 209 | } 210 | 211 | [multiple]::placeholder, 212 | [type='date']::placeholder, 213 | [type='datetime-local']::placeholder, 214 | [type='email']::placeholder, 215 | [type='month']::placeholder, 216 | [type='number']::placeholder, 217 | [type='password']::placeholder, 218 | [type='search']::placeholder, 219 | [type='tel']::placeholder, 220 | [type='text']::placeholder, 221 | [type='time']::placeholder, 222 | [type='url']::placeholder, 223 | [type='week']::placeholder, 224 | select::placeholder, 225 | textarea::placeholder { 226 | @apply placeholder-zinc-400; 227 | } 228 | 229 | [multiple]:focus, 230 | [type='date']:focus, 231 | [type='datetime-local']:focus, 232 | [type='email']:focus, 233 | [type='month']:focus, 234 | [type='number']:focus, 235 | [type='password']:focus, 236 | [type='search']:focus, 237 | [type='tel']:focus, 238 | [type='text']:focus, 239 | [type='time']:focus, 240 | [type='url']:focus, 241 | [type='week']:focus, 242 | select:focus, 243 | textarea:focus { 244 | @apply focus:border-primary/50 focus:ring-1 focus:ring-primary/50; 245 | } 246 | } 247 | -------------------------------------------------------------------------------- /api/modal_proto/api_pb2_grpc.py: -------------------------------------------------------------------------------- 1 | # Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! 2 | """Client and server classes corresponding to protobuf-defined services.""" 3 | import grpc 4 | import warnings 5 | 6 | import api_pb2 as api__pb2 7 | 8 | GRPC_GENERATED_VERSION = '1.63.0' 9 | GRPC_VERSION = grpc.__version__ 10 | EXPECTED_ERROR_RELEASE = '1.65.0' 11 | SCHEDULED_RELEASE_DATE = 'June 25, 2024' 12 | _version_not_supported = False 13 | 14 | try: 15 | from grpc._utilities import first_version_is_lower 16 | _version_not_supported = first_version_is_lower(GRPC_VERSION, GRPC_GENERATED_VERSION) 17 | except ImportError: 18 | _version_not_supported = True 19 | 20 | if _version_not_supported: 21 | warnings.warn( 22 | f'The grpc package installed is at version {GRPC_VERSION},' 23 | + f' but the generated code in api_pb2_grpc.py depends on' 24 | + f' grpcio>={GRPC_GENERATED_VERSION}.' 25 | + f' Please upgrade your grpc module to grpcio>={GRPC_GENERATED_VERSION}' 26 | + f' or downgrade your generated code using grpcio-tools<={GRPC_VERSION}.' 27 | + f' This warning will become an error in {EXPECTED_ERROR_RELEASE},' 28 | + f' scheduled for release on {SCHEDULED_RELEASE_DATE}.', 29 | RuntimeWarning 30 | ) 31 | 32 | 33 | class ModalClientStub(object): 34 | """Missing associated documentation comment in .proto file.""" 35 | 36 | def __init__(self, channel): 37 | """Constructor. 38 | 39 | Args: 40 | channel: A grpc.Channel. 41 | """ 42 | self.TokenFlowCreate = channel.unary_unary( 43 | '/modal.client.ModalClient/TokenFlowCreate', 44 | request_serializer=api__pb2.TokenFlowCreateRequest.SerializeToString, 45 | response_deserializer=api__pb2.TokenFlowCreateResponse.FromString, 46 | _registered_method=True) 47 | self.TokenFlowWait = channel.unary_unary( 48 | '/modal.client.ModalClient/TokenFlowWait', 49 | request_serializer=api__pb2.TokenFlowWaitRequest.SerializeToString, 50 | response_deserializer=api__pb2.TokenFlowWaitResponse.FromString, 51 | _registered_method=True) 52 | 53 | 54 | class ModalClientServicer(object): 55 | """Missing associated documentation comment in .proto file.""" 56 | 57 | def TokenFlowCreate(self, request, context): 58 | """Missing associated documentation comment in .proto file.""" 59 | context.set_code(grpc.StatusCode.UNIMPLEMENTED) 60 | context.set_details('Method not implemented!') 61 | raise NotImplementedError('Method not implemented!') 62 | 63 | def TokenFlowWait(self, request, context): 64 | """Missing associated documentation comment in .proto file.""" 65 | context.set_code(grpc.StatusCode.UNIMPLEMENTED) 66 | context.set_details('Method not implemented!') 67 | raise NotImplementedError('Method not implemented!') 68 | 69 | 70 | def add_ModalClientServicer_to_server(servicer, server): 71 | rpc_method_handlers = { 72 | 'TokenFlowCreate': grpc.unary_unary_rpc_method_handler( 73 | servicer.TokenFlowCreate, 74 | request_deserializer=api__pb2.TokenFlowCreateRequest.FromString, 75 | response_serializer=api__pb2.TokenFlowCreateResponse.SerializeToString, 76 | ), 77 | 'TokenFlowWait': grpc.unary_unary_rpc_method_handler( 78 | servicer.TokenFlowWait, 79 | request_deserializer=api__pb2.TokenFlowWaitRequest.FromString, 80 | response_serializer=api__pb2.TokenFlowWaitResponse.SerializeToString, 81 | ), 82 | } 83 | generic_handler = grpc.method_handlers_generic_handler( 84 | 'modal.client.ModalClient', rpc_method_handlers) 85 | server.add_generic_rpc_handlers((generic_handler,)) 86 | 87 | 88 | # This class is part of an EXPERIMENTAL API. 89 | class ModalClient(object): 90 | """Missing associated documentation comment in .proto file.""" 91 | 92 | @staticmethod 93 | def TokenFlowCreate(request, 94 | target, 95 | options=(), 96 | channel_credentials=None, 97 | call_credentials=None, 98 | insecure=False, 99 | compression=None, 100 | wait_for_ready=None, 101 | timeout=None, 102 | metadata=None): 103 | return grpc.experimental.unary_unary( 104 | request, 105 | target, 106 | '/modal.client.ModalClient/TokenFlowCreate', 107 | api__pb2.TokenFlowCreateRequest.SerializeToString, 108 | api__pb2.TokenFlowCreateResponse.FromString, 109 | options, 110 | channel_credentials, 111 | insecure, 112 | call_credentials, 113 | compression, 114 | wait_for_ready, 115 | timeout, 116 | metadata, 117 | _registered_method=True) 118 | 119 | @staticmethod 120 | def TokenFlowWait(request, 121 | target, 122 | options=(), 123 | channel_credentials=None, 124 | call_credentials=None, 125 | insecure=False, 126 | compression=None, 127 | wait_for_ready=None, 128 | timeout=None, 129 | metadata=None): 130 | return grpc.experimental.unary_unary( 131 | request, 132 | target, 133 | '/modal.client.ModalClient/TokenFlowWait', 134 | api__pb2.TokenFlowWaitRequest.SerializeToString, 135 | api__pb2.TokenFlowWaitResponse.FromString, 136 | options, 137 | channel_credentials, 138 | insecure, 139 | call_credentials, 140 | compression, 141 | wait_for_ready, 142 | timeout, 143 | metadata, 144 | _registered_method=True) 145 | -------------------------------------------------------------------------------- /web/pnpm-lock.yaml: -------------------------------------------------------------------------------- 1 | lockfileVersion: '9.0' 2 | 3 | settings: 4 | autoInstallPeers: true 5 | excludeLinksFromLockfile: false 6 | 7 | importers: 8 | 9 | .: 10 | dependencies: 11 | '@fontsource-variable/inter': 12 | specifier: ^5.0.18 13 | version: 5.0.18 14 | lucide-svelte: 15 | specifier: ^0.378.0 16 | version: 0.378.0(svelte@4.2.17) 17 | zod: 18 | specifier: ^3.23.8 19 | version: 3.23.8 20 | devDependencies: 21 | '@sveltejs/adapter-auto': 22 | specifier: ^3.0.0 23 | version: 3.2.0(@sveltejs/kit@2.5.8(@sveltejs/vite-plugin-svelte@3.1.0(svelte@4.2.17)(vite@5.2.11))(svelte@4.2.17)(vite@5.2.11)) 24 | '@sveltejs/kit': 25 | specifier: ^2.0.0 26 | version: 2.5.8(@sveltejs/vite-plugin-svelte@3.1.0(svelte@4.2.17)(vite@5.2.11))(svelte@4.2.17)(vite@5.2.11) 27 | '@sveltejs/vite-plugin-svelte': 28 | specifier: ^3.0.0 29 | version: 3.1.0(svelte@4.2.17)(vite@5.2.11) 30 | '@types/eslint': 31 | specifier: ^8.56.0 32 | version: 8.56.10 33 | '@typescript-eslint/eslint-plugin': 34 | specifier: ^7.0.0 35 | version: 7.9.0(@typescript-eslint/parser@7.9.0(eslint@8.57.0)(typescript@5.4.5))(eslint@8.57.0)(typescript@5.4.5) 36 | '@typescript-eslint/parser': 37 | specifier: ^7.0.0 38 | version: 7.9.0(eslint@8.57.0)(typescript@5.4.5) 39 | autoprefixer: 40 | specifier: ^10.4.19 41 | version: 10.4.19(postcss@8.4.38) 42 | eslint: 43 | specifier: ^8.56.0 44 | version: 8.57.0 45 | eslint-config-prettier: 46 | specifier: ^9.1.0 47 | version: 9.1.0(eslint@8.57.0) 48 | eslint-plugin-svelte: 49 | specifier: ^2.35.1 50 | version: 2.39.0(eslint@8.57.0)(svelte@4.2.17) 51 | highlight.js: 52 | specifier: ^11.9.0 53 | version: 11.9.0 54 | postcss: 55 | specifier: ^8.4.38 56 | version: 8.4.38 57 | prettier: 58 | specifier: ^3.1.1 59 | version: 3.2.5 60 | prettier-plugin-svelte: 61 | specifier: ^3.1.2 62 | version: 3.2.3(prettier@3.2.5)(svelte@4.2.17) 63 | prettier-plugin-tailwindcss: 64 | specifier: ^0.5.14 65 | version: 0.5.14(prettier-plugin-svelte@3.2.3(prettier@3.2.5)(svelte@4.2.17))(prettier@3.2.5) 66 | svelte: 67 | specifier: ^4.2.7 68 | version: 4.2.17 69 | svelte-check: 70 | specifier: ^3.6.0 71 | version: 3.7.1(postcss-load-config@4.0.2(postcss@8.4.38))(postcss@8.4.38)(svelte@4.2.17) 72 | svelte-highlight: 73 | specifier: ^7.6.1 74 | version: 7.6.1 75 | tailwindcss: 76 | specifier: ^3.4.3 77 | version: 3.4.3 78 | tslib: 79 | specifier: ^2.4.1 80 | version: 2.6.2 81 | typescript: 82 | specifier: ^5.0.0 83 | version: 5.4.5 84 | vite: 85 | specifier: ^5.0.3 86 | version: 5.2.11 87 | 88 | packages: 89 | 90 | '@alloc/quick-lru@5.2.0': 91 | resolution: {integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==} 92 | engines: {node: '>=10'} 93 | 94 | '@ampproject/remapping@2.3.0': 95 | resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} 96 | engines: {node: '>=6.0.0'} 97 | 98 | '@esbuild/aix-ppc64@0.20.2': 99 | resolution: {integrity: sha512-D+EBOJHXdNZcLJRBkhENNG8Wji2kgc9AZ9KiPr1JuZjsNtyHzrsfLRrY0tk2H2aoFu6RANO1y1iPPUCDYWkb5g==} 100 | engines: {node: '>=12'} 101 | cpu: [ppc64] 102 | os: [aix] 103 | 104 | '@esbuild/android-arm64@0.20.2': 105 | resolution: {integrity: sha512-mRzjLacRtl/tWU0SvD8lUEwb61yP9cqQo6noDZP/O8VkwafSYwZ4yWy24kan8jE/IMERpYncRt2dw438LP3Xmg==} 106 | engines: {node: '>=12'} 107 | cpu: [arm64] 108 | os: [android] 109 | 110 | '@esbuild/android-arm@0.20.2': 111 | resolution: {integrity: sha512-t98Ra6pw2VaDhqNWO2Oph2LXbz/EJcnLmKLGBJwEwXX/JAN83Fym1rU8l0JUWK6HkIbWONCSSatf4sf2NBRx/w==} 112 | engines: {node: '>=12'} 113 | cpu: [arm] 114 | os: [android] 115 | 116 | '@esbuild/android-x64@0.20.2': 117 | resolution: {integrity: sha512-btzExgV+/lMGDDa194CcUQm53ncxzeBrWJcncOBxuC6ndBkKxnHdFJn86mCIgTELsooUmwUm9FkhSp5HYu00Rg==} 118 | engines: {node: '>=12'} 119 | cpu: [x64] 120 | os: [android] 121 | 122 | '@esbuild/darwin-arm64@0.20.2': 123 | resolution: {integrity: sha512-4J6IRT+10J3aJH3l1yzEg9y3wkTDgDk7TSDFX+wKFiWjqWp/iCfLIYzGyasx9l0SAFPT1HwSCR+0w/h1ES/MjA==} 124 | engines: {node: '>=12'} 125 | cpu: [arm64] 126 | os: [darwin] 127 | 128 | '@esbuild/darwin-x64@0.20.2': 129 | resolution: {integrity: sha512-tBcXp9KNphnNH0dfhv8KYkZhjc+H3XBkF5DKtswJblV7KlT9EI2+jeA8DgBjp908WEuYll6pF+UStUCfEpdysA==} 130 | engines: {node: '>=12'} 131 | cpu: [x64] 132 | os: [darwin] 133 | 134 | '@esbuild/freebsd-arm64@0.20.2': 135 | resolution: {integrity: sha512-d3qI41G4SuLiCGCFGUrKsSeTXyWG6yem1KcGZVS+3FYlYhtNoNgYrWcvkOoaqMhwXSMrZRl69ArHsGJ9mYdbbw==} 136 | engines: {node: '>=12'} 137 | cpu: [arm64] 138 | os: [freebsd] 139 | 140 | '@esbuild/freebsd-x64@0.20.2': 141 | resolution: {integrity: sha512-d+DipyvHRuqEeM5zDivKV1KuXn9WeRX6vqSqIDgwIfPQtwMP4jaDsQsDncjTDDsExT4lR/91OLjRo8bmC1e+Cw==} 142 | engines: {node: '>=12'} 143 | cpu: [x64] 144 | os: [freebsd] 145 | 146 | '@esbuild/linux-arm64@0.20.2': 147 | resolution: {integrity: sha512-9pb6rBjGvTFNira2FLIWqDk/uaf42sSyLE8j1rnUpuzsODBq7FvpwHYZxQ/It/8b+QOS1RYfqgGFNLRI+qlq2A==} 148 | engines: {node: '>=12'} 149 | cpu: [arm64] 150 | os: [linux] 151 | 152 | '@esbuild/linux-arm@0.20.2': 153 | resolution: {integrity: sha512-VhLPeR8HTMPccbuWWcEUD1Az68TqaTYyj6nfE4QByZIQEQVWBB8vup8PpR7y1QHL3CpcF6xd5WVBU/+SBEvGTg==} 154 | engines: {node: '>=12'} 155 | cpu: [arm] 156 | os: [linux] 157 | 158 | '@esbuild/linux-ia32@0.20.2': 159 | resolution: {integrity: sha512-o10utieEkNPFDZFQm9CoP7Tvb33UutoJqg3qKf1PWVeeJhJw0Q347PxMvBgVVFgouYLGIhFYG0UGdBumROyiig==} 160 | engines: {node: '>=12'} 161 | cpu: [ia32] 162 | os: [linux] 163 | 164 | '@esbuild/linux-loong64@0.20.2': 165 | resolution: {integrity: sha512-PR7sp6R/UC4CFVomVINKJ80pMFlfDfMQMYynX7t1tNTeivQ6XdX5r2XovMmha/VjR1YN/HgHWsVcTRIMkymrgQ==} 166 | engines: {node: '>=12'} 167 | cpu: [loong64] 168 | os: [linux] 169 | 170 | '@esbuild/linux-mips64el@0.20.2': 171 | resolution: {integrity: sha512-4BlTqeutE/KnOiTG5Y6Sb/Hw6hsBOZapOVF6njAESHInhlQAghVVZL1ZpIctBOoTFbQyGW+LsVYZ8lSSB3wkjA==} 172 | engines: {node: '>=12'} 173 | cpu: [mips64el] 174 | os: [linux] 175 | 176 | '@esbuild/linux-ppc64@0.20.2': 177 | resolution: {integrity: sha512-rD3KsaDprDcfajSKdn25ooz5J5/fWBylaaXkuotBDGnMnDP1Uv5DLAN/45qfnf3JDYyJv/ytGHQaziHUdyzaAg==} 178 | engines: {node: '>=12'} 179 | cpu: [ppc64] 180 | os: [linux] 181 | 182 | '@esbuild/linux-riscv64@0.20.2': 183 | resolution: {integrity: sha512-snwmBKacKmwTMmhLlz/3aH1Q9T8v45bKYGE3j26TsaOVtjIag4wLfWSiZykXzXuE1kbCE+zJRmwp+ZbIHinnVg==} 184 | engines: {node: '>=12'} 185 | cpu: [riscv64] 186 | os: [linux] 187 | 188 | '@esbuild/linux-s390x@0.20.2': 189 | resolution: {integrity: sha512-wcWISOobRWNm3cezm5HOZcYz1sKoHLd8VL1dl309DiixxVFoFe/o8HnwuIwn6sXre88Nwj+VwZUvJf4AFxkyrQ==} 190 | engines: {node: '>=12'} 191 | cpu: [s390x] 192 | os: [linux] 193 | 194 | '@esbuild/linux-x64@0.20.2': 195 | resolution: {integrity: sha512-1MdwI6OOTsfQfek8sLwgyjOXAu+wKhLEoaOLTjbijk6E2WONYpH9ZU2mNtR+lZ2B4uwr+usqGuVfFT9tMtGvGw==} 196 | engines: {node: '>=12'} 197 | cpu: [x64] 198 | os: [linux] 199 | 200 | '@esbuild/netbsd-x64@0.20.2': 201 | resolution: {integrity: sha512-K8/DhBxcVQkzYc43yJXDSyjlFeHQJBiowJ0uVL6Tor3jGQfSGHNNJcWxNbOI8v5k82prYqzPuwkzHt3J1T1iZQ==} 202 | engines: {node: '>=12'} 203 | cpu: [x64] 204 | os: [netbsd] 205 | 206 | '@esbuild/openbsd-x64@0.20.2': 207 | resolution: {integrity: sha512-eMpKlV0SThJmmJgiVyN9jTPJ2VBPquf6Kt/nAoo6DgHAoN57K15ZghiHaMvqjCye/uU4X5u3YSMgVBI1h3vKrQ==} 208 | engines: {node: '>=12'} 209 | cpu: [x64] 210 | os: [openbsd] 211 | 212 | '@esbuild/sunos-x64@0.20.2': 213 | resolution: {integrity: sha512-2UyFtRC6cXLyejf/YEld4Hajo7UHILetzE1vsRcGL3earZEW77JxrFjH4Ez2qaTiEfMgAXxfAZCm1fvM/G/o8w==} 214 | engines: {node: '>=12'} 215 | cpu: [x64] 216 | os: [sunos] 217 | 218 | '@esbuild/win32-arm64@0.20.2': 219 | resolution: {integrity: sha512-GRibxoawM9ZCnDxnP3usoUDO9vUkpAxIIZ6GQI+IlVmr5kP3zUq+l17xELTHMWTWzjxa2guPNyrpq1GWmPvcGQ==} 220 | engines: {node: '>=12'} 221 | cpu: [arm64] 222 | os: [win32] 223 | 224 | '@esbuild/win32-ia32@0.20.2': 225 | resolution: {integrity: sha512-HfLOfn9YWmkSKRQqovpnITazdtquEW8/SoHW7pWpuEeguaZI4QnCRW6b+oZTztdBnZOS2hqJ6im/D5cPzBTTlQ==} 226 | engines: {node: '>=12'} 227 | cpu: [ia32] 228 | os: [win32] 229 | 230 | '@esbuild/win32-x64@0.20.2': 231 | resolution: {integrity: sha512-N49X4lJX27+l9jbLKSqZ6bKNjzQvHaT8IIFUy+YIqmXQdjYCToGWwOItDrfby14c78aDd5NHQl29xingXfCdLQ==} 232 | engines: {node: '>=12'} 233 | cpu: [x64] 234 | os: [win32] 235 | 236 | '@eslint-community/eslint-utils@4.4.0': 237 | resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} 238 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 239 | peerDependencies: 240 | eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 241 | 242 | '@eslint-community/regexpp@4.10.0': 243 | resolution: {integrity: sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==} 244 | engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} 245 | 246 | '@eslint/eslintrc@2.1.4': 247 | resolution: {integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==} 248 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 249 | 250 | '@eslint/js@8.57.0': 251 | resolution: {integrity: sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==} 252 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 253 | 254 | '@fontsource-variable/inter@5.0.18': 255 | resolution: {integrity: sha512-rJzSrtJ3b7djiGFvRuTe6stDfbYJGhdQSfn2SI2WfXviee7Er0yKAHE5u7FU7OWVQQQ1x3+cxdmx9NdiAkcrcA==} 256 | 257 | '@humanwhocodes/config-array@0.11.14': 258 | resolution: {integrity: sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==} 259 | engines: {node: '>=10.10.0'} 260 | 261 | '@humanwhocodes/module-importer@1.0.1': 262 | resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} 263 | engines: {node: '>=12.22'} 264 | 265 | '@humanwhocodes/object-schema@2.0.3': 266 | resolution: {integrity: sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==} 267 | 268 | '@isaacs/cliui@8.0.2': 269 | resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} 270 | engines: {node: '>=12'} 271 | 272 | '@jridgewell/gen-mapping@0.3.5': 273 | resolution: {integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==} 274 | engines: {node: '>=6.0.0'} 275 | 276 | '@jridgewell/resolve-uri@3.1.2': 277 | resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} 278 | engines: {node: '>=6.0.0'} 279 | 280 | '@jridgewell/set-array@1.2.1': 281 | resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==} 282 | engines: {node: '>=6.0.0'} 283 | 284 | '@jridgewell/sourcemap-codec@1.4.15': 285 | resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} 286 | 287 | '@jridgewell/trace-mapping@0.3.25': 288 | resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} 289 | 290 | '@nodelib/fs.scandir@2.1.5': 291 | resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} 292 | engines: {node: '>= 8'} 293 | 294 | '@nodelib/fs.stat@2.0.5': 295 | resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} 296 | engines: {node: '>= 8'} 297 | 298 | '@nodelib/fs.walk@1.2.8': 299 | resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} 300 | engines: {node: '>= 8'} 301 | 302 | '@pkgjs/parseargs@0.11.0': 303 | resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} 304 | engines: {node: '>=14'} 305 | 306 | '@polka/url@1.0.0-next.25': 307 | resolution: {integrity: sha512-j7P6Rgr3mmtdkeDGTe0E/aYyWEWVtc5yFXtHCRHs28/jptDEWfaVOc5T7cblqy1XKPPfCxJc/8DwQ5YgLOZOVQ==} 308 | 309 | '@rollup/rollup-android-arm-eabi@4.17.2': 310 | resolution: {integrity: sha512-NM0jFxY8bB8QLkoKxIQeObCaDlJKewVlIEkuyYKm5An1tdVZ966w2+MPQ2l8LBZLjR+SgyV+nRkTIunzOYBMLQ==} 311 | cpu: [arm] 312 | os: [android] 313 | 314 | '@rollup/rollup-android-arm64@4.17.2': 315 | resolution: {integrity: sha512-yeX/Usk7daNIVwkq2uGoq2BYJKZY1JfyLTaHO/jaiSwi/lsf8fTFoQW/n6IdAsx5tx+iotu2zCJwz8MxI6D/Bw==} 316 | cpu: [arm64] 317 | os: [android] 318 | 319 | '@rollup/rollup-darwin-arm64@4.17.2': 320 | resolution: {integrity: sha512-kcMLpE6uCwls023+kknm71ug7MZOrtXo+y5p/tsg6jltpDtgQY1Eq5sGfHcQfb+lfuKwhBmEURDga9N0ol4YPw==} 321 | cpu: [arm64] 322 | os: [darwin] 323 | 324 | '@rollup/rollup-darwin-x64@4.17.2': 325 | resolution: {integrity: sha512-AtKwD0VEx0zWkL0ZjixEkp5tbNLzX+FCqGG1SvOu993HnSz4qDI6S4kGzubrEJAljpVkhRSlg5bzpV//E6ysTQ==} 326 | cpu: [x64] 327 | os: [darwin] 328 | 329 | '@rollup/rollup-linux-arm-gnueabihf@4.17.2': 330 | resolution: {integrity: sha512-3reX2fUHqN7sffBNqmEyMQVj/CKhIHZd4y631duy0hZqI8Qoqf6lTtmAKvJFYa6bhU95B1D0WgzHkmTg33In0A==} 331 | cpu: [arm] 332 | os: [linux] 333 | 334 | '@rollup/rollup-linux-arm-musleabihf@4.17.2': 335 | resolution: {integrity: sha512-uSqpsp91mheRgw96xtyAGP9FW5ChctTFEoXP0r5FAzj/3ZRv3Uxjtc7taRQSaQM/q85KEKjKsZuiZM3GyUivRg==} 336 | cpu: [arm] 337 | os: [linux] 338 | 339 | '@rollup/rollup-linux-arm64-gnu@4.17.2': 340 | resolution: {integrity: sha512-EMMPHkiCRtE8Wdk3Qhtciq6BndLtstqZIroHiiGzB3C5LDJmIZcSzVtLRbwuXuUft1Cnv+9fxuDtDxz3k3EW2A==} 341 | cpu: [arm64] 342 | os: [linux] 343 | 344 | '@rollup/rollup-linux-arm64-musl@4.17.2': 345 | resolution: {integrity: sha512-NMPylUUZ1i0z/xJUIx6VUhISZDRT+uTWpBcjdv0/zkp7b/bQDF+NfnfdzuTiB1G6HTodgoFa93hp0O1xl+/UbA==} 346 | cpu: [arm64] 347 | os: [linux] 348 | 349 | '@rollup/rollup-linux-powerpc64le-gnu@4.17.2': 350 | resolution: {integrity: sha512-T19My13y8uYXPw/L/k0JYaX1fJKFT/PWdXiHr8mTbXWxjVF1t+8Xl31DgBBvEKclw+1b00Chg0hxE2O7bTG7GQ==} 351 | cpu: [ppc64] 352 | os: [linux] 353 | 354 | '@rollup/rollup-linux-riscv64-gnu@4.17.2': 355 | resolution: {integrity: sha512-BOaNfthf3X3fOWAB+IJ9kxTgPmMqPPH5f5k2DcCsRrBIbWnaJCgX2ll77dV1TdSy9SaXTR5iDXRL8n7AnoP5cg==} 356 | cpu: [riscv64] 357 | os: [linux] 358 | 359 | '@rollup/rollup-linux-s390x-gnu@4.17.2': 360 | resolution: {integrity: sha512-W0UP/x7bnn3xN2eYMql2T/+wpASLE5SjObXILTMPUBDB/Fg/FxC+gX4nvCfPBCbNhz51C+HcqQp2qQ4u25ok6g==} 361 | cpu: [s390x] 362 | os: [linux] 363 | 364 | '@rollup/rollup-linux-x64-gnu@4.17.2': 365 | resolution: {integrity: sha512-Hy7pLwByUOuyaFC6mAr7m+oMC+V7qyifzs/nW2OJfC8H4hbCzOX07Ov0VFk/zP3kBsELWNFi7rJtgbKYsav9QQ==} 366 | cpu: [x64] 367 | os: [linux] 368 | 369 | '@rollup/rollup-linux-x64-musl@4.17.2': 370 | resolution: {integrity: sha512-h1+yTWeYbRdAyJ/jMiVw0l6fOOm/0D1vNLui9iPuqgRGnXA0u21gAqOyB5iHjlM9MMfNOm9RHCQ7zLIzT0x11Q==} 371 | cpu: [x64] 372 | os: [linux] 373 | 374 | '@rollup/rollup-win32-arm64-msvc@4.17.2': 375 | resolution: {integrity: sha512-tmdtXMfKAjy5+IQsVtDiCfqbynAQE/TQRpWdVataHmhMb9DCoJxp9vLcCBjEQWMiUYxO1QprH/HbY9ragCEFLA==} 376 | cpu: [arm64] 377 | os: [win32] 378 | 379 | '@rollup/rollup-win32-ia32-msvc@4.17.2': 380 | resolution: {integrity: sha512-7II/QCSTAHuE5vdZaQEwJq2ZACkBpQDOmQsE6D6XUbnBHW8IAhm4eTufL6msLJorzrHDFv3CF8oCA/hSIRuZeQ==} 381 | cpu: [ia32] 382 | os: [win32] 383 | 384 | '@rollup/rollup-win32-x64-msvc@4.17.2': 385 | resolution: {integrity: sha512-TGGO7v7qOq4CYmSBVEYpI1Y5xDuCEnbVC5Vth8mOsW0gDSzxNrVERPc790IGHsrT2dQSimgMr9Ub3Y1Jci5/8w==} 386 | cpu: [x64] 387 | os: [win32] 388 | 389 | '@sveltejs/adapter-auto@3.2.0': 390 | resolution: {integrity: sha512-She5nKT47kwHE18v9NMe6pbJcvULr82u0V3yZ0ej3n1laWKGgkgdEABE9/ak5iDPs93LqsBkuIo51kkwCLBjJA==} 391 | peerDependencies: 392 | '@sveltejs/kit': ^2.0.0 393 | 394 | '@sveltejs/kit@2.5.8': 395 | resolution: {integrity: sha512-ZQXYaVHd1p0kDGwOi4l82i5kAiUQtrhMthDKtJi0zVzmNupKJ0ZlBVAoceuarCuIntPNctyQchW29h5DkFxd1Q==} 396 | engines: {node: '>=18.13'} 397 | hasBin: true 398 | peerDependencies: 399 | '@sveltejs/vite-plugin-svelte': ^3.0.0 400 | svelte: ^4.0.0 || ^5.0.0-next.0 401 | vite: ^5.0.3 402 | 403 | '@sveltejs/vite-plugin-svelte-inspector@2.1.0': 404 | resolution: {integrity: sha512-9QX28IymvBlSCqsCll5t0kQVxipsfhFFL+L2t3nTWfXnddYwxBuAEtTtlaVQpRz9c37BhJjltSeY4AJSC03SSg==} 405 | engines: {node: ^18.0.0 || >=20} 406 | peerDependencies: 407 | '@sveltejs/vite-plugin-svelte': ^3.0.0 408 | svelte: ^4.0.0 || ^5.0.0-next.0 409 | vite: ^5.0.0 410 | 411 | '@sveltejs/vite-plugin-svelte@3.1.0': 412 | resolution: {integrity: sha512-sY6ncCvg+O3njnzbZexcVtUqOBE3iYmQPJ9y+yXSkOwG576QI/xJrBnQSRXFLGwJNBa0T78JEKg5cIR0WOAuUw==} 413 | engines: {node: ^18.0.0 || >=20} 414 | peerDependencies: 415 | svelte: ^4.0.0 || ^5.0.0-next.0 416 | vite: ^5.0.0 417 | 418 | '@types/cookie@0.6.0': 419 | resolution: {integrity: sha512-4Kh9a6B2bQciAhf7FSuMRRkUWecJgJu9nPnx3yzpsfXX/c50REIqpHY4C82bXP90qrLtXtkDxTZosYO3UpOwlA==} 420 | 421 | '@types/eslint@8.56.10': 422 | resolution: {integrity: sha512-Shavhk87gCtY2fhXDctcfS3e6FdxWkCx1iUZ9eEUbh7rTqlZT0/IzOkCOVt0fCjcFuZ9FPYfuezTBImfHCDBGQ==} 423 | 424 | '@types/estree@1.0.5': 425 | resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} 426 | 427 | '@types/json-schema@7.0.15': 428 | resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} 429 | 430 | '@types/pug@2.0.10': 431 | resolution: {integrity: sha512-Sk/uYFOBAB7mb74XcpizmH0KOR2Pv3D2Hmrh1Dmy5BmK3MpdSa5kqZcg6EKBdklU0bFXX9gCfzvpnyUehrPIuA==} 432 | 433 | '@typescript-eslint/eslint-plugin@7.9.0': 434 | resolution: {integrity: sha512-6e+X0X3sFe/G/54aC3jt0txuMTURqLyekmEHViqyA2VnxhLMpvA6nqmcjIy+Cr9tLDHPssA74BP5Mx9HQIxBEA==} 435 | engines: {node: ^18.18.0 || >=20.0.0} 436 | peerDependencies: 437 | '@typescript-eslint/parser': ^7.0.0 438 | eslint: ^8.56.0 439 | typescript: '*' 440 | peerDependenciesMeta: 441 | typescript: 442 | optional: true 443 | 444 | '@typescript-eslint/parser@7.9.0': 445 | resolution: {integrity: sha512-qHMJfkL5qvgQB2aLvhUSXxbK7OLnDkwPzFalg458pxQgfxKDfT1ZDbHQM/I6mDIf/svlMkj21kzKuQ2ixJlatQ==} 446 | engines: {node: ^18.18.0 || >=20.0.0} 447 | peerDependencies: 448 | eslint: ^8.56.0 449 | typescript: '*' 450 | peerDependenciesMeta: 451 | typescript: 452 | optional: true 453 | 454 | '@typescript-eslint/scope-manager@7.9.0': 455 | resolution: {integrity: sha512-ZwPK4DeCDxr3GJltRz5iZejPFAAr4Wk3+2WIBaj1L5PYK5RgxExu/Y68FFVclN0y6GGwH8q+KgKRCvaTmFBbgQ==} 456 | engines: {node: ^18.18.0 || >=20.0.0} 457 | 458 | '@typescript-eslint/type-utils@7.9.0': 459 | resolution: {integrity: sha512-6Qy8dfut0PFrFRAZsGzuLoM4hre4gjzWJB6sUvdunCYZsYemTkzZNwF1rnGea326PHPT3zn5Lmg32M/xfJfByA==} 460 | engines: {node: ^18.18.0 || >=20.0.0} 461 | peerDependencies: 462 | eslint: ^8.56.0 463 | typescript: '*' 464 | peerDependenciesMeta: 465 | typescript: 466 | optional: true 467 | 468 | '@typescript-eslint/types@7.9.0': 469 | resolution: {integrity: sha512-oZQD9HEWQanl9UfsbGVcZ2cGaR0YT5476xfWE0oE5kQa2sNK2frxOlkeacLOTh9po4AlUT5rtkGyYM5kew0z5w==} 470 | engines: {node: ^18.18.0 || >=20.0.0} 471 | 472 | '@typescript-eslint/typescript-estree@7.9.0': 473 | resolution: {integrity: sha512-zBCMCkrb2YjpKV3LA0ZJubtKCDxLttxfdGmwZvTqqWevUPN0FZvSI26FalGFFUZU/9YQK/A4xcQF9o/VVaCKAg==} 474 | engines: {node: ^18.18.0 || >=20.0.0} 475 | peerDependencies: 476 | typescript: '*' 477 | peerDependenciesMeta: 478 | typescript: 479 | optional: true 480 | 481 | '@typescript-eslint/utils@7.9.0': 482 | resolution: {integrity: sha512-5KVRQCzZajmT4Ep+NEgjXCvjuypVvYHUW7RHlXzNPuak2oWpVoD1jf5xCP0dPAuNIchjC7uQyvbdaSTFaLqSdA==} 483 | engines: {node: ^18.18.0 || >=20.0.0} 484 | peerDependencies: 485 | eslint: ^8.56.0 486 | 487 | '@typescript-eslint/visitor-keys@7.9.0': 488 | resolution: {integrity: sha512-iESPx2TNLDNGQLyjKhUvIKprlP49XNEK+MvIf9nIO7ZZaZdbnfWKHnXAgufpxqfA0YryH8XToi4+CjBgVnFTSQ==} 489 | engines: {node: ^18.18.0 || >=20.0.0} 490 | 491 | '@ungap/structured-clone@1.2.0': 492 | resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} 493 | 494 | acorn-jsx@5.3.2: 495 | resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} 496 | peerDependencies: 497 | acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 498 | 499 | acorn@8.11.3: 500 | resolution: {integrity: sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==} 501 | engines: {node: '>=0.4.0'} 502 | hasBin: true 503 | 504 | ajv@6.12.6: 505 | resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} 506 | 507 | ansi-regex@5.0.1: 508 | resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} 509 | engines: {node: '>=8'} 510 | 511 | ansi-regex@6.0.1: 512 | resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==} 513 | engines: {node: '>=12'} 514 | 515 | ansi-styles@4.3.0: 516 | resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} 517 | engines: {node: '>=8'} 518 | 519 | ansi-styles@6.2.1: 520 | resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} 521 | engines: {node: '>=12'} 522 | 523 | any-promise@1.3.0: 524 | resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==} 525 | 526 | anymatch@3.1.3: 527 | resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} 528 | engines: {node: '>= 8'} 529 | 530 | arg@5.0.2: 531 | resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==} 532 | 533 | argparse@2.0.1: 534 | resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} 535 | 536 | aria-query@5.3.0: 537 | resolution: {integrity: sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==} 538 | 539 | array-union@2.1.0: 540 | resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} 541 | engines: {node: '>=8'} 542 | 543 | autoprefixer@10.4.19: 544 | resolution: {integrity: sha512-BaENR2+zBZ8xXhM4pUaKUxlVdxZ0EZhjvbopwnXmxRUfqDmwSpC2lAi/QXvx7NRdPCo1WKEcEF6mV64si1z4Ew==} 545 | engines: {node: ^10 || ^12 || >=14} 546 | hasBin: true 547 | peerDependencies: 548 | postcss: ^8.1.0 549 | 550 | axobject-query@4.0.0: 551 | resolution: {integrity: sha512-+60uv1hiVFhHZeO+Lz0RYzsVHy5Wr1ayX0mwda9KPDVLNJgZ1T9Ny7VmFbLDzxsH0D87I86vgj3gFrjTJUYznw==} 552 | 553 | balanced-match@1.0.2: 554 | resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} 555 | 556 | binary-extensions@2.3.0: 557 | resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} 558 | engines: {node: '>=8'} 559 | 560 | brace-expansion@1.1.11: 561 | resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} 562 | 563 | brace-expansion@2.0.1: 564 | resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} 565 | 566 | braces@3.0.2: 567 | resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} 568 | engines: {node: '>=8'} 569 | 570 | browserslist@4.23.0: 571 | resolution: {integrity: sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==} 572 | engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} 573 | hasBin: true 574 | 575 | buffer-crc32@0.2.13: 576 | resolution: {integrity: sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==} 577 | 578 | callsites@3.1.0: 579 | resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} 580 | engines: {node: '>=6'} 581 | 582 | camelcase-css@2.0.1: 583 | resolution: {integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==} 584 | engines: {node: '>= 6'} 585 | 586 | caniuse-lite@1.0.30001618: 587 | resolution: {integrity: sha512-p407+D1tIkDvsEAPS22lJxLQQaG8OTBEqo0KhzfABGk0TU4juBNDSfH0hyAp/HRyx+M8L17z/ltyhxh27FTfQg==} 588 | 589 | chalk@4.1.2: 590 | resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} 591 | engines: {node: '>=10'} 592 | 593 | chokidar@3.6.0: 594 | resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} 595 | engines: {node: '>= 8.10.0'} 596 | 597 | code-red@1.0.4: 598 | resolution: {integrity: sha512-7qJWqItLA8/VPVlKJlFXU+NBlo/qyfs39aJcuMT/2ere32ZqvF5OSxgdM5xOfJJ7O429gg2HM47y8v9P+9wrNw==} 599 | 600 | color-convert@2.0.1: 601 | resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} 602 | engines: {node: '>=7.0.0'} 603 | 604 | color-name@1.1.4: 605 | resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} 606 | 607 | commander@4.1.1: 608 | resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==} 609 | engines: {node: '>= 6'} 610 | 611 | concat-map@0.0.1: 612 | resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} 613 | 614 | cookie@0.6.0: 615 | resolution: {integrity: sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==} 616 | engines: {node: '>= 0.6'} 617 | 618 | cross-spawn@7.0.3: 619 | resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} 620 | engines: {node: '>= 8'} 621 | 622 | css-tree@2.3.1: 623 | resolution: {integrity: sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==} 624 | engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0} 625 | 626 | cssesc@3.0.0: 627 | resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} 628 | engines: {node: '>=4'} 629 | hasBin: true 630 | 631 | debug@4.3.4: 632 | resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} 633 | engines: {node: '>=6.0'} 634 | peerDependencies: 635 | supports-color: '*' 636 | peerDependenciesMeta: 637 | supports-color: 638 | optional: true 639 | 640 | deep-is@0.1.4: 641 | resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} 642 | 643 | deepmerge@4.3.1: 644 | resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==} 645 | engines: {node: '>=0.10.0'} 646 | 647 | dequal@2.0.3: 648 | resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} 649 | engines: {node: '>=6'} 650 | 651 | detect-indent@6.1.0: 652 | resolution: {integrity: sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==} 653 | engines: {node: '>=8'} 654 | 655 | devalue@5.0.0: 656 | resolution: {integrity: sha512-gO+/OMXF7488D+u3ue+G7Y4AA3ZmUnB3eHJXmBTgNHvr4ZNzl36A0ZtG+XCRNYCkYx/bFmw4qtkoFLa+wSrwAA==} 657 | 658 | didyoumean@1.2.2: 659 | resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==} 660 | 661 | dir-glob@3.0.1: 662 | resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} 663 | engines: {node: '>=8'} 664 | 665 | dlv@1.1.3: 666 | resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==} 667 | 668 | doctrine@3.0.0: 669 | resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} 670 | engines: {node: '>=6.0.0'} 671 | 672 | eastasianwidth@0.2.0: 673 | resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} 674 | 675 | electron-to-chromium@1.4.769: 676 | resolution: {integrity: sha512-bZu7p623NEA2rHTc9K1vykl57ektSPQYFFqQir8BOYf6EKOB+yIsbFB9Kpm7Cgt6tsLr9sRkqfqSZUw7LP1XxQ==} 677 | 678 | emoji-regex@8.0.0: 679 | resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} 680 | 681 | emoji-regex@9.2.2: 682 | resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} 683 | 684 | es6-promise@3.3.1: 685 | resolution: {integrity: sha512-SOp9Phqvqn7jtEUxPWdWfWoLmyt2VaJ6MpvP9Comy1MceMXqE6bxvaTu4iaxpYYPzhny28Lc+M87/c2cPK6lDg==} 686 | 687 | esbuild@0.20.2: 688 | resolution: {integrity: sha512-WdOOppmUNU+IbZ0PaDiTst80zjnrOkyJNHoKupIcVyU8Lvla3Ugx94VzkQ32Ijqd7UhHJy75gNWDMUekcrSJ6g==} 689 | engines: {node: '>=12'} 690 | hasBin: true 691 | 692 | escalade@3.1.2: 693 | resolution: {integrity: sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==} 694 | engines: {node: '>=6'} 695 | 696 | escape-string-regexp@4.0.0: 697 | resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} 698 | engines: {node: '>=10'} 699 | 700 | eslint-compat-utils@0.5.0: 701 | resolution: {integrity: sha512-dc6Y8tzEcSYZMHa+CMPLi/hyo1FzNeonbhJL7Ol0ccuKQkwopJcJBA9YL/xmMTLU1eKigXo9vj9nALElWYSowg==} 702 | engines: {node: '>=12'} 703 | peerDependencies: 704 | eslint: '>=6.0.0' 705 | 706 | eslint-config-prettier@9.1.0: 707 | resolution: {integrity: sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==} 708 | hasBin: true 709 | peerDependencies: 710 | eslint: '>=7.0.0' 711 | 712 | eslint-plugin-svelte@2.39.0: 713 | resolution: {integrity: sha512-FXktBLXsrxbA+6ZvJK2z/sQOrUKyzSg3fNWK5h0reSCjr2fjAsc9ai/s/JvSl4Hgvz3nYVtTIMwarZH5RcB7BA==} 714 | engines: {node: ^14.17.0 || >=16.0.0} 715 | peerDependencies: 716 | eslint: ^7.0.0 || ^8.0.0-0 || ^9.0.0-0 717 | svelte: ^3.37.0 || ^4.0.0 || ^5.0.0-next.112 718 | peerDependenciesMeta: 719 | svelte: 720 | optional: true 721 | 722 | eslint-scope@7.2.2: 723 | resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==} 724 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 725 | 726 | eslint-visitor-keys@3.4.3: 727 | resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} 728 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 729 | 730 | eslint@8.57.0: 731 | resolution: {integrity: sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==} 732 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 733 | hasBin: true 734 | 735 | esm-env@1.0.0: 736 | resolution: {integrity: sha512-Cf6VksWPsTuW01vU9Mk/3vRue91Zevka5SjyNf3nEpokFRuqt/KjUQoGAwq9qMmhpLTHmXzSIrFRw8zxWzmFBA==} 737 | 738 | espree@9.6.1: 739 | resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} 740 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 741 | 742 | esquery@1.5.0: 743 | resolution: {integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==} 744 | engines: {node: '>=0.10'} 745 | 746 | esrecurse@4.3.0: 747 | resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} 748 | engines: {node: '>=4.0'} 749 | 750 | estraverse@5.3.0: 751 | resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} 752 | engines: {node: '>=4.0'} 753 | 754 | estree-walker@3.0.3: 755 | resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==} 756 | 757 | esutils@2.0.3: 758 | resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} 759 | engines: {node: '>=0.10.0'} 760 | 761 | fast-deep-equal@3.1.3: 762 | resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} 763 | 764 | fast-glob@3.3.2: 765 | resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} 766 | engines: {node: '>=8.6.0'} 767 | 768 | fast-json-stable-stringify@2.1.0: 769 | resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} 770 | 771 | fast-levenshtein@2.0.6: 772 | resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} 773 | 774 | fastq@1.17.1: 775 | resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==} 776 | 777 | file-entry-cache@6.0.1: 778 | resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} 779 | engines: {node: ^10.12.0 || >=12.0.0} 780 | 781 | fill-range@7.0.1: 782 | resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} 783 | engines: {node: '>=8'} 784 | 785 | find-up@5.0.0: 786 | resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} 787 | engines: {node: '>=10'} 788 | 789 | flat-cache@3.2.0: 790 | resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==} 791 | engines: {node: ^10.12.0 || >=12.0.0} 792 | 793 | flatted@3.3.1: 794 | resolution: {integrity: sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==} 795 | 796 | foreground-child@3.1.1: 797 | resolution: {integrity: sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==} 798 | engines: {node: '>=14'} 799 | 800 | fraction.js@4.3.7: 801 | resolution: {integrity: sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==} 802 | 803 | fs.realpath@1.0.0: 804 | resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} 805 | 806 | fsevents@2.3.3: 807 | resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} 808 | engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} 809 | os: [darwin] 810 | 811 | function-bind@1.1.2: 812 | resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} 813 | 814 | glob-parent@5.1.2: 815 | resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} 816 | engines: {node: '>= 6'} 817 | 818 | glob-parent@6.0.2: 819 | resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} 820 | engines: {node: '>=10.13.0'} 821 | 822 | glob@10.3.15: 823 | resolution: {integrity: sha512-0c6RlJt1TICLyvJYIApxb8GsXoai0KUP7AxKKAtsYXdgJR1mGEUa7DgwShbdk1nly0PYoZj01xd4hzbq3fsjpw==} 824 | engines: {node: '>=16 || 14 >=14.18'} 825 | hasBin: true 826 | 827 | glob@7.2.3: 828 | resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} 829 | 830 | globals@13.24.0: 831 | resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==} 832 | engines: {node: '>=8'} 833 | 834 | globalyzer@0.1.0: 835 | resolution: {integrity: sha512-40oNTM9UfG6aBmuKxk/giHn5nQ8RVz/SS4Ir6zgzOv9/qC3kKZ9v4etGTcJbEl/NyVQH7FGU7d+X1egr57Md2Q==} 836 | 837 | globby@11.1.0: 838 | resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} 839 | engines: {node: '>=10'} 840 | 841 | globrex@0.1.2: 842 | resolution: {integrity: sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==} 843 | 844 | graceful-fs@4.2.11: 845 | resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} 846 | 847 | graphemer@1.4.0: 848 | resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} 849 | 850 | has-flag@4.0.0: 851 | resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} 852 | engines: {node: '>=8'} 853 | 854 | hasown@2.0.2: 855 | resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} 856 | engines: {node: '>= 0.4'} 857 | 858 | highlight.js@11.9.0: 859 | resolution: {integrity: sha512-fJ7cW7fQGCYAkgv4CPfwFHrfd/cLS4Hau96JuJ+ZTOWhjnhoeN1ub1tFmALm/+lW5z4WCAuAV9bm05AP0mS6Gw==} 860 | engines: {node: '>=12.0.0'} 861 | 862 | ignore@5.3.1: 863 | resolution: {integrity: sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==} 864 | engines: {node: '>= 4'} 865 | 866 | import-fresh@3.3.0: 867 | resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} 868 | engines: {node: '>=6'} 869 | 870 | import-meta-resolve@4.1.0: 871 | resolution: {integrity: sha512-I6fiaX09Xivtk+THaMfAwnA3MVA5Big1WHF1Dfx9hFuvNIWpXnorlkzhcQf6ehrqQiiZECRt1poOAkPmer3ruw==} 872 | 873 | imurmurhash@0.1.4: 874 | resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} 875 | engines: {node: '>=0.8.19'} 876 | 877 | inflight@1.0.6: 878 | resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} 879 | 880 | inherits@2.0.4: 881 | resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} 882 | 883 | is-binary-path@2.1.0: 884 | resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} 885 | engines: {node: '>=8'} 886 | 887 | is-core-module@2.13.1: 888 | resolution: {integrity: sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==} 889 | 890 | is-extglob@2.1.1: 891 | resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} 892 | engines: {node: '>=0.10.0'} 893 | 894 | is-fullwidth-code-point@3.0.0: 895 | resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} 896 | engines: {node: '>=8'} 897 | 898 | is-glob@4.0.3: 899 | resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} 900 | engines: {node: '>=0.10.0'} 901 | 902 | is-number@7.0.0: 903 | resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} 904 | engines: {node: '>=0.12.0'} 905 | 906 | is-path-inside@3.0.3: 907 | resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} 908 | engines: {node: '>=8'} 909 | 910 | is-reference@3.0.2: 911 | resolution: {integrity: sha512-v3rht/LgVcsdZa3O2Nqs+NMowLOxeOm7Ay9+/ARQ2F+qEoANRcqrjAZKGN0v8ymUetZGgkp26LTnGT7H0Qo9Pg==} 912 | 913 | isexe@2.0.0: 914 | resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} 915 | 916 | jackspeak@2.3.6: 917 | resolution: {integrity: sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==} 918 | engines: {node: '>=14'} 919 | 920 | jiti@1.21.0: 921 | resolution: {integrity: sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==} 922 | hasBin: true 923 | 924 | js-yaml@4.1.0: 925 | resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} 926 | hasBin: true 927 | 928 | json-buffer@3.0.1: 929 | resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} 930 | 931 | json-schema-traverse@0.4.1: 932 | resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} 933 | 934 | json-stable-stringify-without-jsonify@1.0.1: 935 | resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} 936 | 937 | keyv@4.5.4: 938 | resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} 939 | 940 | kleur@4.1.5: 941 | resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==} 942 | engines: {node: '>=6'} 943 | 944 | known-css-properties@0.31.0: 945 | resolution: {integrity: sha512-sBPIUGTNF0czz0mwGGUoKKJC8Q7On1GPbCSFPfyEsfHb2DyBG0Y4QtV+EVWpINSaiGKZblDNuF5AezxSgOhesQ==} 946 | 947 | levn@0.4.1: 948 | resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} 949 | engines: {node: '>= 0.8.0'} 950 | 951 | lilconfig@2.1.0: 952 | resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==} 953 | engines: {node: '>=10'} 954 | 955 | lilconfig@3.1.1: 956 | resolution: {integrity: sha512-O18pf7nyvHTckunPWCV1XUNXU1piu01y2b7ATJ0ppkUkk8ocqVWBrYjJBCwHDjD/ZWcfyrA0P4gKhzWGi5EINQ==} 957 | engines: {node: '>=14'} 958 | 959 | lines-and-columns@1.2.4: 960 | resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} 961 | 962 | locate-character@3.0.0: 963 | resolution: {integrity: sha512-SW13ws7BjaeJ6p7Q6CO2nchbYEc3X3J6WrmTTDto7yMPqVSZTUyY5Tjbid+Ab8gLnATtygYtiDIJGQRRn2ZOiA==} 964 | 965 | locate-path@6.0.0: 966 | resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} 967 | engines: {node: '>=10'} 968 | 969 | lodash.merge@4.6.2: 970 | resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} 971 | 972 | lru-cache@10.2.2: 973 | resolution: {integrity: sha512-9hp3Vp2/hFQUiIwKo8XCeFVnrg8Pk3TYNPIR7tJADKi5YfcF7vEaK7avFHTlSy3kOKYaJQaalfEo6YuXdceBOQ==} 974 | engines: {node: 14 || >=16.14} 975 | 976 | lucide-svelte@0.378.0: 977 | resolution: {integrity: sha512-T7hV1sfOc94AWE5GOJ6r9wGEsR4h4TJr8d4Z0sM8O0e3IBcmeIvEGRAA6jCp7NGy4PeGrn5Tju6Y2JwJQntNrQ==} 978 | peerDependencies: 979 | svelte: ^3 || ^4 || ^5.0.0-next.42 980 | 981 | magic-string@0.30.10: 982 | resolution: {integrity: sha512-iIRwTIf0QKV3UAnYK4PU8uiEc4SRh5jX0mwpIwETPpHdhVM4f53RSwS/vXvN1JhGX+Cs7B8qIq3d6AH49O5fAQ==} 983 | 984 | mdn-data@2.0.30: 985 | resolution: {integrity: sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==} 986 | 987 | merge2@1.4.1: 988 | resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} 989 | engines: {node: '>= 8'} 990 | 991 | micromatch@4.0.5: 992 | resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} 993 | engines: {node: '>=8.6'} 994 | 995 | min-indent@1.0.1: 996 | resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==} 997 | engines: {node: '>=4'} 998 | 999 | minimatch@3.1.2: 1000 | resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} 1001 | 1002 | minimatch@9.0.4: 1003 | resolution: {integrity: sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==} 1004 | engines: {node: '>=16 || 14 >=14.17'} 1005 | 1006 | minimist@1.2.8: 1007 | resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} 1008 | 1009 | minipass@7.1.1: 1010 | resolution: {integrity: sha512-UZ7eQ+h8ywIRAW1hIEl2AqdwzJucU/Kp59+8kkZeSvafXhZjul247BvIJjEVFVeON6d7lM46XX1HXCduKAS8VA==} 1011 | engines: {node: '>=16 || 14 >=14.17'} 1012 | 1013 | mkdirp@0.5.6: 1014 | resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==} 1015 | hasBin: true 1016 | 1017 | mri@1.2.0: 1018 | resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==} 1019 | engines: {node: '>=4'} 1020 | 1021 | mrmime@2.0.0: 1022 | resolution: {integrity: sha512-eu38+hdgojoyq63s+yTpN4XMBdt5l8HhMhc4VKLO9KM5caLIBvUm4thi7fFaxyTmCKeNnXZ5pAlBwCUnhA09uw==} 1023 | engines: {node: '>=10'} 1024 | 1025 | ms@2.1.2: 1026 | resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} 1027 | 1028 | mz@2.7.0: 1029 | resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} 1030 | 1031 | nanoid@3.3.7: 1032 | resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==} 1033 | engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} 1034 | hasBin: true 1035 | 1036 | natural-compare@1.4.0: 1037 | resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} 1038 | 1039 | node-releases@2.0.14: 1040 | resolution: {integrity: sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==} 1041 | 1042 | normalize-path@3.0.0: 1043 | resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} 1044 | engines: {node: '>=0.10.0'} 1045 | 1046 | normalize-range@0.1.2: 1047 | resolution: {integrity: sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==} 1048 | engines: {node: '>=0.10.0'} 1049 | 1050 | object-assign@4.1.1: 1051 | resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} 1052 | engines: {node: '>=0.10.0'} 1053 | 1054 | object-hash@3.0.0: 1055 | resolution: {integrity: sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==} 1056 | engines: {node: '>= 6'} 1057 | 1058 | once@1.4.0: 1059 | resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} 1060 | 1061 | optionator@0.9.4: 1062 | resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==} 1063 | engines: {node: '>= 0.8.0'} 1064 | 1065 | p-limit@3.1.0: 1066 | resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} 1067 | engines: {node: '>=10'} 1068 | 1069 | p-locate@5.0.0: 1070 | resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} 1071 | engines: {node: '>=10'} 1072 | 1073 | parent-module@1.0.1: 1074 | resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} 1075 | engines: {node: '>=6'} 1076 | 1077 | path-exists@4.0.0: 1078 | resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} 1079 | engines: {node: '>=8'} 1080 | 1081 | path-is-absolute@1.0.1: 1082 | resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} 1083 | engines: {node: '>=0.10.0'} 1084 | 1085 | path-key@3.1.1: 1086 | resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} 1087 | engines: {node: '>=8'} 1088 | 1089 | path-parse@1.0.7: 1090 | resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} 1091 | 1092 | path-scurry@1.11.1: 1093 | resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==} 1094 | engines: {node: '>=16 || 14 >=14.18'} 1095 | 1096 | path-type@4.0.0: 1097 | resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} 1098 | engines: {node: '>=8'} 1099 | 1100 | periscopic@3.1.0: 1101 | resolution: {integrity: sha512-vKiQ8RRtkl9P+r/+oefh25C3fhybptkHKCZSPlcXiJux2tJF55GnEj3BVn4A5gKfq9NWWXXrxkHBwVPUfH0opw==} 1102 | 1103 | picocolors@1.0.1: 1104 | resolution: {integrity: sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==} 1105 | 1106 | picomatch@2.3.1: 1107 | resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} 1108 | engines: {node: '>=8.6'} 1109 | 1110 | pify@2.3.0: 1111 | resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==} 1112 | engines: {node: '>=0.10.0'} 1113 | 1114 | pirates@4.0.6: 1115 | resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==} 1116 | engines: {node: '>= 6'} 1117 | 1118 | postcss-import@15.1.0: 1119 | resolution: {integrity: sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==} 1120 | engines: {node: '>=14.0.0'} 1121 | peerDependencies: 1122 | postcss: ^8.0.0 1123 | 1124 | postcss-js@4.0.1: 1125 | resolution: {integrity: sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==} 1126 | engines: {node: ^12 || ^14 || >= 16} 1127 | peerDependencies: 1128 | postcss: ^8.4.21 1129 | 1130 | postcss-load-config@3.1.4: 1131 | resolution: {integrity: sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==} 1132 | engines: {node: '>= 10'} 1133 | peerDependencies: 1134 | postcss: '>=8.0.9' 1135 | ts-node: '>=9.0.0' 1136 | peerDependenciesMeta: 1137 | postcss: 1138 | optional: true 1139 | ts-node: 1140 | optional: true 1141 | 1142 | postcss-load-config@4.0.2: 1143 | resolution: {integrity: sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==} 1144 | engines: {node: '>= 14'} 1145 | peerDependencies: 1146 | postcss: '>=8.0.9' 1147 | ts-node: '>=9.0.0' 1148 | peerDependenciesMeta: 1149 | postcss: 1150 | optional: true 1151 | ts-node: 1152 | optional: true 1153 | 1154 | postcss-nested@6.0.1: 1155 | resolution: {integrity: sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==} 1156 | engines: {node: '>=12.0'} 1157 | peerDependencies: 1158 | postcss: ^8.2.14 1159 | 1160 | postcss-safe-parser@6.0.0: 1161 | resolution: {integrity: sha512-FARHN8pwH+WiS2OPCxJI8FuRJpTVnn6ZNFiqAM2aeW2LwTHWWmWgIyKC6cUo0L8aeKiF/14MNvnpls6R2PBeMQ==} 1162 | engines: {node: '>=12.0'} 1163 | peerDependencies: 1164 | postcss: ^8.3.3 1165 | 1166 | postcss-scss@4.0.9: 1167 | resolution: {integrity: sha512-AjKOeiwAitL/MXxQW2DliT28EKukvvbEWx3LBmJIRN8KfBGZbRTxNYW0kSqi1COiTZ57nZ9NW06S6ux//N1c9A==} 1168 | engines: {node: '>=12.0'} 1169 | peerDependencies: 1170 | postcss: ^8.4.29 1171 | 1172 | postcss-selector-parser@6.0.16: 1173 | resolution: {integrity: sha512-A0RVJrX+IUkVZbW3ClroRWurercFhieevHB38sr2+l9eUClMqome3LmEmnhlNy+5Mr2EYN6B2Kaw9wYdd+VHiw==} 1174 | engines: {node: '>=4'} 1175 | 1176 | postcss-value-parser@4.2.0: 1177 | resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} 1178 | 1179 | postcss@8.4.38: 1180 | resolution: {integrity: sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==} 1181 | engines: {node: ^10 || ^12 || >=14} 1182 | 1183 | prelude-ls@1.2.1: 1184 | resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} 1185 | engines: {node: '>= 0.8.0'} 1186 | 1187 | prettier-plugin-svelte@3.2.3: 1188 | resolution: {integrity: sha512-wJq8RunyFlWco6U0WJV5wNCM7zpBFakS76UBSbmzMGpncpK98NZABaE+s7n8/APDCEVNHXC5Mpq+MLebQtsRlg==} 1189 | peerDependencies: 1190 | prettier: ^3.0.0 1191 | svelte: ^3.2.0 || ^4.0.0-next.0 || ^5.0.0-next.0 1192 | 1193 | prettier-plugin-tailwindcss@0.5.14: 1194 | resolution: {integrity: sha512-Puaz+wPUAhFp8Lo9HuciYKM2Y2XExESjeT+9NQoVFXZsPPnc9VYss2SpxdQ6vbatmt8/4+SN0oe0I1cPDABg9Q==} 1195 | engines: {node: '>=14.21.3'} 1196 | peerDependencies: 1197 | '@ianvs/prettier-plugin-sort-imports': '*' 1198 | '@prettier/plugin-pug': '*' 1199 | '@shopify/prettier-plugin-liquid': '*' 1200 | '@trivago/prettier-plugin-sort-imports': '*' 1201 | '@zackad/prettier-plugin-twig-melody': '*' 1202 | prettier: ^3.0 1203 | prettier-plugin-astro: '*' 1204 | prettier-plugin-css-order: '*' 1205 | prettier-plugin-import-sort: '*' 1206 | prettier-plugin-jsdoc: '*' 1207 | prettier-plugin-marko: '*' 1208 | prettier-plugin-organize-attributes: '*' 1209 | prettier-plugin-organize-imports: '*' 1210 | prettier-plugin-sort-imports: '*' 1211 | prettier-plugin-style-order: '*' 1212 | prettier-plugin-svelte: '*' 1213 | peerDependenciesMeta: 1214 | '@ianvs/prettier-plugin-sort-imports': 1215 | optional: true 1216 | '@prettier/plugin-pug': 1217 | optional: true 1218 | '@shopify/prettier-plugin-liquid': 1219 | optional: true 1220 | '@trivago/prettier-plugin-sort-imports': 1221 | optional: true 1222 | '@zackad/prettier-plugin-twig-melody': 1223 | optional: true 1224 | prettier-plugin-astro: 1225 | optional: true 1226 | prettier-plugin-css-order: 1227 | optional: true 1228 | prettier-plugin-import-sort: 1229 | optional: true 1230 | prettier-plugin-jsdoc: 1231 | optional: true 1232 | prettier-plugin-marko: 1233 | optional: true 1234 | prettier-plugin-organize-attributes: 1235 | optional: true 1236 | prettier-plugin-organize-imports: 1237 | optional: true 1238 | prettier-plugin-sort-imports: 1239 | optional: true 1240 | prettier-plugin-style-order: 1241 | optional: true 1242 | prettier-plugin-svelte: 1243 | optional: true 1244 | 1245 | prettier@3.2.5: 1246 | resolution: {integrity: sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A==} 1247 | engines: {node: '>=14'} 1248 | hasBin: true 1249 | 1250 | punycode@2.3.1: 1251 | resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} 1252 | engines: {node: '>=6'} 1253 | 1254 | queue-microtask@1.2.3: 1255 | resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} 1256 | 1257 | read-cache@1.0.0: 1258 | resolution: {integrity: sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==} 1259 | 1260 | readdirp@3.6.0: 1261 | resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} 1262 | engines: {node: '>=8.10.0'} 1263 | 1264 | resolve-from@4.0.0: 1265 | resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} 1266 | engines: {node: '>=4'} 1267 | 1268 | resolve@1.22.8: 1269 | resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} 1270 | hasBin: true 1271 | 1272 | reusify@1.0.4: 1273 | resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} 1274 | engines: {iojs: '>=1.0.0', node: '>=0.10.0'} 1275 | 1276 | rimraf@2.7.1: 1277 | resolution: {integrity: sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==} 1278 | hasBin: true 1279 | 1280 | rimraf@3.0.2: 1281 | resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} 1282 | hasBin: true 1283 | 1284 | rollup@4.17.2: 1285 | resolution: {integrity: sha512-/9ClTJPByC0U4zNLowV1tMBe8yMEAxewtR3cUNX5BoEpGH3dQEWpJLr6CLp0fPdYRF/fzVOgvDb1zXuakwF5kQ==} 1286 | engines: {node: '>=18.0.0', npm: '>=8.0.0'} 1287 | hasBin: true 1288 | 1289 | run-parallel@1.2.0: 1290 | resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} 1291 | 1292 | sade@1.8.1: 1293 | resolution: {integrity: sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==} 1294 | engines: {node: '>=6'} 1295 | 1296 | sander@0.5.1: 1297 | resolution: {integrity: sha512-3lVqBir7WuKDHGrKRDn/1Ye3kwpXaDOMsiRP1wd6wpZW56gJhsbp5RqQpA6JG/P+pkXizygnr1dKR8vzWaVsfA==} 1298 | 1299 | semver@7.6.2: 1300 | resolution: {integrity: sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==} 1301 | engines: {node: '>=10'} 1302 | hasBin: true 1303 | 1304 | set-cookie-parser@2.6.0: 1305 | resolution: {integrity: sha512-RVnVQxTXuerk653XfuliOxBP81Sf0+qfQE73LIYKcyMYHG94AuH0kgrQpRDuTZnSmjpysHmzxJXKNfa6PjFhyQ==} 1306 | 1307 | shebang-command@2.0.0: 1308 | resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} 1309 | engines: {node: '>=8'} 1310 | 1311 | shebang-regex@3.0.0: 1312 | resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} 1313 | engines: {node: '>=8'} 1314 | 1315 | signal-exit@4.1.0: 1316 | resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} 1317 | engines: {node: '>=14'} 1318 | 1319 | sirv@2.0.4: 1320 | resolution: {integrity: sha512-94Bdh3cC2PKrbgSOUqTiGPWVZeSiXfKOVZNJniWoqrWrRkB1CJzBU3NEbiTsPcYy1lDsANA/THzS+9WBiy5nfQ==} 1321 | engines: {node: '>= 10'} 1322 | 1323 | slash@3.0.0: 1324 | resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} 1325 | engines: {node: '>=8'} 1326 | 1327 | sorcery@0.11.0: 1328 | resolution: {integrity: sha512-J69LQ22xrQB1cIFJhPfgtLuI6BpWRiWu1Y3vSsIwK/eAScqJxd/+CJlUuHQRdX2C9NGFamq+KqNywGgaThwfHw==} 1329 | hasBin: true 1330 | 1331 | source-map-js@1.2.0: 1332 | resolution: {integrity: sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==} 1333 | engines: {node: '>=0.10.0'} 1334 | 1335 | string-width@4.2.3: 1336 | resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} 1337 | engines: {node: '>=8'} 1338 | 1339 | string-width@5.1.2: 1340 | resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} 1341 | engines: {node: '>=12'} 1342 | 1343 | strip-ansi@6.0.1: 1344 | resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} 1345 | engines: {node: '>=8'} 1346 | 1347 | strip-ansi@7.1.0: 1348 | resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} 1349 | engines: {node: '>=12'} 1350 | 1351 | strip-indent@3.0.0: 1352 | resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==} 1353 | engines: {node: '>=8'} 1354 | 1355 | strip-json-comments@3.1.1: 1356 | resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} 1357 | engines: {node: '>=8'} 1358 | 1359 | sucrase@3.35.0: 1360 | resolution: {integrity: sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==} 1361 | engines: {node: '>=16 || 14 >=14.17'} 1362 | hasBin: true 1363 | 1364 | supports-color@7.2.0: 1365 | resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} 1366 | engines: {node: '>=8'} 1367 | 1368 | supports-preserve-symlinks-flag@1.0.0: 1369 | resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} 1370 | engines: {node: '>= 0.4'} 1371 | 1372 | svelte-check@3.7.1: 1373 | resolution: {integrity: sha512-U4uJoLCzmz2o2U33c7mPDJNhRYX/DNFV11XTUDlFxaKLsO7P+40gvJHMPpoRfa24jqZfST4/G9fGNcUGMO8NAQ==} 1374 | hasBin: true 1375 | peerDependencies: 1376 | svelte: ^3.55.0 || ^4.0.0-next.0 || ^4.0.0 || ^5.0.0-next.0 1377 | 1378 | svelte-eslint-parser@0.36.0: 1379 | resolution: {integrity: sha512-/6YmUSr0FAVxW8dXNdIMydBnddPMHzaHirAZ7RrT21XYdgGGZMh0LQG6CZsvAFS4r2Y4ItUuCQc8TQ3urB30mQ==} 1380 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 1381 | peerDependencies: 1382 | svelte: ^3.37.0 || ^4.0.0 || ^5.0.0-next.115 1383 | peerDependenciesMeta: 1384 | svelte: 1385 | optional: true 1386 | 1387 | svelte-highlight@7.6.1: 1388 | resolution: {integrity: sha512-YIpA6LBVpghQndBsbZQLl3ufEje179vQTtC7FH/utbEmUwYecIXsBq4mcwNkCeUuCrpcaF0DkrppWmMp/ZoPfA==} 1389 | 1390 | svelte-hmr@0.16.0: 1391 | resolution: {integrity: sha512-Gyc7cOS3VJzLlfj7wKS0ZnzDVdv3Pn2IuVeJPk9m2skfhcu5bq3wtIZyQGggr7/Iim5rH5cncyQft/kRLupcnA==} 1392 | engines: {node: ^12.20 || ^14.13.1 || >= 16} 1393 | peerDependencies: 1394 | svelte: ^3.19.0 || ^4.0.0 1395 | 1396 | svelte-preprocess@5.1.4: 1397 | resolution: {integrity: sha512-IvnbQ6D6Ao3Gg6ftiM5tdbR6aAETwjhHV+UKGf5bHGYR69RQvF1ho0JKPcbUON4vy4R7zom13jPjgdOWCQ5hDA==} 1398 | engines: {node: '>= 16.0.0'} 1399 | peerDependencies: 1400 | '@babel/core': ^7.10.2 1401 | coffeescript: ^2.5.1 1402 | less: ^3.11.3 || ^4.0.0 1403 | postcss: ^7 || ^8 1404 | postcss-load-config: ^2.1.0 || ^3.0.0 || ^4.0.0 || ^5.0.0 1405 | pug: ^3.0.0 1406 | sass: ^1.26.8 1407 | stylus: ^0.55.0 1408 | sugarss: ^2.0.0 || ^3.0.0 || ^4.0.0 1409 | svelte: ^3.23.0 || ^4.0.0-next.0 || ^4.0.0 || ^5.0.0-next.0 1410 | typescript: '>=3.9.5 || ^4.0.0 || ^5.0.0' 1411 | peerDependenciesMeta: 1412 | '@babel/core': 1413 | optional: true 1414 | coffeescript: 1415 | optional: true 1416 | less: 1417 | optional: true 1418 | postcss: 1419 | optional: true 1420 | postcss-load-config: 1421 | optional: true 1422 | pug: 1423 | optional: true 1424 | sass: 1425 | optional: true 1426 | stylus: 1427 | optional: true 1428 | sugarss: 1429 | optional: true 1430 | typescript: 1431 | optional: true 1432 | 1433 | svelte@4.2.17: 1434 | resolution: {integrity: sha512-N7m1YnoXtRf5wya5Gyx3TWuTddI4nAyayyIWFojiWV5IayDYNV5i2mRp/7qNGol4DtxEYxljmrbgp1HM6hUbmQ==} 1435 | engines: {node: '>=16'} 1436 | 1437 | tailwindcss@3.4.3: 1438 | resolution: {integrity: sha512-U7sxQk/n397Bmx4JHbJx/iSOOv5G+II3f1kpLpY2QeUv5DcPdcTsYLlusZfq1NthHS1c1cZoyFmmkex1rzke0A==} 1439 | engines: {node: '>=14.0.0'} 1440 | hasBin: true 1441 | 1442 | text-table@0.2.0: 1443 | resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} 1444 | 1445 | thenify-all@1.6.0: 1446 | resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==} 1447 | engines: {node: '>=0.8'} 1448 | 1449 | thenify@3.3.1: 1450 | resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==} 1451 | 1452 | tiny-glob@0.2.9: 1453 | resolution: {integrity: sha512-g/55ssRPUjShh+xkfx9UPDXqhckHEsHr4Vd9zX55oSdGZc/MD0m3sferOkwWtp98bv+kcVfEHtRJgBVJzelrzg==} 1454 | 1455 | to-regex-range@5.0.1: 1456 | resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} 1457 | engines: {node: '>=8.0'} 1458 | 1459 | totalist@3.0.1: 1460 | resolution: {integrity: sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==} 1461 | engines: {node: '>=6'} 1462 | 1463 | ts-api-utils@1.3.0: 1464 | resolution: {integrity: sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==} 1465 | engines: {node: '>=16'} 1466 | peerDependencies: 1467 | typescript: '>=4.2.0' 1468 | 1469 | ts-interface-checker@0.1.13: 1470 | resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} 1471 | 1472 | tslib@2.6.2: 1473 | resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==} 1474 | 1475 | type-check@0.4.0: 1476 | resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} 1477 | engines: {node: '>= 0.8.0'} 1478 | 1479 | type-fest@0.20.2: 1480 | resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} 1481 | engines: {node: '>=10'} 1482 | 1483 | typescript@5.4.5: 1484 | resolution: {integrity: sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==} 1485 | engines: {node: '>=14.17'} 1486 | hasBin: true 1487 | 1488 | update-browserslist-db@1.0.16: 1489 | resolution: {integrity: sha512-KVbTxlBYlckhF5wgfyZXTWnMn7MMZjMu9XG8bPlliUOP9ThaF4QnhP8qrjrH7DRzHfSk0oQv1wToW+iA5GajEQ==} 1490 | hasBin: true 1491 | peerDependencies: 1492 | browserslist: '>= 4.21.0' 1493 | 1494 | uri-js@4.4.1: 1495 | resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} 1496 | 1497 | util-deprecate@1.0.2: 1498 | resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} 1499 | 1500 | vite@5.2.11: 1501 | resolution: {integrity: sha512-HndV31LWW05i1BLPMUCE1B9E9GFbOu1MbenhS58FuK6owSO5qHm7GiCotrNY1YE5rMeQSFBGmT5ZaLEjFizgiQ==} 1502 | engines: {node: ^18.0.0 || >=20.0.0} 1503 | hasBin: true 1504 | peerDependencies: 1505 | '@types/node': ^18.0.0 || >=20.0.0 1506 | less: '*' 1507 | lightningcss: ^1.21.0 1508 | sass: '*' 1509 | stylus: '*' 1510 | sugarss: '*' 1511 | terser: ^5.4.0 1512 | peerDependenciesMeta: 1513 | '@types/node': 1514 | optional: true 1515 | less: 1516 | optional: true 1517 | lightningcss: 1518 | optional: true 1519 | sass: 1520 | optional: true 1521 | stylus: 1522 | optional: true 1523 | sugarss: 1524 | optional: true 1525 | terser: 1526 | optional: true 1527 | 1528 | vitefu@0.2.5: 1529 | resolution: {integrity: sha512-SgHtMLoqaeeGnd2evZ849ZbACbnwQCIwRH57t18FxcXoZop0uQu0uzlIhJBlF/eWVzuce0sHeqPcDo+evVcg8Q==} 1530 | peerDependencies: 1531 | vite: ^3.0.0 || ^4.0.0 || ^5.0.0 1532 | peerDependenciesMeta: 1533 | vite: 1534 | optional: true 1535 | 1536 | which@2.0.2: 1537 | resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} 1538 | engines: {node: '>= 8'} 1539 | hasBin: true 1540 | 1541 | word-wrap@1.2.5: 1542 | resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} 1543 | engines: {node: '>=0.10.0'} 1544 | 1545 | wrap-ansi@7.0.0: 1546 | resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} 1547 | engines: {node: '>=10'} 1548 | 1549 | wrap-ansi@8.1.0: 1550 | resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} 1551 | engines: {node: '>=12'} 1552 | 1553 | wrappy@1.0.2: 1554 | resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} 1555 | 1556 | yaml@1.10.2: 1557 | resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==} 1558 | engines: {node: '>= 6'} 1559 | 1560 | yaml@2.4.2: 1561 | resolution: {integrity: sha512-B3VqDZ+JAg1nZpaEmWtTXUlBneoGx6CPM9b0TENK6aoSu5t73dItudwdgmi6tHlIZZId4dZ9skcAQ2UbcyAeVA==} 1562 | engines: {node: '>= 14'} 1563 | hasBin: true 1564 | 1565 | yocto-queue@0.1.0: 1566 | resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} 1567 | engines: {node: '>=10'} 1568 | 1569 | zod@3.23.8: 1570 | resolution: {integrity: sha512-XBx9AXhXktjUqnepgTiE5flcKIYWi/rme0Eaj+5Y0lftuGBq+jyRu/md4WnuxqgP1ubdpNCsYEYPxrzVHD8d6g==} 1571 | 1572 | snapshots: 1573 | 1574 | '@alloc/quick-lru@5.2.0': {} 1575 | 1576 | '@ampproject/remapping@2.3.0': 1577 | dependencies: 1578 | '@jridgewell/gen-mapping': 0.3.5 1579 | '@jridgewell/trace-mapping': 0.3.25 1580 | 1581 | '@esbuild/aix-ppc64@0.20.2': 1582 | optional: true 1583 | 1584 | '@esbuild/android-arm64@0.20.2': 1585 | optional: true 1586 | 1587 | '@esbuild/android-arm@0.20.2': 1588 | optional: true 1589 | 1590 | '@esbuild/android-x64@0.20.2': 1591 | optional: true 1592 | 1593 | '@esbuild/darwin-arm64@0.20.2': 1594 | optional: true 1595 | 1596 | '@esbuild/darwin-x64@0.20.2': 1597 | optional: true 1598 | 1599 | '@esbuild/freebsd-arm64@0.20.2': 1600 | optional: true 1601 | 1602 | '@esbuild/freebsd-x64@0.20.2': 1603 | optional: true 1604 | 1605 | '@esbuild/linux-arm64@0.20.2': 1606 | optional: true 1607 | 1608 | '@esbuild/linux-arm@0.20.2': 1609 | optional: true 1610 | 1611 | '@esbuild/linux-ia32@0.20.2': 1612 | optional: true 1613 | 1614 | '@esbuild/linux-loong64@0.20.2': 1615 | optional: true 1616 | 1617 | '@esbuild/linux-mips64el@0.20.2': 1618 | optional: true 1619 | 1620 | '@esbuild/linux-ppc64@0.20.2': 1621 | optional: true 1622 | 1623 | '@esbuild/linux-riscv64@0.20.2': 1624 | optional: true 1625 | 1626 | '@esbuild/linux-s390x@0.20.2': 1627 | optional: true 1628 | 1629 | '@esbuild/linux-x64@0.20.2': 1630 | optional: true 1631 | 1632 | '@esbuild/netbsd-x64@0.20.2': 1633 | optional: true 1634 | 1635 | '@esbuild/openbsd-x64@0.20.2': 1636 | optional: true 1637 | 1638 | '@esbuild/sunos-x64@0.20.2': 1639 | optional: true 1640 | 1641 | '@esbuild/win32-arm64@0.20.2': 1642 | optional: true 1643 | 1644 | '@esbuild/win32-ia32@0.20.2': 1645 | optional: true 1646 | 1647 | '@esbuild/win32-x64@0.20.2': 1648 | optional: true 1649 | 1650 | '@eslint-community/eslint-utils@4.4.0(eslint@8.57.0)': 1651 | dependencies: 1652 | eslint: 8.57.0 1653 | eslint-visitor-keys: 3.4.3 1654 | 1655 | '@eslint-community/regexpp@4.10.0': {} 1656 | 1657 | '@eslint/eslintrc@2.1.4': 1658 | dependencies: 1659 | ajv: 6.12.6 1660 | debug: 4.3.4 1661 | espree: 9.6.1 1662 | globals: 13.24.0 1663 | ignore: 5.3.1 1664 | import-fresh: 3.3.0 1665 | js-yaml: 4.1.0 1666 | minimatch: 3.1.2 1667 | strip-json-comments: 3.1.1 1668 | transitivePeerDependencies: 1669 | - supports-color 1670 | 1671 | '@eslint/js@8.57.0': {} 1672 | 1673 | '@fontsource-variable/inter@5.0.18': {} 1674 | 1675 | '@humanwhocodes/config-array@0.11.14': 1676 | dependencies: 1677 | '@humanwhocodes/object-schema': 2.0.3 1678 | debug: 4.3.4 1679 | minimatch: 3.1.2 1680 | transitivePeerDependencies: 1681 | - supports-color 1682 | 1683 | '@humanwhocodes/module-importer@1.0.1': {} 1684 | 1685 | '@humanwhocodes/object-schema@2.0.3': {} 1686 | 1687 | '@isaacs/cliui@8.0.2': 1688 | dependencies: 1689 | string-width: 5.1.2 1690 | string-width-cjs: string-width@4.2.3 1691 | strip-ansi: 7.1.0 1692 | strip-ansi-cjs: strip-ansi@6.0.1 1693 | wrap-ansi: 8.1.0 1694 | wrap-ansi-cjs: wrap-ansi@7.0.0 1695 | 1696 | '@jridgewell/gen-mapping@0.3.5': 1697 | dependencies: 1698 | '@jridgewell/set-array': 1.2.1 1699 | '@jridgewell/sourcemap-codec': 1.4.15 1700 | '@jridgewell/trace-mapping': 0.3.25 1701 | 1702 | '@jridgewell/resolve-uri@3.1.2': {} 1703 | 1704 | '@jridgewell/set-array@1.2.1': {} 1705 | 1706 | '@jridgewell/sourcemap-codec@1.4.15': {} 1707 | 1708 | '@jridgewell/trace-mapping@0.3.25': 1709 | dependencies: 1710 | '@jridgewell/resolve-uri': 3.1.2 1711 | '@jridgewell/sourcemap-codec': 1.4.15 1712 | 1713 | '@nodelib/fs.scandir@2.1.5': 1714 | dependencies: 1715 | '@nodelib/fs.stat': 2.0.5 1716 | run-parallel: 1.2.0 1717 | 1718 | '@nodelib/fs.stat@2.0.5': {} 1719 | 1720 | '@nodelib/fs.walk@1.2.8': 1721 | dependencies: 1722 | '@nodelib/fs.scandir': 2.1.5 1723 | fastq: 1.17.1 1724 | 1725 | '@pkgjs/parseargs@0.11.0': 1726 | optional: true 1727 | 1728 | '@polka/url@1.0.0-next.25': {} 1729 | 1730 | '@rollup/rollup-android-arm-eabi@4.17.2': 1731 | optional: true 1732 | 1733 | '@rollup/rollup-android-arm64@4.17.2': 1734 | optional: true 1735 | 1736 | '@rollup/rollup-darwin-arm64@4.17.2': 1737 | optional: true 1738 | 1739 | '@rollup/rollup-darwin-x64@4.17.2': 1740 | optional: true 1741 | 1742 | '@rollup/rollup-linux-arm-gnueabihf@4.17.2': 1743 | optional: true 1744 | 1745 | '@rollup/rollup-linux-arm-musleabihf@4.17.2': 1746 | optional: true 1747 | 1748 | '@rollup/rollup-linux-arm64-gnu@4.17.2': 1749 | optional: true 1750 | 1751 | '@rollup/rollup-linux-arm64-musl@4.17.2': 1752 | optional: true 1753 | 1754 | '@rollup/rollup-linux-powerpc64le-gnu@4.17.2': 1755 | optional: true 1756 | 1757 | '@rollup/rollup-linux-riscv64-gnu@4.17.2': 1758 | optional: true 1759 | 1760 | '@rollup/rollup-linux-s390x-gnu@4.17.2': 1761 | optional: true 1762 | 1763 | '@rollup/rollup-linux-x64-gnu@4.17.2': 1764 | optional: true 1765 | 1766 | '@rollup/rollup-linux-x64-musl@4.17.2': 1767 | optional: true 1768 | 1769 | '@rollup/rollup-win32-arm64-msvc@4.17.2': 1770 | optional: true 1771 | 1772 | '@rollup/rollup-win32-ia32-msvc@4.17.2': 1773 | optional: true 1774 | 1775 | '@rollup/rollup-win32-x64-msvc@4.17.2': 1776 | optional: true 1777 | 1778 | '@sveltejs/adapter-auto@3.2.0(@sveltejs/kit@2.5.8(@sveltejs/vite-plugin-svelte@3.1.0(svelte@4.2.17)(vite@5.2.11))(svelte@4.2.17)(vite@5.2.11))': 1779 | dependencies: 1780 | '@sveltejs/kit': 2.5.8(@sveltejs/vite-plugin-svelte@3.1.0(svelte@4.2.17)(vite@5.2.11))(svelte@4.2.17)(vite@5.2.11) 1781 | import-meta-resolve: 4.1.0 1782 | 1783 | '@sveltejs/kit@2.5.8(@sveltejs/vite-plugin-svelte@3.1.0(svelte@4.2.17)(vite@5.2.11))(svelte@4.2.17)(vite@5.2.11)': 1784 | dependencies: 1785 | '@sveltejs/vite-plugin-svelte': 3.1.0(svelte@4.2.17)(vite@5.2.11) 1786 | '@types/cookie': 0.6.0 1787 | cookie: 0.6.0 1788 | devalue: 5.0.0 1789 | esm-env: 1.0.0 1790 | import-meta-resolve: 4.1.0 1791 | kleur: 4.1.5 1792 | magic-string: 0.30.10 1793 | mrmime: 2.0.0 1794 | sade: 1.8.1 1795 | set-cookie-parser: 2.6.0 1796 | sirv: 2.0.4 1797 | svelte: 4.2.17 1798 | tiny-glob: 0.2.9 1799 | vite: 5.2.11 1800 | 1801 | '@sveltejs/vite-plugin-svelte-inspector@2.1.0(@sveltejs/vite-plugin-svelte@3.1.0(svelte@4.2.17)(vite@5.2.11))(svelte@4.2.17)(vite@5.2.11)': 1802 | dependencies: 1803 | '@sveltejs/vite-plugin-svelte': 3.1.0(svelte@4.2.17)(vite@5.2.11) 1804 | debug: 4.3.4 1805 | svelte: 4.2.17 1806 | vite: 5.2.11 1807 | transitivePeerDependencies: 1808 | - supports-color 1809 | 1810 | '@sveltejs/vite-plugin-svelte@3.1.0(svelte@4.2.17)(vite@5.2.11)': 1811 | dependencies: 1812 | '@sveltejs/vite-plugin-svelte-inspector': 2.1.0(@sveltejs/vite-plugin-svelte@3.1.0(svelte@4.2.17)(vite@5.2.11))(svelte@4.2.17)(vite@5.2.11) 1813 | debug: 4.3.4 1814 | deepmerge: 4.3.1 1815 | kleur: 4.1.5 1816 | magic-string: 0.30.10 1817 | svelte: 4.2.17 1818 | svelte-hmr: 0.16.0(svelte@4.2.17) 1819 | vite: 5.2.11 1820 | vitefu: 0.2.5(vite@5.2.11) 1821 | transitivePeerDependencies: 1822 | - supports-color 1823 | 1824 | '@types/cookie@0.6.0': {} 1825 | 1826 | '@types/eslint@8.56.10': 1827 | dependencies: 1828 | '@types/estree': 1.0.5 1829 | '@types/json-schema': 7.0.15 1830 | 1831 | '@types/estree@1.0.5': {} 1832 | 1833 | '@types/json-schema@7.0.15': {} 1834 | 1835 | '@types/pug@2.0.10': {} 1836 | 1837 | '@typescript-eslint/eslint-plugin@7.9.0(@typescript-eslint/parser@7.9.0(eslint@8.57.0)(typescript@5.4.5))(eslint@8.57.0)(typescript@5.4.5)': 1838 | dependencies: 1839 | '@eslint-community/regexpp': 4.10.0 1840 | '@typescript-eslint/parser': 7.9.0(eslint@8.57.0)(typescript@5.4.5) 1841 | '@typescript-eslint/scope-manager': 7.9.0 1842 | '@typescript-eslint/type-utils': 7.9.0(eslint@8.57.0)(typescript@5.4.5) 1843 | '@typescript-eslint/utils': 7.9.0(eslint@8.57.0)(typescript@5.4.5) 1844 | '@typescript-eslint/visitor-keys': 7.9.0 1845 | eslint: 8.57.0 1846 | graphemer: 1.4.0 1847 | ignore: 5.3.1 1848 | natural-compare: 1.4.0 1849 | ts-api-utils: 1.3.0(typescript@5.4.5) 1850 | optionalDependencies: 1851 | typescript: 5.4.5 1852 | transitivePeerDependencies: 1853 | - supports-color 1854 | 1855 | '@typescript-eslint/parser@7.9.0(eslint@8.57.0)(typescript@5.4.5)': 1856 | dependencies: 1857 | '@typescript-eslint/scope-manager': 7.9.0 1858 | '@typescript-eslint/types': 7.9.0 1859 | '@typescript-eslint/typescript-estree': 7.9.0(typescript@5.4.5) 1860 | '@typescript-eslint/visitor-keys': 7.9.0 1861 | debug: 4.3.4 1862 | eslint: 8.57.0 1863 | optionalDependencies: 1864 | typescript: 5.4.5 1865 | transitivePeerDependencies: 1866 | - supports-color 1867 | 1868 | '@typescript-eslint/scope-manager@7.9.0': 1869 | dependencies: 1870 | '@typescript-eslint/types': 7.9.0 1871 | '@typescript-eslint/visitor-keys': 7.9.0 1872 | 1873 | '@typescript-eslint/type-utils@7.9.0(eslint@8.57.0)(typescript@5.4.5)': 1874 | dependencies: 1875 | '@typescript-eslint/typescript-estree': 7.9.0(typescript@5.4.5) 1876 | '@typescript-eslint/utils': 7.9.0(eslint@8.57.0)(typescript@5.4.5) 1877 | debug: 4.3.4 1878 | eslint: 8.57.0 1879 | ts-api-utils: 1.3.0(typescript@5.4.5) 1880 | optionalDependencies: 1881 | typescript: 5.4.5 1882 | transitivePeerDependencies: 1883 | - supports-color 1884 | 1885 | '@typescript-eslint/types@7.9.0': {} 1886 | 1887 | '@typescript-eslint/typescript-estree@7.9.0(typescript@5.4.5)': 1888 | dependencies: 1889 | '@typescript-eslint/types': 7.9.0 1890 | '@typescript-eslint/visitor-keys': 7.9.0 1891 | debug: 4.3.4 1892 | globby: 11.1.0 1893 | is-glob: 4.0.3 1894 | minimatch: 9.0.4 1895 | semver: 7.6.2 1896 | ts-api-utils: 1.3.0(typescript@5.4.5) 1897 | optionalDependencies: 1898 | typescript: 5.4.5 1899 | transitivePeerDependencies: 1900 | - supports-color 1901 | 1902 | '@typescript-eslint/utils@7.9.0(eslint@8.57.0)(typescript@5.4.5)': 1903 | dependencies: 1904 | '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) 1905 | '@typescript-eslint/scope-manager': 7.9.0 1906 | '@typescript-eslint/types': 7.9.0 1907 | '@typescript-eslint/typescript-estree': 7.9.0(typescript@5.4.5) 1908 | eslint: 8.57.0 1909 | transitivePeerDependencies: 1910 | - supports-color 1911 | - typescript 1912 | 1913 | '@typescript-eslint/visitor-keys@7.9.0': 1914 | dependencies: 1915 | '@typescript-eslint/types': 7.9.0 1916 | eslint-visitor-keys: 3.4.3 1917 | 1918 | '@ungap/structured-clone@1.2.0': {} 1919 | 1920 | acorn-jsx@5.3.2(acorn@8.11.3): 1921 | dependencies: 1922 | acorn: 8.11.3 1923 | 1924 | acorn@8.11.3: {} 1925 | 1926 | ajv@6.12.6: 1927 | dependencies: 1928 | fast-deep-equal: 3.1.3 1929 | fast-json-stable-stringify: 2.1.0 1930 | json-schema-traverse: 0.4.1 1931 | uri-js: 4.4.1 1932 | 1933 | ansi-regex@5.0.1: {} 1934 | 1935 | ansi-regex@6.0.1: {} 1936 | 1937 | ansi-styles@4.3.0: 1938 | dependencies: 1939 | color-convert: 2.0.1 1940 | 1941 | ansi-styles@6.2.1: {} 1942 | 1943 | any-promise@1.3.0: {} 1944 | 1945 | anymatch@3.1.3: 1946 | dependencies: 1947 | normalize-path: 3.0.0 1948 | picomatch: 2.3.1 1949 | 1950 | arg@5.0.2: {} 1951 | 1952 | argparse@2.0.1: {} 1953 | 1954 | aria-query@5.3.0: 1955 | dependencies: 1956 | dequal: 2.0.3 1957 | 1958 | array-union@2.1.0: {} 1959 | 1960 | autoprefixer@10.4.19(postcss@8.4.38): 1961 | dependencies: 1962 | browserslist: 4.23.0 1963 | caniuse-lite: 1.0.30001618 1964 | fraction.js: 4.3.7 1965 | normalize-range: 0.1.2 1966 | picocolors: 1.0.1 1967 | postcss: 8.4.38 1968 | postcss-value-parser: 4.2.0 1969 | 1970 | axobject-query@4.0.0: 1971 | dependencies: 1972 | dequal: 2.0.3 1973 | 1974 | balanced-match@1.0.2: {} 1975 | 1976 | binary-extensions@2.3.0: {} 1977 | 1978 | brace-expansion@1.1.11: 1979 | dependencies: 1980 | balanced-match: 1.0.2 1981 | concat-map: 0.0.1 1982 | 1983 | brace-expansion@2.0.1: 1984 | dependencies: 1985 | balanced-match: 1.0.2 1986 | 1987 | braces@3.0.2: 1988 | dependencies: 1989 | fill-range: 7.0.1 1990 | 1991 | browserslist@4.23.0: 1992 | dependencies: 1993 | caniuse-lite: 1.0.30001618 1994 | electron-to-chromium: 1.4.769 1995 | node-releases: 2.0.14 1996 | update-browserslist-db: 1.0.16(browserslist@4.23.0) 1997 | 1998 | buffer-crc32@0.2.13: {} 1999 | 2000 | callsites@3.1.0: {} 2001 | 2002 | camelcase-css@2.0.1: {} 2003 | 2004 | caniuse-lite@1.0.30001618: {} 2005 | 2006 | chalk@4.1.2: 2007 | dependencies: 2008 | ansi-styles: 4.3.0 2009 | supports-color: 7.2.0 2010 | 2011 | chokidar@3.6.0: 2012 | dependencies: 2013 | anymatch: 3.1.3 2014 | braces: 3.0.2 2015 | glob-parent: 5.1.2 2016 | is-binary-path: 2.1.0 2017 | is-glob: 4.0.3 2018 | normalize-path: 3.0.0 2019 | readdirp: 3.6.0 2020 | optionalDependencies: 2021 | fsevents: 2.3.3 2022 | 2023 | code-red@1.0.4: 2024 | dependencies: 2025 | '@jridgewell/sourcemap-codec': 1.4.15 2026 | '@types/estree': 1.0.5 2027 | acorn: 8.11.3 2028 | estree-walker: 3.0.3 2029 | periscopic: 3.1.0 2030 | 2031 | color-convert@2.0.1: 2032 | dependencies: 2033 | color-name: 1.1.4 2034 | 2035 | color-name@1.1.4: {} 2036 | 2037 | commander@4.1.1: {} 2038 | 2039 | concat-map@0.0.1: {} 2040 | 2041 | cookie@0.6.0: {} 2042 | 2043 | cross-spawn@7.0.3: 2044 | dependencies: 2045 | path-key: 3.1.1 2046 | shebang-command: 2.0.0 2047 | which: 2.0.2 2048 | 2049 | css-tree@2.3.1: 2050 | dependencies: 2051 | mdn-data: 2.0.30 2052 | source-map-js: 1.2.0 2053 | 2054 | cssesc@3.0.0: {} 2055 | 2056 | debug@4.3.4: 2057 | dependencies: 2058 | ms: 2.1.2 2059 | 2060 | deep-is@0.1.4: {} 2061 | 2062 | deepmerge@4.3.1: {} 2063 | 2064 | dequal@2.0.3: {} 2065 | 2066 | detect-indent@6.1.0: {} 2067 | 2068 | devalue@5.0.0: {} 2069 | 2070 | didyoumean@1.2.2: {} 2071 | 2072 | dir-glob@3.0.1: 2073 | dependencies: 2074 | path-type: 4.0.0 2075 | 2076 | dlv@1.1.3: {} 2077 | 2078 | doctrine@3.0.0: 2079 | dependencies: 2080 | esutils: 2.0.3 2081 | 2082 | eastasianwidth@0.2.0: {} 2083 | 2084 | electron-to-chromium@1.4.769: {} 2085 | 2086 | emoji-regex@8.0.0: {} 2087 | 2088 | emoji-regex@9.2.2: {} 2089 | 2090 | es6-promise@3.3.1: {} 2091 | 2092 | esbuild@0.20.2: 2093 | optionalDependencies: 2094 | '@esbuild/aix-ppc64': 0.20.2 2095 | '@esbuild/android-arm': 0.20.2 2096 | '@esbuild/android-arm64': 0.20.2 2097 | '@esbuild/android-x64': 0.20.2 2098 | '@esbuild/darwin-arm64': 0.20.2 2099 | '@esbuild/darwin-x64': 0.20.2 2100 | '@esbuild/freebsd-arm64': 0.20.2 2101 | '@esbuild/freebsd-x64': 0.20.2 2102 | '@esbuild/linux-arm': 0.20.2 2103 | '@esbuild/linux-arm64': 0.20.2 2104 | '@esbuild/linux-ia32': 0.20.2 2105 | '@esbuild/linux-loong64': 0.20.2 2106 | '@esbuild/linux-mips64el': 0.20.2 2107 | '@esbuild/linux-ppc64': 0.20.2 2108 | '@esbuild/linux-riscv64': 0.20.2 2109 | '@esbuild/linux-s390x': 0.20.2 2110 | '@esbuild/linux-x64': 0.20.2 2111 | '@esbuild/netbsd-x64': 0.20.2 2112 | '@esbuild/openbsd-x64': 0.20.2 2113 | '@esbuild/sunos-x64': 0.20.2 2114 | '@esbuild/win32-arm64': 0.20.2 2115 | '@esbuild/win32-ia32': 0.20.2 2116 | '@esbuild/win32-x64': 0.20.2 2117 | 2118 | escalade@3.1.2: {} 2119 | 2120 | escape-string-regexp@4.0.0: {} 2121 | 2122 | eslint-compat-utils@0.5.0(eslint@8.57.0): 2123 | dependencies: 2124 | eslint: 8.57.0 2125 | semver: 7.6.2 2126 | 2127 | eslint-config-prettier@9.1.0(eslint@8.57.0): 2128 | dependencies: 2129 | eslint: 8.57.0 2130 | 2131 | eslint-plugin-svelte@2.39.0(eslint@8.57.0)(svelte@4.2.17): 2132 | dependencies: 2133 | '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) 2134 | '@jridgewell/sourcemap-codec': 1.4.15 2135 | debug: 4.3.4 2136 | eslint: 8.57.0 2137 | eslint-compat-utils: 0.5.0(eslint@8.57.0) 2138 | esutils: 2.0.3 2139 | known-css-properties: 0.31.0 2140 | postcss: 8.4.38 2141 | postcss-load-config: 3.1.4(postcss@8.4.38) 2142 | postcss-safe-parser: 6.0.0(postcss@8.4.38) 2143 | postcss-selector-parser: 6.0.16 2144 | semver: 7.6.2 2145 | svelte-eslint-parser: 0.36.0(svelte@4.2.17) 2146 | optionalDependencies: 2147 | svelte: 4.2.17 2148 | transitivePeerDependencies: 2149 | - supports-color 2150 | - ts-node 2151 | 2152 | eslint-scope@7.2.2: 2153 | dependencies: 2154 | esrecurse: 4.3.0 2155 | estraverse: 5.3.0 2156 | 2157 | eslint-visitor-keys@3.4.3: {} 2158 | 2159 | eslint@8.57.0: 2160 | dependencies: 2161 | '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) 2162 | '@eslint-community/regexpp': 4.10.0 2163 | '@eslint/eslintrc': 2.1.4 2164 | '@eslint/js': 8.57.0 2165 | '@humanwhocodes/config-array': 0.11.14 2166 | '@humanwhocodes/module-importer': 1.0.1 2167 | '@nodelib/fs.walk': 1.2.8 2168 | '@ungap/structured-clone': 1.2.0 2169 | ajv: 6.12.6 2170 | chalk: 4.1.2 2171 | cross-spawn: 7.0.3 2172 | debug: 4.3.4 2173 | doctrine: 3.0.0 2174 | escape-string-regexp: 4.0.0 2175 | eslint-scope: 7.2.2 2176 | eslint-visitor-keys: 3.4.3 2177 | espree: 9.6.1 2178 | esquery: 1.5.0 2179 | esutils: 2.0.3 2180 | fast-deep-equal: 3.1.3 2181 | file-entry-cache: 6.0.1 2182 | find-up: 5.0.0 2183 | glob-parent: 6.0.2 2184 | globals: 13.24.0 2185 | graphemer: 1.4.0 2186 | ignore: 5.3.1 2187 | imurmurhash: 0.1.4 2188 | is-glob: 4.0.3 2189 | is-path-inside: 3.0.3 2190 | js-yaml: 4.1.0 2191 | json-stable-stringify-without-jsonify: 1.0.1 2192 | levn: 0.4.1 2193 | lodash.merge: 4.6.2 2194 | minimatch: 3.1.2 2195 | natural-compare: 1.4.0 2196 | optionator: 0.9.4 2197 | strip-ansi: 6.0.1 2198 | text-table: 0.2.0 2199 | transitivePeerDependencies: 2200 | - supports-color 2201 | 2202 | esm-env@1.0.0: {} 2203 | 2204 | espree@9.6.1: 2205 | dependencies: 2206 | acorn: 8.11.3 2207 | acorn-jsx: 5.3.2(acorn@8.11.3) 2208 | eslint-visitor-keys: 3.4.3 2209 | 2210 | esquery@1.5.0: 2211 | dependencies: 2212 | estraverse: 5.3.0 2213 | 2214 | esrecurse@4.3.0: 2215 | dependencies: 2216 | estraverse: 5.3.0 2217 | 2218 | estraverse@5.3.0: {} 2219 | 2220 | estree-walker@3.0.3: 2221 | dependencies: 2222 | '@types/estree': 1.0.5 2223 | 2224 | esutils@2.0.3: {} 2225 | 2226 | fast-deep-equal@3.1.3: {} 2227 | 2228 | fast-glob@3.3.2: 2229 | dependencies: 2230 | '@nodelib/fs.stat': 2.0.5 2231 | '@nodelib/fs.walk': 1.2.8 2232 | glob-parent: 5.1.2 2233 | merge2: 1.4.1 2234 | micromatch: 4.0.5 2235 | 2236 | fast-json-stable-stringify@2.1.0: {} 2237 | 2238 | fast-levenshtein@2.0.6: {} 2239 | 2240 | fastq@1.17.1: 2241 | dependencies: 2242 | reusify: 1.0.4 2243 | 2244 | file-entry-cache@6.0.1: 2245 | dependencies: 2246 | flat-cache: 3.2.0 2247 | 2248 | fill-range@7.0.1: 2249 | dependencies: 2250 | to-regex-range: 5.0.1 2251 | 2252 | find-up@5.0.0: 2253 | dependencies: 2254 | locate-path: 6.0.0 2255 | path-exists: 4.0.0 2256 | 2257 | flat-cache@3.2.0: 2258 | dependencies: 2259 | flatted: 3.3.1 2260 | keyv: 4.5.4 2261 | rimraf: 3.0.2 2262 | 2263 | flatted@3.3.1: {} 2264 | 2265 | foreground-child@3.1.1: 2266 | dependencies: 2267 | cross-spawn: 7.0.3 2268 | signal-exit: 4.1.0 2269 | 2270 | fraction.js@4.3.7: {} 2271 | 2272 | fs.realpath@1.0.0: {} 2273 | 2274 | fsevents@2.3.3: 2275 | optional: true 2276 | 2277 | function-bind@1.1.2: {} 2278 | 2279 | glob-parent@5.1.2: 2280 | dependencies: 2281 | is-glob: 4.0.3 2282 | 2283 | glob-parent@6.0.2: 2284 | dependencies: 2285 | is-glob: 4.0.3 2286 | 2287 | glob@10.3.15: 2288 | dependencies: 2289 | foreground-child: 3.1.1 2290 | jackspeak: 2.3.6 2291 | minimatch: 9.0.4 2292 | minipass: 7.1.1 2293 | path-scurry: 1.11.1 2294 | 2295 | glob@7.2.3: 2296 | dependencies: 2297 | fs.realpath: 1.0.0 2298 | inflight: 1.0.6 2299 | inherits: 2.0.4 2300 | minimatch: 3.1.2 2301 | once: 1.4.0 2302 | path-is-absolute: 1.0.1 2303 | 2304 | globals@13.24.0: 2305 | dependencies: 2306 | type-fest: 0.20.2 2307 | 2308 | globalyzer@0.1.0: {} 2309 | 2310 | globby@11.1.0: 2311 | dependencies: 2312 | array-union: 2.1.0 2313 | dir-glob: 3.0.1 2314 | fast-glob: 3.3.2 2315 | ignore: 5.3.1 2316 | merge2: 1.4.1 2317 | slash: 3.0.0 2318 | 2319 | globrex@0.1.2: {} 2320 | 2321 | graceful-fs@4.2.11: {} 2322 | 2323 | graphemer@1.4.0: {} 2324 | 2325 | has-flag@4.0.0: {} 2326 | 2327 | hasown@2.0.2: 2328 | dependencies: 2329 | function-bind: 1.1.2 2330 | 2331 | highlight.js@11.9.0: {} 2332 | 2333 | ignore@5.3.1: {} 2334 | 2335 | import-fresh@3.3.0: 2336 | dependencies: 2337 | parent-module: 1.0.1 2338 | resolve-from: 4.0.0 2339 | 2340 | import-meta-resolve@4.1.0: {} 2341 | 2342 | imurmurhash@0.1.4: {} 2343 | 2344 | inflight@1.0.6: 2345 | dependencies: 2346 | once: 1.4.0 2347 | wrappy: 1.0.2 2348 | 2349 | inherits@2.0.4: {} 2350 | 2351 | is-binary-path@2.1.0: 2352 | dependencies: 2353 | binary-extensions: 2.3.0 2354 | 2355 | is-core-module@2.13.1: 2356 | dependencies: 2357 | hasown: 2.0.2 2358 | 2359 | is-extglob@2.1.1: {} 2360 | 2361 | is-fullwidth-code-point@3.0.0: {} 2362 | 2363 | is-glob@4.0.3: 2364 | dependencies: 2365 | is-extglob: 2.1.1 2366 | 2367 | is-number@7.0.0: {} 2368 | 2369 | is-path-inside@3.0.3: {} 2370 | 2371 | is-reference@3.0.2: 2372 | dependencies: 2373 | '@types/estree': 1.0.5 2374 | 2375 | isexe@2.0.0: {} 2376 | 2377 | jackspeak@2.3.6: 2378 | dependencies: 2379 | '@isaacs/cliui': 8.0.2 2380 | optionalDependencies: 2381 | '@pkgjs/parseargs': 0.11.0 2382 | 2383 | jiti@1.21.0: {} 2384 | 2385 | js-yaml@4.1.0: 2386 | dependencies: 2387 | argparse: 2.0.1 2388 | 2389 | json-buffer@3.0.1: {} 2390 | 2391 | json-schema-traverse@0.4.1: {} 2392 | 2393 | json-stable-stringify-without-jsonify@1.0.1: {} 2394 | 2395 | keyv@4.5.4: 2396 | dependencies: 2397 | json-buffer: 3.0.1 2398 | 2399 | kleur@4.1.5: {} 2400 | 2401 | known-css-properties@0.31.0: {} 2402 | 2403 | levn@0.4.1: 2404 | dependencies: 2405 | prelude-ls: 1.2.1 2406 | type-check: 0.4.0 2407 | 2408 | lilconfig@2.1.0: {} 2409 | 2410 | lilconfig@3.1.1: {} 2411 | 2412 | lines-and-columns@1.2.4: {} 2413 | 2414 | locate-character@3.0.0: {} 2415 | 2416 | locate-path@6.0.0: 2417 | dependencies: 2418 | p-locate: 5.0.0 2419 | 2420 | lodash.merge@4.6.2: {} 2421 | 2422 | lru-cache@10.2.2: {} 2423 | 2424 | lucide-svelte@0.378.0(svelte@4.2.17): 2425 | dependencies: 2426 | svelte: 4.2.17 2427 | 2428 | magic-string@0.30.10: 2429 | dependencies: 2430 | '@jridgewell/sourcemap-codec': 1.4.15 2431 | 2432 | mdn-data@2.0.30: {} 2433 | 2434 | merge2@1.4.1: {} 2435 | 2436 | micromatch@4.0.5: 2437 | dependencies: 2438 | braces: 3.0.2 2439 | picomatch: 2.3.1 2440 | 2441 | min-indent@1.0.1: {} 2442 | 2443 | minimatch@3.1.2: 2444 | dependencies: 2445 | brace-expansion: 1.1.11 2446 | 2447 | minimatch@9.0.4: 2448 | dependencies: 2449 | brace-expansion: 2.0.1 2450 | 2451 | minimist@1.2.8: {} 2452 | 2453 | minipass@7.1.1: {} 2454 | 2455 | mkdirp@0.5.6: 2456 | dependencies: 2457 | minimist: 1.2.8 2458 | 2459 | mri@1.2.0: {} 2460 | 2461 | mrmime@2.0.0: {} 2462 | 2463 | ms@2.1.2: {} 2464 | 2465 | mz@2.7.0: 2466 | dependencies: 2467 | any-promise: 1.3.0 2468 | object-assign: 4.1.1 2469 | thenify-all: 1.6.0 2470 | 2471 | nanoid@3.3.7: {} 2472 | 2473 | natural-compare@1.4.0: {} 2474 | 2475 | node-releases@2.0.14: {} 2476 | 2477 | normalize-path@3.0.0: {} 2478 | 2479 | normalize-range@0.1.2: {} 2480 | 2481 | object-assign@4.1.1: {} 2482 | 2483 | object-hash@3.0.0: {} 2484 | 2485 | once@1.4.0: 2486 | dependencies: 2487 | wrappy: 1.0.2 2488 | 2489 | optionator@0.9.4: 2490 | dependencies: 2491 | deep-is: 0.1.4 2492 | fast-levenshtein: 2.0.6 2493 | levn: 0.4.1 2494 | prelude-ls: 1.2.1 2495 | type-check: 0.4.0 2496 | word-wrap: 1.2.5 2497 | 2498 | p-limit@3.1.0: 2499 | dependencies: 2500 | yocto-queue: 0.1.0 2501 | 2502 | p-locate@5.0.0: 2503 | dependencies: 2504 | p-limit: 3.1.0 2505 | 2506 | parent-module@1.0.1: 2507 | dependencies: 2508 | callsites: 3.1.0 2509 | 2510 | path-exists@4.0.0: {} 2511 | 2512 | path-is-absolute@1.0.1: {} 2513 | 2514 | path-key@3.1.1: {} 2515 | 2516 | path-parse@1.0.7: {} 2517 | 2518 | path-scurry@1.11.1: 2519 | dependencies: 2520 | lru-cache: 10.2.2 2521 | minipass: 7.1.1 2522 | 2523 | path-type@4.0.0: {} 2524 | 2525 | periscopic@3.1.0: 2526 | dependencies: 2527 | '@types/estree': 1.0.5 2528 | estree-walker: 3.0.3 2529 | is-reference: 3.0.2 2530 | 2531 | picocolors@1.0.1: {} 2532 | 2533 | picomatch@2.3.1: {} 2534 | 2535 | pify@2.3.0: {} 2536 | 2537 | pirates@4.0.6: {} 2538 | 2539 | postcss-import@15.1.0(postcss@8.4.38): 2540 | dependencies: 2541 | postcss: 8.4.38 2542 | postcss-value-parser: 4.2.0 2543 | read-cache: 1.0.0 2544 | resolve: 1.22.8 2545 | 2546 | postcss-js@4.0.1(postcss@8.4.38): 2547 | dependencies: 2548 | camelcase-css: 2.0.1 2549 | postcss: 8.4.38 2550 | 2551 | postcss-load-config@3.1.4(postcss@8.4.38): 2552 | dependencies: 2553 | lilconfig: 2.1.0 2554 | yaml: 1.10.2 2555 | optionalDependencies: 2556 | postcss: 8.4.38 2557 | 2558 | postcss-load-config@4.0.2(postcss@8.4.38): 2559 | dependencies: 2560 | lilconfig: 3.1.1 2561 | yaml: 2.4.2 2562 | optionalDependencies: 2563 | postcss: 8.4.38 2564 | 2565 | postcss-nested@6.0.1(postcss@8.4.38): 2566 | dependencies: 2567 | postcss: 8.4.38 2568 | postcss-selector-parser: 6.0.16 2569 | 2570 | postcss-safe-parser@6.0.0(postcss@8.4.38): 2571 | dependencies: 2572 | postcss: 8.4.38 2573 | 2574 | postcss-scss@4.0.9(postcss@8.4.38): 2575 | dependencies: 2576 | postcss: 8.4.38 2577 | 2578 | postcss-selector-parser@6.0.16: 2579 | dependencies: 2580 | cssesc: 3.0.0 2581 | util-deprecate: 1.0.2 2582 | 2583 | postcss-value-parser@4.2.0: {} 2584 | 2585 | postcss@8.4.38: 2586 | dependencies: 2587 | nanoid: 3.3.7 2588 | picocolors: 1.0.1 2589 | source-map-js: 1.2.0 2590 | 2591 | prelude-ls@1.2.1: {} 2592 | 2593 | prettier-plugin-svelte@3.2.3(prettier@3.2.5)(svelte@4.2.17): 2594 | dependencies: 2595 | prettier: 3.2.5 2596 | svelte: 4.2.17 2597 | 2598 | prettier-plugin-tailwindcss@0.5.14(prettier-plugin-svelte@3.2.3(prettier@3.2.5)(svelte@4.2.17))(prettier@3.2.5): 2599 | dependencies: 2600 | prettier: 3.2.5 2601 | optionalDependencies: 2602 | prettier-plugin-svelte: 3.2.3(prettier@3.2.5)(svelte@4.2.17) 2603 | 2604 | prettier@3.2.5: {} 2605 | 2606 | punycode@2.3.1: {} 2607 | 2608 | queue-microtask@1.2.3: {} 2609 | 2610 | read-cache@1.0.0: 2611 | dependencies: 2612 | pify: 2.3.0 2613 | 2614 | readdirp@3.6.0: 2615 | dependencies: 2616 | picomatch: 2.3.1 2617 | 2618 | resolve-from@4.0.0: {} 2619 | 2620 | resolve@1.22.8: 2621 | dependencies: 2622 | is-core-module: 2.13.1 2623 | path-parse: 1.0.7 2624 | supports-preserve-symlinks-flag: 1.0.0 2625 | 2626 | reusify@1.0.4: {} 2627 | 2628 | rimraf@2.7.1: 2629 | dependencies: 2630 | glob: 7.2.3 2631 | 2632 | rimraf@3.0.2: 2633 | dependencies: 2634 | glob: 7.2.3 2635 | 2636 | rollup@4.17.2: 2637 | dependencies: 2638 | '@types/estree': 1.0.5 2639 | optionalDependencies: 2640 | '@rollup/rollup-android-arm-eabi': 4.17.2 2641 | '@rollup/rollup-android-arm64': 4.17.2 2642 | '@rollup/rollup-darwin-arm64': 4.17.2 2643 | '@rollup/rollup-darwin-x64': 4.17.2 2644 | '@rollup/rollup-linux-arm-gnueabihf': 4.17.2 2645 | '@rollup/rollup-linux-arm-musleabihf': 4.17.2 2646 | '@rollup/rollup-linux-arm64-gnu': 4.17.2 2647 | '@rollup/rollup-linux-arm64-musl': 4.17.2 2648 | '@rollup/rollup-linux-powerpc64le-gnu': 4.17.2 2649 | '@rollup/rollup-linux-riscv64-gnu': 4.17.2 2650 | '@rollup/rollup-linux-s390x-gnu': 4.17.2 2651 | '@rollup/rollup-linux-x64-gnu': 4.17.2 2652 | '@rollup/rollup-linux-x64-musl': 4.17.2 2653 | '@rollup/rollup-win32-arm64-msvc': 4.17.2 2654 | '@rollup/rollup-win32-ia32-msvc': 4.17.2 2655 | '@rollup/rollup-win32-x64-msvc': 4.17.2 2656 | fsevents: 2.3.3 2657 | 2658 | run-parallel@1.2.0: 2659 | dependencies: 2660 | queue-microtask: 1.2.3 2661 | 2662 | sade@1.8.1: 2663 | dependencies: 2664 | mri: 1.2.0 2665 | 2666 | sander@0.5.1: 2667 | dependencies: 2668 | es6-promise: 3.3.1 2669 | graceful-fs: 4.2.11 2670 | mkdirp: 0.5.6 2671 | rimraf: 2.7.1 2672 | 2673 | semver@7.6.2: {} 2674 | 2675 | set-cookie-parser@2.6.0: {} 2676 | 2677 | shebang-command@2.0.0: 2678 | dependencies: 2679 | shebang-regex: 3.0.0 2680 | 2681 | shebang-regex@3.0.0: {} 2682 | 2683 | signal-exit@4.1.0: {} 2684 | 2685 | sirv@2.0.4: 2686 | dependencies: 2687 | '@polka/url': 1.0.0-next.25 2688 | mrmime: 2.0.0 2689 | totalist: 3.0.1 2690 | 2691 | slash@3.0.0: {} 2692 | 2693 | sorcery@0.11.0: 2694 | dependencies: 2695 | '@jridgewell/sourcemap-codec': 1.4.15 2696 | buffer-crc32: 0.2.13 2697 | minimist: 1.2.8 2698 | sander: 0.5.1 2699 | 2700 | source-map-js@1.2.0: {} 2701 | 2702 | string-width@4.2.3: 2703 | dependencies: 2704 | emoji-regex: 8.0.0 2705 | is-fullwidth-code-point: 3.0.0 2706 | strip-ansi: 6.0.1 2707 | 2708 | string-width@5.1.2: 2709 | dependencies: 2710 | eastasianwidth: 0.2.0 2711 | emoji-regex: 9.2.2 2712 | strip-ansi: 7.1.0 2713 | 2714 | strip-ansi@6.0.1: 2715 | dependencies: 2716 | ansi-regex: 5.0.1 2717 | 2718 | strip-ansi@7.1.0: 2719 | dependencies: 2720 | ansi-regex: 6.0.1 2721 | 2722 | strip-indent@3.0.0: 2723 | dependencies: 2724 | min-indent: 1.0.1 2725 | 2726 | strip-json-comments@3.1.1: {} 2727 | 2728 | sucrase@3.35.0: 2729 | dependencies: 2730 | '@jridgewell/gen-mapping': 0.3.5 2731 | commander: 4.1.1 2732 | glob: 10.3.15 2733 | lines-and-columns: 1.2.4 2734 | mz: 2.7.0 2735 | pirates: 4.0.6 2736 | ts-interface-checker: 0.1.13 2737 | 2738 | supports-color@7.2.0: 2739 | dependencies: 2740 | has-flag: 4.0.0 2741 | 2742 | supports-preserve-symlinks-flag@1.0.0: {} 2743 | 2744 | svelte-check@3.7.1(postcss-load-config@4.0.2(postcss@8.4.38))(postcss@8.4.38)(svelte@4.2.17): 2745 | dependencies: 2746 | '@jridgewell/trace-mapping': 0.3.25 2747 | chokidar: 3.6.0 2748 | fast-glob: 3.3.2 2749 | import-fresh: 3.3.0 2750 | picocolors: 1.0.1 2751 | sade: 1.8.1 2752 | svelte: 4.2.17 2753 | svelte-preprocess: 5.1.4(postcss-load-config@4.0.2(postcss@8.4.38))(postcss@8.4.38)(svelte@4.2.17)(typescript@5.4.5) 2754 | typescript: 5.4.5 2755 | transitivePeerDependencies: 2756 | - '@babel/core' 2757 | - coffeescript 2758 | - less 2759 | - postcss 2760 | - postcss-load-config 2761 | - pug 2762 | - sass 2763 | - stylus 2764 | - sugarss 2765 | 2766 | svelte-eslint-parser@0.36.0(svelte@4.2.17): 2767 | dependencies: 2768 | eslint-scope: 7.2.2 2769 | eslint-visitor-keys: 3.4.3 2770 | espree: 9.6.1 2771 | postcss: 8.4.38 2772 | postcss-scss: 4.0.9(postcss@8.4.38) 2773 | optionalDependencies: 2774 | svelte: 4.2.17 2775 | 2776 | svelte-highlight@7.6.1: 2777 | dependencies: 2778 | highlight.js: 11.9.0 2779 | 2780 | svelte-hmr@0.16.0(svelte@4.2.17): 2781 | dependencies: 2782 | svelte: 4.2.17 2783 | 2784 | svelte-preprocess@5.1.4(postcss-load-config@4.0.2(postcss@8.4.38))(postcss@8.4.38)(svelte@4.2.17)(typescript@5.4.5): 2785 | dependencies: 2786 | '@types/pug': 2.0.10 2787 | detect-indent: 6.1.0 2788 | magic-string: 0.30.10 2789 | sorcery: 0.11.0 2790 | strip-indent: 3.0.0 2791 | svelte: 4.2.17 2792 | optionalDependencies: 2793 | postcss: 8.4.38 2794 | postcss-load-config: 4.0.2(postcss@8.4.38) 2795 | typescript: 5.4.5 2796 | 2797 | svelte@4.2.17: 2798 | dependencies: 2799 | '@ampproject/remapping': 2.3.0 2800 | '@jridgewell/sourcemap-codec': 1.4.15 2801 | '@jridgewell/trace-mapping': 0.3.25 2802 | '@types/estree': 1.0.5 2803 | acorn: 8.11.3 2804 | aria-query: 5.3.0 2805 | axobject-query: 4.0.0 2806 | code-red: 1.0.4 2807 | css-tree: 2.3.1 2808 | estree-walker: 3.0.3 2809 | is-reference: 3.0.2 2810 | locate-character: 3.0.0 2811 | magic-string: 0.30.10 2812 | periscopic: 3.1.0 2813 | 2814 | tailwindcss@3.4.3: 2815 | dependencies: 2816 | '@alloc/quick-lru': 5.2.0 2817 | arg: 5.0.2 2818 | chokidar: 3.6.0 2819 | didyoumean: 1.2.2 2820 | dlv: 1.1.3 2821 | fast-glob: 3.3.2 2822 | glob-parent: 6.0.2 2823 | is-glob: 4.0.3 2824 | jiti: 1.21.0 2825 | lilconfig: 2.1.0 2826 | micromatch: 4.0.5 2827 | normalize-path: 3.0.0 2828 | object-hash: 3.0.0 2829 | picocolors: 1.0.1 2830 | postcss: 8.4.38 2831 | postcss-import: 15.1.0(postcss@8.4.38) 2832 | postcss-js: 4.0.1(postcss@8.4.38) 2833 | postcss-load-config: 4.0.2(postcss@8.4.38) 2834 | postcss-nested: 6.0.1(postcss@8.4.38) 2835 | postcss-selector-parser: 6.0.16 2836 | resolve: 1.22.8 2837 | sucrase: 3.35.0 2838 | transitivePeerDependencies: 2839 | - ts-node 2840 | 2841 | text-table@0.2.0: {} 2842 | 2843 | thenify-all@1.6.0: 2844 | dependencies: 2845 | thenify: 3.3.1 2846 | 2847 | thenify@3.3.1: 2848 | dependencies: 2849 | any-promise: 1.3.0 2850 | 2851 | tiny-glob@0.2.9: 2852 | dependencies: 2853 | globalyzer: 0.1.0 2854 | globrex: 0.1.2 2855 | 2856 | to-regex-range@5.0.1: 2857 | dependencies: 2858 | is-number: 7.0.0 2859 | 2860 | totalist@3.0.1: {} 2861 | 2862 | ts-api-utils@1.3.0(typescript@5.4.5): 2863 | dependencies: 2864 | typescript: 5.4.5 2865 | 2866 | ts-interface-checker@0.1.13: {} 2867 | 2868 | tslib@2.6.2: {} 2869 | 2870 | type-check@0.4.0: 2871 | dependencies: 2872 | prelude-ls: 1.2.1 2873 | 2874 | type-fest@0.20.2: {} 2875 | 2876 | typescript@5.4.5: {} 2877 | 2878 | update-browserslist-db@1.0.16(browserslist@4.23.0): 2879 | dependencies: 2880 | browserslist: 4.23.0 2881 | escalade: 3.1.2 2882 | picocolors: 1.0.1 2883 | 2884 | uri-js@4.4.1: 2885 | dependencies: 2886 | punycode: 2.3.1 2887 | 2888 | util-deprecate@1.0.2: {} 2889 | 2890 | vite@5.2.11: 2891 | dependencies: 2892 | esbuild: 0.20.2 2893 | postcss: 8.4.38 2894 | rollup: 4.17.2 2895 | optionalDependencies: 2896 | fsevents: 2.3.3 2897 | 2898 | vitefu@0.2.5(vite@5.2.11): 2899 | optionalDependencies: 2900 | vite: 5.2.11 2901 | 2902 | which@2.0.2: 2903 | dependencies: 2904 | isexe: 2.0.0 2905 | 2906 | word-wrap@1.2.5: {} 2907 | 2908 | wrap-ansi@7.0.0: 2909 | dependencies: 2910 | ansi-styles: 4.3.0 2911 | string-width: 4.2.3 2912 | strip-ansi: 6.0.1 2913 | 2914 | wrap-ansi@8.1.0: 2915 | dependencies: 2916 | ansi-styles: 6.2.1 2917 | string-width: 5.1.2 2918 | strip-ansi: 7.1.0 2919 | 2920 | wrappy@1.0.2: {} 2921 | 2922 | yaml@1.10.2: {} 2923 | 2924 | yaml@2.4.2: {} 2925 | 2926 | yocto-queue@0.1.0: {} 2927 | 2928 | zod@3.23.8: {} 2929 | --------------------------------------------------------------------------------