├── .eslintignore ├── .eslintrc.cjs ├── .gitignore ├── .npmrc ├── .prettierignore ├── .prettierrc ├── README.md ├── examples ├── netlify-build │ ├── .eslintignore │ ├── .eslintrc.cjs │ ├── .gitignore │ ├── .npmrc │ ├── .prettierignore │ ├── .prettierrc │ ├── README.md │ ├── netlify.toml │ ├── package.json │ ├── playwright.config.js │ ├── pnpm-lock.yaml │ ├── src │ │ ├── app.html │ │ └── routes │ │ │ ├── +server.ts │ │ │ └── cog │ │ │ ├── +server.ts │ │ │ └── OG.svelte │ ├── static │ │ ├── favicon.ico │ │ └── favicon.png │ ├── svelte.config.js │ ├── tests │ │ └── test.js │ └── vite.config.js ├── node-build │ ├── .eslintignore │ ├── .eslintrc.cjs │ ├── .gitignore │ ├── .npmrc │ ├── .prettierignore │ ├── .prettierrc │ ├── README.md │ ├── package-lock.json │ ├── package.json │ ├── playwright.config.js │ ├── pnpm-lock.yaml │ ├── src │ │ ├── app.html │ │ └── routes │ │ │ ├── +server.ts │ │ │ └── cog │ │ │ ├── +server.ts │ │ │ └── OG.svelte │ ├── static │ │ ├── favicon.ico │ │ └── favicon.png │ ├── svelte.config.js │ ├── tests │ │ └── test.js │ └── vite.config.js └── vercel-build │ ├── .eslintignore │ ├── .eslintrc.cjs │ ├── .gitignore │ ├── .npmrc │ ├── .prettierignore │ ├── .prettierrc │ ├── README.md │ ├── package-lock.json │ ├── package.json │ ├── playwright.config.js │ ├── pnpm-lock.yaml │ ├── src │ ├── app.html │ └── routes │ │ ├── +server.ts │ │ └── cog │ │ ├── +server.ts │ │ └── OG.svelte │ ├── static │ ├── favicon.ico │ └── favicon.png │ ├── svelte.config.js │ ├── tests │ └── test.js │ └── vite.config.js ├── package.json ├── pnpm-lock.yaml ├── src ├── app.d.ts ├── app.html ├── index.test.ts ├── lib │ ├── api.ts │ ├── font.ts │ ├── index.ts │ └── types.ts └── routes │ ├── +server.ts │ └── sc │ ├── +server.ts │ └── OG.svelte ├── static ├── demo.png └── favicon.png ├── svelte.config.js ├── tsconfig.json └── vite.config.ts /.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 | -------------------------------------------------------------------------------- /.eslintrc.cjs: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | root: true, 3 | extends: [ 4 | 'eslint:recommended', 5 | 'plugin:@typescript-eslint/recommended', 6 | 'plugin:svelte/recommended', 7 | 'prettier' 8 | ], 9 | parser: '@typescript-eslint/parser', 10 | plugins: ['@typescript-eslint'], 11 | parserOptions: { 12 | sourceType: 'module', 13 | ecmaVersion: 2020, 14 | extraFileExtensions: ['.svelte'] 15 | }, 16 | env: { 17 | browser: true, 18 | es2017: true, 19 | node: true 20 | }, 21 | overrides: [ 22 | { 23 | files: ['*.svelte'], 24 | parser: 'svelte-eslint-parser', 25 | parserOptions: { 26 | parser: '@typescript-eslint/parser' 27 | } 28 | } 29 | ] 30 | }; 31 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | node_modules 3 | /build 4 | /dist 5 | /.svelte-kit 6 | /package 7 | .env 8 | .env.* 9 | !.env.example 10 | vite.config.js.timestamp-* 11 | vite.config.ts.timestamp-* 12 | .idea 13 | .vercel 14 | .netlify 15 | -------------------------------------------------------------------------------- /.npmrc: -------------------------------------------------------------------------------- 1 | engine-strict=true 2 | resolution-mode=highest 3 | -------------------------------------------------------------------------------- /.prettierignore: -------------------------------------------------------------------------------- 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 | -------------------------------------------------------------------------------- /.prettierrc: -------------------------------------------------------------------------------- 1 | { 2 | "useTabs": true, 3 | "singleQuote": true, 4 | "trailingComma": "none", 5 | "printWidth": 100, 6 | "plugins": ["prettier-plugin-svelte"], 7 | "pluginSearchDirs": ["."], 8 | "overrides": [{ "files": "*.svelte", "options": { "parser": "svelte" } }] 9 | } 10 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # SvelteKit Open Graph Image Generation 2 | 3 | Dynamically generate Open Graph images from an HTML+CSS template or Svelte component using fast and efficient conversion from HTML > SVG > PNG. Based on [Satori](https://github.com/vercel/satori#documentation). No headless browser required. 4 | 5 | ## Disclaimer 6 | This project doesn't support edge services like vercel edge and cloudflare workers. 7 | 8 | ## Installation 9 | 10 | ```bash 11 | pnpm install @ethercorps/sveltekit-og 12 | ``` 13 | 14 | ## Usage 15 | 16 | Create a file at `/src/routes/og/+server.ts`. Alternatively, you can use JavaScript by removing the types from this example. 17 | 18 | ```typescript 19 | // src/routes/og/+server.ts 20 | import { ImageResponse } from '@ethercorps/sveltekit-og'; 21 | import { RequestHandler } from './$types'; 22 | 23 | const template = ` 24 |
25 |
26 |

27 | Ready to dive in? 28 | Start your free trial today. 29 |

30 |
31 |
32 | Get started 33 |
34 |
35 | Learn more 36 |
37 |
38 |
39 |
40 | `; 41 | 42 | const fontFile = await fetch('https://og-playground.vercel.app/inter-latin-ext-400-normal.woff'); 43 | const fontData: ArrayBuffer = await fontFile.arrayBuffer(); 44 | 45 | export const GET: RequestHandler = async () => { 46 | return await new ImageResponse(template, { 47 | height: 630, 48 | width: 1200, 49 | fonts: [ 50 | { 51 | name: 'Inter Latin', 52 | data: fontData, 53 | weight: 400 54 | } 55 | ] 56 | }); 57 | }; 58 | ``` 59 | 60 | Then run `npm dev` and visit `localhost:5173/og` to view your generated PNG. Remember that hot module reloading does not work with server routes, so if you change your HTML or CSS, hard refresh the route to see changes. 61 | 62 | ## Example Output 63 | 64 | ![Rendered OG image](static/demo.png) 65 | 66 | ## Headers 67 | 68 | When run in development, image headers contain `cache-control: no-cache, no-store`. In production, image headers contain `'cache-control': 'public, immutable, no-transform, max-age=31536000'`, which caches the image for 1 year. In both cases, the `'content-type': 'image/png'` is used. 69 | 70 | ## Styling 71 | 72 | Notice that our example uses TailwindCSS classes (e.g. `tw="bg-gray-50"`). Alternatively, your HTML can contain style attributes using any of [the subset of CSS supported by Satori](https://github.com/vercel/satori#css). 73 | 74 | Satori supports only a subset of HTML and CSS. For full details, see [Satori’s documentation](https://github.com/vercel/satori#documentation). Notably, Satori only supports flex-based layouts. 75 | 76 | ## Fonts 77 | 78 | Satori supports `ttf`, `otf`, and `woff` font formats; `woff2` is not supported. To maximize the font parsing speed, `ttf` or `otf` are recommended over `woff`. 79 | 80 | By default, `@ethercorps/sveltekit-og` includes only 'Noto Sans' font. If you need to use other fonts, you can specify them as shown in the example. Notably, you can also import a font file that is stored locally within your project and are not required to use fetch. 81 | 82 | ## Examples 83 | 84 | - `ImageResponse` · [_source_](/src/routes/+server.ts) · [_demo_](https://sveltekit-og-five.vercel.app) 85 | - `Component Rendering` · [_source_](/src/routes/sc/+server.ts) · [_demo_](https://sveltekit-og-five.vercel.app/sc) 86 | 87 | ## API Reference 88 | 89 | The package exposes an `ImageResponse` constructors, with the following options available: 90 | 91 | ```typescript 92 | import {ImageResponse} from '@ethercorps/sveltekit-og' 93 | import {SvelteComponent} from "svelte"; 94 | 95 | // ... 96 | ImageResponse( 97 | element : string, 98 | options : { 99 | width ? : number = 1200 100 | height ? : number = 630, 101 | backgroundColor ? : string = "#fff" 102 | fonts ? : { 103 | name: string, 104 | data: ArrayBuffer, 105 | weight: number, 106 | style: 'normal' | 'italic' 107 | }[] 108 | debug ? : boolean = false 109 | graphemeImages ? : Record; 110 | loadAdditionalAsset ? : (languageCode: string, segment: string) => Promise; 111 | // Options that will be passed to the HTTP response 112 | status ? : number = 200 113 | statusText ? : string 114 | headers ? : Record 115 | } {props}) 116 | ``` 117 | 118 | ## Changelog 119 | 120 | ### v3.0.0 (Breaking Changes) 121 | 122 | > Just install @ethercorps/sveltekit-og 123 | > No wasm as of now, only support for nodejs based runtime. 124 | 125 | ### v1.2.3 Update (Breaking Changes) 126 | 127 | > Now you have to install dependency by yourself which will make it easier to build for all plateforms. 128 | 129 | ``` 130 | npm i @resvg/resvg-js 131 | ``` 132 | 133 | ``` 134 | npm i satori 135 | ``` 136 | 137 | > From now on their will be no issues related to build, and soon this library going to have its own documentation. 138 | 139 | ### v1.2.2 Update (Breaking Change) 140 | 141 | - We don't provide access to satori from `@ethercorps/sveltekit-og`. 142 | 143 | ### v1.0.0 Update (Breaking Changes) 144 | 145 | Finally, We have added html to react like element like object converter out of the box and with svelte compiler. 146 | Now you can use `{ toReactElement }` with `"@ethercorps/sveltekit-og"` like: 147 | 148 | - We have changed to function based instead of class based ImageResponse and componentToImageResponse. 149 | - Removed `@resvg/resvg-wasm` with `@resvg/resvg-js` because of internal errors. 150 | - Removed `satori-html` because now we have `toReactElement` out of the box with svelte compiler. 151 | > If you find a problem related to undefined a please check [_vite.config.js_](/vite.config.ts) and add ` define: { _a: 'undefined' } in config.` 152 | 153 | > If you find any issue and have suggestion for this project please open a ticket and if you want to contribute please create a new discussion. 154 | 155 | ## Acknowledgements 156 | 157 | This project will not be possible without the following projects: 158 | 159 | - [Satori & @vercel/og](https://github.com/vercel/satori) 160 | - [Noto by Google Fonts](https://fonts.google.com/noto) 161 | 162 | [//]: # (- [svg2png-wasm](https://github.com/ssssota/svg2png-wasm)) 163 | 164 | ## Authors 165 | 166 | - [@theetherGit](https://www.github.com/theetherGit) 167 | - [@etherCorps](https://www.github.com/etherCorps) 168 | 169 | ## Contributors 170 | 171 | - [@jasongitmail](https://github.com/jasongitmail) 172 | -------------------------------------------------------------------------------- /examples/netlify-build/.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 | -------------------------------------------------------------------------------- /examples/netlify-build/.eslintrc.cjs: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | root: true, 3 | extends: ['eslint:recommended', 'prettier'], 4 | plugins: ['svelte3'], 5 | overrides: [{ files: ['*.svelte'], processor: 'svelte3/svelte3' }], 6 | parserOptions: { 7 | sourceType: 'module', 8 | ecmaVersion: 2020 9 | }, 10 | env: { 11 | browser: true, 12 | es2017: true, 13 | node: true 14 | } 15 | }; 16 | -------------------------------------------------------------------------------- /examples/netlify-build/.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | node_modules 3 | /build 4 | /.svelte-kit 5 | /package 6 | .env 7 | .env.* 8 | !.env.example 9 | .netlify 10 | -------------------------------------------------------------------------------- /examples/netlify-build/.npmrc: -------------------------------------------------------------------------------- 1 | engine-strict=true 2 | -------------------------------------------------------------------------------- /examples/netlify-build/.prettierignore: -------------------------------------------------------------------------------- 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 | -------------------------------------------------------------------------------- /examples/netlify-build/.prettierrc: -------------------------------------------------------------------------------- 1 | { 2 | "useTabs": true, 3 | "singleQuote": true, 4 | "trailingComma": "none", 5 | "printWidth": 100, 6 | "plugins": ["prettier-plugin-svelte"], 7 | "pluginSearchDirs": ["."], 8 | "overrides": [{ "files": "*.svelte", "options": { "parser": "svelte" } }] 9 | } 10 | -------------------------------------------------------------------------------- /examples/netlify-build/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/master/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 | -------------------------------------------------------------------------------- /examples/netlify-build/netlify.toml: -------------------------------------------------------------------------------- 1 | [build] 2 | command = "npm run build" 3 | publish = "build" 4 | -------------------------------------------------------------------------------- /examples/netlify-build/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "examples", 3 | "version": "0.0.2", 4 | "private": true, 5 | "scripts": { 6 | "dev": "vite dev", 7 | "build": "vite build", 8 | "preview": "vite preview", 9 | "test": "playwright test", 10 | "lint": "prettier --plugin-search-dir . --check . && eslint .", 11 | "format": "prettier --plugin-search-dir . --write ." 12 | }, 13 | "devDependencies": { 14 | "@playwright/test": "^1.34.3", 15 | "@sveltejs/adapter-netlify": "^2.0.7", 16 | "@sveltejs/kit": "^1.20.2", 17 | "eslint": "^8.42.0", 18 | "eslint-config-prettier": "^8.8.0", 19 | "eslint-plugin-svelte3": "^4.0.0", 20 | "prettier": "^2.8.8", 21 | "prettier-plugin-svelte": "^2.10.1", 22 | "svelte": "^3.59.1", 23 | "vite": "^4.3.9" 24 | }, 25 | "type": "module", 26 | "dependencies": { 27 | "@ethercorps/sveltekit-og": "link:../../" 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /examples/netlify-build/playwright.config.js: -------------------------------------------------------------------------------- 1 | /** @type {import('@playwright/test').PlaywrightTestConfig} */ 2 | const config = { 3 | webServer: { 4 | command: 'npm run build && npm run preview', 5 | port: 4173 6 | } 7 | }; 8 | 9 | export default config; 10 | -------------------------------------------------------------------------------- /examples/netlify-build/pnpm-lock.yaml: -------------------------------------------------------------------------------- 1 | lockfileVersion: '6.0' 2 | 3 | settings: 4 | autoInstallPeers: true 5 | excludeLinksFromLockfile: false 6 | 7 | dependencies: 8 | '@ethercorps/sveltekit-og': 9 | specifier: link:../../ 10 | version: link:../.. 11 | 12 | devDependencies: 13 | '@playwright/test': 14 | specifier: ^1.34.3 15 | version: 1.34.3 16 | '@sveltejs/adapter-netlify': 17 | specifier: ^2.0.7 18 | version: 2.0.7(@sveltejs/kit@1.20.2) 19 | '@sveltejs/kit': 20 | specifier: ^1.20.2 21 | version: 1.20.2(svelte@3.59.1)(vite@4.3.9) 22 | eslint: 23 | specifier: ^8.42.0 24 | version: 8.42.0 25 | eslint-config-prettier: 26 | specifier: ^8.8.0 27 | version: 8.8.0(eslint@8.42.0) 28 | eslint-plugin-svelte3: 29 | specifier: ^4.0.0 30 | version: 4.0.0(eslint@8.42.0)(svelte@3.59.1) 31 | prettier: 32 | specifier: ^2.8.8 33 | version: 2.8.8 34 | prettier-plugin-svelte: 35 | specifier: ^2.10.1 36 | version: 2.10.1(prettier@2.8.8)(svelte@3.59.1) 37 | svelte: 38 | specifier: ^3.59.1 39 | version: 3.59.1 40 | vite: 41 | specifier: ^4.3.9 42 | version: 4.3.9 43 | 44 | packages: 45 | 46 | /@esbuild/android-arm64@0.17.19: 47 | resolution: {integrity: sha512-KBMWvEZooR7+kzY0BtbTQn0OAYY7CsiydT63pVEaPtVYF0hXbUaOyZog37DKxK7NF3XacBJOpYT4adIJh+avxA==} 48 | engines: {node: '>=12'} 49 | cpu: [arm64] 50 | os: [android] 51 | requiresBuild: true 52 | dev: true 53 | optional: true 54 | 55 | /@esbuild/android-arm@0.17.19: 56 | resolution: {integrity: sha512-rIKddzqhmav7MSmoFCmDIb6e2W57geRsM94gV2l38fzhXMwq7hZoClug9USI2pFRGL06f4IOPHHpFNOkWieR8A==} 57 | engines: {node: '>=12'} 58 | cpu: [arm] 59 | os: [android] 60 | requiresBuild: true 61 | dev: true 62 | optional: true 63 | 64 | /@esbuild/android-x64@0.17.19: 65 | resolution: {integrity: sha512-uUTTc4xGNDT7YSArp/zbtmbhO0uEEK9/ETW29Wk1thYUJBz3IVnvgEiEwEa9IeLyvnpKrWK64Utw2bgUmDveww==} 66 | engines: {node: '>=12'} 67 | cpu: [x64] 68 | os: [android] 69 | requiresBuild: true 70 | dev: true 71 | optional: true 72 | 73 | /@esbuild/darwin-arm64@0.17.19: 74 | resolution: {integrity: sha512-80wEoCfF/hFKM6WE1FyBHc9SfUblloAWx6FJkFWTWiCoht9Mc0ARGEM47e67W9rI09YoUxJL68WHfDRYEAvOhg==} 75 | engines: {node: '>=12'} 76 | cpu: [arm64] 77 | os: [darwin] 78 | requiresBuild: true 79 | dev: true 80 | optional: true 81 | 82 | /@esbuild/darwin-x64@0.17.19: 83 | resolution: {integrity: sha512-IJM4JJsLhRYr9xdtLytPLSH9k/oxR3boaUIYiHkAawtwNOXKE8KoU8tMvryogdcT8AU+Bflmh81Xn6Q0vTZbQw==} 84 | engines: {node: '>=12'} 85 | cpu: [x64] 86 | os: [darwin] 87 | requiresBuild: true 88 | dev: true 89 | optional: true 90 | 91 | /@esbuild/freebsd-arm64@0.17.19: 92 | resolution: {integrity: sha512-pBwbc7DufluUeGdjSU5Si+P3SoMF5DQ/F/UmTSb8HXO80ZEAJmrykPyzo1IfNbAoaqw48YRpv8shwd1NoI0jcQ==} 93 | engines: {node: '>=12'} 94 | cpu: [arm64] 95 | os: [freebsd] 96 | requiresBuild: true 97 | dev: true 98 | optional: true 99 | 100 | /@esbuild/freebsd-x64@0.17.19: 101 | resolution: {integrity: sha512-4lu+n8Wk0XlajEhbEffdy2xy53dpR06SlzvhGByyg36qJw6Kpfk7cp45DR/62aPH9mtJRmIyrXAS5UWBrJT6TQ==} 102 | engines: {node: '>=12'} 103 | cpu: [x64] 104 | os: [freebsd] 105 | requiresBuild: true 106 | dev: true 107 | optional: true 108 | 109 | /@esbuild/linux-arm64@0.17.19: 110 | resolution: {integrity: sha512-ct1Tg3WGwd3P+oZYqic+YZF4snNl2bsnMKRkb3ozHmnM0dGWuxcPTTntAF6bOP0Sp4x0PjSF+4uHQ1xvxfRKqg==} 111 | engines: {node: '>=12'} 112 | cpu: [arm64] 113 | os: [linux] 114 | requiresBuild: true 115 | dev: true 116 | optional: true 117 | 118 | /@esbuild/linux-arm@0.17.19: 119 | resolution: {integrity: sha512-cdmT3KxjlOQ/gZ2cjfrQOtmhG4HJs6hhvm3mWSRDPtZ/lP5oe8FWceS10JaSJC13GBd4eH/haHnqf7hhGNLerA==} 120 | engines: {node: '>=12'} 121 | cpu: [arm] 122 | os: [linux] 123 | requiresBuild: true 124 | dev: true 125 | optional: true 126 | 127 | /@esbuild/linux-ia32@0.17.19: 128 | resolution: {integrity: sha512-w4IRhSy1VbsNxHRQpeGCHEmibqdTUx61Vc38APcsRbuVgK0OPEnQ0YD39Brymn96mOx48Y2laBQGqgZ0j9w6SQ==} 129 | engines: {node: '>=12'} 130 | cpu: [ia32] 131 | os: [linux] 132 | requiresBuild: true 133 | dev: true 134 | optional: true 135 | 136 | /@esbuild/linux-loong64@0.17.19: 137 | resolution: {integrity: sha512-2iAngUbBPMq439a+z//gE+9WBldoMp1s5GWsUSgqHLzLJ9WoZLZhpwWuym0u0u/4XmZ3gpHmzV84PonE+9IIdQ==} 138 | engines: {node: '>=12'} 139 | cpu: [loong64] 140 | os: [linux] 141 | requiresBuild: true 142 | dev: true 143 | optional: true 144 | 145 | /@esbuild/linux-mips64el@0.17.19: 146 | resolution: {integrity: sha512-LKJltc4LVdMKHsrFe4MGNPp0hqDFA1Wpt3jE1gEyM3nKUvOiO//9PheZZHfYRfYl6AwdTH4aTcXSqBerX0ml4A==} 147 | engines: {node: '>=12'} 148 | cpu: [mips64el] 149 | os: [linux] 150 | requiresBuild: true 151 | dev: true 152 | optional: true 153 | 154 | /@esbuild/linux-ppc64@0.17.19: 155 | resolution: {integrity: sha512-/c/DGybs95WXNS8y3Ti/ytqETiW7EU44MEKuCAcpPto3YjQbyK3IQVKfF6nbghD7EcLUGl0NbiL5Rt5DMhn5tg==} 156 | engines: {node: '>=12'} 157 | cpu: [ppc64] 158 | os: [linux] 159 | requiresBuild: true 160 | dev: true 161 | optional: true 162 | 163 | /@esbuild/linux-riscv64@0.17.19: 164 | resolution: {integrity: sha512-FC3nUAWhvFoutlhAkgHf8f5HwFWUL6bYdvLc/TTuxKlvLi3+pPzdZiFKSWz/PF30TB1K19SuCxDTI5KcqASJqA==} 165 | engines: {node: '>=12'} 166 | cpu: [riscv64] 167 | os: [linux] 168 | requiresBuild: true 169 | dev: true 170 | optional: true 171 | 172 | /@esbuild/linux-s390x@0.17.19: 173 | resolution: {integrity: sha512-IbFsFbxMWLuKEbH+7sTkKzL6NJmG2vRyy6K7JJo55w+8xDk7RElYn6xvXtDW8HCfoKBFK69f3pgBJSUSQPr+4Q==} 174 | engines: {node: '>=12'} 175 | cpu: [s390x] 176 | os: [linux] 177 | requiresBuild: true 178 | dev: true 179 | optional: true 180 | 181 | /@esbuild/linux-x64@0.17.19: 182 | resolution: {integrity: sha512-68ngA9lg2H6zkZcyp22tsVt38mlhWde8l3eJLWkyLrp4HwMUr3c1s/M2t7+kHIhvMjglIBrFpncX1SzMckomGw==} 183 | engines: {node: '>=12'} 184 | cpu: [x64] 185 | os: [linux] 186 | requiresBuild: true 187 | dev: true 188 | optional: true 189 | 190 | /@esbuild/netbsd-x64@0.17.19: 191 | resolution: {integrity: sha512-CwFq42rXCR8TYIjIfpXCbRX0rp1jo6cPIUPSaWwzbVI4aOfX96OXY8M6KNmtPcg7QjYeDmN+DD0Wp3LaBOLf4Q==} 192 | engines: {node: '>=12'} 193 | cpu: [x64] 194 | os: [netbsd] 195 | requiresBuild: true 196 | dev: true 197 | optional: true 198 | 199 | /@esbuild/openbsd-x64@0.17.19: 200 | resolution: {integrity: sha512-cnq5brJYrSZ2CF6c35eCmviIN3k3RczmHz8eYaVlNasVqsNY+JKohZU5MKmaOI+KkllCdzOKKdPs762VCPC20g==} 201 | engines: {node: '>=12'} 202 | cpu: [x64] 203 | os: [openbsd] 204 | requiresBuild: true 205 | dev: true 206 | optional: true 207 | 208 | /@esbuild/sunos-x64@0.17.19: 209 | resolution: {integrity: sha512-vCRT7yP3zX+bKWFeP/zdS6SqdWB8OIpaRq/mbXQxTGHnIxspRtigpkUcDMlSCOejlHowLqII7K2JKevwyRP2rg==} 210 | engines: {node: '>=12'} 211 | cpu: [x64] 212 | os: [sunos] 213 | requiresBuild: true 214 | dev: true 215 | optional: true 216 | 217 | /@esbuild/win32-arm64@0.17.19: 218 | resolution: {integrity: sha512-yYx+8jwowUstVdorcMdNlzklLYhPxjniHWFKgRqH7IFlUEa0Umu3KuYplf1HUZZ422e3NU9F4LGb+4O0Kdcaag==} 219 | engines: {node: '>=12'} 220 | cpu: [arm64] 221 | os: [win32] 222 | requiresBuild: true 223 | dev: true 224 | optional: true 225 | 226 | /@esbuild/win32-ia32@0.17.19: 227 | resolution: {integrity: sha512-eggDKanJszUtCdlVs0RB+h35wNlb5v4TWEkq4vZcmVt5u/HiDZrTXe2bWFQUez3RgNHwx/x4sk5++4NSSicKkw==} 228 | engines: {node: '>=12'} 229 | cpu: [ia32] 230 | os: [win32] 231 | requiresBuild: true 232 | dev: true 233 | optional: true 234 | 235 | /@esbuild/win32-x64@0.17.19: 236 | resolution: {integrity: sha512-lAhycmKnVOuRYNtRtatQR1LPQf2oYCkRGkSFnseDAKPl8lu5SOsK/e1sXe5a0Pc5kHIHe6P2I/ilntNv2xf3cA==} 237 | engines: {node: '>=12'} 238 | cpu: [x64] 239 | os: [win32] 240 | requiresBuild: true 241 | dev: true 242 | optional: true 243 | 244 | /@eslint-community/eslint-utils@4.4.0(eslint@8.42.0): 245 | resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} 246 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 247 | peerDependencies: 248 | eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 249 | dependencies: 250 | eslint: 8.42.0 251 | eslint-visitor-keys: 3.4.1 252 | dev: true 253 | 254 | /@eslint-community/regexpp@4.5.1: 255 | resolution: {integrity: sha512-Z5ba73P98O1KUYCCJTUeVpja9RcGoMdncZ6T49FCUl2lN38JtCJ+3WgIDBv0AuY4WChU5PmtJmOCTlN6FZTFKQ==} 256 | engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} 257 | dev: true 258 | 259 | /@eslint/eslintrc@2.0.3: 260 | resolution: {integrity: sha512-+5gy6OQfk+xx3q0d6jGZZC3f3KzAkXc/IanVxd1is/VIIziRqqt3ongQz0FiTUXqTk0c7aDB3OaFuKnuSoJicQ==} 261 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 262 | dependencies: 263 | ajv: 6.12.6 264 | debug: 4.3.4 265 | espree: 9.5.2 266 | globals: 13.20.0 267 | ignore: 5.2.4 268 | import-fresh: 3.3.0 269 | js-yaml: 4.1.0 270 | minimatch: 3.1.2 271 | strip-json-comments: 3.1.1 272 | transitivePeerDependencies: 273 | - supports-color 274 | dev: true 275 | 276 | /@eslint/js@8.42.0: 277 | resolution: {integrity: sha512-6SWlXpWU5AvId8Ac7zjzmIOqMOba/JWY8XZ4A7q7Gn1Vlfg/SFFIlrtHXt9nPn4op9ZPAkl91Jao+QQv3r/ukw==} 278 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 279 | dev: true 280 | 281 | /@humanwhocodes/config-array@0.11.10: 282 | resolution: {integrity: sha512-KVVjQmNUepDVGXNuoRRdmmEjruj0KfiGSbS8LVc12LMsWDQzRXJ0qdhN8L8uUigKpfEHRhlaQFY0ib1tnUbNeQ==} 283 | engines: {node: '>=10.10.0'} 284 | dependencies: 285 | '@humanwhocodes/object-schema': 1.2.1 286 | debug: 4.3.4 287 | minimatch: 3.1.2 288 | transitivePeerDependencies: 289 | - supports-color 290 | dev: true 291 | 292 | /@humanwhocodes/module-importer@1.0.1: 293 | resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} 294 | engines: {node: '>=12.22'} 295 | dev: true 296 | 297 | /@humanwhocodes/object-schema@1.2.1: 298 | resolution: {integrity: sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==} 299 | dev: true 300 | 301 | /@iarna/toml@2.2.5: 302 | resolution: {integrity: sha512-trnsAYxU3xnS1gPHPyU961coFyLkh4gAD/0zQ5mymY4yOZ+CYvsPqUbOFSw0aDM4y0tV7tiFxL/1XfXPNC6IPg==} 303 | dev: true 304 | 305 | /@jridgewell/sourcemap-codec@1.4.15: 306 | resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} 307 | dev: true 308 | 309 | /@nodelib/fs.scandir@2.1.5: 310 | resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} 311 | engines: {node: '>= 8'} 312 | dependencies: 313 | '@nodelib/fs.stat': 2.0.5 314 | run-parallel: 1.2.0 315 | dev: true 316 | 317 | /@nodelib/fs.stat@2.0.5: 318 | resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} 319 | engines: {node: '>= 8'} 320 | dev: true 321 | 322 | /@nodelib/fs.walk@1.2.8: 323 | resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} 324 | engines: {node: '>= 8'} 325 | dependencies: 326 | '@nodelib/fs.scandir': 2.1.5 327 | fastq: 1.15.0 328 | dev: true 329 | 330 | /@playwright/test@1.34.3: 331 | resolution: {integrity: sha512-zPLef6w9P6T/iT6XDYG3mvGOqOyb6eHaV9XtkunYs0+OzxBtrPAAaHotc0X+PJ00WPPnLfFBTl7mf45Mn8DBmw==} 332 | engines: {node: '>=14'} 333 | hasBin: true 334 | dependencies: 335 | '@types/node': 20.2.5 336 | playwright-core: 1.34.3 337 | optionalDependencies: 338 | fsevents: 2.3.2 339 | dev: true 340 | 341 | /@polka/url@1.0.0-next.21: 342 | resolution: {integrity: sha512-a5Sab1C4/icpTZVzZc5Ghpz88yQtGOyNqYXcZgOssB2uuAr+wF/MvN6bgtW32q7HHrvBki+BsZ0OuNv6EV3K9g==} 343 | dev: true 344 | 345 | /@sveltejs/adapter-netlify@2.0.7(@sveltejs/kit@1.20.2): 346 | resolution: {integrity: sha512-QztxtQ26wzyonEOy+7RUvl4gqaYRi6UiBcIKrVTWA6uhkDYrB72ttt9t47phNeJAl9j2bCMZHQ8W7k2vXcwTrA==} 347 | peerDependencies: 348 | '@sveltejs/kit': ^1.5.0 349 | dependencies: 350 | '@iarna/toml': 2.2.5 351 | '@sveltejs/kit': 1.20.2(svelte@3.59.1)(vite@4.3.9) 352 | esbuild: 0.17.19 353 | set-cookie-parser: 2.6.0 354 | dev: true 355 | 356 | /@sveltejs/kit@1.20.2(svelte@3.59.1)(vite@4.3.9): 357 | resolution: {integrity: sha512-MtR1i+HtmYWcRgtubw1GQqT/+CWXL/z24PegE0xYAdObbhdr7YtEfmoe705D/JZMtMmoPXrmSk4W0MfL5A3lYw==} 358 | engines: {node: ^16.14 || >=18} 359 | hasBin: true 360 | requiresBuild: true 361 | peerDependencies: 362 | svelte: ^3.54.0 || ^4.0.0-next.0 363 | vite: ^4.0.0 364 | dependencies: 365 | '@sveltejs/vite-plugin-svelte': 2.4.1(svelte@3.59.1)(vite@4.3.9) 366 | '@types/cookie': 0.5.1 367 | cookie: 0.5.0 368 | devalue: 4.3.2 369 | esm-env: 1.0.0 370 | kleur: 4.1.5 371 | magic-string: 0.30.0 372 | mime: 3.0.0 373 | sade: 1.8.1 374 | set-cookie-parser: 2.6.0 375 | sirv: 2.0.3 376 | svelte: 3.59.1 377 | tiny-glob: 0.2.9 378 | undici: 5.22.1 379 | vite: 4.3.9 380 | transitivePeerDependencies: 381 | - supports-color 382 | dev: true 383 | 384 | /@sveltejs/vite-plugin-svelte-inspector@1.0.2(@sveltejs/vite-plugin-svelte@2.4.1)(svelte@3.59.1)(vite@4.3.9): 385 | resolution: {integrity: sha512-Cy1dUMcYCnDVV/hPLXa43YZJ2jGKVW5rA0xuNL9dlmYhT0yoS1g7+FOFSRlgk0BXKk/Oc7grs+8BVA5Iz2fr8A==} 386 | engines: {node: ^14.18.0 || >= 16} 387 | peerDependencies: 388 | '@sveltejs/vite-plugin-svelte': ^2.2.0 389 | svelte: ^3.54.0 || ^4.0.0-next.0 390 | vite: ^4.0.0 391 | dependencies: 392 | '@sveltejs/vite-plugin-svelte': 2.4.1(svelte@3.59.1)(vite@4.3.9) 393 | debug: 4.3.4 394 | svelte: 3.59.1 395 | vite: 4.3.9 396 | transitivePeerDependencies: 397 | - supports-color 398 | dev: true 399 | 400 | /@sveltejs/vite-plugin-svelte@2.4.1(svelte@3.59.1)(vite@4.3.9): 401 | resolution: {integrity: sha512-bNNKvoRY89ptY7udeBSCmTdCVwkjmMcZ0j/z9J5MuedT8jPjq0zrknAo/jF1sToAza4NVaAgR9AkZoD9oJJmnA==} 402 | engines: {node: ^14.18.0 || >= 16} 403 | peerDependencies: 404 | svelte: ^3.54.0 || ^4.0.0-next.0 405 | vite: ^4.0.0 406 | dependencies: 407 | '@sveltejs/vite-plugin-svelte-inspector': 1.0.2(@sveltejs/vite-plugin-svelte@2.4.1)(svelte@3.59.1)(vite@4.3.9) 408 | debug: 4.3.4 409 | deepmerge: 4.3.1 410 | kleur: 4.1.5 411 | magic-string: 0.30.0 412 | svelte: 3.59.1 413 | svelte-hmr: 0.15.2(svelte@3.59.1) 414 | vite: 4.3.9 415 | vitefu: 0.2.4(vite@4.3.9) 416 | transitivePeerDependencies: 417 | - supports-color 418 | dev: true 419 | 420 | /@types/cookie@0.5.1: 421 | resolution: {integrity: sha512-COUnqfB2+ckwXXSFInsFdOAWQzCCx+a5hq2ruyj+Vjund94RJQd4LG2u9hnvJrTgunKAaax7ancBYlDrNYxA0g==} 422 | dev: true 423 | 424 | /@types/node@20.2.5: 425 | resolution: {integrity: sha512-JJulVEQXmiY9Px5axXHeYGLSjhkZEnD+MDPDGbCbIAbMslkKwmygtZFy1X6s/075Yo94sf8GuSlFfPzysQrWZQ==} 426 | dev: true 427 | 428 | /acorn-jsx@5.3.2(acorn@8.8.2): 429 | resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} 430 | peerDependencies: 431 | acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 432 | dependencies: 433 | acorn: 8.8.2 434 | dev: true 435 | 436 | /acorn@8.8.2: 437 | resolution: {integrity: sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==} 438 | engines: {node: '>=0.4.0'} 439 | hasBin: true 440 | dev: true 441 | 442 | /ajv@6.12.6: 443 | resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} 444 | dependencies: 445 | fast-deep-equal: 3.1.3 446 | fast-json-stable-stringify: 2.1.0 447 | json-schema-traverse: 0.4.1 448 | uri-js: 4.4.1 449 | dev: true 450 | 451 | /ansi-regex@5.0.1: 452 | resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} 453 | engines: {node: '>=8'} 454 | dev: true 455 | 456 | /ansi-styles@4.3.0: 457 | resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} 458 | engines: {node: '>=8'} 459 | dependencies: 460 | color-convert: 2.0.1 461 | dev: true 462 | 463 | /argparse@2.0.1: 464 | resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} 465 | dev: true 466 | 467 | /balanced-match@1.0.2: 468 | resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} 469 | dev: true 470 | 471 | /brace-expansion@1.1.11: 472 | resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} 473 | dependencies: 474 | balanced-match: 1.0.2 475 | concat-map: 0.0.1 476 | dev: true 477 | 478 | /busboy@1.6.0: 479 | resolution: {integrity: sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==} 480 | engines: {node: '>=10.16.0'} 481 | dependencies: 482 | streamsearch: 1.1.0 483 | dev: true 484 | 485 | /callsites@3.1.0: 486 | resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} 487 | engines: {node: '>=6'} 488 | dev: true 489 | 490 | /chalk@4.1.2: 491 | resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} 492 | engines: {node: '>=10'} 493 | dependencies: 494 | ansi-styles: 4.3.0 495 | supports-color: 7.2.0 496 | dev: true 497 | 498 | /color-convert@2.0.1: 499 | resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} 500 | engines: {node: '>=7.0.0'} 501 | dependencies: 502 | color-name: 1.1.4 503 | dev: true 504 | 505 | /color-name@1.1.4: 506 | resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} 507 | dev: true 508 | 509 | /concat-map@0.0.1: 510 | resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} 511 | dev: true 512 | 513 | /cookie@0.5.0: 514 | resolution: {integrity: sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==} 515 | engines: {node: '>= 0.6'} 516 | dev: true 517 | 518 | /cross-spawn@7.0.3: 519 | resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} 520 | engines: {node: '>= 8'} 521 | dependencies: 522 | path-key: 3.1.1 523 | shebang-command: 2.0.0 524 | which: 2.0.2 525 | dev: true 526 | 527 | /debug@4.3.4: 528 | resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} 529 | engines: {node: '>=6.0'} 530 | peerDependencies: 531 | supports-color: '*' 532 | peerDependenciesMeta: 533 | supports-color: 534 | optional: true 535 | dependencies: 536 | ms: 2.1.2 537 | dev: true 538 | 539 | /deep-is@0.1.4: 540 | resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} 541 | dev: true 542 | 543 | /deepmerge@4.3.1: 544 | resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==} 545 | engines: {node: '>=0.10.0'} 546 | dev: true 547 | 548 | /devalue@4.3.2: 549 | resolution: {integrity: sha512-KqFl6pOgOW+Y6wJgu80rHpo2/3H07vr8ntR9rkkFIRETewbf5GaYYcakYfiKz89K+sLsuPkQIZaXDMjUObZwWg==} 550 | dev: true 551 | 552 | /doctrine@3.0.0: 553 | resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} 554 | engines: {node: '>=6.0.0'} 555 | dependencies: 556 | esutils: 2.0.3 557 | dev: true 558 | 559 | /esbuild@0.17.19: 560 | resolution: {integrity: sha512-XQ0jAPFkK/u3LcVRcvVHQcTIqD6E2H1fvZMA5dQPSOWb3suUbWbfbRf94pjc0bNzRYLfIrDRQXr7X+LHIm5oHw==} 561 | engines: {node: '>=12'} 562 | hasBin: true 563 | requiresBuild: true 564 | optionalDependencies: 565 | '@esbuild/android-arm': 0.17.19 566 | '@esbuild/android-arm64': 0.17.19 567 | '@esbuild/android-x64': 0.17.19 568 | '@esbuild/darwin-arm64': 0.17.19 569 | '@esbuild/darwin-x64': 0.17.19 570 | '@esbuild/freebsd-arm64': 0.17.19 571 | '@esbuild/freebsd-x64': 0.17.19 572 | '@esbuild/linux-arm': 0.17.19 573 | '@esbuild/linux-arm64': 0.17.19 574 | '@esbuild/linux-ia32': 0.17.19 575 | '@esbuild/linux-loong64': 0.17.19 576 | '@esbuild/linux-mips64el': 0.17.19 577 | '@esbuild/linux-ppc64': 0.17.19 578 | '@esbuild/linux-riscv64': 0.17.19 579 | '@esbuild/linux-s390x': 0.17.19 580 | '@esbuild/linux-x64': 0.17.19 581 | '@esbuild/netbsd-x64': 0.17.19 582 | '@esbuild/openbsd-x64': 0.17.19 583 | '@esbuild/sunos-x64': 0.17.19 584 | '@esbuild/win32-arm64': 0.17.19 585 | '@esbuild/win32-ia32': 0.17.19 586 | '@esbuild/win32-x64': 0.17.19 587 | dev: true 588 | 589 | /escape-string-regexp@4.0.0: 590 | resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} 591 | engines: {node: '>=10'} 592 | dev: true 593 | 594 | /eslint-config-prettier@8.8.0(eslint@8.42.0): 595 | resolution: {integrity: sha512-wLbQiFre3tdGgpDv67NQKnJuTlcUVYHas3k+DZCc2U2BadthoEY4B7hLPvAxaqdyOGCzuLfii2fqGph10va7oA==} 596 | hasBin: true 597 | peerDependencies: 598 | eslint: '>=7.0.0' 599 | dependencies: 600 | eslint: 8.42.0 601 | dev: true 602 | 603 | /eslint-plugin-svelte3@4.0.0(eslint@8.42.0)(svelte@3.59.1): 604 | resolution: {integrity: sha512-OIx9lgaNzD02+MDFNLw0GEUbuovNcglg+wnd/UY0fbZmlQSz7GlQiQ1f+yX0XvC07XPcDOnFcichqI3xCwp71g==} 605 | peerDependencies: 606 | eslint: '>=8.0.0' 607 | svelte: ^3.2.0 608 | dependencies: 609 | eslint: 8.42.0 610 | svelte: 3.59.1 611 | dev: true 612 | 613 | /eslint-scope@7.2.0: 614 | resolution: {integrity: sha512-DYj5deGlHBfMt15J7rdtyKNq/Nqlv5KfU4iodrQ019XESsRnwXH9KAE0y3cwtUHDo2ob7CypAnCqefh6vioWRw==} 615 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 616 | dependencies: 617 | esrecurse: 4.3.0 618 | estraverse: 5.3.0 619 | dev: true 620 | 621 | /eslint-visitor-keys@3.4.1: 622 | resolution: {integrity: sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA==} 623 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 624 | dev: true 625 | 626 | /eslint@8.42.0: 627 | resolution: {integrity: sha512-ulg9Ms6E1WPf67PHaEY4/6E2tEn5/f7FXGzr3t9cBMugOmf1INYvuUwwh1aXQN4MfJ6a5K2iNwP3w4AColvI9A==} 628 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 629 | hasBin: true 630 | dependencies: 631 | '@eslint-community/eslint-utils': 4.4.0(eslint@8.42.0) 632 | '@eslint-community/regexpp': 4.5.1 633 | '@eslint/eslintrc': 2.0.3 634 | '@eslint/js': 8.42.0 635 | '@humanwhocodes/config-array': 0.11.10 636 | '@humanwhocodes/module-importer': 1.0.1 637 | '@nodelib/fs.walk': 1.2.8 638 | ajv: 6.12.6 639 | chalk: 4.1.2 640 | cross-spawn: 7.0.3 641 | debug: 4.3.4 642 | doctrine: 3.0.0 643 | escape-string-regexp: 4.0.0 644 | eslint-scope: 7.2.0 645 | eslint-visitor-keys: 3.4.1 646 | espree: 9.5.2 647 | esquery: 1.5.0 648 | esutils: 2.0.3 649 | fast-deep-equal: 3.1.3 650 | file-entry-cache: 6.0.1 651 | find-up: 5.0.0 652 | glob-parent: 6.0.2 653 | globals: 13.20.0 654 | graphemer: 1.4.0 655 | ignore: 5.2.4 656 | import-fresh: 3.3.0 657 | imurmurhash: 0.1.4 658 | is-glob: 4.0.3 659 | is-path-inside: 3.0.3 660 | js-yaml: 4.1.0 661 | json-stable-stringify-without-jsonify: 1.0.1 662 | levn: 0.4.1 663 | lodash.merge: 4.6.2 664 | minimatch: 3.1.2 665 | natural-compare: 1.4.0 666 | optionator: 0.9.1 667 | strip-ansi: 6.0.1 668 | strip-json-comments: 3.1.1 669 | text-table: 0.2.0 670 | transitivePeerDependencies: 671 | - supports-color 672 | dev: true 673 | 674 | /esm-env@1.0.0: 675 | resolution: {integrity: sha512-Cf6VksWPsTuW01vU9Mk/3vRue91Zevka5SjyNf3nEpokFRuqt/KjUQoGAwq9qMmhpLTHmXzSIrFRw8zxWzmFBA==} 676 | dev: true 677 | 678 | /espree@9.5.2: 679 | resolution: {integrity: sha512-7OASN1Wma5fum5SrNhFMAMJxOUAbhyfQ8dQ//PJaJbNw0URTPWqIghHWt1MmAANKhHZIYOHruW4Kw4ruUWOdGw==} 680 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 681 | dependencies: 682 | acorn: 8.8.2 683 | acorn-jsx: 5.3.2(acorn@8.8.2) 684 | eslint-visitor-keys: 3.4.1 685 | dev: true 686 | 687 | /esquery@1.5.0: 688 | resolution: {integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==} 689 | engines: {node: '>=0.10'} 690 | dependencies: 691 | estraverse: 5.3.0 692 | dev: true 693 | 694 | /esrecurse@4.3.0: 695 | resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} 696 | engines: {node: '>=4.0'} 697 | dependencies: 698 | estraverse: 5.3.0 699 | dev: true 700 | 701 | /estraverse@5.3.0: 702 | resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} 703 | engines: {node: '>=4.0'} 704 | dev: true 705 | 706 | /esutils@2.0.3: 707 | resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} 708 | engines: {node: '>=0.10.0'} 709 | dev: true 710 | 711 | /fast-deep-equal@3.1.3: 712 | resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} 713 | dev: true 714 | 715 | /fast-json-stable-stringify@2.1.0: 716 | resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} 717 | dev: true 718 | 719 | /fast-levenshtein@2.0.6: 720 | resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} 721 | dev: true 722 | 723 | /fastq@1.15.0: 724 | resolution: {integrity: sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==} 725 | dependencies: 726 | reusify: 1.0.4 727 | dev: true 728 | 729 | /file-entry-cache@6.0.1: 730 | resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} 731 | engines: {node: ^10.12.0 || >=12.0.0} 732 | dependencies: 733 | flat-cache: 3.0.4 734 | dev: true 735 | 736 | /find-up@5.0.0: 737 | resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} 738 | engines: {node: '>=10'} 739 | dependencies: 740 | locate-path: 6.0.0 741 | path-exists: 4.0.0 742 | dev: true 743 | 744 | /flat-cache@3.0.4: 745 | resolution: {integrity: sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==} 746 | engines: {node: ^10.12.0 || >=12.0.0} 747 | dependencies: 748 | flatted: 3.2.7 749 | rimraf: 3.0.2 750 | dev: true 751 | 752 | /flatted@3.2.7: 753 | resolution: {integrity: sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==} 754 | dev: true 755 | 756 | /fs.realpath@1.0.0: 757 | resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} 758 | dev: true 759 | 760 | /fsevents@2.3.2: 761 | resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==} 762 | engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} 763 | os: [darwin] 764 | requiresBuild: true 765 | dev: true 766 | optional: true 767 | 768 | /glob-parent@6.0.2: 769 | resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} 770 | engines: {node: '>=10.13.0'} 771 | dependencies: 772 | is-glob: 4.0.3 773 | dev: true 774 | 775 | /glob@7.2.3: 776 | resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} 777 | dependencies: 778 | fs.realpath: 1.0.0 779 | inflight: 1.0.6 780 | inherits: 2.0.4 781 | minimatch: 3.1.2 782 | once: 1.4.0 783 | path-is-absolute: 1.0.1 784 | dev: true 785 | 786 | /globals@13.20.0: 787 | resolution: {integrity: sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==} 788 | engines: {node: '>=8'} 789 | dependencies: 790 | type-fest: 0.20.2 791 | dev: true 792 | 793 | /globalyzer@0.1.0: 794 | resolution: {integrity: sha512-40oNTM9UfG6aBmuKxk/giHn5nQ8RVz/SS4Ir6zgzOv9/qC3kKZ9v4etGTcJbEl/NyVQH7FGU7d+X1egr57Md2Q==} 795 | dev: true 796 | 797 | /globrex@0.1.2: 798 | resolution: {integrity: sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==} 799 | dev: true 800 | 801 | /graphemer@1.4.0: 802 | resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} 803 | dev: true 804 | 805 | /has-flag@4.0.0: 806 | resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} 807 | engines: {node: '>=8'} 808 | dev: true 809 | 810 | /ignore@5.2.4: 811 | resolution: {integrity: sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==} 812 | engines: {node: '>= 4'} 813 | dev: true 814 | 815 | /import-fresh@3.3.0: 816 | resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} 817 | engines: {node: '>=6'} 818 | dependencies: 819 | parent-module: 1.0.1 820 | resolve-from: 4.0.0 821 | dev: true 822 | 823 | /imurmurhash@0.1.4: 824 | resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} 825 | engines: {node: '>=0.8.19'} 826 | dev: true 827 | 828 | /inflight@1.0.6: 829 | resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} 830 | dependencies: 831 | once: 1.4.0 832 | wrappy: 1.0.2 833 | dev: true 834 | 835 | /inherits@2.0.4: 836 | resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} 837 | dev: true 838 | 839 | /is-extglob@2.1.1: 840 | resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} 841 | engines: {node: '>=0.10.0'} 842 | dev: true 843 | 844 | /is-glob@4.0.3: 845 | resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} 846 | engines: {node: '>=0.10.0'} 847 | dependencies: 848 | is-extglob: 2.1.1 849 | dev: true 850 | 851 | /is-path-inside@3.0.3: 852 | resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} 853 | engines: {node: '>=8'} 854 | dev: true 855 | 856 | /isexe@2.0.0: 857 | resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} 858 | dev: true 859 | 860 | /js-yaml@4.1.0: 861 | resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} 862 | hasBin: true 863 | dependencies: 864 | argparse: 2.0.1 865 | dev: true 866 | 867 | /json-schema-traverse@0.4.1: 868 | resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} 869 | dev: true 870 | 871 | /json-stable-stringify-without-jsonify@1.0.1: 872 | resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} 873 | dev: true 874 | 875 | /kleur@4.1.5: 876 | resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==} 877 | engines: {node: '>=6'} 878 | dev: true 879 | 880 | /levn@0.4.1: 881 | resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} 882 | engines: {node: '>= 0.8.0'} 883 | dependencies: 884 | prelude-ls: 1.2.1 885 | type-check: 0.4.0 886 | dev: true 887 | 888 | /locate-path@6.0.0: 889 | resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} 890 | engines: {node: '>=10'} 891 | dependencies: 892 | p-locate: 5.0.0 893 | dev: true 894 | 895 | /lodash.merge@4.6.2: 896 | resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} 897 | dev: true 898 | 899 | /magic-string@0.30.0: 900 | resolution: {integrity: sha512-LA+31JYDJLs82r2ScLrlz1GjSgu66ZV518eyWT+S8VhyQn/JL0u9MeBOvQMGYiPk1DBiSN9DDMOcXvigJZaViQ==} 901 | engines: {node: '>=12'} 902 | dependencies: 903 | '@jridgewell/sourcemap-codec': 1.4.15 904 | dev: true 905 | 906 | /mime@3.0.0: 907 | resolution: {integrity: sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==} 908 | engines: {node: '>=10.0.0'} 909 | hasBin: true 910 | dev: true 911 | 912 | /minimatch@3.1.2: 913 | resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} 914 | dependencies: 915 | brace-expansion: 1.1.11 916 | dev: true 917 | 918 | /mri@1.2.0: 919 | resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==} 920 | engines: {node: '>=4'} 921 | dev: true 922 | 923 | /mrmime@1.0.1: 924 | resolution: {integrity: sha512-hzzEagAgDyoU1Q6yg5uI+AorQgdvMCur3FcKf7NhMKWsaYg+RnbTyHRa/9IlLF9rf455MOCtcqqrQQ83pPP7Uw==} 925 | engines: {node: '>=10'} 926 | dev: true 927 | 928 | /ms@2.1.2: 929 | resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} 930 | dev: true 931 | 932 | /nanoid@3.3.6: 933 | resolution: {integrity: sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==} 934 | engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} 935 | hasBin: true 936 | dev: true 937 | 938 | /natural-compare@1.4.0: 939 | resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} 940 | dev: true 941 | 942 | /once@1.4.0: 943 | resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} 944 | dependencies: 945 | wrappy: 1.0.2 946 | dev: true 947 | 948 | /optionator@0.9.1: 949 | resolution: {integrity: sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==} 950 | engines: {node: '>= 0.8.0'} 951 | dependencies: 952 | deep-is: 0.1.4 953 | fast-levenshtein: 2.0.6 954 | levn: 0.4.1 955 | prelude-ls: 1.2.1 956 | type-check: 0.4.0 957 | word-wrap: 1.2.3 958 | dev: true 959 | 960 | /p-limit@3.1.0: 961 | resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} 962 | engines: {node: '>=10'} 963 | dependencies: 964 | yocto-queue: 0.1.0 965 | dev: true 966 | 967 | /p-locate@5.0.0: 968 | resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} 969 | engines: {node: '>=10'} 970 | dependencies: 971 | p-limit: 3.1.0 972 | dev: true 973 | 974 | /parent-module@1.0.1: 975 | resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} 976 | engines: {node: '>=6'} 977 | dependencies: 978 | callsites: 3.1.0 979 | dev: true 980 | 981 | /path-exists@4.0.0: 982 | resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} 983 | engines: {node: '>=8'} 984 | dev: true 985 | 986 | /path-is-absolute@1.0.1: 987 | resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} 988 | engines: {node: '>=0.10.0'} 989 | dev: true 990 | 991 | /path-key@3.1.1: 992 | resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} 993 | engines: {node: '>=8'} 994 | dev: true 995 | 996 | /picocolors@1.0.0: 997 | resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} 998 | dev: true 999 | 1000 | /playwright-core@1.34.3: 1001 | resolution: {integrity: sha512-2pWd6G7OHKemc5x1r1rp8aQcpvDh7goMBZlJv6Co5vCNLVcQJdhxRL09SGaY6HcyHH9aT4tiynZabMofVasBYw==} 1002 | engines: {node: '>=14'} 1003 | hasBin: true 1004 | dev: true 1005 | 1006 | /postcss@8.4.24: 1007 | resolution: {integrity: sha512-M0RzbcI0sO/XJNucsGjvWU9ERWxb/ytp1w6dKtxTKgixdtQDq4rmx/g8W1hnaheq9jgwL/oyEdH5Bc4WwJKMqg==} 1008 | engines: {node: ^10 || ^12 || >=14} 1009 | dependencies: 1010 | nanoid: 3.3.6 1011 | picocolors: 1.0.0 1012 | source-map-js: 1.0.2 1013 | dev: true 1014 | 1015 | /prelude-ls@1.2.1: 1016 | resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} 1017 | engines: {node: '>= 0.8.0'} 1018 | dev: true 1019 | 1020 | /prettier-plugin-svelte@2.10.1(prettier@2.8.8)(svelte@3.59.1): 1021 | resolution: {integrity: sha512-Wlq7Z5v2ueCubWo0TZzKc9XHcm7TDxqcuzRuGd0gcENfzfT4JZ9yDlCbEgxWgiPmLHkBjfOtpAWkcT28MCDpUQ==} 1022 | peerDependencies: 1023 | prettier: ^1.16.4 || ^2.0.0 1024 | svelte: ^3.2.0 || ^4.0.0-next.0 1025 | dependencies: 1026 | prettier: 2.8.8 1027 | svelte: 3.59.1 1028 | dev: true 1029 | 1030 | /prettier@2.8.8: 1031 | resolution: {integrity: sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==} 1032 | engines: {node: '>=10.13.0'} 1033 | hasBin: true 1034 | dev: true 1035 | 1036 | /punycode@2.3.0: 1037 | resolution: {integrity: sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==} 1038 | engines: {node: '>=6'} 1039 | dev: true 1040 | 1041 | /queue-microtask@1.2.3: 1042 | resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} 1043 | dev: true 1044 | 1045 | /resolve-from@4.0.0: 1046 | resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} 1047 | engines: {node: '>=4'} 1048 | dev: true 1049 | 1050 | /reusify@1.0.4: 1051 | resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} 1052 | engines: {iojs: '>=1.0.0', node: '>=0.10.0'} 1053 | dev: true 1054 | 1055 | /rimraf@3.0.2: 1056 | resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} 1057 | hasBin: true 1058 | dependencies: 1059 | glob: 7.2.3 1060 | dev: true 1061 | 1062 | /rollup@3.24.0: 1063 | resolution: {integrity: sha512-OgraHOIg2YpHQTjl0/ymWfFNBEyPucB7lmhXrQUh38qNOegxLapSPFs9sNr0qKR75awW41D93XafoR2QfhBdUQ==} 1064 | engines: {node: '>=14.18.0', npm: '>=8.0.0'} 1065 | hasBin: true 1066 | optionalDependencies: 1067 | fsevents: 2.3.2 1068 | dev: true 1069 | 1070 | /run-parallel@1.2.0: 1071 | resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} 1072 | dependencies: 1073 | queue-microtask: 1.2.3 1074 | dev: true 1075 | 1076 | /sade@1.8.1: 1077 | resolution: {integrity: sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==} 1078 | engines: {node: '>=6'} 1079 | dependencies: 1080 | mri: 1.2.0 1081 | dev: true 1082 | 1083 | /set-cookie-parser@2.6.0: 1084 | resolution: {integrity: sha512-RVnVQxTXuerk653XfuliOxBP81Sf0+qfQE73LIYKcyMYHG94AuH0kgrQpRDuTZnSmjpysHmzxJXKNfa6PjFhyQ==} 1085 | dev: true 1086 | 1087 | /shebang-command@2.0.0: 1088 | resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} 1089 | engines: {node: '>=8'} 1090 | dependencies: 1091 | shebang-regex: 3.0.0 1092 | dev: true 1093 | 1094 | /shebang-regex@3.0.0: 1095 | resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} 1096 | engines: {node: '>=8'} 1097 | dev: true 1098 | 1099 | /sirv@2.0.3: 1100 | resolution: {integrity: sha512-O9jm9BsID1P+0HOi81VpXPoDxYP374pkOLzACAoyUQ/3OUVndNpsz6wMnY2z+yOxzbllCKZrM+9QrWsv4THnyA==} 1101 | engines: {node: '>= 10'} 1102 | dependencies: 1103 | '@polka/url': 1.0.0-next.21 1104 | mrmime: 1.0.1 1105 | totalist: 3.0.1 1106 | dev: true 1107 | 1108 | /source-map-js@1.0.2: 1109 | resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==} 1110 | engines: {node: '>=0.10.0'} 1111 | dev: true 1112 | 1113 | /streamsearch@1.1.0: 1114 | resolution: {integrity: sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==} 1115 | engines: {node: '>=10.0.0'} 1116 | dev: true 1117 | 1118 | /strip-ansi@6.0.1: 1119 | resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} 1120 | engines: {node: '>=8'} 1121 | dependencies: 1122 | ansi-regex: 5.0.1 1123 | dev: true 1124 | 1125 | /strip-json-comments@3.1.1: 1126 | resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} 1127 | engines: {node: '>=8'} 1128 | dev: true 1129 | 1130 | /supports-color@7.2.0: 1131 | resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} 1132 | engines: {node: '>=8'} 1133 | dependencies: 1134 | has-flag: 4.0.0 1135 | dev: true 1136 | 1137 | /svelte-hmr@0.15.2(svelte@3.59.1): 1138 | resolution: {integrity: sha512-q/bAruCvFLwvNbeE1x3n37TYFb3mTBJ6TrCq6p2CoFbSTNhDE9oAtEfpy+wmc9So8AG0Tja+X0/mJzX9tSfvIg==} 1139 | engines: {node: ^12.20 || ^14.13.1 || >= 16} 1140 | peerDependencies: 1141 | svelte: ^3.19.0 || ^4.0.0-next.0 1142 | dependencies: 1143 | svelte: 3.59.1 1144 | dev: true 1145 | 1146 | /svelte@3.59.1: 1147 | resolution: {integrity: sha512-pKj8fEBmqf6mq3/NfrB9SLtcJcUvjYSWyePlfCqN9gujLB25RitWK8PvFzlwim6hD/We35KbPlRteuA6rnPGcQ==} 1148 | engines: {node: '>= 8'} 1149 | dev: true 1150 | 1151 | /text-table@0.2.0: 1152 | resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} 1153 | dev: true 1154 | 1155 | /tiny-glob@0.2.9: 1156 | resolution: {integrity: sha512-g/55ssRPUjShh+xkfx9UPDXqhckHEsHr4Vd9zX55oSdGZc/MD0m3sferOkwWtp98bv+kcVfEHtRJgBVJzelrzg==} 1157 | dependencies: 1158 | globalyzer: 0.1.0 1159 | globrex: 0.1.2 1160 | dev: true 1161 | 1162 | /totalist@3.0.1: 1163 | resolution: {integrity: sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==} 1164 | engines: {node: '>=6'} 1165 | dev: true 1166 | 1167 | /type-check@0.4.0: 1168 | resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} 1169 | engines: {node: '>= 0.8.0'} 1170 | dependencies: 1171 | prelude-ls: 1.2.1 1172 | dev: true 1173 | 1174 | /type-fest@0.20.2: 1175 | resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} 1176 | engines: {node: '>=10'} 1177 | dev: true 1178 | 1179 | /undici@5.22.1: 1180 | resolution: {integrity: sha512-Ji2IJhFXZY0x/0tVBXeQwgPlLWw13GVzpsWPQ3rV50IFMMof2I55PZZxtm4P6iNq+L5znYN9nSTAq0ZyE6lSJw==} 1181 | engines: {node: '>=14.0'} 1182 | dependencies: 1183 | busboy: 1.6.0 1184 | dev: true 1185 | 1186 | /uri-js@4.4.1: 1187 | resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} 1188 | dependencies: 1189 | punycode: 2.3.0 1190 | dev: true 1191 | 1192 | /vite@4.3.9: 1193 | resolution: {integrity: sha512-qsTNZjO9NoJNW7KnOrgYwczm0WctJ8m/yqYAMAK9Lxt4SoySUfS5S8ia9K7JHpa3KEeMfyF8LoJ3c5NeBJy6pg==} 1194 | engines: {node: ^14.18.0 || >=16.0.0} 1195 | hasBin: true 1196 | peerDependencies: 1197 | '@types/node': '>= 14' 1198 | less: '*' 1199 | sass: '*' 1200 | stylus: '*' 1201 | sugarss: '*' 1202 | terser: ^5.4.0 1203 | peerDependenciesMeta: 1204 | '@types/node': 1205 | optional: true 1206 | less: 1207 | optional: true 1208 | sass: 1209 | optional: true 1210 | stylus: 1211 | optional: true 1212 | sugarss: 1213 | optional: true 1214 | terser: 1215 | optional: true 1216 | dependencies: 1217 | esbuild: 0.17.19 1218 | postcss: 8.4.24 1219 | rollup: 3.24.0 1220 | optionalDependencies: 1221 | fsevents: 2.3.2 1222 | dev: true 1223 | 1224 | /vitefu@0.2.4(vite@4.3.9): 1225 | resolution: {integrity: sha512-fanAXjSaf9xXtOOeno8wZXIhgia+CZury481LsDaV++lSvcU2R9Ch2bPh3PYFyoHW+w9LqAeYRISVQjUIew14g==} 1226 | peerDependencies: 1227 | vite: ^3.0.0 || ^4.0.0 1228 | peerDependenciesMeta: 1229 | vite: 1230 | optional: true 1231 | dependencies: 1232 | vite: 4.3.9 1233 | dev: true 1234 | 1235 | /which@2.0.2: 1236 | resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} 1237 | engines: {node: '>= 8'} 1238 | hasBin: true 1239 | dependencies: 1240 | isexe: 2.0.0 1241 | dev: true 1242 | 1243 | /word-wrap@1.2.3: 1244 | resolution: {integrity: sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==} 1245 | engines: {node: '>=0.10.0'} 1246 | dev: true 1247 | 1248 | /wrappy@1.0.2: 1249 | resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} 1250 | dev: true 1251 | 1252 | /yocto-queue@0.1.0: 1253 | resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} 1254 | engines: {node: '>=10'} 1255 | dev: true 1256 | -------------------------------------------------------------------------------- /examples/netlify-build/src/app.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | %sveltekit.head% 8 | 9 | 10 |
%sveltekit.body%
11 | 12 | 13 | -------------------------------------------------------------------------------- /examples/netlify-build/src/routes/+server.ts: -------------------------------------------------------------------------------- 1 | import { ImageResponse } from '@ethercorps/sveltekit-og'; 2 | import type { RequestHandler } from '@sveltejs/kit'; 3 | 4 | const template = ` 5 |
6 |
7 |

8 | Ready to dive in? 9 | Start your free trial today. 10 |

11 |
12 |
13 | Get started 14 |
15 |
16 | Learn more 17 |
18 |
19 |
20 |
21 | `; 22 | 23 | export const GET: RequestHandler = async ({fetch}) => { 24 | 25 | const fontFile = await fetch('https://og-playground.vercel.app/inter-latin-ext-400-normal.woff'); 26 | const fontData: ArrayBuffer = await fontFile.arrayBuffer(); 27 | 28 | return new ImageResponse(template, { 29 | height: 400, 30 | width: 800, 31 | fonts: [ 32 | { 33 | name: 'Inter', 34 | data: fontData, 35 | weight: 400 36 | } 37 | ] 38 | }); 39 | }; 40 | -------------------------------------------------------------------------------- /examples/netlify-build/src/routes/cog/+server.ts: -------------------------------------------------------------------------------- 1 | import OG from './OG.svelte'; 2 | import type { RequestHandler } from '@sveltejs/kit'; 3 | import { ImageResponse } from '@ethercorps/sveltekit-og'; 4 | 5 | export const GET: RequestHandler = async ({fetch}) => { 6 | 7 | const fontFile = await fetch('https://og-playground.vercel.app/inter-latin-ext-700-normal.woff'); 8 | const fontData: ArrayBuffer = await fontFile.arrayBuffer(); 9 | 10 | return new ImageResponse( 11 | OG, 12 | { 13 | height: 250, 14 | width: 500, 15 | fonts: [ 16 | { 17 | name: 'Inter Latin', 18 | data: fontData, 19 | weight: 700 20 | } 21 | ] 22 | }, 23 | { text: 'Ready to dive in?', spanText: 'Start your free trial today.' } 24 | ); 25 | }; 26 | -------------------------------------------------------------------------------- /examples/netlify-build/src/routes/cog/OG.svelte: -------------------------------------------------------------------------------- 1 | 5 | 6 |
7 |
8 |

9 | {text} 10 | {spanText} 11 |

12 |
13 |
14 | Get started 19 |
20 |
21 | Learn more 26 |
27 |
28 |
29 |
30 | -------------------------------------------------------------------------------- /examples/netlify-build/static/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/etherCorps/sveltekit-og/0cbf2ff812724f2cd8b2f0611d27a677bbdb6ae7/examples/netlify-build/static/favicon.ico -------------------------------------------------------------------------------- /examples/netlify-build/static/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/etherCorps/sveltekit-og/0cbf2ff812724f2cd8b2f0611d27a677bbdb6ae7/examples/netlify-build/static/favicon.png -------------------------------------------------------------------------------- /examples/netlify-build/svelte.config.js: -------------------------------------------------------------------------------- 1 | import adapter from '@sveltejs/adapter-netlify'; 2 | 3 | /** @type {import('@sveltejs/kit').Config} */ 4 | const config = { 5 | kit: { 6 | adapter: adapter() 7 | } 8 | }; 9 | 10 | export default config; 11 | -------------------------------------------------------------------------------- /examples/netlify-build/tests/test.js: -------------------------------------------------------------------------------- 1 | import { expect, test } from '@playwright/test'; 2 | 3 | test('index page has expected h1', async ({ page }) => { 4 | await page.goto('/'); 5 | expect(await page.textContent('h1')).toBe('Welcome to SvelteKit'); 6 | }); 7 | -------------------------------------------------------------------------------- /examples/netlify-build/vite.config.js: -------------------------------------------------------------------------------- 1 | import { sveltekit } from '@sveltejs/kit/vite'; 2 | 3 | const config = { 4 | plugins: [sveltekit()] 5 | }; 6 | 7 | export default config; 8 | -------------------------------------------------------------------------------- /examples/node-build/.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 | -------------------------------------------------------------------------------- /examples/node-build/.eslintrc.cjs: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | root: true, 3 | extends: ['eslint:recommended', 'prettier'], 4 | plugins: ['svelte3'], 5 | overrides: [{ files: ['*.svelte'], processor: 'svelte3/svelte3' }], 6 | parserOptions: { 7 | sourceType: 'module', 8 | ecmaVersion: 2020 9 | }, 10 | env: { 11 | browser: true, 12 | es2017: true, 13 | node: true 14 | } 15 | }; 16 | -------------------------------------------------------------------------------- /examples/node-build/.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | node_modules 3 | /build 4 | /.svelte-kit 5 | /package 6 | .env 7 | .env.* 8 | !.env.example 9 | -------------------------------------------------------------------------------- /examples/node-build/.npmrc: -------------------------------------------------------------------------------- 1 | engine-strict=true 2 | -------------------------------------------------------------------------------- /examples/node-build/.prettierignore: -------------------------------------------------------------------------------- 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 | -------------------------------------------------------------------------------- /examples/node-build/.prettierrc: -------------------------------------------------------------------------------- 1 | { 2 | "useTabs": true, 3 | "singleQuote": true, 4 | "trailingComma": "none", 5 | "printWidth": 100, 6 | "plugins": ["prettier-plugin-svelte"], 7 | "pluginSearchDirs": ["."], 8 | "overrides": [{ "files": "*.svelte", "options": { "parser": "svelte" } }] 9 | } 10 | -------------------------------------------------------------------------------- /examples/node-build/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/master/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 | -------------------------------------------------------------------------------- /examples/node-build/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "examples", 3 | "version": "0.0.2", 4 | "private": true, 5 | "scripts": { 6 | "dev": "vite dev", 7 | "build": "vite build", 8 | "preview": "vite preview", 9 | "test": "playwright test", 10 | "lint": "prettier --plugin-search-dir . --check . && eslint .", 11 | "format": "prettier --plugin-search-dir . --write ." 12 | }, 13 | "devDependencies": { 14 | "@playwright/test": "^1.35.0", 15 | "@sveltejs/adapter-node": "^1.3.1", 16 | "@sveltejs/kit": "^1.20.2", 17 | "eslint": "^8.42.0", 18 | "eslint-config-prettier": "^8.8.0", 19 | "eslint-plugin-svelte3": "^4.0.0", 20 | "prettier": "^2.8.8", 21 | "prettier-plugin-svelte": "^2.10.1", 22 | "svelte": "^3.59.1", 23 | "vite": "^4.3.9" 24 | }, 25 | "type": "module", 26 | "dependencies": { 27 | "@ethercorps/sveltekit-og": "link:../.." 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /examples/node-build/playwright.config.js: -------------------------------------------------------------------------------- 1 | /** @type {import('@playwright/test').PlaywrightTestConfig} */ 2 | const config = { 3 | webServer: { 4 | command: 'npm run build && npm run preview', 5 | port: 4173 6 | } 7 | }; 8 | 9 | export default config; 10 | -------------------------------------------------------------------------------- /examples/node-build/pnpm-lock.yaml: -------------------------------------------------------------------------------- 1 | lockfileVersion: '6.0' 2 | 3 | settings: 4 | autoInstallPeers: true 5 | excludeLinksFromLockfile: false 6 | 7 | dependencies: 8 | '@ethercorps/sveltekit-og': 9 | specifier: link:../.. 10 | version: link:../.. 11 | 12 | devDependencies: 13 | '@playwright/test': 14 | specifier: ^1.35.0 15 | version: 1.35.0 16 | '@sveltejs/adapter-node': 17 | specifier: ^1.3.1 18 | version: 1.3.1(@sveltejs/kit@1.20.2) 19 | '@sveltejs/kit': 20 | specifier: ^1.20.2 21 | version: 1.20.2(svelte@3.59.1)(vite@4.3.9) 22 | eslint: 23 | specifier: ^8.42.0 24 | version: 8.42.0 25 | eslint-config-prettier: 26 | specifier: ^8.8.0 27 | version: 8.8.0(eslint@8.42.0) 28 | eslint-plugin-svelte3: 29 | specifier: ^4.0.0 30 | version: 4.0.0(eslint@8.42.0)(svelte@3.59.1) 31 | prettier: 32 | specifier: ^2.8.8 33 | version: 2.8.8 34 | prettier-plugin-svelte: 35 | specifier: ^2.10.1 36 | version: 2.10.1(prettier@2.8.8)(svelte@3.59.1) 37 | svelte: 38 | specifier: ^3.59.1 39 | version: 3.59.1 40 | vite: 41 | specifier: ^4.3.9 42 | version: 4.3.9 43 | 44 | packages: 45 | 46 | /@esbuild/android-arm64@0.17.19: 47 | resolution: {integrity: sha512-KBMWvEZooR7+kzY0BtbTQn0OAYY7CsiydT63pVEaPtVYF0hXbUaOyZog37DKxK7NF3XacBJOpYT4adIJh+avxA==} 48 | engines: {node: '>=12'} 49 | cpu: [arm64] 50 | os: [android] 51 | requiresBuild: true 52 | dev: true 53 | optional: true 54 | 55 | /@esbuild/android-arm@0.17.19: 56 | resolution: {integrity: sha512-rIKddzqhmav7MSmoFCmDIb6e2W57geRsM94gV2l38fzhXMwq7hZoClug9USI2pFRGL06f4IOPHHpFNOkWieR8A==} 57 | engines: {node: '>=12'} 58 | cpu: [arm] 59 | os: [android] 60 | requiresBuild: true 61 | dev: true 62 | optional: true 63 | 64 | /@esbuild/android-x64@0.17.19: 65 | resolution: {integrity: sha512-uUTTc4xGNDT7YSArp/zbtmbhO0uEEK9/ETW29Wk1thYUJBz3IVnvgEiEwEa9IeLyvnpKrWK64Utw2bgUmDveww==} 66 | engines: {node: '>=12'} 67 | cpu: [x64] 68 | os: [android] 69 | requiresBuild: true 70 | dev: true 71 | optional: true 72 | 73 | /@esbuild/darwin-arm64@0.17.19: 74 | resolution: {integrity: sha512-80wEoCfF/hFKM6WE1FyBHc9SfUblloAWx6FJkFWTWiCoht9Mc0ARGEM47e67W9rI09YoUxJL68WHfDRYEAvOhg==} 75 | engines: {node: '>=12'} 76 | cpu: [arm64] 77 | os: [darwin] 78 | requiresBuild: true 79 | dev: true 80 | optional: true 81 | 82 | /@esbuild/darwin-x64@0.17.19: 83 | resolution: {integrity: sha512-IJM4JJsLhRYr9xdtLytPLSH9k/oxR3boaUIYiHkAawtwNOXKE8KoU8tMvryogdcT8AU+Bflmh81Xn6Q0vTZbQw==} 84 | engines: {node: '>=12'} 85 | cpu: [x64] 86 | os: [darwin] 87 | requiresBuild: true 88 | dev: true 89 | optional: true 90 | 91 | /@esbuild/freebsd-arm64@0.17.19: 92 | resolution: {integrity: sha512-pBwbc7DufluUeGdjSU5Si+P3SoMF5DQ/F/UmTSb8HXO80ZEAJmrykPyzo1IfNbAoaqw48YRpv8shwd1NoI0jcQ==} 93 | engines: {node: '>=12'} 94 | cpu: [arm64] 95 | os: [freebsd] 96 | requiresBuild: true 97 | dev: true 98 | optional: true 99 | 100 | /@esbuild/freebsd-x64@0.17.19: 101 | resolution: {integrity: sha512-4lu+n8Wk0XlajEhbEffdy2xy53dpR06SlzvhGByyg36qJw6Kpfk7cp45DR/62aPH9mtJRmIyrXAS5UWBrJT6TQ==} 102 | engines: {node: '>=12'} 103 | cpu: [x64] 104 | os: [freebsd] 105 | requiresBuild: true 106 | dev: true 107 | optional: true 108 | 109 | /@esbuild/linux-arm64@0.17.19: 110 | resolution: {integrity: sha512-ct1Tg3WGwd3P+oZYqic+YZF4snNl2bsnMKRkb3ozHmnM0dGWuxcPTTntAF6bOP0Sp4x0PjSF+4uHQ1xvxfRKqg==} 111 | engines: {node: '>=12'} 112 | cpu: [arm64] 113 | os: [linux] 114 | requiresBuild: true 115 | dev: true 116 | optional: true 117 | 118 | /@esbuild/linux-arm@0.17.19: 119 | resolution: {integrity: sha512-cdmT3KxjlOQ/gZ2cjfrQOtmhG4HJs6hhvm3mWSRDPtZ/lP5oe8FWceS10JaSJC13GBd4eH/haHnqf7hhGNLerA==} 120 | engines: {node: '>=12'} 121 | cpu: [arm] 122 | os: [linux] 123 | requiresBuild: true 124 | dev: true 125 | optional: true 126 | 127 | /@esbuild/linux-ia32@0.17.19: 128 | resolution: {integrity: sha512-w4IRhSy1VbsNxHRQpeGCHEmibqdTUx61Vc38APcsRbuVgK0OPEnQ0YD39Brymn96mOx48Y2laBQGqgZ0j9w6SQ==} 129 | engines: {node: '>=12'} 130 | cpu: [ia32] 131 | os: [linux] 132 | requiresBuild: true 133 | dev: true 134 | optional: true 135 | 136 | /@esbuild/linux-loong64@0.17.19: 137 | resolution: {integrity: sha512-2iAngUbBPMq439a+z//gE+9WBldoMp1s5GWsUSgqHLzLJ9WoZLZhpwWuym0u0u/4XmZ3gpHmzV84PonE+9IIdQ==} 138 | engines: {node: '>=12'} 139 | cpu: [loong64] 140 | os: [linux] 141 | requiresBuild: true 142 | dev: true 143 | optional: true 144 | 145 | /@esbuild/linux-mips64el@0.17.19: 146 | resolution: {integrity: sha512-LKJltc4LVdMKHsrFe4MGNPp0hqDFA1Wpt3jE1gEyM3nKUvOiO//9PheZZHfYRfYl6AwdTH4aTcXSqBerX0ml4A==} 147 | engines: {node: '>=12'} 148 | cpu: [mips64el] 149 | os: [linux] 150 | requiresBuild: true 151 | dev: true 152 | optional: true 153 | 154 | /@esbuild/linux-ppc64@0.17.19: 155 | resolution: {integrity: sha512-/c/DGybs95WXNS8y3Ti/ytqETiW7EU44MEKuCAcpPto3YjQbyK3IQVKfF6nbghD7EcLUGl0NbiL5Rt5DMhn5tg==} 156 | engines: {node: '>=12'} 157 | cpu: [ppc64] 158 | os: [linux] 159 | requiresBuild: true 160 | dev: true 161 | optional: true 162 | 163 | /@esbuild/linux-riscv64@0.17.19: 164 | resolution: {integrity: sha512-FC3nUAWhvFoutlhAkgHf8f5HwFWUL6bYdvLc/TTuxKlvLi3+pPzdZiFKSWz/PF30TB1K19SuCxDTI5KcqASJqA==} 165 | engines: {node: '>=12'} 166 | cpu: [riscv64] 167 | os: [linux] 168 | requiresBuild: true 169 | dev: true 170 | optional: true 171 | 172 | /@esbuild/linux-s390x@0.17.19: 173 | resolution: {integrity: sha512-IbFsFbxMWLuKEbH+7sTkKzL6NJmG2vRyy6K7JJo55w+8xDk7RElYn6xvXtDW8HCfoKBFK69f3pgBJSUSQPr+4Q==} 174 | engines: {node: '>=12'} 175 | cpu: [s390x] 176 | os: [linux] 177 | requiresBuild: true 178 | dev: true 179 | optional: true 180 | 181 | /@esbuild/linux-x64@0.17.19: 182 | resolution: {integrity: sha512-68ngA9lg2H6zkZcyp22tsVt38mlhWde8l3eJLWkyLrp4HwMUr3c1s/M2t7+kHIhvMjglIBrFpncX1SzMckomGw==} 183 | engines: {node: '>=12'} 184 | cpu: [x64] 185 | os: [linux] 186 | requiresBuild: true 187 | dev: true 188 | optional: true 189 | 190 | /@esbuild/netbsd-x64@0.17.19: 191 | resolution: {integrity: sha512-CwFq42rXCR8TYIjIfpXCbRX0rp1jo6cPIUPSaWwzbVI4aOfX96OXY8M6KNmtPcg7QjYeDmN+DD0Wp3LaBOLf4Q==} 192 | engines: {node: '>=12'} 193 | cpu: [x64] 194 | os: [netbsd] 195 | requiresBuild: true 196 | dev: true 197 | optional: true 198 | 199 | /@esbuild/openbsd-x64@0.17.19: 200 | resolution: {integrity: sha512-cnq5brJYrSZ2CF6c35eCmviIN3k3RczmHz8eYaVlNasVqsNY+JKohZU5MKmaOI+KkllCdzOKKdPs762VCPC20g==} 201 | engines: {node: '>=12'} 202 | cpu: [x64] 203 | os: [openbsd] 204 | requiresBuild: true 205 | dev: true 206 | optional: true 207 | 208 | /@esbuild/sunos-x64@0.17.19: 209 | resolution: {integrity: sha512-vCRT7yP3zX+bKWFeP/zdS6SqdWB8OIpaRq/mbXQxTGHnIxspRtigpkUcDMlSCOejlHowLqII7K2JKevwyRP2rg==} 210 | engines: {node: '>=12'} 211 | cpu: [x64] 212 | os: [sunos] 213 | requiresBuild: true 214 | dev: true 215 | optional: true 216 | 217 | /@esbuild/win32-arm64@0.17.19: 218 | resolution: {integrity: sha512-yYx+8jwowUstVdorcMdNlzklLYhPxjniHWFKgRqH7IFlUEa0Umu3KuYplf1HUZZ422e3NU9F4LGb+4O0Kdcaag==} 219 | engines: {node: '>=12'} 220 | cpu: [arm64] 221 | os: [win32] 222 | requiresBuild: true 223 | dev: true 224 | optional: true 225 | 226 | /@esbuild/win32-ia32@0.17.19: 227 | resolution: {integrity: sha512-eggDKanJszUtCdlVs0RB+h35wNlb5v4TWEkq4vZcmVt5u/HiDZrTXe2bWFQUez3RgNHwx/x4sk5++4NSSicKkw==} 228 | engines: {node: '>=12'} 229 | cpu: [ia32] 230 | os: [win32] 231 | requiresBuild: true 232 | dev: true 233 | optional: true 234 | 235 | /@esbuild/win32-x64@0.17.19: 236 | resolution: {integrity: sha512-lAhycmKnVOuRYNtRtatQR1LPQf2oYCkRGkSFnseDAKPl8lu5SOsK/e1sXe5a0Pc5kHIHe6P2I/ilntNv2xf3cA==} 237 | engines: {node: '>=12'} 238 | cpu: [x64] 239 | os: [win32] 240 | requiresBuild: true 241 | dev: true 242 | optional: true 243 | 244 | /@eslint-community/eslint-utils@4.4.0(eslint@8.42.0): 245 | resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} 246 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 247 | peerDependencies: 248 | eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 249 | dependencies: 250 | eslint: 8.42.0 251 | eslint-visitor-keys: 3.4.1 252 | dev: true 253 | 254 | /@eslint-community/regexpp@4.5.1: 255 | resolution: {integrity: sha512-Z5ba73P98O1KUYCCJTUeVpja9RcGoMdncZ6T49FCUl2lN38JtCJ+3WgIDBv0AuY4WChU5PmtJmOCTlN6FZTFKQ==} 256 | engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} 257 | dev: true 258 | 259 | /@eslint/eslintrc@2.0.3: 260 | resolution: {integrity: sha512-+5gy6OQfk+xx3q0d6jGZZC3f3KzAkXc/IanVxd1is/VIIziRqqt3ongQz0FiTUXqTk0c7aDB3OaFuKnuSoJicQ==} 261 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 262 | dependencies: 263 | ajv: 6.12.6 264 | debug: 4.3.4 265 | espree: 9.5.2 266 | globals: 13.20.0 267 | ignore: 5.2.4 268 | import-fresh: 3.3.0 269 | js-yaml: 4.1.0 270 | minimatch: 3.1.2 271 | strip-json-comments: 3.1.1 272 | transitivePeerDependencies: 273 | - supports-color 274 | dev: true 275 | 276 | /@eslint/js@8.42.0: 277 | resolution: {integrity: sha512-6SWlXpWU5AvId8Ac7zjzmIOqMOba/JWY8XZ4A7q7Gn1Vlfg/SFFIlrtHXt9nPn4op9ZPAkl91Jao+QQv3r/ukw==} 278 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 279 | dev: true 280 | 281 | /@humanwhocodes/config-array@0.11.10: 282 | resolution: {integrity: sha512-KVVjQmNUepDVGXNuoRRdmmEjruj0KfiGSbS8LVc12LMsWDQzRXJ0qdhN8L8uUigKpfEHRhlaQFY0ib1tnUbNeQ==} 283 | engines: {node: '>=10.10.0'} 284 | dependencies: 285 | '@humanwhocodes/object-schema': 1.2.1 286 | debug: 4.3.4 287 | minimatch: 3.1.2 288 | transitivePeerDependencies: 289 | - supports-color 290 | dev: true 291 | 292 | /@humanwhocodes/module-importer@1.0.1: 293 | resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} 294 | engines: {node: '>=12.22'} 295 | dev: true 296 | 297 | /@humanwhocodes/object-schema@1.2.1: 298 | resolution: {integrity: sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==} 299 | dev: true 300 | 301 | /@jridgewell/sourcemap-codec@1.4.15: 302 | resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} 303 | dev: true 304 | 305 | /@nodelib/fs.scandir@2.1.5: 306 | resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} 307 | engines: {node: '>= 8'} 308 | dependencies: 309 | '@nodelib/fs.stat': 2.0.5 310 | run-parallel: 1.2.0 311 | dev: true 312 | 313 | /@nodelib/fs.stat@2.0.5: 314 | resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} 315 | engines: {node: '>= 8'} 316 | dev: true 317 | 318 | /@nodelib/fs.walk@1.2.8: 319 | resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} 320 | engines: {node: '>= 8'} 321 | dependencies: 322 | '@nodelib/fs.scandir': 2.1.5 323 | fastq: 1.15.0 324 | dev: true 325 | 326 | /@playwright/test@1.35.0: 327 | resolution: {integrity: sha512-6qXdd5edCBynOwsz1YcNfgX8tNWeuS9fxy5o59D0rvHXxRtjXRebB4gE4vFVfEMXl/z8zTnAzfOs7aQDEs8G4Q==} 328 | engines: {node: '>=16'} 329 | hasBin: true 330 | dependencies: 331 | '@types/node': 20.2.5 332 | playwright-core: 1.35.0 333 | optionalDependencies: 334 | fsevents: 2.3.2 335 | dev: true 336 | 337 | /@polka/url@1.0.0-next.21: 338 | resolution: {integrity: sha512-a5Sab1C4/icpTZVzZc5Ghpz88yQtGOyNqYXcZgOssB2uuAr+wF/MvN6bgtW32q7HHrvBki+BsZ0OuNv6EV3K9g==} 339 | dev: true 340 | 341 | /@rollup/plugin-commonjs@25.0.7(rollup@3.24.0): 342 | resolution: {integrity: sha512-nEvcR+LRjEjsaSsc4x3XZfCCvZIaSMenZu/OiwOKGN2UhQpAYI7ru7czFvyWbErlpoGjnSX3D5Ch5FcMA3kRWQ==} 343 | engines: {node: '>=14.0.0'} 344 | peerDependencies: 345 | rollup: ^2.68.0||^3.0.0||^4.0.0 346 | peerDependenciesMeta: 347 | rollup: 348 | optional: true 349 | dependencies: 350 | '@rollup/pluginutils': 5.0.2(rollup@3.24.0) 351 | commondir: 1.0.1 352 | estree-walker: 2.0.2 353 | glob: 8.1.0 354 | is-reference: 1.2.1 355 | magic-string: 0.30.5 356 | rollup: 3.24.0 357 | dev: true 358 | 359 | /@rollup/plugin-json@6.0.0(rollup@3.24.0): 360 | resolution: {integrity: sha512-i/4C5Jrdr1XUarRhVu27EEwjt4GObltD7c+MkCIpO2QIbojw8MUs+CCTqOphQi3Qtg1FLmYt+l+6YeoIf51J7w==} 361 | engines: {node: '>=14.0.0'} 362 | peerDependencies: 363 | rollup: ^1.20.0||^2.0.0||^3.0.0 364 | peerDependenciesMeta: 365 | rollup: 366 | optional: true 367 | dependencies: 368 | '@rollup/pluginutils': 5.0.2(rollup@3.24.0) 369 | rollup: 3.24.0 370 | dev: true 371 | 372 | /@rollup/plugin-node-resolve@15.1.0(rollup@3.24.0): 373 | resolution: {integrity: sha512-xeZHCgsiZ9pzYVgAo9580eCGqwh/XCEUM9q6iQfGNocjgkufHAqC3exA+45URvhiYV8sBF9RlBai650eNs7AsA==} 374 | engines: {node: '>=14.0.0'} 375 | peerDependencies: 376 | rollup: ^2.78.0||^3.0.0 377 | peerDependenciesMeta: 378 | rollup: 379 | optional: true 380 | dependencies: 381 | '@rollup/pluginutils': 5.0.2(rollup@3.24.0) 382 | '@types/resolve': 1.20.2 383 | deepmerge: 4.3.1 384 | is-builtin-module: 3.2.1 385 | is-module: 1.0.0 386 | resolve: 1.22.2 387 | rollup: 3.24.0 388 | dev: true 389 | 390 | /@rollup/pluginutils@5.0.2(rollup@3.24.0): 391 | resolution: {integrity: sha512-pTd9rIsP92h+B6wWwFbW8RkZv4hiR/xKsqre4SIuAOaOEQRxi0lqLke9k2/7WegC85GgUs9pjmOjCUi3In4vwA==} 392 | engines: {node: '>=14.0.0'} 393 | peerDependencies: 394 | rollup: ^1.20.0||^2.0.0||^3.0.0 395 | peerDependenciesMeta: 396 | rollup: 397 | optional: true 398 | dependencies: 399 | '@types/estree': 1.0.1 400 | estree-walker: 2.0.2 401 | picomatch: 2.3.1 402 | rollup: 3.24.0 403 | dev: true 404 | 405 | /@sveltejs/adapter-node@1.3.1(@sveltejs/kit@1.20.2): 406 | resolution: {integrity: sha512-A0VgRQDCDPzdLNoiAbcOxGw4zT1Mc+n1LwT1OmO350R7WxrEqdMUChPPOd1iMfIDWlP4ie6E2d/WQf5es2d4Zw==} 407 | peerDependencies: 408 | '@sveltejs/kit': ^1.0.0 409 | dependencies: 410 | '@rollup/plugin-commonjs': 25.0.7(rollup@3.24.0) 411 | '@rollup/plugin-json': 6.0.0(rollup@3.24.0) 412 | '@rollup/plugin-node-resolve': 15.1.0(rollup@3.24.0) 413 | '@sveltejs/kit': 1.20.2(svelte@3.59.1)(vite@4.3.9) 414 | rollup: 3.24.0 415 | dev: true 416 | 417 | /@sveltejs/kit@1.20.2(svelte@3.59.1)(vite@4.3.9): 418 | resolution: {integrity: sha512-MtR1i+HtmYWcRgtubw1GQqT/+CWXL/z24PegE0xYAdObbhdr7YtEfmoe705D/JZMtMmoPXrmSk4W0MfL5A3lYw==} 419 | engines: {node: ^16.14 || >=18} 420 | hasBin: true 421 | requiresBuild: true 422 | peerDependencies: 423 | svelte: ^3.54.0 || ^4.0.0-next.0 424 | vite: ^4.0.0 425 | dependencies: 426 | '@sveltejs/vite-plugin-svelte': 2.4.1(svelte@3.59.1)(vite@4.3.9) 427 | '@types/cookie': 0.5.1 428 | cookie: 0.5.0 429 | devalue: 4.3.2 430 | esm-env: 1.0.0 431 | kleur: 4.1.5 432 | magic-string: 0.30.0 433 | mime: 3.0.0 434 | sade: 1.8.1 435 | set-cookie-parser: 2.6.0 436 | sirv: 2.0.3 437 | svelte: 3.59.1 438 | tiny-glob: 0.2.9 439 | undici: 5.22.1 440 | vite: 4.3.9 441 | transitivePeerDependencies: 442 | - supports-color 443 | dev: true 444 | 445 | /@sveltejs/vite-plugin-svelte-inspector@1.0.2(@sveltejs/vite-plugin-svelte@2.4.1)(svelte@3.59.1)(vite@4.3.9): 446 | resolution: {integrity: sha512-Cy1dUMcYCnDVV/hPLXa43YZJ2jGKVW5rA0xuNL9dlmYhT0yoS1g7+FOFSRlgk0BXKk/Oc7grs+8BVA5Iz2fr8A==} 447 | engines: {node: ^14.18.0 || >= 16} 448 | peerDependencies: 449 | '@sveltejs/vite-plugin-svelte': ^2.2.0 450 | svelte: ^3.54.0 || ^4.0.0-next.0 451 | vite: ^4.0.0 452 | dependencies: 453 | '@sveltejs/vite-plugin-svelte': 2.4.1(svelte@3.59.1)(vite@4.3.9) 454 | debug: 4.3.4 455 | svelte: 3.59.1 456 | vite: 4.3.9 457 | transitivePeerDependencies: 458 | - supports-color 459 | dev: true 460 | 461 | /@sveltejs/vite-plugin-svelte@2.4.1(svelte@3.59.1)(vite@4.3.9): 462 | resolution: {integrity: sha512-bNNKvoRY89ptY7udeBSCmTdCVwkjmMcZ0j/z9J5MuedT8jPjq0zrknAo/jF1sToAza4NVaAgR9AkZoD9oJJmnA==} 463 | engines: {node: ^14.18.0 || >= 16} 464 | peerDependencies: 465 | svelte: ^3.54.0 || ^4.0.0-next.0 466 | vite: ^4.0.0 467 | dependencies: 468 | '@sveltejs/vite-plugin-svelte-inspector': 1.0.2(@sveltejs/vite-plugin-svelte@2.4.1)(svelte@3.59.1)(vite@4.3.9) 469 | debug: 4.3.4 470 | deepmerge: 4.3.1 471 | kleur: 4.1.5 472 | magic-string: 0.30.0 473 | svelte: 3.59.1 474 | svelte-hmr: 0.15.2(svelte@3.59.1) 475 | vite: 4.3.9 476 | vitefu: 0.2.4(vite@4.3.9) 477 | transitivePeerDependencies: 478 | - supports-color 479 | dev: true 480 | 481 | /@types/cookie@0.5.1: 482 | resolution: {integrity: sha512-COUnqfB2+ckwXXSFInsFdOAWQzCCx+a5hq2ruyj+Vjund94RJQd4LG2u9hnvJrTgunKAaax7ancBYlDrNYxA0g==} 483 | dev: true 484 | 485 | /@types/estree@1.0.1: 486 | resolution: {integrity: sha512-LG4opVs2ANWZ1TJoKc937iMmNstM/d0ae1vNbnBvBhqCSezgVUOzcLCqbI5elV8Vy6WKwKjaqR+zO9VKirBBCA==} 487 | dev: true 488 | 489 | /@types/node@20.2.5: 490 | resolution: {integrity: sha512-JJulVEQXmiY9Px5axXHeYGLSjhkZEnD+MDPDGbCbIAbMslkKwmygtZFy1X6s/075Yo94sf8GuSlFfPzysQrWZQ==} 491 | dev: true 492 | 493 | /@types/resolve@1.20.2: 494 | resolution: {integrity: sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==} 495 | dev: true 496 | 497 | /acorn-jsx@5.3.2(acorn@8.8.2): 498 | resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} 499 | peerDependencies: 500 | acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 501 | dependencies: 502 | acorn: 8.8.2 503 | dev: true 504 | 505 | /acorn@8.8.2: 506 | resolution: {integrity: sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==} 507 | engines: {node: '>=0.4.0'} 508 | hasBin: true 509 | dev: true 510 | 511 | /ajv@6.12.6: 512 | resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} 513 | dependencies: 514 | fast-deep-equal: 3.1.3 515 | fast-json-stable-stringify: 2.1.0 516 | json-schema-traverse: 0.4.1 517 | uri-js: 4.4.1 518 | dev: true 519 | 520 | /ansi-regex@5.0.1: 521 | resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} 522 | engines: {node: '>=8'} 523 | dev: true 524 | 525 | /ansi-styles@4.3.0: 526 | resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} 527 | engines: {node: '>=8'} 528 | dependencies: 529 | color-convert: 2.0.1 530 | dev: true 531 | 532 | /argparse@2.0.1: 533 | resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} 534 | dev: true 535 | 536 | /balanced-match@1.0.2: 537 | resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} 538 | dev: true 539 | 540 | /brace-expansion@1.1.11: 541 | resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} 542 | dependencies: 543 | balanced-match: 1.0.2 544 | concat-map: 0.0.1 545 | dev: true 546 | 547 | /brace-expansion@2.0.1: 548 | resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} 549 | dependencies: 550 | balanced-match: 1.0.2 551 | dev: true 552 | 553 | /builtin-modules@3.3.0: 554 | resolution: {integrity: sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==} 555 | engines: {node: '>=6'} 556 | dev: true 557 | 558 | /busboy@1.6.0: 559 | resolution: {integrity: sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==} 560 | engines: {node: '>=10.16.0'} 561 | dependencies: 562 | streamsearch: 1.1.0 563 | dev: true 564 | 565 | /callsites@3.1.0: 566 | resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} 567 | engines: {node: '>=6'} 568 | dev: true 569 | 570 | /chalk@4.1.2: 571 | resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} 572 | engines: {node: '>=10'} 573 | dependencies: 574 | ansi-styles: 4.3.0 575 | supports-color: 7.2.0 576 | dev: true 577 | 578 | /color-convert@2.0.1: 579 | resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} 580 | engines: {node: '>=7.0.0'} 581 | dependencies: 582 | color-name: 1.1.4 583 | dev: true 584 | 585 | /color-name@1.1.4: 586 | resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} 587 | dev: true 588 | 589 | /commondir@1.0.1: 590 | resolution: {integrity: sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==} 591 | dev: true 592 | 593 | /concat-map@0.0.1: 594 | resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} 595 | dev: true 596 | 597 | /cookie@0.5.0: 598 | resolution: {integrity: sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==} 599 | engines: {node: '>= 0.6'} 600 | dev: true 601 | 602 | /cross-spawn@7.0.3: 603 | resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} 604 | engines: {node: '>= 8'} 605 | dependencies: 606 | path-key: 3.1.1 607 | shebang-command: 2.0.0 608 | which: 2.0.2 609 | dev: true 610 | 611 | /debug@4.3.4: 612 | resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} 613 | engines: {node: '>=6.0'} 614 | peerDependencies: 615 | supports-color: '*' 616 | peerDependenciesMeta: 617 | supports-color: 618 | optional: true 619 | dependencies: 620 | ms: 2.1.2 621 | dev: true 622 | 623 | /deep-is@0.1.4: 624 | resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} 625 | dev: true 626 | 627 | /deepmerge@4.3.1: 628 | resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==} 629 | engines: {node: '>=0.10.0'} 630 | dev: true 631 | 632 | /devalue@4.3.2: 633 | resolution: {integrity: sha512-KqFl6pOgOW+Y6wJgu80rHpo2/3H07vr8ntR9rkkFIRETewbf5GaYYcakYfiKz89K+sLsuPkQIZaXDMjUObZwWg==} 634 | dev: true 635 | 636 | /doctrine@3.0.0: 637 | resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} 638 | engines: {node: '>=6.0.0'} 639 | dependencies: 640 | esutils: 2.0.3 641 | dev: true 642 | 643 | /esbuild@0.17.19: 644 | resolution: {integrity: sha512-XQ0jAPFkK/u3LcVRcvVHQcTIqD6E2H1fvZMA5dQPSOWb3suUbWbfbRf94pjc0bNzRYLfIrDRQXr7X+LHIm5oHw==} 645 | engines: {node: '>=12'} 646 | hasBin: true 647 | requiresBuild: true 648 | optionalDependencies: 649 | '@esbuild/android-arm': 0.17.19 650 | '@esbuild/android-arm64': 0.17.19 651 | '@esbuild/android-x64': 0.17.19 652 | '@esbuild/darwin-arm64': 0.17.19 653 | '@esbuild/darwin-x64': 0.17.19 654 | '@esbuild/freebsd-arm64': 0.17.19 655 | '@esbuild/freebsd-x64': 0.17.19 656 | '@esbuild/linux-arm': 0.17.19 657 | '@esbuild/linux-arm64': 0.17.19 658 | '@esbuild/linux-ia32': 0.17.19 659 | '@esbuild/linux-loong64': 0.17.19 660 | '@esbuild/linux-mips64el': 0.17.19 661 | '@esbuild/linux-ppc64': 0.17.19 662 | '@esbuild/linux-riscv64': 0.17.19 663 | '@esbuild/linux-s390x': 0.17.19 664 | '@esbuild/linux-x64': 0.17.19 665 | '@esbuild/netbsd-x64': 0.17.19 666 | '@esbuild/openbsd-x64': 0.17.19 667 | '@esbuild/sunos-x64': 0.17.19 668 | '@esbuild/win32-arm64': 0.17.19 669 | '@esbuild/win32-ia32': 0.17.19 670 | '@esbuild/win32-x64': 0.17.19 671 | dev: true 672 | 673 | /escape-string-regexp@4.0.0: 674 | resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} 675 | engines: {node: '>=10'} 676 | dev: true 677 | 678 | /eslint-config-prettier@8.8.0(eslint@8.42.0): 679 | resolution: {integrity: sha512-wLbQiFre3tdGgpDv67NQKnJuTlcUVYHas3k+DZCc2U2BadthoEY4B7hLPvAxaqdyOGCzuLfii2fqGph10va7oA==} 680 | hasBin: true 681 | peerDependencies: 682 | eslint: '>=7.0.0' 683 | dependencies: 684 | eslint: 8.42.0 685 | dev: true 686 | 687 | /eslint-plugin-svelte3@4.0.0(eslint@8.42.0)(svelte@3.59.1): 688 | resolution: {integrity: sha512-OIx9lgaNzD02+MDFNLw0GEUbuovNcglg+wnd/UY0fbZmlQSz7GlQiQ1f+yX0XvC07XPcDOnFcichqI3xCwp71g==} 689 | peerDependencies: 690 | eslint: '>=8.0.0' 691 | svelte: ^3.2.0 692 | dependencies: 693 | eslint: 8.42.0 694 | svelte: 3.59.1 695 | dev: true 696 | 697 | /eslint-scope@7.2.0: 698 | resolution: {integrity: sha512-DYj5deGlHBfMt15J7rdtyKNq/Nqlv5KfU4iodrQ019XESsRnwXH9KAE0y3cwtUHDo2ob7CypAnCqefh6vioWRw==} 699 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 700 | dependencies: 701 | esrecurse: 4.3.0 702 | estraverse: 5.3.0 703 | dev: true 704 | 705 | /eslint-visitor-keys@3.4.1: 706 | resolution: {integrity: sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA==} 707 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 708 | dev: true 709 | 710 | /eslint@8.42.0: 711 | resolution: {integrity: sha512-ulg9Ms6E1WPf67PHaEY4/6E2tEn5/f7FXGzr3t9cBMugOmf1INYvuUwwh1aXQN4MfJ6a5K2iNwP3w4AColvI9A==} 712 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 713 | hasBin: true 714 | dependencies: 715 | '@eslint-community/eslint-utils': 4.4.0(eslint@8.42.0) 716 | '@eslint-community/regexpp': 4.5.1 717 | '@eslint/eslintrc': 2.0.3 718 | '@eslint/js': 8.42.0 719 | '@humanwhocodes/config-array': 0.11.10 720 | '@humanwhocodes/module-importer': 1.0.1 721 | '@nodelib/fs.walk': 1.2.8 722 | ajv: 6.12.6 723 | chalk: 4.1.2 724 | cross-spawn: 7.0.3 725 | debug: 4.3.4 726 | doctrine: 3.0.0 727 | escape-string-regexp: 4.0.0 728 | eslint-scope: 7.2.0 729 | eslint-visitor-keys: 3.4.1 730 | espree: 9.5.2 731 | esquery: 1.5.0 732 | esutils: 2.0.3 733 | fast-deep-equal: 3.1.3 734 | file-entry-cache: 6.0.1 735 | find-up: 5.0.0 736 | glob-parent: 6.0.2 737 | globals: 13.20.0 738 | graphemer: 1.4.0 739 | ignore: 5.2.4 740 | import-fresh: 3.3.0 741 | imurmurhash: 0.1.4 742 | is-glob: 4.0.3 743 | is-path-inside: 3.0.3 744 | js-yaml: 4.1.0 745 | json-stable-stringify-without-jsonify: 1.0.1 746 | levn: 0.4.1 747 | lodash.merge: 4.6.2 748 | minimatch: 3.1.2 749 | natural-compare: 1.4.0 750 | optionator: 0.9.1 751 | strip-ansi: 6.0.1 752 | strip-json-comments: 3.1.1 753 | text-table: 0.2.0 754 | transitivePeerDependencies: 755 | - supports-color 756 | dev: true 757 | 758 | /esm-env@1.0.0: 759 | resolution: {integrity: sha512-Cf6VksWPsTuW01vU9Mk/3vRue91Zevka5SjyNf3nEpokFRuqt/KjUQoGAwq9qMmhpLTHmXzSIrFRw8zxWzmFBA==} 760 | dev: true 761 | 762 | /espree@9.5.2: 763 | resolution: {integrity: sha512-7OASN1Wma5fum5SrNhFMAMJxOUAbhyfQ8dQ//PJaJbNw0URTPWqIghHWt1MmAANKhHZIYOHruW4Kw4ruUWOdGw==} 764 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 765 | dependencies: 766 | acorn: 8.8.2 767 | acorn-jsx: 5.3.2(acorn@8.8.2) 768 | eslint-visitor-keys: 3.4.1 769 | dev: true 770 | 771 | /esquery@1.5.0: 772 | resolution: {integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==} 773 | engines: {node: '>=0.10'} 774 | dependencies: 775 | estraverse: 5.3.0 776 | dev: true 777 | 778 | /esrecurse@4.3.0: 779 | resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} 780 | engines: {node: '>=4.0'} 781 | dependencies: 782 | estraverse: 5.3.0 783 | dev: true 784 | 785 | /estraverse@5.3.0: 786 | resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} 787 | engines: {node: '>=4.0'} 788 | dev: true 789 | 790 | /estree-walker@2.0.2: 791 | resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} 792 | dev: true 793 | 794 | /esutils@2.0.3: 795 | resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} 796 | engines: {node: '>=0.10.0'} 797 | dev: true 798 | 799 | /fast-deep-equal@3.1.3: 800 | resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} 801 | dev: true 802 | 803 | /fast-json-stable-stringify@2.1.0: 804 | resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} 805 | dev: true 806 | 807 | /fast-levenshtein@2.0.6: 808 | resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} 809 | dev: true 810 | 811 | /fastq@1.15.0: 812 | resolution: {integrity: sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==} 813 | dependencies: 814 | reusify: 1.0.4 815 | dev: true 816 | 817 | /file-entry-cache@6.0.1: 818 | resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} 819 | engines: {node: ^10.12.0 || >=12.0.0} 820 | dependencies: 821 | flat-cache: 3.0.4 822 | dev: true 823 | 824 | /find-up@5.0.0: 825 | resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} 826 | engines: {node: '>=10'} 827 | dependencies: 828 | locate-path: 6.0.0 829 | path-exists: 4.0.0 830 | dev: true 831 | 832 | /flat-cache@3.0.4: 833 | resolution: {integrity: sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==} 834 | engines: {node: ^10.12.0 || >=12.0.0} 835 | dependencies: 836 | flatted: 3.2.7 837 | rimraf: 3.0.2 838 | dev: true 839 | 840 | /flatted@3.2.7: 841 | resolution: {integrity: sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==} 842 | dev: true 843 | 844 | /fs.realpath@1.0.0: 845 | resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} 846 | dev: true 847 | 848 | /fsevents@2.3.2: 849 | resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==} 850 | engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} 851 | os: [darwin] 852 | requiresBuild: true 853 | dev: true 854 | optional: true 855 | 856 | /function-bind@1.1.1: 857 | resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==} 858 | dev: true 859 | 860 | /glob-parent@6.0.2: 861 | resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} 862 | engines: {node: '>=10.13.0'} 863 | dependencies: 864 | is-glob: 4.0.3 865 | dev: true 866 | 867 | /glob@7.2.3: 868 | resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} 869 | dependencies: 870 | fs.realpath: 1.0.0 871 | inflight: 1.0.6 872 | inherits: 2.0.4 873 | minimatch: 3.1.2 874 | once: 1.4.0 875 | path-is-absolute: 1.0.1 876 | dev: true 877 | 878 | /glob@8.1.0: 879 | resolution: {integrity: sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==} 880 | engines: {node: '>=12'} 881 | dependencies: 882 | fs.realpath: 1.0.0 883 | inflight: 1.0.6 884 | inherits: 2.0.4 885 | minimatch: 5.1.6 886 | once: 1.4.0 887 | dev: true 888 | 889 | /globals@13.20.0: 890 | resolution: {integrity: sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==} 891 | engines: {node: '>=8'} 892 | dependencies: 893 | type-fest: 0.20.2 894 | dev: true 895 | 896 | /globalyzer@0.1.0: 897 | resolution: {integrity: sha512-40oNTM9UfG6aBmuKxk/giHn5nQ8RVz/SS4Ir6zgzOv9/qC3kKZ9v4etGTcJbEl/NyVQH7FGU7d+X1egr57Md2Q==} 898 | dev: true 899 | 900 | /globrex@0.1.2: 901 | resolution: {integrity: sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==} 902 | dev: true 903 | 904 | /graphemer@1.4.0: 905 | resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} 906 | dev: true 907 | 908 | /has-flag@4.0.0: 909 | resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} 910 | engines: {node: '>=8'} 911 | dev: true 912 | 913 | /has@1.0.3: 914 | resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==} 915 | engines: {node: '>= 0.4.0'} 916 | dependencies: 917 | function-bind: 1.1.1 918 | dev: true 919 | 920 | /ignore@5.2.4: 921 | resolution: {integrity: sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==} 922 | engines: {node: '>= 4'} 923 | dev: true 924 | 925 | /import-fresh@3.3.0: 926 | resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} 927 | engines: {node: '>=6'} 928 | dependencies: 929 | parent-module: 1.0.1 930 | resolve-from: 4.0.0 931 | dev: true 932 | 933 | /imurmurhash@0.1.4: 934 | resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} 935 | engines: {node: '>=0.8.19'} 936 | dev: true 937 | 938 | /inflight@1.0.6: 939 | resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} 940 | dependencies: 941 | once: 1.4.0 942 | wrappy: 1.0.2 943 | dev: true 944 | 945 | /inherits@2.0.4: 946 | resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} 947 | dev: true 948 | 949 | /is-builtin-module@3.2.1: 950 | resolution: {integrity: sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A==} 951 | engines: {node: '>=6'} 952 | dependencies: 953 | builtin-modules: 3.3.0 954 | dev: true 955 | 956 | /is-core-module@2.12.1: 957 | resolution: {integrity: sha512-Q4ZuBAe2FUsKtyQJoQHlvP8OvBERxO3jEmy1I7hcRXcJBGGHFh/aJBswbXuS9sgrDH2QUO8ilkwNPHvHMd8clg==} 958 | dependencies: 959 | has: 1.0.3 960 | dev: true 961 | 962 | /is-extglob@2.1.1: 963 | resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} 964 | engines: {node: '>=0.10.0'} 965 | dev: true 966 | 967 | /is-glob@4.0.3: 968 | resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} 969 | engines: {node: '>=0.10.0'} 970 | dependencies: 971 | is-extglob: 2.1.1 972 | dev: true 973 | 974 | /is-module@1.0.0: 975 | resolution: {integrity: sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==} 976 | dev: true 977 | 978 | /is-path-inside@3.0.3: 979 | resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} 980 | engines: {node: '>=8'} 981 | dev: true 982 | 983 | /is-reference@1.2.1: 984 | resolution: {integrity: sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==} 985 | dependencies: 986 | '@types/estree': 1.0.1 987 | dev: true 988 | 989 | /isexe@2.0.0: 990 | resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} 991 | dev: true 992 | 993 | /js-yaml@4.1.0: 994 | resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} 995 | hasBin: true 996 | dependencies: 997 | argparse: 2.0.1 998 | dev: true 999 | 1000 | /json-schema-traverse@0.4.1: 1001 | resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} 1002 | dev: true 1003 | 1004 | /json-stable-stringify-without-jsonify@1.0.1: 1005 | resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} 1006 | dev: true 1007 | 1008 | /kleur@4.1.5: 1009 | resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==} 1010 | engines: {node: '>=6'} 1011 | dev: true 1012 | 1013 | /levn@0.4.1: 1014 | resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} 1015 | engines: {node: '>= 0.8.0'} 1016 | dependencies: 1017 | prelude-ls: 1.2.1 1018 | type-check: 0.4.0 1019 | dev: true 1020 | 1021 | /locate-path@6.0.0: 1022 | resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} 1023 | engines: {node: '>=10'} 1024 | dependencies: 1025 | p-locate: 5.0.0 1026 | dev: true 1027 | 1028 | /lodash.merge@4.6.2: 1029 | resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} 1030 | dev: true 1031 | 1032 | /magic-string@0.30.0: 1033 | resolution: {integrity: sha512-LA+31JYDJLs82r2ScLrlz1GjSgu66ZV518eyWT+S8VhyQn/JL0u9MeBOvQMGYiPk1DBiSN9DDMOcXvigJZaViQ==} 1034 | engines: {node: '>=12'} 1035 | dependencies: 1036 | '@jridgewell/sourcemap-codec': 1.4.15 1037 | dev: true 1038 | 1039 | /magic-string@0.30.5: 1040 | resolution: {integrity: sha512-7xlpfBaQaP/T6Vh8MO/EqXSW5En6INHEvEXQiuff7Gku0PWjU3uf6w/j9o7O+SpB5fOAkrI5HeoNgwjEO0pFsA==} 1041 | engines: {node: '>=12'} 1042 | dependencies: 1043 | '@jridgewell/sourcemap-codec': 1.4.15 1044 | dev: true 1045 | 1046 | /mime@3.0.0: 1047 | resolution: {integrity: sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==} 1048 | engines: {node: '>=10.0.0'} 1049 | hasBin: true 1050 | dev: true 1051 | 1052 | /minimatch@3.1.2: 1053 | resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} 1054 | dependencies: 1055 | brace-expansion: 1.1.11 1056 | dev: true 1057 | 1058 | /minimatch@5.1.6: 1059 | resolution: {integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==} 1060 | engines: {node: '>=10'} 1061 | dependencies: 1062 | brace-expansion: 2.0.1 1063 | dev: true 1064 | 1065 | /mri@1.2.0: 1066 | resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==} 1067 | engines: {node: '>=4'} 1068 | dev: true 1069 | 1070 | /mrmime@1.0.1: 1071 | resolution: {integrity: sha512-hzzEagAgDyoU1Q6yg5uI+AorQgdvMCur3FcKf7NhMKWsaYg+RnbTyHRa/9IlLF9rf455MOCtcqqrQQ83pPP7Uw==} 1072 | engines: {node: '>=10'} 1073 | dev: true 1074 | 1075 | /ms@2.1.2: 1076 | resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} 1077 | dev: true 1078 | 1079 | /nanoid@3.3.6: 1080 | resolution: {integrity: sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==} 1081 | engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} 1082 | hasBin: true 1083 | dev: true 1084 | 1085 | /natural-compare@1.4.0: 1086 | resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} 1087 | dev: true 1088 | 1089 | /once@1.4.0: 1090 | resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} 1091 | dependencies: 1092 | wrappy: 1.0.2 1093 | dev: true 1094 | 1095 | /optionator@0.9.1: 1096 | resolution: {integrity: sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==} 1097 | engines: {node: '>= 0.8.0'} 1098 | dependencies: 1099 | deep-is: 0.1.4 1100 | fast-levenshtein: 2.0.6 1101 | levn: 0.4.1 1102 | prelude-ls: 1.2.1 1103 | type-check: 0.4.0 1104 | word-wrap: 1.2.3 1105 | dev: true 1106 | 1107 | /p-limit@3.1.0: 1108 | resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} 1109 | engines: {node: '>=10'} 1110 | dependencies: 1111 | yocto-queue: 0.1.0 1112 | dev: true 1113 | 1114 | /p-locate@5.0.0: 1115 | resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} 1116 | engines: {node: '>=10'} 1117 | dependencies: 1118 | p-limit: 3.1.0 1119 | dev: true 1120 | 1121 | /parent-module@1.0.1: 1122 | resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} 1123 | engines: {node: '>=6'} 1124 | dependencies: 1125 | callsites: 3.1.0 1126 | dev: true 1127 | 1128 | /path-exists@4.0.0: 1129 | resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} 1130 | engines: {node: '>=8'} 1131 | dev: true 1132 | 1133 | /path-is-absolute@1.0.1: 1134 | resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} 1135 | engines: {node: '>=0.10.0'} 1136 | dev: true 1137 | 1138 | /path-key@3.1.1: 1139 | resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} 1140 | engines: {node: '>=8'} 1141 | dev: true 1142 | 1143 | /path-parse@1.0.7: 1144 | resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} 1145 | dev: true 1146 | 1147 | /picocolors@1.0.0: 1148 | resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} 1149 | dev: true 1150 | 1151 | /picomatch@2.3.1: 1152 | resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} 1153 | engines: {node: '>=8.6'} 1154 | dev: true 1155 | 1156 | /playwright-core@1.35.0: 1157 | resolution: {integrity: sha512-muMXyPmIx/2DPrCHOD1H1ePT01o7OdKxKj2ebmCAYvqhUy+Y1bpal7B0rdoxros7YrXI294JT/DWw2LqyiqTPA==} 1158 | engines: {node: '>=16'} 1159 | hasBin: true 1160 | dev: true 1161 | 1162 | /postcss@8.4.24: 1163 | resolution: {integrity: sha512-M0RzbcI0sO/XJNucsGjvWU9ERWxb/ytp1w6dKtxTKgixdtQDq4rmx/g8W1hnaheq9jgwL/oyEdH5Bc4WwJKMqg==} 1164 | engines: {node: ^10 || ^12 || >=14} 1165 | dependencies: 1166 | nanoid: 3.3.6 1167 | picocolors: 1.0.0 1168 | source-map-js: 1.0.2 1169 | dev: true 1170 | 1171 | /prelude-ls@1.2.1: 1172 | resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} 1173 | engines: {node: '>= 0.8.0'} 1174 | dev: true 1175 | 1176 | /prettier-plugin-svelte@2.10.1(prettier@2.8.8)(svelte@3.59.1): 1177 | resolution: {integrity: sha512-Wlq7Z5v2ueCubWo0TZzKc9XHcm7TDxqcuzRuGd0gcENfzfT4JZ9yDlCbEgxWgiPmLHkBjfOtpAWkcT28MCDpUQ==} 1178 | peerDependencies: 1179 | prettier: ^1.16.4 || ^2.0.0 1180 | svelte: ^3.2.0 || ^4.0.0-next.0 1181 | dependencies: 1182 | prettier: 2.8.8 1183 | svelte: 3.59.1 1184 | dev: true 1185 | 1186 | /prettier@2.8.8: 1187 | resolution: {integrity: sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==} 1188 | engines: {node: '>=10.13.0'} 1189 | hasBin: true 1190 | dev: true 1191 | 1192 | /punycode@2.3.0: 1193 | resolution: {integrity: sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==} 1194 | engines: {node: '>=6'} 1195 | dev: true 1196 | 1197 | /queue-microtask@1.2.3: 1198 | resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} 1199 | dev: true 1200 | 1201 | /resolve-from@4.0.0: 1202 | resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} 1203 | engines: {node: '>=4'} 1204 | dev: true 1205 | 1206 | /resolve@1.22.2: 1207 | resolution: {integrity: sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==} 1208 | hasBin: true 1209 | dependencies: 1210 | is-core-module: 2.12.1 1211 | path-parse: 1.0.7 1212 | supports-preserve-symlinks-flag: 1.0.0 1213 | dev: true 1214 | 1215 | /reusify@1.0.4: 1216 | resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} 1217 | engines: {iojs: '>=1.0.0', node: '>=0.10.0'} 1218 | dev: true 1219 | 1220 | /rimraf@3.0.2: 1221 | resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} 1222 | hasBin: true 1223 | dependencies: 1224 | glob: 7.2.3 1225 | dev: true 1226 | 1227 | /rollup@3.24.0: 1228 | resolution: {integrity: sha512-OgraHOIg2YpHQTjl0/ymWfFNBEyPucB7lmhXrQUh38qNOegxLapSPFs9sNr0qKR75awW41D93XafoR2QfhBdUQ==} 1229 | engines: {node: '>=14.18.0', npm: '>=8.0.0'} 1230 | hasBin: true 1231 | optionalDependencies: 1232 | fsevents: 2.3.2 1233 | dev: true 1234 | 1235 | /run-parallel@1.2.0: 1236 | resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} 1237 | dependencies: 1238 | queue-microtask: 1.2.3 1239 | dev: true 1240 | 1241 | /sade@1.8.1: 1242 | resolution: {integrity: sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==} 1243 | engines: {node: '>=6'} 1244 | dependencies: 1245 | mri: 1.2.0 1246 | dev: true 1247 | 1248 | /set-cookie-parser@2.6.0: 1249 | resolution: {integrity: sha512-RVnVQxTXuerk653XfuliOxBP81Sf0+qfQE73LIYKcyMYHG94AuH0kgrQpRDuTZnSmjpysHmzxJXKNfa6PjFhyQ==} 1250 | dev: true 1251 | 1252 | /shebang-command@2.0.0: 1253 | resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} 1254 | engines: {node: '>=8'} 1255 | dependencies: 1256 | shebang-regex: 3.0.0 1257 | dev: true 1258 | 1259 | /shebang-regex@3.0.0: 1260 | resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} 1261 | engines: {node: '>=8'} 1262 | dev: true 1263 | 1264 | /sirv@2.0.3: 1265 | resolution: {integrity: sha512-O9jm9BsID1P+0HOi81VpXPoDxYP374pkOLzACAoyUQ/3OUVndNpsz6wMnY2z+yOxzbllCKZrM+9QrWsv4THnyA==} 1266 | engines: {node: '>= 10'} 1267 | dependencies: 1268 | '@polka/url': 1.0.0-next.21 1269 | mrmime: 1.0.1 1270 | totalist: 3.0.1 1271 | dev: true 1272 | 1273 | /source-map-js@1.0.2: 1274 | resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==} 1275 | engines: {node: '>=0.10.0'} 1276 | dev: true 1277 | 1278 | /streamsearch@1.1.0: 1279 | resolution: {integrity: sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==} 1280 | engines: {node: '>=10.0.0'} 1281 | dev: true 1282 | 1283 | /strip-ansi@6.0.1: 1284 | resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} 1285 | engines: {node: '>=8'} 1286 | dependencies: 1287 | ansi-regex: 5.0.1 1288 | dev: true 1289 | 1290 | /strip-json-comments@3.1.1: 1291 | resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} 1292 | engines: {node: '>=8'} 1293 | dev: true 1294 | 1295 | /supports-color@7.2.0: 1296 | resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} 1297 | engines: {node: '>=8'} 1298 | dependencies: 1299 | has-flag: 4.0.0 1300 | dev: true 1301 | 1302 | /supports-preserve-symlinks-flag@1.0.0: 1303 | resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} 1304 | engines: {node: '>= 0.4'} 1305 | dev: true 1306 | 1307 | /svelte-hmr@0.15.2(svelte@3.59.1): 1308 | resolution: {integrity: sha512-q/bAruCvFLwvNbeE1x3n37TYFb3mTBJ6TrCq6p2CoFbSTNhDE9oAtEfpy+wmc9So8AG0Tja+X0/mJzX9tSfvIg==} 1309 | engines: {node: ^12.20 || ^14.13.1 || >= 16} 1310 | peerDependencies: 1311 | svelte: ^3.19.0 || ^4.0.0-next.0 1312 | dependencies: 1313 | svelte: 3.59.1 1314 | dev: true 1315 | 1316 | /svelte@3.59.1: 1317 | resolution: {integrity: sha512-pKj8fEBmqf6mq3/NfrB9SLtcJcUvjYSWyePlfCqN9gujLB25RitWK8PvFzlwim6hD/We35KbPlRteuA6rnPGcQ==} 1318 | engines: {node: '>= 8'} 1319 | dev: true 1320 | 1321 | /text-table@0.2.0: 1322 | resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} 1323 | dev: true 1324 | 1325 | /tiny-glob@0.2.9: 1326 | resolution: {integrity: sha512-g/55ssRPUjShh+xkfx9UPDXqhckHEsHr4Vd9zX55oSdGZc/MD0m3sferOkwWtp98bv+kcVfEHtRJgBVJzelrzg==} 1327 | dependencies: 1328 | globalyzer: 0.1.0 1329 | globrex: 0.1.2 1330 | dev: true 1331 | 1332 | /totalist@3.0.1: 1333 | resolution: {integrity: sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==} 1334 | engines: {node: '>=6'} 1335 | dev: true 1336 | 1337 | /type-check@0.4.0: 1338 | resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} 1339 | engines: {node: '>= 0.8.0'} 1340 | dependencies: 1341 | prelude-ls: 1.2.1 1342 | dev: true 1343 | 1344 | /type-fest@0.20.2: 1345 | resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} 1346 | engines: {node: '>=10'} 1347 | dev: true 1348 | 1349 | /undici@5.22.1: 1350 | resolution: {integrity: sha512-Ji2IJhFXZY0x/0tVBXeQwgPlLWw13GVzpsWPQ3rV50IFMMof2I55PZZxtm4P6iNq+L5znYN9nSTAq0ZyE6lSJw==} 1351 | engines: {node: '>=14.0'} 1352 | dependencies: 1353 | busboy: 1.6.0 1354 | dev: true 1355 | 1356 | /uri-js@4.4.1: 1357 | resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} 1358 | dependencies: 1359 | punycode: 2.3.0 1360 | dev: true 1361 | 1362 | /vite@4.3.9: 1363 | resolution: {integrity: sha512-qsTNZjO9NoJNW7KnOrgYwczm0WctJ8m/yqYAMAK9Lxt4SoySUfS5S8ia9K7JHpa3KEeMfyF8LoJ3c5NeBJy6pg==} 1364 | engines: {node: ^14.18.0 || >=16.0.0} 1365 | hasBin: true 1366 | peerDependencies: 1367 | '@types/node': '>= 14' 1368 | less: '*' 1369 | sass: '*' 1370 | stylus: '*' 1371 | sugarss: '*' 1372 | terser: ^5.4.0 1373 | peerDependenciesMeta: 1374 | '@types/node': 1375 | optional: true 1376 | less: 1377 | optional: true 1378 | sass: 1379 | optional: true 1380 | stylus: 1381 | optional: true 1382 | sugarss: 1383 | optional: true 1384 | terser: 1385 | optional: true 1386 | dependencies: 1387 | esbuild: 0.17.19 1388 | postcss: 8.4.24 1389 | rollup: 3.24.0 1390 | optionalDependencies: 1391 | fsevents: 2.3.2 1392 | dev: true 1393 | 1394 | /vitefu@0.2.4(vite@4.3.9): 1395 | resolution: {integrity: sha512-fanAXjSaf9xXtOOeno8wZXIhgia+CZury481LsDaV++lSvcU2R9Ch2bPh3PYFyoHW+w9LqAeYRISVQjUIew14g==} 1396 | peerDependencies: 1397 | vite: ^3.0.0 || ^4.0.0 1398 | peerDependenciesMeta: 1399 | vite: 1400 | optional: true 1401 | dependencies: 1402 | vite: 4.3.9 1403 | dev: true 1404 | 1405 | /which@2.0.2: 1406 | resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} 1407 | engines: {node: '>= 8'} 1408 | hasBin: true 1409 | dependencies: 1410 | isexe: 2.0.0 1411 | dev: true 1412 | 1413 | /word-wrap@1.2.3: 1414 | resolution: {integrity: sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==} 1415 | engines: {node: '>=0.10.0'} 1416 | dev: true 1417 | 1418 | /wrappy@1.0.2: 1419 | resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} 1420 | dev: true 1421 | 1422 | /yocto-queue@0.1.0: 1423 | resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} 1424 | engines: {node: '>=10'} 1425 | dev: true 1426 | -------------------------------------------------------------------------------- /examples/node-build/src/app.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | %sveltekit.head% 8 | 9 | 10 |
%sveltekit.body%
11 | 12 | 13 | -------------------------------------------------------------------------------- /examples/node-build/src/routes/+server.ts: -------------------------------------------------------------------------------- 1 | import { ImageResponse } from '@ethercorps/sveltekit-og'; 2 | import type { RequestHandler } from '@sveltejs/kit'; 3 | 4 | const template = ` 5 |
6 |
7 |

8 | Ready to dive in? 9 | Start your free trial today. 10 |

11 |
12 |
13 | Get started 14 |
15 |
16 | Learn more 17 |
18 |
19 |
20 |
21 | `; 22 | 23 | export const GET: RequestHandler = async ({fetch}) => { 24 | 25 | const fontFile = await fetch('https://og-playground.vercel.app/inter-latin-ext-400-normal.woff'); 26 | const fontData: ArrayBuffer = await fontFile.arrayBuffer(); 27 | 28 | return new ImageResponse(template, { 29 | height: 400, 30 | width: 800, 31 | fonts: [ 32 | { 33 | name: 'Inter', 34 | data: fontData, 35 | weight: 400 36 | } 37 | ] 38 | }); 39 | }; 40 | -------------------------------------------------------------------------------- /examples/node-build/src/routes/cog/+server.ts: -------------------------------------------------------------------------------- 1 | import OG from './OG.svelte'; 2 | import type { RequestHandler } from '@sveltejs/kit'; 3 | import { ImageResponse } from '@ethercorps/sveltekit-og'; 4 | 5 | export const GET: RequestHandler = async ({fetch}) => { 6 | 7 | const fontFile = await fetch('https://og-playground.vercel.app/inter-latin-ext-700-normal.woff'); 8 | const fontData: ArrayBuffer = await fontFile.arrayBuffer(); 9 | 10 | 11 | return new ImageResponse( 12 | OG, 13 | { 14 | height: 250, 15 | width: 500, 16 | fonts: [ 17 | { 18 | name: 'Inter Latin', 19 | data: fontData, 20 | weight: 700 21 | } 22 | ] 23 | }, 24 | { text: 'Ready to dive in?', spanText: 'Start your free trial today.' }, 25 | ); 26 | }; 27 | -------------------------------------------------------------------------------- /examples/node-build/src/routes/cog/OG.svelte: -------------------------------------------------------------------------------- 1 | 5 | 6 |
7 |
8 |

9 | {text} 10 | {spanText} 11 |

12 |
13 |
14 | Get started 19 |
20 |
21 | Learn more 26 |
27 |
28 |
29 |
30 | -------------------------------------------------------------------------------- /examples/node-build/static/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/etherCorps/sveltekit-og/0cbf2ff812724f2cd8b2f0611d27a677bbdb6ae7/examples/node-build/static/favicon.ico -------------------------------------------------------------------------------- /examples/node-build/static/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/etherCorps/sveltekit-og/0cbf2ff812724f2cd8b2f0611d27a677bbdb6ae7/examples/node-build/static/favicon.png -------------------------------------------------------------------------------- /examples/node-build/svelte.config.js: -------------------------------------------------------------------------------- 1 | import adapter from '@sveltejs/adapter-node'; 2 | 3 | /** @type {import('@sveltejs/kit').Config} */ 4 | const config = { 5 | kit: { 6 | adapter: adapter() 7 | } 8 | }; 9 | 10 | export default config; 11 | -------------------------------------------------------------------------------- /examples/node-build/tests/test.js: -------------------------------------------------------------------------------- 1 | import { expect, test } from '@playwright/test'; 2 | 3 | test('index page has expected h1', async ({ page }) => { 4 | await page.goto('/'); 5 | expect(await page.textContent('h1')).toBe('Welcome to SvelteKit'); 6 | }); 7 | -------------------------------------------------------------------------------- /examples/node-build/vite.config.js: -------------------------------------------------------------------------------- 1 | import { sveltekit } from '@sveltejs/kit/vite'; 2 | 3 | const config = { 4 | plugins: [sveltekit()] 5 | }; 6 | 7 | export default config; 8 | -------------------------------------------------------------------------------- /examples/vercel-build/.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 | -------------------------------------------------------------------------------- /examples/vercel-build/.eslintrc.cjs: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | root: true, 3 | extends: ['eslint:recommended', 'prettier'], 4 | plugins: ['svelte3'], 5 | overrides: [{ files: ['*.svelte'], processor: 'svelte3/svelte3' }], 6 | parserOptions: { 7 | sourceType: 'module', 8 | ecmaVersion: 2020 9 | }, 10 | env: { 11 | browser: true, 12 | es2017: true, 13 | node: true 14 | } 15 | }; 16 | -------------------------------------------------------------------------------- /examples/vercel-build/.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | node_modules 3 | /build 4 | /.svelte-kit 5 | /package 6 | .env 7 | .env.* 8 | !.env.example 9 | .vercel 10 | -------------------------------------------------------------------------------- /examples/vercel-build/.npmrc: -------------------------------------------------------------------------------- 1 | engine-strict=true 2 | -------------------------------------------------------------------------------- /examples/vercel-build/.prettierignore: -------------------------------------------------------------------------------- 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 | -------------------------------------------------------------------------------- /examples/vercel-build/.prettierrc: -------------------------------------------------------------------------------- 1 | { 2 | "useTabs": true, 3 | "singleQuote": true, 4 | "trailingComma": "none", 5 | "printWidth": 100, 6 | "plugins": ["prettier-plugin-svelte"], 7 | "pluginSearchDirs": ["."], 8 | "overrides": [{ "files": "*.svelte", "options": { "parser": "svelte" } }] 9 | } 10 | -------------------------------------------------------------------------------- /examples/vercel-build/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/master/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 | -------------------------------------------------------------------------------- /examples/vercel-build/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "examples", 3 | "version": "0.0.2", 4 | "private": true, 5 | "scripts": { 6 | "dev": "vite dev", 7 | "build": "vite build", 8 | "preview": "vite preview", 9 | "test": "playwright test", 10 | "lint": "prettier --plugin-search-dir . --check . && eslint .", 11 | "format": "prettier --plugin-search-dir . --write ." 12 | }, 13 | "devDependencies": { 14 | "@playwright/test": "^1.34.3", 15 | "@sveltejs/adapter-vercel": "^5.3.1", 16 | "@sveltejs/kit": "^2.0.0", 17 | "@sveltejs/vite-plugin-svelte": "^3.0.0", 18 | "eslint": "^8.42.0", 19 | "eslint-config-prettier": "^8.8.0", 20 | "eslint-plugin-svelte3": "^4.0.0", 21 | "prettier": "^2.8.8", 22 | "prettier-plugin-svelte": "^2.10.1", 23 | "svelte": "^5.0.0-next.153", 24 | "vite": "^5.0.0" 25 | }, 26 | "type": "module", 27 | "dependencies": { 28 | "@ethercorps/sveltekit-og": "link:../../" 29 | } 30 | } -------------------------------------------------------------------------------- /examples/vercel-build/playwright.config.js: -------------------------------------------------------------------------------- 1 | /** @type {import('@playwright/test').PlaywrightTestConfig} */ 2 | const config = { 3 | webServer: { 4 | command: 'npm run build && npm run preview', 5 | port: 4173 6 | } 7 | }; 8 | 9 | export default config; 10 | -------------------------------------------------------------------------------- /examples/vercel-build/pnpm-lock.yaml: -------------------------------------------------------------------------------- 1 | lockfileVersion: '6.0' 2 | 3 | settings: 4 | autoInstallPeers: true 5 | excludeLinksFromLockfile: false 6 | 7 | dependencies: 8 | '@ethercorps/sveltekit-og': 9 | specifier: link:../../ 10 | version: link:../.. 11 | 12 | devDependencies: 13 | '@playwright/test': 14 | specifier: ^1.34.3 15 | version: 1.34.3 16 | '@sveltejs/adapter-vercel': 17 | specifier: ^5.3.1 18 | version: 5.3.1(@sveltejs/kit@2.5.10) 19 | '@sveltejs/kit': 20 | specifier: ^2.0.0 21 | version: 2.5.10(@sveltejs/vite-plugin-svelte@3.1.1)(svelte@5.0.0-next.153)(vite@5.2.13) 22 | '@sveltejs/vite-plugin-svelte': 23 | specifier: ^3.0.0 24 | version: 3.1.1(svelte@5.0.0-next.153)(vite@5.2.13) 25 | eslint: 26 | specifier: ^8.42.0 27 | version: 8.42.0 28 | eslint-config-prettier: 29 | specifier: ^8.8.0 30 | version: 8.8.0(eslint@8.42.0) 31 | eslint-plugin-svelte3: 32 | specifier: ^4.0.0 33 | version: 4.0.0(eslint@8.42.0)(svelte@5.0.0-next.153) 34 | prettier: 35 | specifier: ^2.8.8 36 | version: 2.8.8 37 | prettier-plugin-svelte: 38 | specifier: ^2.10.1 39 | version: 2.10.1(prettier@2.8.8)(svelte@5.0.0-next.153) 40 | svelte: 41 | specifier: ^5.0.0-next.153 42 | version: 5.0.0-next.153 43 | vite: 44 | specifier: ^5.0.0 45 | version: 5.2.13 46 | 47 | packages: 48 | 49 | /@ampproject/remapping@2.3.0: 50 | resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} 51 | engines: {node: '>=6.0.0'} 52 | dependencies: 53 | '@jridgewell/gen-mapping': 0.3.5 54 | '@jridgewell/trace-mapping': 0.3.25 55 | dev: true 56 | 57 | /@esbuild/aix-ppc64@0.20.2: 58 | resolution: {integrity: sha512-D+EBOJHXdNZcLJRBkhENNG8Wji2kgc9AZ9KiPr1JuZjsNtyHzrsfLRrY0tk2H2aoFu6RANO1y1iPPUCDYWkb5g==} 59 | engines: {node: '>=12'} 60 | cpu: [ppc64] 61 | os: [aix] 62 | requiresBuild: true 63 | dev: true 64 | optional: true 65 | 66 | /@esbuild/android-arm64@0.20.2: 67 | resolution: {integrity: sha512-mRzjLacRtl/tWU0SvD8lUEwb61yP9cqQo6noDZP/O8VkwafSYwZ4yWy24kan8jE/IMERpYncRt2dw438LP3Xmg==} 68 | engines: {node: '>=12'} 69 | cpu: [arm64] 70 | os: [android] 71 | requiresBuild: true 72 | dev: true 73 | optional: true 74 | 75 | /@esbuild/android-arm@0.20.2: 76 | resolution: {integrity: sha512-t98Ra6pw2VaDhqNWO2Oph2LXbz/EJcnLmKLGBJwEwXX/JAN83Fym1rU8l0JUWK6HkIbWONCSSatf4sf2NBRx/w==} 77 | engines: {node: '>=12'} 78 | cpu: [arm] 79 | os: [android] 80 | requiresBuild: true 81 | dev: true 82 | optional: true 83 | 84 | /@esbuild/android-x64@0.20.2: 85 | resolution: {integrity: sha512-btzExgV+/lMGDDa194CcUQm53ncxzeBrWJcncOBxuC6ndBkKxnHdFJn86mCIgTELsooUmwUm9FkhSp5HYu00Rg==} 86 | engines: {node: '>=12'} 87 | cpu: [x64] 88 | os: [android] 89 | requiresBuild: true 90 | dev: true 91 | optional: true 92 | 93 | /@esbuild/darwin-arm64@0.20.2: 94 | resolution: {integrity: sha512-4J6IRT+10J3aJH3l1yzEg9y3wkTDgDk7TSDFX+wKFiWjqWp/iCfLIYzGyasx9l0SAFPT1HwSCR+0w/h1ES/MjA==} 95 | engines: {node: '>=12'} 96 | cpu: [arm64] 97 | os: [darwin] 98 | requiresBuild: true 99 | dev: true 100 | optional: true 101 | 102 | /@esbuild/darwin-x64@0.20.2: 103 | resolution: {integrity: sha512-tBcXp9KNphnNH0dfhv8KYkZhjc+H3XBkF5DKtswJblV7KlT9EI2+jeA8DgBjp908WEuYll6pF+UStUCfEpdysA==} 104 | engines: {node: '>=12'} 105 | cpu: [x64] 106 | os: [darwin] 107 | requiresBuild: true 108 | dev: true 109 | optional: true 110 | 111 | /@esbuild/freebsd-arm64@0.20.2: 112 | resolution: {integrity: sha512-d3qI41G4SuLiCGCFGUrKsSeTXyWG6yem1KcGZVS+3FYlYhtNoNgYrWcvkOoaqMhwXSMrZRl69ArHsGJ9mYdbbw==} 113 | engines: {node: '>=12'} 114 | cpu: [arm64] 115 | os: [freebsd] 116 | requiresBuild: true 117 | dev: true 118 | optional: true 119 | 120 | /@esbuild/freebsd-x64@0.20.2: 121 | resolution: {integrity: sha512-d+DipyvHRuqEeM5zDivKV1KuXn9WeRX6vqSqIDgwIfPQtwMP4jaDsQsDncjTDDsExT4lR/91OLjRo8bmC1e+Cw==} 122 | engines: {node: '>=12'} 123 | cpu: [x64] 124 | os: [freebsd] 125 | requiresBuild: true 126 | dev: true 127 | optional: true 128 | 129 | /@esbuild/linux-arm64@0.20.2: 130 | resolution: {integrity: sha512-9pb6rBjGvTFNira2FLIWqDk/uaf42sSyLE8j1rnUpuzsODBq7FvpwHYZxQ/It/8b+QOS1RYfqgGFNLRI+qlq2A==} 131 | engines: {node: '>=12'} 132 | cpu: [arm64] 133 | os: [linux] 134 | requiresBuild: true 135 | dev: true 136 | optional: true 137 | 138 | /@esbuild/linux-arm@0.20.2: 139 | resolution: {integrity: sha512-VhLPeR8HTMPccbuWWcEUD1Az68TqaTYyj6nfE4QByZIQEQVWBB8vup8PpR7y1QHL3CpcF6xd5WVBU/+SBEvGTg==} 140 | engines: {node: '>=12'} 141 | cpu: [arm] 142 | os: [linux] 143 | requiresBuild: true 144 | dev: true 145 | optional: true 146 | 147 | /@esbuild/linux-ia32@0.20.2: 148 | resolution: {integrity: sha512-o10utieEkNPFDZFQm9CoP7Tvb33UutoJqg3qKf1PWVeeJhJw0Q347PxMvBgVVFgouYLGIhFYG0UGdBumROyiig==} 149 | engines: {node: '>=12'} 150 | cpu: [ia32] 151 | os: [linux] 152 | requiresBuild: true 153 | dev: true 154 | optional: true 155 | 156 | /@esbuild/linux-loong64@0.20.2: 157 | resolution: {integrity: sha512-PR7sp6R/UC4CFVomVINKJ80pMFlfDfMQMYynX7t1tNTeivQ6XdX5r2XovMmha/VjR1YN/HgHWsVcTRIMkymrgQ==} 158 | engines: {node: '>=12'} 159 | cpu: [loong64] 160 | os: [linux] 161 | requiresBuild: true 162 | dev: true 163 | optional: true 164 | 165 | /@esbuild/linux-mips64el@0.20.2: 166 | resolution: {integrity: sha512-4BlTqeutE/KnOiTG5Y6Sb/Hw6hsBOZapOVF6njAESHInhlQAghVVZL1ZpIctBOoTFbQyGW+LsVYZ8lSSB3wkjA==} 167 | engines: {node: '>=12'} 168 | cpu: [mips64el] 169 | os: [linux] 170 | requiresBuild: true 171 | dev: true 172 | optional: true 173 | 174 | /@esbuild/linux-ppc64@0.20.2: 175 | resolution: {integrity: sha512-rD3KsaDprDcfajSKdn25ooz5J5/fWBylaaXkuotBDGnMnDP1Uv5DLAN/45qfnf3JDYyJv/ytGHQaziHUdyzaAg==} 176 | engines: {node: '>=12'} 177 | cpu: [ppc64] 178 | os: [linux] 179 | requiresBuild: true 180 | dev: true 181 | optional: true 182 | 183 | /@esbuild/linux-riscv64@0.20.2: 184 | resolution: {integrity: sha512-snwmBKacKmwTMmhLlz/3aH1Q9T8v45bKYGE3j26TsaOVtjIag4wLfWSiZykXzXuE1kbCE+zJRmwp+ZbIHinnVg==} 185 | engines: {node: '>=12'} 186 | cpu: [riscv64] 187 | os: [linux] 188 | requiresBuild: true 189 | dev: true 190 | optional: true 191 | 192 | /@esbuild/linux-s390x@0.20.2: 193 | resolution: {integrity: sha512-wcWISOobRWNm3cezm5HOZcYz1sKoHLd8VL1dl309DiixxVFoFe/o8HnwuIwn6sXre88Nwj+VwZUvJf4AFxkyrQ==} 194 | engines: {node: '>=12'} 195 | cpu: [s390x] 196 | os: [linux] 197 | requiresBuild: true 198 | dev: true 199 | optional: true 200 | 201 | /@esbuild/linux-x64@0.20.2: 202 | resolution: {integrity: sha512-1MdwI6OOTsfQfek8sLwgyjOXAu+wKhLEoaOLTjbijk6E2WONYpH9ZU2mNtR+lZ2B4uwr+usqGuVfFT9tMtGvGw==} 203 | engines: {node: '>=12'} 204 | cpu: [x64] 205 | os: [linux] 206 | requiresBuild: true 207 | dev: true 208 | optional: true 209 | 210 | /@esbuild/netbsd-x64@0.20.2: 211 | resolution: {integrity: sha512-K8/DhBxcVQkzYc43yJXDSyjlFeHQJBiowJ0uVL6Tor3jGQfSGHNNJcWxNbOI8v5k82prYqzPuwkzHt3J1T1iZQ==} 212 | engines: {node: '>=12'} 213 | cpu: [x64] 214 | os: [netbsd] 215 | requiresBuild: true 216 | dev: true 217 | optional: true 218 | 219 | /@esbuild/openbsd-x64@0.20.2: 220 | resolution: {integrity: sha512-eMpKlV0SThJmmJgiVyN9jTPJ2VBPquf6Kt/nAoo6DgHAoN57K15ZghiHaMvqjCye/uU4X5u3YSMgVBI1h3vKrQ==} 221 | engines: {node: '>=12'} 222 | cpu: [x64] 223 | os: [openbsd] 224 | requiresBuild: true 225 | dev: true 226 | optional: true 227 | 228 | /@esbuild/sunos-x64@0.20.2: 229 | resolution: {integrity: sha512-2UyFtRC6cXLyejf/YEld4Hajo7UHILetzE1vsRcGL3earZEW77JxrFjH4Ez2qaTiEfMgAXxfAZCm1fvM/G/o8w==} 230 | engines: {node: '>=12'} 231 | cpu: [x64] 232 | os: [sunos] 233 | requiresBuild: true 234 | dev: true 235 | optional: true 236 | 237 | /@esbuild/win32-arm64@0.20.2: 238 | resolution: {integrity: sha512-GRibxoawM9ZCnDxnP3usoUDO9vUkpAxIIZ6GQI+IlVmr5kP3zUq+l17xELTHMWTWzjxa2guPNyrpq1GWmPvcGQ==} 239 | engines: {node: '>=12'} 240 | cpu: [arm64] 241 | os: [win32] 242 | requiresBuild: true 243 | dev: true 244 | optional: true 245 | 246 | /@esbuild/win32-ia32@0.20.2: 247 | resolution: {integrity: sha512-HfLOfn9YWmkSKRQqovpnITazdtquEW8/SoHW7pWpuEeguaZI4QnCRW6b+oZTztdBnZOS2hqJ6im/D5cPzBTTlQ==} 248 | engines: {node: '>=12'} 249 | cpu: [ia32] 250 | os: [win32] 251 | requiresBuild: true 252 | dev: true 253 | optional: true 254 | 255 | /@esbuild/win32-x64@0.20.2: 256 | resolution: {integrity: sha512-N49X4lJX27+l9jbLKSqZ6bKNjzQvHaT8IIFUy+YIqmXQdjYCToGWwOItDrfby14c78aDd5NHQl29xingXfCdLQ==} 257 | engines: {node: '>=12'} 258 | cpu: [x64] 259 | os: [win32] 260 | requiresBuild: true 261 | dev: true 262 | optional: true 263 | 264 | /@eslint-community/eslint-utils@4.4.0(eslint@8.42.0): 265 | resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} 266 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 267 | peerDependencies: 268 | eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 269 | dependencies: 270 | eslint: 8.42.0 271 | eslint-visitor-keys: 3.4.1 272 | dev: true 273 | 274 | /@eslint-community/regexpp@4.5.1: 275 | resolution: {integrity: sha512-Z5ba73P98O1KUYCCJTUeVpja9RcGoMdncZ6T49FCUl2lN38JtCJ+3WgIDBv0AuY4WChU5PmtJmOCTlN6FZTFKQ==} 276 | engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} 277 | dev: true 278 | 279 | /@eslint/eslintrc@2.0.3: 280 | resolution: {integrity: sha512-+5gy6OQfk+xx3q0d6jGZZC3f3KzAkXc/IanVxd1is/VIIziRqqt3ongQz0FiTUXqTk0c7aDB3OaFuKnuSoJicQ==} 281 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 282 | dependencies: 283 | ajv: 6.12.6 284 | debug: 4.3.4 285 | espree: 9.5.2 286 | globals: 13.20.0 287 | ignore: 5.2.4 288 | import-fresh: 3.3.0 289 | js-yaml: 4.1.0 290 | minimatch: 3.1.2 291 | strip-json-comments: 3.1.1 292 | transitivePeerDependencies: 293 | - supports-color 294 | dev: true 295 | 296 | /@eslint/js@8.42.0: 297 | resolution: {integrity: sha512-6SWlXpWU5AvId8Ac7zjzmIOqMOba/JWY8XZ4A7q7Gn1Vlfg/SFFIlrtHXt9nPn4op9ZPAkl91Jao+QQv3r/ukw==} 298 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 299 | dev: true 300 | 301 | /@humanwhocodes/config-array@0.11.10: 302 | resolution: {integrity: sha512-KVVjQmNUepDVGXNuoRRdmmEjruj0KfiGSbS8LVc12LMsWDQzRXJ0qdhN8L8uUigKpfEHRhlaQFY0ib1tnUbNeQ==} 303 | engines: {node: '>=10.10.0'} 304 | dependencies: 305 | '@humanwhocodes/object-schema': 1.2.1 306 | debug: 4.3.4 307 | minimatch: 3.1.2 308 | transitivePeerDependencies: 309 | - supports-color 310 | dev: true 311 | 312 | /@humanwhocodes/module-importer@1.0.1: 313 | resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} 314 | engines: {node: '>=12.22'} 315 | dev: true 316 | 317 | /@humanwhocodes/object-schema@1.2.1: 318 | resolution: {integrity: sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==} 319 | dev: true 320 | 321 | /@jridgewell/gen-mapping@0.3.5: 322 | resolution: {integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==} 323 | engines: {node: '>=6.0.0'} 324 | dependencies: 325 | '@jridgewell/set-array': 1.2.1 326 | '@jridgewell/sourcemap-codec': 1.4.15 327 | '@jridgewell/trace-mapping': 0.3.25 328 | dev: true 329 | 330 | /@jridgewell/resolve-uri@3.1.2: 331 | resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} 332 | engines: {node: '>=6.0.0'} 333 | dev: true 334 | 335 | /@jridgewell/set-array@1.2.1: 336 | resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==} 337 | engines: {node: '>=6.0.0'} 338 | dev: true 339 | 340 | /@jridgewell/sourcemap-codec@1.4.15: 341 | resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} 342 | dev: true 343 | 344 | /@jridgewell/trace-mapping@0.3.25: 345 | resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} 346 | dependencies: 347 | '@jridgewell/resolve-uri': 3.1.2 348 | '@jridgewell/sourcemap-codec': 1.4.15 349 | dev: true 350 | 351 | /@mapbox/node-pre-gyp@1.0.10: 352 | resolution: {integrity: sha512-4ySo4CjzStuprMwk35H5pPbkymjv1SF3jGLj6rAHp/xT/RF7TL7bd9CTm1xDY49K2qF7jmR/g7k+SkLETP6opA==} 353 | hasBin: true 354 | dependencies: 355 | detect-libc: 2.0.1 356 | https-proxy-agent: 5.0.1 357 | make-dir: 3.1.0 358 | node-fetch: 2.6.11 359 | nopt: 5.0.0 360 | npmlog: 5.0.1 361 | rimraf: 3.0.2 362 | semver: 7.5.1 363 | tar: 6.1.15 364 | transitivePeerDependencies: 365 | - encoding 366 | - supports-color 367 | dev: true 368 | 369 | /@nodelib/fs.scandir@2.1.5: 370 | resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} 371 | engines: {node: '>= 8'} 372 | dependencies: 373 | '@nodelib/fs.stat': 2.0.5 374 | run-parallel: 1.2.0 375 | dev: true 376 | 377 | /@nodelib/fs.stat@2.0.5: 378 | resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} 379 | engines: {node: '>= 8'} 380 | dev: true 381 | 382 | /@nodelib/fs.walk@1.2.8: 383 | resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} 384 | engines: {node: '>= 8'} 385 | dependencies: 386 | '@nodelib/fs.scandir': 2.1.5 387 | fastq: 1.15.0 388 | dev: true 389 | 390 | /@playwright/test@1.34.3: 391 | resolution: {integrity: sha512-zPLef6w9P6T/iT6XDYG3mvGOqOyb6eHaV9XtkunYs0+OzxBtrPAAaHotc0X+PJ00WPPnLfFBTl7mf45Mn8DBmw==} 392 | engines: {node: '>=14'} 393 | hasBin: true 394 | dependencies: 395 | '@types/node': 20.2.5 396 | playwright-core: 1.34.3 397 | optionalDependencies: 398 | fsevents: 2.3.2 399 | dev: true 400 | 401 | /@polka/url@1.0.0-next.25: 402 | resolution: {integrity: sha512-j7P6Rgr3mmtdkeDGTe0E/aYyWEWVtc5yFXtHCRHs28/jptDEWfaVOc5T7cblqy1XKPPfCxJc/8DwQ5YgLOZOVQ==} 403 | dev: true 404 | 405 | /@rollup/pluginutils@4.2.1: 406 | resolution: {integrity: sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ==} 407 | engines: {node: '>= 8.0.0'} 408 | dependencies: 409 | estree-walker: 2.0.2 410 | picomatch: 2.3.1 411 | dev: true 412 | 413 | /@rollup/rollup-android-arm-eabi@4.18.0: 414 | resolution: {integrity: sha512-Tya6xypR10giZV1XzxmH5wr25VcZSncG0pZIjfePT0OVBvqNEurzValetGNarVrGiq66EBVAFn15iYX4w6FKgQ==} 415 | cpu: [arm] 416 | os: [android] 417 | requiresBuild: true 418 | dev: true 419 | optional: true 420 | 421 | /@rollup/rollup-android-arm64@4.18.0: 422 | resolution: {integrity: sha512-avCea0RAP03lTsDhEyfy+hpfr85KfyTctMADqHVhLAF3MlIkq83CP8UfAHUssgXTYd+6er6PaAhx/QGv4L1EiA==} 423 | cpu: [arm64] 424 | os: [android] 425 | requiresBuild: true 426 | dev: true 427 | optional: true 428 | 429 | /@rollup/rollup-darwin-arm64@4.18.0: 430 | resolution: {integrity: sha512-IWfdwU7KDSm07Ty0PuA/W2JYoZ4iTj3TUQjkVsO/6U+4I1jN5lcR71ZEvRh52sDOERdnNhhHU57UITXz5jC1/w==} 431 | cpu: [arm64] 432 | os: [darwin] 433 | requiresBuild: true 434 | dev: true 435 | optional: true 436 | 437 | /@rollup/rollup-darwin-x64@4.18.0: 438 | resolution: {integrity: sha512-n2LMsUz7Ynu7DoQrSQkBf8iNrjOGyPLrdSg802vk6XT3FtsgX6JbE8IHRvposskFm9SNxzkLYGSq9QdpLYpRNA==} 439 | cpu: [x64] 440 | os: [darwin] 441 | requiresBuild: true 442 | dev: true 443 | optional: true 444 | 445 | /@rollup/rollup-linux-arm-gnueabihf@4.18.0: 446 | resolution: {integrity: sha512-C/zbRYRXFjWvz9Z4haRxcTdnkPt1BtCkz+7RtBSuNmKzMzp3ZxdM28Mpccn6pt28/UWUCTXa+b0Mx1k3g6NOMA==} 447 | cpu: [arm] 448 | os: [linux] 449 | requiresBuild: true 450 | dev: true 451 | optional: true 452 | 453 | /@rollup/rollup-linux-arm-musleabihf@4.18.0: 454 | resolution: {integrity: sha512-l3m9ewPgjQSXrUMHg93vt0hYCGnrMOcUpTz6FLtbwljo2HluS4zTXFy2571YQbisTnfTKPZ01u/ukJdQTLGh9A==} 455 | cpu: [arm] 456 | os: [linux] 457 | requiresBuild: true 458 | dev: true 459 | optional: true 460 | 461 | /@rollup/rollup-linux-arm64-gnu@4.18.0: 462 | resolution: {integrity: sha512-rJ5D47d8WD7J+7STKdCUAgmQk49xuFrRi9pZkWoRD1UeSMakbcepWXPF8ycChBoAqs1pb2wzvbY6Q33WmN2ftw==} 463 | cpu: [arm64] 464 | os: [linux] 465 | requiresBuild: true 466 | dev: true 467 | optional: true 468 | 469 | /@rollup/rollup-linux-arm64-musl@4.18.0: 470 | resolution: {integrity: sha512-be6Yx37b24ZwxQ+wOQXXLZqpq4jTckJhtGlWGZs68TgdKXJgw54lUUoFYrg6Zs/kjzAQwEwYbp8JxZVzZLRepQ==} 471 | cpu: [arm64] 472 | os: [linux] 473 | requiresBuild: true 474 | dev: true 475 | optional: true 476 | 477 | /@rollup/rollup-linux-powerpc64le-gnu@4.18.0: 478 | resolution: {integrity: sha512-hNVMQK+qrA9Todu9+wqrXOHxFiD5YmdEi3paj6vP02Kx1hjd2LLYR2eaN7DsEshg09+9uzWi2W18MJDlG0cxJA==} 479 | cpu: [ppc64] 480 | os: [linux] 481 | requiresBuild: true 482 | dev: true 483 | optional: true 484 | 485 | /@rollup/rollup-linux-riscv64-gnu@4.18.0: 486 | resolution: {integrity: sha512-ROCM7i+m1NfdrsmvwSzoxp9HFtmKGHEqu5NNDiZWQtXLA8S5HBCkVvKAxJ8U+CVctHwV2Gb5VUaK7UAkzhDjlg==} 487 | cpu: [riscv64] 488 | os: [linux] 489 | requiresBuild: true 490 | dev: true 491 | optional: true 492 | 493 | /@rollup/rollup-linux-s390x-gnu@4.18.0: 494 | resolution: {integrity: sha512-0UyyRHyDN42QL+NbqevXIIUnKA47A+45WyasO+y2bGJ1mhQrfrtXUpTxCOrfxCR4esV3/RLYyucGVPiUsO8xjg==} 495 | cpu: [s390x] 496 | os: [linux] 497 | requiresBuild: true 498 | dev: true 499 | optional: true 500 | 501 | /@rollup/rollup-linux-x64-gnu@4.18.0: 502 | resolution: {integrity: sha512-xuglR2rBVHA5UsI8h8UbX4VJ470PtGCf5Vpswh7p2ukaqBGFTnsfzxUBetoWBWymHMxbIG0Cmx7Y9qDZzr648w==} 503 | cpu: [x64] 504 | os: [linux] 505 | requiresBuild: true 506 | dev: true 507 | optional: true 508 | 509 | /@rollup/rollup-linux-x64-musl@4.18.0: 510 | resolution: {integrity: sha512-LKaqQL9osY/ir2geuLVvRRs+utWUNilzdE90TpyoX0eNqPzWjRm14oMEE+YLve4k/NAqCdPkGYDaDF5Sw+xBfg==} 511 | cpu: [x64] 512 | os: [linux] 513 | requiresBuild: true 514 | dev: true 515 | optional: true 516 | 517 | /@rollup/rollup-win32-arm64-msvc@4.18.0: 518 | resolution: {integrity: sha512-7J6TkZQFGo9qBKH0pk2cEVSRhJbL6MtfWxth7Y5YmZs57Pi+4x6c2dStAUvaQkHQLnEQv1jzBUW43GvZW8OFqA==} 519 | cpu: [arm64] 520 | os: [win32] 521 | requiresBuild: true 522 | dev: true 523 | optional: true 524 | 525 | /@rollup/rollup-win32-ia32-msvc@4.18.0: 526 | resolution: {integrity: sha512-Txjh+IxBPbkUB9+SXZMpv+b/vnTEtFyfWZgJ6iyCmt2tdx0OF5WhFowLmnh8ENGNpfUlUZkdI//4IEmhwPieNg==} 527 | cpu: [ia32] 528 | os: [win32] 529 | requiresBuild: true 530 | dev: true 531 | optional: true 532 | 533 | /@rollup/rollup-win32-x64-msvc@4.18.0: 534 | resolution: {integrity: sha512-UOo5FdvOL0+eIVTgS4tIdbW+TtnBLWg1YBCcU2KWM7nuNwRz9bksDX1bekJJCpu25N1DVWaCwnT39dVQxzqS8g==} 535 | cpu: [x64] 536 | os: [win32] 537 | requiresBuild: true 538 | dev: true 539 | optional: true 540 | 541 | /@sveltejs/adapter-vercel@5.3.1(@sveltejs/kit@2.5.10): 542 | resolution: {integrity: sha512-0iz+Y2ZWM1royXNkNS4TGNYFsMazRckYN+GrJsRq1utzss1Xfoax7C5eafzrsQLPitoLeXBgE31K5abrJ7UgxA==} 543 | peerDependencies: 544 | '@sveltejs/kit': ^2.4.0 545 | dependencies: 546 | '@sveltejs/kit': 2.5.10(@sveltejs/vite-plugin-svelte@3.1.1)(svelte@5.0.0-next.153)(vite@5.2.13) 547 | '@vercel/nft': 0.27.2 548 | esbuild: 0.20.2 549 | transitivePeerDependencies: 550 | - encoding 551 | - supports-color 552 | dev: true 553 | 554 | /@sveltejs/kit@2.5.10(@sveltejs/vite-plugin-svelte@3.1.1)(svelte@5.0.0-next.153)(vite@5.2.13): 555 | resolution: {integrity: sha512-OqoyTmFG2cYmCFAdBfW+Qxbg8m23H4dv6KqwEt7ofr/ROcfcIl3Z/VT56L22H9f0uNZyr+9Bs1eh2gedOCK9kA==} 556 | engines: {node: '>=18.13'} 557 | hasBin: true 558 | requiresBuild: true 559 | peerDependencies: 560 | '@sveltejs/vite-plugin-svelte': ^3.0.0 561 | svelte: ^4.0.0 || ^5.0.0-next.0 562 | vite: ^5.0.3 563 | dependencies: 564 | '@sveltejs/vite-plugin-svelte': 3.1.1(svelte@5.0.0-next.153)(vite@5.2.13) 565 | '@types/cookie': 0.6.0 566 | cookie: 0.6.0 567 | devalue: 5.0.0 568 | esm-env: 1.0.0 569 | import-meta-resolve: 4.1.0 570 | kleur: 4.1.5 571 | magic-string: 0.30.10 572 | mrmime: 2.0.0 573 | sade: 1.8.1 574 | set-cookie-parser: 2.6.0 575 | sirv: 2.0.4 576 | svelte: 5.0.0-next.153 577 | tiny-glob: 0.2.9 578 | vite: 5.2.13 579 | dev: true 580 | 581 | /@sveltejs/vite-plugin-svelte-inspector@2.1.0(@sveltejs/vite-plugin-svelte@3.1.1)(svelte@5.0.0-next.153)(vite@5.2.13): 582 | resolution: {integrity: sha512-9QX28IymvBlSCqsCll5t0kQVxipsfhFFL+L2t3nTWfXnddYwxBuAEtTtlaVQpRz9c37BhJjltSeY4AJSC03SSg==} 583 | engines: {node: ^18.0.0 || >=20} 584 | peerDependencies: 585 | '@sveltejs/vite-plugin-svelte': ^3.0.0 586 | svelte: ^4.0.0 || ^5.0.0-next.0 587 | vite: ^5.0.0 588 | dependencies: 589 | '@sveltejs/vite-plugin-svelte': 3.1.1(svelte@5.0.0-next.153)(vite@5.2.13) 590 | debug: 4.3.4 591 | svelte: 5.0.0-next.153 592 | vite: 5.2.13 593 | transitivePeerDependencies: 594 | - supports-color 595 | dev: true 596 | 597 | /@sveltejs/vite-plugin-svelte@3.1.1(svelte@5.0.0-next.153)(vite@5.2.13): 598 | resolution: {integrity: sha512-rimpFEAboBBHIlzISibg94iP09k/KYdHgVhJlcsTfn7KMBhc70jFX/GRWkRdFCc2fdnk+4+Bdfej23cMDnJS6A==} 599 | engines: {node: ^18.0.0 || >=20} 600 | peerDependencies: 601 | svelte: ^4.0.0 || ^5.0.0-next.0 602 | vite: ^5.0.0 603 | dependencies: 604 | '@sveltejs/vite-plugin-svelte-inspector': 2.1.0(@sveltejs/vite-plugin-svelte@3.1.1)(svelte@5.0.0-next.153)(vite@5.2.13) 605 | debug: 4.3.4 606 | deepmerge: 4.3.1 607 | kleur: 4.1.5 608 | magic-string: 0.30.10 609 | svelte: 5.0.0-next.153 610 | svelte-hmr: 0.16.0(svelte@5.0.0-next.153) 611 | vite: 5.2.13 612 | vitefu: 0.2.5(vite@5.2.13) 613 | transitivePeerDependencies: 614 | - supports-color 615 | dev: true 616 | 617 | /@types/cookie@0.6.0: 618 | resolution: {integrity: sha512-4Kh9a6B2bQciAhf7FSuMRRkUWecJgJu9nPnx3yzpsfXX/c50REIqpHY4C82bXP90qrLtXtkDxTZosYO3UpOwlA==} 619 | dev: true 620 | 621 | /@types/estree@1.0.5: 622 | resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} 623 | dev: true 624 | 625 | /@types/node@20.2.5: 626 | resolution: {integrity: sha512-JJulVEQXmiY9Px5axXHeYGLSjhkZEnD+MDPDGbCbIAbMslkKwmygtZFy1X6s/075Yo94sf8GuSlFfPzysQrWZQ==} 627 | dev: true 628 | 629 | /@vercel/nft@0.27.2: 630 | resolution: {integrity: sha512-7LeioS1yE5hwPpQfD3DdH04tuugKjo5KrJk3yK5kAI3Lh76iSsK/ezoFQfzuT08X3ZASQOd1y9ePjLNI9+TxTQ==} 631 | engines: {node: '>=16'} 632 | hasBin: true 633 | dependencies: 634 | '@mapbox/node-pre-gyp': 1.0.10 635 | '@rollup/pluginutils': 4.2.1 636 | acorn: 8.8.2 637 | acorn-import-attributes: 1.9.5(acorn@8.8.2) 638 | async-sema: 3.1.1 639 | bindings: 1.5.0 640 | estree-walker: 2.0.2 641 | glob: 7.2.3 642 | graceful-fs: 4.2.11 643 | micromatch: 4.0.5 644 | node-gyp-build: 4.6.0 645 | resolve-from: 5.0.0 646 | transitivePeerDependencies: 647 | - encoding 648 | - supports-color 649 | dev: true 650 | 651 | /abbrev@1.1.1: 652 | resolution: {integrity: sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==} 653 | dev: true 654 | 655 | /acorn-import-attributes@1.9.5(acorn@8.8.2): 656 | resolution: {integrity: sha512-n02Vykv5uA3eHGM/Z2dQrcD56kL8TyDb2p1+0P83PClMnC/nc+anbQRhIOWnSq4Ke/KvDPrY3C9hDtC/A3eHnQ==} 657 | peerDependencies: 658 | acorn: ^8 659 | dependencies: 660 | acorn: 8.8.2 661 | dev: true 662 | 663 | /acorn-jsx@5.3.2(acorn@8.8.2): 664 | resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} 665 | peerDependencies: 666 | acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 667 | dependencies: 668 | acorn: 8.8.2 669 | dev: true 670 | 671 | /acorn-typescript@1.4.13(acorn@8.11.3): 672 | resolution: {integrity: sha512-xsc9Xv0xlVfwp2o7sQ+GCQ1PgbkdcpWdTzrwXxO3xDMTAywVS3oXVOcOHuRjAPkS4P9b+yc/qNF15460v+jp4Q==} 673 | peerDependencies: 674 | acorn: '>=8.9.0' 675 | dependencies: 676 | acorn: 8.11.3 677 | dev: true 678 | 679 | /acorn@8.11.3: 680 | resolution: {integrity: sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==} 681 | engines: {node: '>=0.4.0'} 682 | hasBin: true 683 | dev: true 684 | 685 | /acorn@8.8.2: 686 | resolution: {integrity: sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==} 687 | engines: {node: '>=0.4.0'} 688 | hasBin: true 689 | dev: true 690 | 691 | /agent-base@6.0.2: 692 | resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} 693 | engines: {node: '>= 6.0.0'} 694 | dependencies: 695 | debug: 4.3.4 696 | transitivePeerDependencies: 697 | - supports-color 698 | dev: true 699 | 700 | /ajv@6.12.6: 701 | resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} 702 | dependencies: 703 | fast-deep-equal: 3.1.3 704 | fast-json-stable-stringify: 2.1.0 705 | json-schema-traverse: 0.4.1 706 | uri-js: 4.4.1 707 | dev: true 708 | 709 | /ansi-regex@5.0.1: 710 | resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} 711 | engines: {node: '>=8'} 712 | dev: true 713 | 714 | /ansi-styles@4.3.0: 715 | resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} 716 | engines: {node: '>=8'} 717 | dependencies: 718 | color-convert: 2.0.1 719 | dev: true 720 | 721 | /aproba@2.0.0: 722 | resolution: {integrity: sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==} 723 | dev: true 724 | 725 | /are-we-there-yet@2.0.0: 726 | resolution: {integrity: sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw==} 727 | engines: {node: '>=10'} 728 | deprecated: This package is no longer supported. 729 | dependencies: 730 | delegates: 1.0.0 731 | readable-stream: 3.6.2 732 | dev: true 733 | 734 | /argparse@2.0.1: 735 | resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} 736 | dev: true 737 | 738 | /aria-query@5.3.0: 739 | resolution: {integrity: sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==} 740 | dependencies: 741 | dequal: 2.0.3 742 | dev: true 743 | 744 | /async-sema@3.1.1: 745 | resolution: {integrity: sha512-tLRNUXati5MFePdAk8dw7Qt7DpxPB60ofAgn8WRhW6a2rcimZnYBP9oxHiv0OHy+Wz7kPMG+t4LGdt31+4EmGg==} 746 | dev: true 747 | 748 | /axobject-query@4.0.0: 749 | resolution: {integrity: sha512-+60uv1hiVFhHZeO+Lz0RYzsVHy5Wr1ayX0mwda9KPDVLNJgZ1T9Ny7VmFbLDzxsH0D87I86vgj3gFrjTJUYznw==} 750 | dependencies: 751 | dequal: 2.0.3 752 | dev: true 753 | 754 | /balanced-match@1.0.2: 755 | resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} 756 | dev: true 757 | 758 | /bindings@1.5.0: 759 | resolution: {integrity: sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==} 760 | dependencies: 761 | file-uri-to-path: 1.0.0 762 | dev: true 763 | 764 | /brace-expansion@1.1.11: 765 | resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} 766 | dependencies: 767 | balanced-match: 1.0.2 768 | concat-map: 0.0.1 769 | dev: true 770 | 771 | /braces@3.0.2: 772 | resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} 773 | engines: {node: '>=8'} 774 | dependencies: 775 | fill-range: 7.0.1 776 | dev: true 777 | 778 | /callsites@3.1.0: 779 | resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} 780 | engines: {node: '>=6'} 781 | dev: true 782 | 783 | /chalk@4.1.2: 784 | resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} 785 | engines: {node: '>=10'} 786 | dependencies: 787 | ansi-styles: 4.3.0 788 | supports-color: 7.2.0 789 | dev: true 790 | 791 | /chownr@2.0.0: 792 | resolution: {integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==} 793 | engines: {node: '>=10'} 794 | dev: true 795 | 796 | /color-convert@2.0.1: 797 | resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} 798 | engines: {node: '>=7.0.0'} 799 | dependencies: 800 | color-name: 1.1.4 801 | dev: true 802 | 803 | /color-name@1.1.4: 804 | resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} 805 | dev: true 806 | 807 | /color-support@1.1.3: 808 | resolution: {integrity: sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==} 809 | hasBin: true 810 | dev: true 811 | 812 | /concat-map@0.0.1: 813 | resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} 814 | dev: true 815 | 816 | /console-control-strings@1.1.0: 817 | resolution: {integrity: sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==} 818 | dev: true 819 | 820 | /cookie@0.6.0: 821 | resolution: {integrity: sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==} 822 | engines: {node: '>= 0.6'} 823 | dev: true 824 | 825 | /cross-spawn@7.0.3: 826 | resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} 827 | engines: {node: '>= 8'} 828 | dependencies: 829 | path-key: 3.1.1 830 | shebang-command: 2.0.0 831 | which: 2.0.2 832 | dev: true 833 | 834 | /debug@4.3.4: 835 | resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} 836 | engines: {node: '>=6.0'} 837 | peerDependencies: 838 | supports-color: '*' 839 | peerDependenciesMeta: 840 | supports-color: 841 | optional: true 842 | dependencies: 843 | ms: 2.1.2 844 | dev: true 845 | 846 | /deep-is@0.1.4: 847 | resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} 848 | dev: true 849 | 850 | /deepmerge@4.3.1: 851 | resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==} 852 | engines: {node: '>=0.10.0'} 853 | dev: true 854 | 855 | /delegates@1.0.0: 856 | resolution: {integrity: sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==} 857 | dev: true 858 | 859 | /dequal@2.0.3: 860 | resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} 861 | engines: {node: '>=6'} 862 | dev: true 863 | 864 | /detect-libc@2.0.1: 865 | resolution: {integrity: sha512-463v3ZeIrcWtdgIg6vI6XUncguvr2TnGl4SzDXinkt9mSLpBJKXT3mW6xT3VQdDN11+WVs29pgvivTc4Lp8v+w==} 866 | engines: {node: '>=8'} 867 | dev: true 868 | 869 | /devalue@5.0.0: 870 | resolution: {integrity: sha512-gO+/OMXF7488D+u3ue+G7Y4AA3ZmUnB3eHJXmBTgNHvr4ZNzl36A0ZtG+XCRNYCkYx/bFmw4qtkoFLa+wSrwAA==} 871 | dev: true 872 | 873 | /doctrine@3.0.0: 874 | resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} 875 | engines: {node: '>=6.0.0'} 876 | dependencies: 877 | esutils: 2.0.3 878 | dev: true 879 | 880 | /emoji-regex@8.0.0: 881 | resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} 882 | dev: true 883 | 884 | /esbuild@0.20.2: 885 | resolution: {integrity: sha512-WdOOppmUNU+IbZ0PaDiTst80zjnrOkyJNHoKupIcVyU8Lvla3Ugx94VzkQ32Ijqd7UhHJy75gNWDMUekcrSJ6g==} 886 | engines: {node: '>=12'} 887 | hasBin: true 888 | requiresBuild: true 889 | optionalDependencies: 890 | '@esbuild/aix-ppc64': 0.20.2 891 | '@esbuild/android-arm': 0.20.2 892 | '@esbuild/android-arm64': 0.20.2 893 | '@esbuild/android-x64': 0.20.2 894 | '@esbuild/darwin-arm64': 0.20.2 895 | '@esbuild/darwin-x64': 0.20.2 896 | '@esbuild/freebsd-arm64': 0.20.2 897 | '@esbuild/freebsd-x64': 0.20.2 898 | '@esbuild/linux-arm': 0.20.2 899 | '@esbuild/linux-arm64': 0.20.2 900 | '@esbuild/linux-ia32': 0.20.2 901 | '@esbuild/linux-loong64': 0.20.2 902 | '@esbuild/linux-mips64el': 0.20.2 903 | '@esbuild/linux-ppc64': 0.20.2 904 | '@esbuild/linux-riscv64': 0.20.2 905 | '@esbuild/linux-s390x': 0.20.2 906 | '@esbuild/linux-x64': 0.20.2 907 | '@esbuild/netbsd-x64': 0.20.2 908 | '@esbuild/openbsd-x64': 0.20.2 909 | '@esbuild/sunos-x64': 0.20.2 910 | '@esbuild/win32-arm64': 0.20.2 911 | '@esbuild/win32-ia32': 0.20.2 912 | '@esbuild/win32-x64': 0.20.2 913 | dev: true 914 | 915 | /escape-string-regexp@4.0.0: 916 | resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} 917 | engines: {node: '>=10'} 918 | dev: true 919 | 920 | /eslint-config-prettier@8.8.0(eslint@8.42.0): 921 | resolution: {integrity: sha512-wLbQiFre3tdGgpDv67NQKnJuTlcUVYHas3k+DZCc2U2BadthoEY4B7hLPvAxaqdyOGCzuLfii2fqGph10va7oA==} 922 | hasBin: true 923 | peerDependencies: 924 | eslint: '>=7.0.0' 925 | dependencies: 926 | eslint: 8.42.0 927 | dev: true 928 | 929 | /eslint-plugin-svelte3@4.0.0(eslint@8.42.0)(svelte@5.0.0-next.153): 930 | resolution: {integrity: sha512-OIx9lgaNzD02+MDFNLw0GEUbuovNcglg+wnd/UY0fbZmlQSz7GlQiQ1f+yX0XvC07XPcDOnFcichqI3xCwp71g==} 931 | peerDependencies: 932 | eslint: '>=8.0.0' 933 | svelte: ^3.2.0 934 | dependencies: 935 | eslint: 8.42.0 936 | svelte: 5.0.0-next.153 937 | dev: true 938 | 939 | /eslint-scope@7.2.0: 940 | resolution: {integrity: sha512-DYj5deGlHBfMt15J7rdtyKNq/Nqlv5KfU4iodrQ019XESsRnwXH9KAE0y3cwtUHDo2ob7CypAnCqefh6vioWRw==} 941 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 942 | dependencies: 943 | esrecurse: 4.3.0 944 | estraverse: 5.3.0 945 | dev: true 946 | 947 | /eslint-visitor-keys@3.4.1: 948 | resolution: {integrity: sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA==} 949 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 950 | dev: true 951 | 952 | /eslint@8.42.0: 953 | resolution: {integrity: sha512-ulg9Ms6E1WPf67PHaEY4/6E2tEn5/f7FXGzr3t9cBMugOmf1INYvuUwwh1aXQN4MfJ6a5K2iNwP3w4AColvI9A==} 954 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 955 | hasBin: true 956 | dependencies: 957 | '@eslint-community/eslint-utils': 4.4.0(eslint@8.42.0) 958 | '@eslint-community/regexpp': 4.5.1 959 | '@eslint/eslintrc': 2.0.3 960 | '@eslint/js': 8.42.0 961 | '@humanwhocodes/config-array': 0.11.10 962 | '@humanwhocodes/module-importer': 1.0.1 963 | '@nodelib/fs.walk': 1.2.8 964 | ajv: 6.12.6 965 | chalk: 4.1.2 966 | cross-spawn: 7.0.3 967 | debug: 4.3.4 968 | doctrine: 3.0.0 969 | escape-string-regexp: 4.0.0 970 | eslint-scope: 7.2.0 971 | eslint-visitor-keys: 3.4.1 972 | espree: 9.5.2 973 | esquery: 1.5.0 974 | esutils: 2.0.3 975 | fast-deep-equal: 3.1.3 976 | file-entry-cache: 6.0.1 977 | find-up: 5.0.0 978 | glob-parent: 6.0.2 979 | globals: 13.20.0 980 | graphemer: 1.4.0 981 | ignore: 5.2.4 982 | import-fresh: 3.3.0 983 | imurmurhash: 0.1.4 984 | is-glob: 4.0.3 985 | is-path-inside: 3.0.3 986 | js-yaml: 4.1.0 987 | json-stable-stringify-without-jsonify: 1.0.1 988 | levn: 0.4.1 989 | lodash.merge: 4.6.2 990 | minimatch: 3.1.2 991 | natural-compare: 1.4.0 992 | optionator: 0.9.1 993 | strip-ansi: 6.0.1 994 | strip-json-comments: 3.1.1 995 | text-table: 0.2.0 996 | transitivePeerDependencies: 997 | - supports-color 998 | dev: true 999 | 1000 | /esm-env@1.0.0: 1001 | resolution: {integrity: sha512-Cf6VksWPsTuW01vU9Mk/3vRue91Zevka5SjyNf3nEpokFRuqt/KjUQoGAwq9qMmhpLTHmXzSIrFRw8zxWzmFBA==} 1002 | dev: true 1003 | 1004 | /espree@9.5.2: 1005 | resolution: {integrity: sha512-7OASN1Wma5fum5SrNhFMAMJxOUAbhyfQ8dQ//PJaJbNw0URTPWqIghHWt1MmAANKhHZIYOHruW4Kw4ruUWOdGw==} 1006 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 1007 | dependencies: 1008 | acorn: 8.8.2 1009 | acorn-jsx: 5.3.2(acorn@8.8.2) 1010 | eslint-visitor-keys: 3.4.1 1011 | dev: true 1012 | 1013 | /esquery@1.5.0: 1014 | resolution: {integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==} 1015 | engines: {node: '>=0.10'} 1016 | dependencies: 1017 | estraverse: 5.3.0 1018 | dev: true 1019 | 1020 | /esrap@1.2.2: 1021 | resolution: {integrity: sha512-F2pSJklxx1BlQIQgooczXCPHmcWpn6EsP5oo73LQfonG9fIlIENQ8vMmfGXeojP9MrkzUNAfyU5vdFlR9shHAw==} 1022 | dependencies: 1023 | '@jridgewell/sourcemap-codec': 1.4.15 1024 | '@types/estree': 1.0.5 1025 | dev: true 1026 | 1027 | /esrecurse@4.3.0: 1028 | resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} 1029 | engines: {node: '>=4.0'} 1030 | dependencies: 1031 | estraverse: 5.3.0 1032 | dev: true 1033 | 1034 | /estraverse@5.3.0: 1035 | resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} 1036 | engines: {node: '>=4.0'} 1037 | dev: true 1038 | 1039 | /estree-walker@2.0.2: 1040 | resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} 1041 | dev: true 1042 | 1043 | /esutils@2.0.3: 1044 | resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} 1045 | engines: {node: '>=0.10.0'} 1046 | dev: true 1047 | 1048 | /fast-deep-equal@3.1.3: 1049 | resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} 1050 | dev: true 1051 | 1052 | /fast-json-stable-stringify@2.1.0: 1053 | resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} 1054 | dev: true 1055 | 1056 | /fast-levenshtein@2.0.6: 1057 | resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} 1058 | dev: true 1059 | 1060 | /fastq@1.15.0: 1061 | resolution: {integrity: sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==} 1062 | dependencies: 1063 | reusify: 1.0.4 1064 | dev: true 1065 | 1066 | /file-entry-cache@6.0.1: 1067 | resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} 1068 | engines: {node: ^10.12.0 || >=12.0.0} 1069 | dependencies: 1070 | flat-cache: 3.0.4 1071 | dev: true 1072 | 1073 | /file-uri-to-path@1.0.0: 1074 | resolution: {integrity: sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==} 1075 | dev: true 1076 | 1077 | /fill-range@7.0.1: 1078 | resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} 1079 | engines: {node: '>=8'} 1080 | dependencies: 1081 | to-regex-range: 5.0.1 1082 | dev: true 1083 | 1084 | /find-up@5.0.0: 1085 | resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} 1086 | engines: {node: '>=10'} 1087 | dependencies: 1088 | locate-path: 6.0.0 1089 | path-exists: 4.0.0 1090 | dev: true 1091 | 1092 | /flat-cache@3.0.4: 1093 | resolution: {integrity: sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==} 1094 | engines: {node: ^10.12.0 || >=12.0.0} 1095 | dependencies: 1096 | flatted: 3.2.7 1097 | rimraf: 3.0.2 1098 | dev: true 1099 | 1100 | /flatted@3.2.7: 1101 | resolution: {integrity: sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==} 1102 | dev: true 1103 | 1104 | /fs-minipass@2.1.0: 1105 | resolution: {integrity: sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==} 1106 | engines: {node: '>= 8'} 1107 | dependencies: 1108 | minipass: 3.3.6 1109 | dev: true 1110 | 1111 | /fs.realpath@1.0.0: 1112 | resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} 1113 | dev: true 1114 | 1115 | /fsevents@2.3.2: 1116 | resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==} 1117 | engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} 1118 | os: [darwin] 1119 | requiresBuild: true 1120 | dev: true 1121 | optional: true 1122 | 1123 | /fsevents@2.3.3: 1124 | resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} 1125 | engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} 1126 | os: [darwin] 1127 | requiresBuild: true 1128 | dev: true 1129 | optional: true 1130 | 1131 | /gauge@3.0.2: 1132 | resolution: {integrity: sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q==} 1133 | engines: {node: '>=10'} 1134 | deprecated: This package is no longer supported. 1135 | dependencies: 1136 | aproba: 2.0.0 1137 | color-support: 1.1.3 1138 | console-control-strings: 1.1.0 1139 | has-unicode: 2.0.1 1140 | object-assign: 4.1.1 1141 | signal-exit: 3.0.7 1142 | string-width: 4.2.3 1143 | strip-ansi: 6.0.1 1144 | wide-align: 1.1.5 1145 | dev: true 1146 | 1147 | /glob-parent@6.0.2: 1148 | resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} 1149 | engines: {node: '>=10.13.0'} 1150 | dependencies: 1151 | is-glob: 4.0.3 1152 | dev: true 1153 | 1154 | /glob@7.2.3: 1155 | resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} 1156 | dependencies: 1157 | fs.realpath: 1.0.0 1158 | inflight: 1.0.6 1159 | inherits: 2.0.4 1160 | minimatch: 3.1.2 1161 | once: 1.4.0 1162 | path-is-absolute: 1.0.1 1163 | dev: true 1164 | 1165 | /globals@13.20.0: 1166 | resolution: {integrity: sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==} 1167 | engines: {node: '>=8'} 1168 | dependencies: 1169 | type-fest: 0.20.2 1170 | dev: true 1171 | 1172 | /globalyzer@0.1.0: 1173 | resolution: {integrity: sha512-40oNTM9UfG6aBmuKxk/giHn5nQ8RVz/SS4Ir6zgzOv9/qC3kKZ9v4etGTcJbEl/NyVQH7FGU7d+X1egr57Md2Q==} 1174 | dev: true 1175 | 1176 | /globrex@0.1.2: 1177 | resolution: {integrity: sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==} 1178 | dev: true 1179 | 1180 | /graceful-fs@4.2.11: 1181 | resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} 1182 | dev: true 1183 | 1184 | /graphemer@1.4.0: 1185 | resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} 1186 | dev: true 1187 | 1188 | /has-flag@4.0.0: 1189 | resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} 1190 | engines: {node: '>=8'} 1191 | dev: true 1192 | 1193 | /has-unicode@2.0.1: 1194 | resolution: {integrity: sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==} 1195 | dev: true 1196 | 1197 | /https-proxy-agent@5.0.1: 1198 | resolution: {integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==} 1199 | engines: {node: '>= 6'} 1200 | dependencies: 1201 | agent-base: 6.0.2 1202 | debug: 4.3.4 1203 | transitivePeerDependencies: 1204 | - supports-color 1205 | dev: true 1206 | 1207 | /ignore@5.2.4: 1208 | resolution: {integrity: sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==} 1209 | engines: {node: '>= 4'} 1210 | dev: true 1211 | 1212 | /import-fresh@3.3.0: 1213 | resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} 1214 | engines: {node: '>=6'} 1215 | dependencies: 1216 | parent-module: 1.0.1 1217 | resolve-from: 4.0.0 1218 | dev: true 1219 | 1220 | /import-meta-resolve@4.1.0: 1221 | resolution: {integrity: sha512-I6fiaX09Xivtk+THaMfAwnA3MVA5Big1WHF1Dfx9hFuvNIWpXnorlkzhcQf6ehrqQiiZECRt1poOAkPmer3ruw==} 1222 | dev: true 1223 | 1224 | /imurmurhash@0.1.4: 1225 | resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} 1226 | engines: {node: '>=0.8.19'} 1227 | dev: true 1228 | 1229 | /inflight@1.0.6: 1230 | resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} 1231 | dependencies: 1232 | once: 1.4.0 1233 | wrappy: 1.0.2 1234 | dev: true 1235 | 1236 | /inherits@2.0.4: 1237 | resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} 1238 | dev: true 1239 | 1240 | /is-extglob@2.1.1: 1241 | resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} 1242 | engines: {node: '>=0.10.0'} 1243 | dev: true 1244 | 1245 | /is-fullwidth-code-point@3.0.0: 1246 | resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} 1247 | engines: {node: '>=8'} 1248 | dev: true 1249 | 1250 | /is-glob@4.0.3: 1251 | resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} 1252 | engines: {node: '>=0.10.0'} 1253 | dependencies: 1254 | is-extglob: 2.1.1 1255 | dev: true 1256 | 1257 | /is-number@7.0.0: 1258 | resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} 1259 | engines: {node: '>=0.12.0'} 1260 | dev: true 1261 | 1262 | /is-path-inside@3.0.3: 1263 | resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} 1264 | engines: {node: '>=8'} 1265 | dev: true 1266 | 1267 | /is-reference@3.0.2: 1268 | resolution: {integrity: sha512-v3rht/LgVcsdZa3O2Nqs+NMowLOxeOm7Ay9+/ARQ2F+qEoANRcqrjAZKGN0v8ymUetZGgkp26LTnGT7H0Qo9Pg==} 1269 | dependencies: 1270 | '@types/estree': 1.0.5 1271 | dev: true 1272 | 1273 | /isexe@2.0.0: 1274 | resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} 1275 | dev: true 1276 | 1277 | /js-yaml@4.1.0: 1278 | resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} 1279 | hasBin: true 1280 | dependencies: 1281 | argparse: 2.0.1 1282 | dev: true 1283 | 1284 | /json-schema-traverse@0.4.1: 1285 | resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} 1286 | dev: true 1287 | 1288 | /json-stable-stringify-without-jsonify@1.0.1: 1289 | resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} 1290 | dev: true 1291 | 1292 | /kleur@4.1.5: 1293 | resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==} 1294 | engines: {node: '>=6'} 1295 | dev: true 1296 | 1297 | /levn@0.4.1: 1298 | resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} 1299 | engines: {node: '>= 0.8.0'} 1300 | dependencies: 1301 | prelude-ls: 1.2.1 1302 | type-check: 0.4.0 1303 | dev: true 1304 | 1305 | /locate-character@3.0.0: 1306 | resolution: {integrity: sha512-SW13ws7BjaeJ6p7Q6CO2nchbYEc3X3J6WrmTTDto7yMPqVSZTUyY5Tjbid+Ab8gLnATtygYtiDIJGQRRn2ZOiA==} 1307 | dev: true 1308 | 1309 | /locate-path@6.0.0: 1310 | resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} 1311 | engines: {node: '>=10'} 1312 | dependencies: 1313 | p-locate: 5.0.0 1314 | dev: true 1315 | 1316 | /lodash.merge@4.6.2: 1317 | resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} 1318 | dev: true 1319 | 1320 | /lru-cache@6.0.0: 1321 | resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} 1322 | engines: {node: '>=10'} 1323 | dependencies: 1324 | yallist: 4.0.0 1325 | dev: true 1326 | 1327 | /magic-string@0.30.10: 1328 | resolution: {integrity: sha512-iIRwTIf0QKV3UAnYK4PU8uiEc4SRh5jX0mwpIwETPpHdhVM4f53RSwS/vXvN1JhGX+Cs7B8qIq3d6AH49O5fAQ==} 1329 | dependencies: 1330 | '@jridgewell/sourcemap-codec': 1.4.15 1331 | dev: true 1332 | 1333 | /make-dir@3.1.0: 1334 | resolution: {integrity: sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==} 1335 | engines: {node: '>=8'} 1336 | dependencies: 1337 | semver: 6.3.0 1338 | dev: true 1339 | 1340 | /micromatch@4.0.5: 1341 | resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} 1342 | engines: {node: '>=8.6'} 1343 | dependencies: 1344 | braces: 3.0.2 1345 | picomatch: 2.3.1 1346 | dev: true 1347 | 1348 | /minimatch@3.1.2: 1349 | resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} 1350 | dependencies: 1351 | brace-expansion: 1.1.11 1352 | dev: true 1353 | 1354 | /minipass@3.3.6: 1355 | resolution: {integrity: sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==} 1356 | engines: {node: '>=8'} 1357 | dependencies: 1358 | yallist: 4.0.0 1359 | dev: true 1360 | 1361 | /minipass@5.0.0: 1362 | resolution: {integrity: sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==} 1363 | engines: {node: '>=8'} 1364 | dev: true 1365 | 1366 | /minizlib@2.1.2: 1367 | resolution: {integrity: sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==} 1368 | engines: {node: '>= 8'} 1369 | dependencies: 1370 | minipass: 3.3.6 1371 | yallist: 4.0.0 1372 | dev: true 1373 | 1374 | /mkdirp@1.0.4: 1375 | resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==} 1376 | engines: {node: '>=10'} 1377 | hasBin: true 1378 | dev: true 1379 | 1380 | /mri@1.2.0: 1381 | resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==} 1382 | engines: {node: '>=4'} 1383 | dev: true 1384 | 1385 | /mrmime@2.0.0: 1386 | resolution: {integrity: sha512-eu38+hdgojoyq63s+yTpN4XMBdt5l8HhMhc4VKLO9KM5caLIBvUm4thi7fFaxyTmCKeNnXZ5pAlBwCUnhA09uw==} 1387 | engines: {node: '>=10'} 1388 | dev: true 1389 | 1390 | /ms@2.1.2: 1391 | resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} 1392 | dev: true 1393 | 1394 | /nanoid@3.3.7: 1395 | resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==} 1396 | engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} 1397 | hasBin: true 1398 | dev: true 1399 | 1400 | /natural-compare@1.4.0: 1401 | resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} 1402 | dev: true 1403 | 1404 | /node-fetch@2.6.11: 1405 | resolution: {integrity: sha512-4I6pdBY1EthSqDmJkiNk3JIT8cswwR9nfeW/cPdUagJYEQG7R95WRH74wpz7ma8Gh/9dI9FP+OU+0E4FvtA55w==} 1406 | engines: {node: 4.x || >=6.0.0} 1407 | peerDependencies: 1408 | encoding: ^0.1.0 1409 | peerDependenciesMeta: 1410 | encoding: 1411 | optional: true 1412 | dependencies: 1413 | whatwg-url: 5.0.0 1414 | dev: true 1415 | 1416 | /node-gyp-build@4.6.0: 1417 | resolution: {integrity: sha512-NTZVKn9IylLwUzaKjkas1e4u2DLNcV4rdYagA4PWdPwW87Bi7z+BznyKSRwS/761tV/lzCGXplWsiaMjLqP2zQ==} 1418 | hasBin: true 1419 | dev: true 1420 | 1421 | /nopt@5.0.0: 1422 | resolution: {integrity: sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==} 1423 | engines: {node: '>=6'} 1424 | hasBin: true 1425 | dependencies: 1426 | abbrev: 1.1.1 1427 | dev: true 1428 | 1429 | /npmlog@5.0.1: 1430 | resolution: {integrity: sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw==} 1431 | deprecated: This package is no longer supported. 1432 | dependencies: 1433 | are-we-there-yet: 2.0.0 1434 | console-control-strings: 1.1.0 1435 | gauge: 3.0.2 1436 | set-blocking: 2.0.0 1437 | dev: true 1438 | 1439 | /object-assign@4.1.1: 1440 | resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} 1441 | engines: {node: '>=0.10.0'} 1442 | dev: true 1443 | 1444 | /once@1.4.0: 1445 | resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} 1446 | dependencies: 1447 | wrappy: 1.0.2 1448 | dev: true 1449 | 1450 | /optionator@0.9.1: 1451 | resolution: {integrity: sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==} 1452 | engines: {node: '>= 0.8.0'} 1453 | dependencies: 1454 | deep-is: 0.1.4 1455 | fast-levenshtein: 2.0.6 1456 | levn: 0.4.1 1457 | prelude-ls: 1.2.1 1458 | type-check: 0.4.0 1459 | word-wrap: 1.2.3 1460 | dev: true 1461 | 1462 | /p-limit@3.1.0: 1463 | resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} 1464 | engines: {node: '>=10'} 1465 | dependencies: 1466 | yocto-queue: 0.1.0 1467 | dev: true 1468 | 1469 | /p-locate@5.0.0: 1470 | resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} 1471 | engines: {node: '>=10'} 1472 | dependencies: 1473 | p-limit: 3.1.0 1474 | dev: true 1475 | 1476 | /parent-module@1.0.1: 1477 | resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} 1478 | engines: {node: '>=6'} 1479 | dependencies: 1480 | callsites: 3.1.0 1481 | dev: true 1482 | 1483 | /path-exists@4.0.0: 1484 | resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} 1485 | engines: {node: '>=8'} 1486 | dev: true 1487 | 1488 | /path-is-absolute@1.0.1: 1489 | resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} 1490 | engines: {node: '>=0.10.0'} 1491 | dev: true 1492 | 1493 | /path-key@3.1.1: 1494 | resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} 1495 | engines: {node: '>=8'} 1496 | dev: true 1497 | 1498 | /picocolors@1.0.0: 1499 | resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} 1500 | dev: true 1501 | 1502 | /picomatch@2.3.1: 1503 | resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} 1504 | engines: {node: '>=8.6'} 1505 | dev: true 1506 | 1507 | /playwright-core@1.34.3: 1508 | resolution: {integrity: sha512-2pWd6G7OHKemc5x1r1rp8aQcpvDh7goMBZlJv6Co5vCNLVcQJdhxRL09SGaY6HcyHH9aT4tiynZabMofVasBYw==} 1509 | engines: {node: '>=14'} 1510 | hasBin: true 1511 | dev: true 1512 | 1513 | /postcss@8.4.38: 1514 | resolution: {integrity: sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==} 1515 | engines: {node: ^10 || ^12 || >=14} 1516 | dependencies: 1517 | nanoid: 3.3.7 1518 | picocolors: 1.0.0 1519 | source-map-js: 1.2.0 1520 | dev: true 1521 | 1522 | /prelude-ls@1.2.1: 1523 | resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} 1524 | engines: {node: '>= 0.8.0'} 1525 | dev: true 1526 | 1527 | /prettier-plugin-svelte@2.10.1(prettier@2.8.8)(svelte@5.0.0-next.153): 1528 | resolution: {integrity: sha512-Wlq7Z5v2ueCubWo0TZzKc9XHcm7TDxqcuzRuGd0gcENfzfT4JZ9yDlCbEgxWgiPmLHkBjfOtpAWkcT28MCDpUQ==} 1529 | peerDependencies: 1530 | prettier: ^1.16.4 || ^2.0.0 1531 | svelte: ^3.2.0 || ^4.0.0-next.0 1532 | dependencies: 1533 | prettier: 2.8.8 1534 | svelte: 5.0.0-next.153 1535 | dev: true 1536 | 1537 | /prettier@2.8.8: 1538 | resolution: {integrity: sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==} 1539 | engines: {node: '>=10.13.0'} 1540 | hasBin: true 1541 | dev: true 1542 | 1543 | /punycode@2.3.0: 1544 | resolution: {integrity: sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==} 1545 | engines: {node: '>=6'} 1546 | dev: true 1547 | 1548 | /queue-microtask@1.2.3: 1549 | resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} 1550 | dev: true 1551 | 1552 | /readable-stream@3.6.2: 1553 | resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} 1554 | engines: {node: '>= 6'} 1555 | dependencies: 1556 | inherits: 2.0.4 1557 | string_decoder: 1.3.0 1558 | util-deprecate: 1.0.2 1559 | dev: true 1560 | 1561 | /resolve-from@4.0.0: 1562 | resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} 1563 | engines: {node: '>=4'} 1564 | dev: true 1565 | 1566 | /resolve-from@5.0.0: 1567 | resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} 1568 | engines: {node: '>=8'} 1569 | dev: true 1570 | 1571 | /reusify@1.0.4: 1572 | resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} 1573 | engines: {iojs: '>=1.0.0', node: '>=0.10.0'} 1574 | dev: true 1575 | 1576 | /rimraf@3.0.2: 1577 | resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} 1578 | hasBin: true 1579 | dependencies: 1580 | glob: 7.2.3 1581 | dev: true 1582 | 1583 | /rollup@4.18.0: 1584 | resolution: {integrity: sha512-QmJz14PX3rzbJCN1SG4Xe/bAAX2a6NpCP8ab2vfu2GiUr8AQcr2nCV/oEO3yneFarB67zk8ShlIyWb2LGTb3Sg==} 1585 | engines: {node: '>=18.0.0', npm: '>=8.0.0'} 1586 | hasBin: true 1587 | dependencies: 1588 | '@types/estree': 1.0.5 1589 | optionalDependencies: 1590 | '@rollup/rollup-android-arm-eabi': 4.18.0 1591 | '@rollup/rollup-android-arm64': 4.18.0 1592 | '@rollup/rollup-darwin-arm64': 4.18.0 1593 | '@rollup/rollup-darwin-x64': 4.18.0 1594 | '@rollup/rollup-linux-arm-gnueabihf': 4.18.0 1595 | '@rollup/rollup-linux-arm-musleabihf': 4.18.0 1596 | '@rollup/rollup-linux-arm64-gnu': 4.18.0 1597 | '@rollup/rollup-linux-arm64-musl': 4.18.0 1598 | '@rollup/rollup-linux-powerpc64le-gnu': 4.18.0 1599 | '@rollup/rollup-linux-riscv64-gnu': 4.18.0 1600 | '@rollup/rollup-linux-s390x-gnu': 4.18.0 1601 | '@rollup/rollup-linux-x64-gnu': 4.18.0 1602 | '@rollup/rollup-linux-x64-musl': 4.18.0 1603 | '@rollup/rollup-win32-arm64-msvc': 4.18.0 1604 | '@rollup/rollup-win32-ia32-msvc': 4.18.0 1605 | '@rollup/rollup-win32-x64-msvc': 4.18.0 1606 | fsevents: 2.3.3 1607 | dev: true 1608 | 1609 | /run-parallel@1.2.0: 1610 | resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} 1611 | dependencies: 1612 | queue-microtask: 1.2.3 1613 | dev: true 1614 | 1615 | /sade@1.8.1: 1616 | resolution: {integrity: sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==} 1617 | engines: {node: '>=6'} 1618 | dependencies: 1619 | mri: 1.2.0 1620 | dev: true 1621 | 1622 | /safe-buffer@5.2.1: 1623 | resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} 1624 | dev: true 1625 | 1626 | /semver@6.3.0: 1627 | resolution: {integrity: sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==} 1628 | hasBin: true 1629 | dev: true 1630 | 1631 | /semver@7.5.1: 1632 | resolution: {integrity: sha512-Wvss5ivl8TMRZXXESstBA4uR5iXgEN/VC5/sOcuXdVLzcdkz4HWetIoRfG5gb5X+ij/G9rw9YoGn3QoQ8OCSpw==} 1633 | engines: {node: '>=10'} 1634 | hasBin: true 1635 | dependencies: 1636 | lru-cache: 6.0.0 1637 | dev: true 1638 | 1639 | /set-blocking@2.0.0: 1640 | resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==} 1641 | dev: true 1642 | 1643 | /set-cookie-parser@2.6.0: 1644 | resolution: {integrity: sha512-RVnVQxTXuerk653XfuliOxBP81Sf0+qfQE73LIYKcyMYHG94AuH0kgrQpRDuTZnSmjpysHmzxJXKNfa6PjFhyQ==} 1645 | dev: true 1646 | 1647 | /shebang-command@2.0.0: 1648 | resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} 1649 | engines: {node: '>=8'} 1650 | dependencies: 1651 | shebang-regex: 3.0.0 1652 | dev: true 1653 | 1654 | /shebang-regex@3.0.0: 1655 | resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} 1656 | engines: {node: '>=8'} 1657 | dev: true 1658 | 1659 | /signal-exit@3.0.7: 1660 | resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} 1661 | dev: true 1662 | 1663 | /sirv@2.0.4: 1664 | resolution: {integrity: sha512-94Bdh3cC2PKrbgSOUqTiGPWVZeSiXfKOVZNJniWoqrWrRkB1CJzBU3NEbiTsPcYy1lDsANA/THzS+9WBiy5nfQ==} 1665 | engines: {node: '>= 10'} 1666 | dependencies: 1667 | '@polka/url': 1.0.0-next.25 1668 | mrmime: 2.0.0 1669 | totalist: 3.0.1 1670 | dev: true 1671 | 1672 | /source-map-js@1.2.0: 1673 | resolution: {integrity: sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==} 1674 | engines: {node: '>=0.10.0'} 1675 | dev: true 1676 | 1677 | /string-width@4.2.3: 1678 | resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} 1679 | engines: {node: '>=8'} 1680 | dependencies: 1681 | emoji-regex: 8.0.0 1682 | is-fullwidth-code-point: 3.0.0 1683 | strip-ansi: 6.0.1 1684 | dev: true 1685 | 1686 | /string_decoder@1.3.0: 1687 | resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} 1688 | dependencies: 1689 | safe-buffer: 5.2.1 1690 | dev: true 1691 | 1692 | /strip-ansi@6.0.1: 1693 | resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} 1694 | engines: {node: '>=8'} 1695 | dependencies: 1696 | ansi-regex: 5.0.1 1697 | dev: true 1698 | 1699 | /strip-json-comments@3.1.1: 1700 | resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} 1701 | engines: {node: '>=8'} 1702 | dev: true 1703 | 1704 | /supports-color@7.2.0: 1705 | resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} 1706 | engines: {node: '>=8'} 1707 | dependencies: 1708 | has-flag: 4.0.0 1709 | dev: true 1710 | 1711 | /svelte-hmr@0.16.0(svelte@5.0.0-next.153): 1712 | resolution: {integrity: sha512-Gyc7cOS3VJzLlfj7wKS0ZnzDVdv3Pn2IuVeJPk9m2skfhcu5bq3wtIZyQGggr7/Iim5rH5cncyQft/kRLupcnA==} 1713 | engines: {node: ^12.20 || ^14.13.1 || >= 16} 1714 | peerDependencies: 1715 | svelte: ^3.19.0 || ^4.0.0 1716 | dependencies: 1717 | svelte: 5.0.0-next.153 1718 | dev: true 1719 | 1720 | /svelte@5.0.0-next.153: 1721 | resolution: {integrity: sha512-ZbRnvO0UWXhE71Va5Rjg+nY4tbCUnqJFQC0VXHdqkHT/i5nqW8DPtw0rBlsFg4mq2uDQ8iOO/P7tR3OVXaSI7g==} 1722 | engines: {node: '>=18'} 1723 | dependencies: 1724 | '@ampproject/remapping': 2.3.0 1725 | '@jridgewell/sourcemap-codec': 1.4.15 1726 | '@types/estree': 1.0.5 1727 | acorn: 8.11.3 1728 | acorn-typescript: 1.4.13(acorn@8.11.3) 1729 | aria-query: 5.3.0 1730 | axobject-query: 4.0.0 1731 | esm-env: 1.0.0 1732 | esrap: 1.2.2 1733 | is-reference: 3.0.2 1734 | locate-character: 3.0.0 1735 | magic-string: 0.30.10 1736 | zimmerframe: 1.1.2 1737 | dev: true 1738 | 1739 | /tar@6.1.15: 1740 | resolution: {integrity: sha512-/zKt9UyngnxIT/EAGYuxaMYgOIJiP81ab9ZfkILq4oNLPFX50qyYmu7jRj9qeXoxmJHjGlbH0+cm2uy1WCs10A==} 1741 | engines: {node: '>=10'} 1742 | dependencies: 1743 | chownr: 2.0.0 1744 | fs-minipass: 2.1.0 1745 | minipass: 5.0.0 1746 | minizlib: 2.1.2 1747 | mkdirp: 1.0.4 1748 | yallist: 4.0.0 1749 | dev: true 1750 | 1751 | /text-table@0.2.0: 1752 | resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} 1753 | dev: true 1754 | 1755 | /tiny-glob@0.2.9: 1756 | resolution: {integrity: sha512-g/55ssRPUjShh+xkfx9UPDXqhckHEsHr4Vd9zX55oSdGZc/MD0m3sferOkwWtp98bv+kcVfEHtRJgBVJzelrzg==} 1757 | dependencies: 1758 | globalyzer: 0.1.0 1759 | globrex: 0.1.2 1760 | dev: true 1761 | 1762 | /to-regex-range@5.0.1: 1763 | resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} 1764 | engines: {node: '>=8.0'} 1765 | dependencies: 1766 | is-number: 7.0.0 1767 | dev: true 1768 | 1769 | /totalist@3.0.1: 1770 | resolution: {integrity: sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==} 1771 | engines: {node: '>=6'} 1772 | dev: true 1773 | 1774 | /tr46@0.0.3: 1775 | resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} 1776 | dev: true 1777 | 1778 | /type-check@0.4.0: 1779 | resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} 1780 | engines: {node: '>= 0.8.0'} 1781 | dependencies: 1782 | prelude-ls: 1.2.1 1783 | dev: true 1784 | 1785 | /type-fest@0.20.2: 1786 | resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} 1787 | engines: {node: '>=10'} 1788 | dev: true 1789 | 1790 | /uri-js@4.4.1: 1791 | resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} 1792 | dependencies: 1793 | punycode: 2.3.0 1794 | dev: true 1795 | 1796 | /util-deprecate@1.0.2: 1797 | resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} 1798 | dev: true 1799 | 1800 | /vite@5.2.13: 1801 | resolution: {integrity: sha512-SSq1noJfY9pR3I1TUENL3rQYDQCFqgD+lM6fTRAM8Nv6Lsg5hDLaXkjETVeBt+7vZBCMoibD+6IWnT2mJ+Zb/A==} 1802 | engines: {node: ^18.0.0 || >=20.0.0} 1803 | hasBin: true 1804 | peerDependencies: 1805 | '@types/node': ^18.0.0 || >=20.0.0 1806 | less: '*' 1807 | lightningcss: ^1.21.0 1808 | sass: '*' 1809 | stylus: '*' 1810 | sugarss: '*' 1811 | terser: ^5.4.0 1812 | peerDependenciesMeta: 1813 | '@types/node': 1814 | optional: true 1815 | less: 1816 | optional: true 1817 | lightningcss: 1818 | optional: true 1819 | sass: 1820 | optional: true 1821 | stylus: 1822 | optional: true 1823 | sugarss: 1824 | optional: true 1825 | terser: 1826 | optional: true 1827 | dependencies: 1828 | esbuild: 0.20.2 1829 | postcss: 8.4.38 1830 | rollup: 4.18.0 1831 | optionalDependencies: 1832 | fsevents: 2.3.3 1833 | dev: true 1834 | 1835 | /vitefu@0.2.5(vite@5.2.13): 1836 | resolution: {integrity: sha512-SgHtMLoqaeeGnd2evZ849ZbACbnwQCIwRH57t18FxcXoZop0uQu0uzlIhJBlF/eWVzuce0sHeqPcDo+evVcg8Q==} 1837 | peerDependencies: 1838 | vite: ^3.0.0 || ^4.0.0 || ^5.0.0 1839 | peerDependenciesMeta: 1840 | vite: 1841 | optional: true 1842 | dependencies: 1843 | vite: 5.2.13 1844 | dev: true 1845 | 1846 | /webidl-conversions@3.0.1: 1847 | resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} 1848 | dev: true 1849 | 1850 | /whatwg-url@5.0.0: 1851 | resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} 1852 | dependencies: 1853 | tr46: 0.0.3 1854 | webidl-conversions: 3.0.1 1855 | dev: true 1856 | 1857 | /which@2.0.2: 1858 | resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} 1859 | engines: {node: '>= 8'} 1860 | hasBin: true 1861 | dependencies: 1862 | isexe: 2.0.0 1863 | dev: true 1864 | 1865 | /wide-align@1.1.5: 1866 | resolution: {integrity: sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==} 1867 | dependencies: 1868 | string-width: 4.2.3 1869 | dev: true 1870 | 1871 | /word-wrap@1.2.3: 1872 | resolution: {integrity: sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==} 1873 | engines: {node: '>=0.10.0'} 1874 | dev: true 1875 | 1876 | /wrappy@1.0.2: 1877 | resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} 1878 | dev: true 1879 | 1880 | /yallist@4.0.0: 1881 | resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} 1882 | dev: true 1883 | 1884 | /yocto-queue@0.1.0: 1885 | resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} 1886 | engines: {node: '>=10'} 1887 | dev: true 1888 | 1889 | /zimmerframe@1.1.2: 1890 | resolution: {integrity: sha512-rAbqEGa8ovJy4pyBxZM70hg4pE6gDgaQ0Sl9M3enG3I0d6H4XSAM3GeNGLKnsBpuijUow064sf7ww1nutC5/3w==} 1891 | dev: true 1892 | -------------------------------------------------------------------------------- /examples/vercel-build/src/app.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | %sveltekit.head% 8 | 9 | 10 |
%sveltekit.body%
11 | 12 | 13 | -------------------------------------------------------------------------------- /examples/vercel-build/src/routes/+server.ts: -------------------------------------------------------------------------------- 1 | import { ImageResponse } from '@ethercorps/sveltekit-og'; 2 | import type { RequestHandler } from '@sveltejs/kit'; 3 | 4 | const template = ` 5 |
6 |
7 |

8 | Ready to dive in? 9 | Start your free trial today. 10 |

11 |
12 |
13 | Get started 14 |
15 |
16 | Learn more 17 |
18 |
19 |
20 |
21 | `; 22 | 23 | export const GET: RequestHandler = async ({fetch}) => { 24 | 25 | const fontFile = await fetch('https://og-playground.vercel.app/inter-latin-ext-400-normal.woff'); 26 | const fontData: ArrayBuffer = await fontFile.arrayBuffer(); 27 | 28 | return new ImageResponse(template, { 29 | height: 400, 30 | width: 800, 31 | fonts: [ 32 | { 33 | name: 'Inter', 34 | data: fontData, 35 | weight: 400 36 | } 37 | ] 38 | }, {props: {}}); 39 | }; 40 | -------------------------------------------------------------------------------- /examples/vercel-build/src/routes/cog/+server.ts: -------------------------------------------------------------------------------- 1 | import OG from './OG.svelte'; 2 | import type { RequestHandler } from '@sveltejs/kit'; 3 | import { ImageResponse } from '@ethercorps/sveltekit-og'; 4 | 5 | export const GET: RequestHandler = async ({fetch}) => { 6 | 7 | const fontFile = await fetch('https://og-playground.vercel.app/inter-latin-ext-700-normal.woff'); 8 | const fontData: ArrayBuffer = await fontFile.arrayBuffer(); 9 | return new ImageResponse( 10 | OG, 11 | { 12 | debug: true, 13 | height: 250, 14 | width: 500, 15 | fonts: [ 16 | { 17 | name: 'Inter Latin', 18 | data: fontData, 19 | weight: 700 20 | } 21 | ] 22 | }, 23 | {props: { text: 'Ready to dive in?', spanText: 'Start your free trial today.' }} 24 | ); 25 | }; 26 | -------------------------------------------------------------------------------- /examples/vercel-build/src/routes/cog/OG.svelte: -------------------------------------------------------------------------------- 1 | 5 | 6 |
7 |
8 |

9 | {text} 10 | {spanText} 11 |

12 |
13 |
14 | Get started 19 |
20 |
21 | Learn more 26 |
27 |
28 |
29 |
30 | -------------------------------------------------------------------------------- /examples/vercel-build/static/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/etherCorps/sveltekit-og/0cbf2ff812724f2cd8b2f0611d27a677bbdb6ae7/examples/vercel-build/static/favicon.ico -------------------------------------------------------------------------------- /examples/vercel-build/static/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/etherCorps/sveltekit-og/0cbf2ff812724f2cd8b2f0611d27a677bbdb6ae7/examples/vercel-build/static/favicon.png -------------------------------------------------------------------------------- /examples/vercel-build/svelte.config.js: -------------------------------------------------------------------------------- 1 | import adapter from '@sveltejs/adapter-vercel'; 2 | 3 | /** @type {import('@sveltejs/kit').Config} */ 4 | const config = { 5 | kit: { 6 | adapter: adapter() 7 | } 8 | }; 9 | 10 | export default config; 11 | -------------------------------------------------------------------------------- /examples/vercel-build/tests/test.js: -------------------------------------------------------------------------------- 1 | import { expect, test } from '@playwright/test'; 2 | 3 | test('index page has expected h1', async ({ page }) => { 4 | await page.goto('/'); 5 | expect(await page.textContent('h1')).toBe('Welcome to SvelteKit'); 6 | }); 7 | -------------------------------------------------------------------------------- /examples/vercel-build/vite.config.js: -------------------------------------------------------------------------------- 1 | import { sveltekit } from '@sveltejs/kit/vite'; 2 | 3 | const config = { 4 | plugins: [sveltekit()] 5 | }; 6 | 7 | export default config; 8 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@ethercorps/sveltekit-og", 3 | "version": "4.0.0-next.1", 4 | "scripts": { 5 | "dev": "vite dev", 6 | "build": "vite build && npm run package", 7 | "preview": "vite preview", 8 | "package": "svelte-kit sync && svelte-package && publint", 9 | "prepublishOnly": "npm run package", 10 | "check": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json", 11 | "check:watch": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch", 12 | "test": "vitest", 13 | "lint": "prettier --plugin-search-dir . --check . && eslint .", 14 | "format": "prettier --plugin-search-dir . --write ." 15 | }, 16 | "exports": { 17 | ".": { 18 | "types": "./dist/index.d.ts", 19 | "svelte": "./dist/index.js", 20 | "import": "./dist/index.js" 21 | } 22 | }, 23 | "files": [ 24 | "dist", 25 | "!dist/**/*.test.*", 26 | "!dist/**/*.spec.*" 27 | ], 28 | "peerDependencies": { 29 | "svelte": "^5.0.0" 30 | }, 31 | "devDependencies": { 32 | "@sveltejs/adapter-auto": "^3.0.0", 33 | "@sveltejs/kit": "^2.0.0", 34 | "@sveltejs/package": "^2.2.5", 35 | "@sveltejs/vite-plugin-svelte": "^3.0.0", 36 | "@typescript-eslint/eslint-plugin": "^5.62.0", 37 | "@typescript-eslint/parser": "^5.62.0", 38 | "css-tree": "^2.3.1", 39 | "eslint": "^8.56.0", 40 | "eslint-config-prettier": "^8.10.0", 41 | "eslint-plugin-svelte": "^2.35.1", 42 | "prettier": "^2.8.8", 43 | "prettier-plugin-svelte": "^2.10.1", 44 | "publint": "^0.1.16", 45 | "svelte": "^5.0.0-next.153", 46 | "svelte-check": "^3.6.3", 47 | "tslib": "^2.6.2", 48 | "typescript": "^5.3.3", 49 | "vite": "^5.0.0", 50 | "vitest": "^1.0.0" 51 | }, 52 | "svelte": "./dist/index.js", 53 | "types": "./dist/index.d.ts", 54 | "type": "module", 55 | "dependencies": { 56 | "@ethercorps/svelte-h2j": "5.0.0-next.2", 57 | "@resvg/resvg-js": "^2.6.0", 58 | "satori": "^0.10.11" 59 | } 60 | } -------------------------------------------------------------------------------- /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 Platform {} 9 | } 10 | } 11 | 12 | export {}; 13 | -------------------------------------------------------------------------------- /src/app.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | %sveltekit.head% 8 | 9 | 10 |
%sveltekit.body%
11 | 12 | 13 | -------------------------------------------------------------------------------- /src/index.test.ts: -------------------------------------------------------------------------------- 1 | import { describe, it, expect } from 'vitest'; 2 | 3 | describe('sum test', () => { 4 | it('adds 1 + 2 to equal 3', () => { 5 | expect(1 + 2).toBe(3); 6 | }); 7 | }); 8 | -------------------------------------------------------------------------------- /src/lib/api.ts: -------------------------------------------------------------------------------- 1 | import satori from 'satori'; 2 | import { Resvg } from '@resvg/resvg-js'; 3 | import { loadGoogleFont } from './font.js'; 4 | import type { ComponentOptions, ImageResponseOptions } from './types.js'; 5 | import {toReactElement, svelteComponentToJsx} from "@ethercorps/svelte-h2j" 6 | import {SvelteComponent} from "svelte"; 7 | 8 | export const og = async ( element: string | typeof SvelteComponent, options: ImageResponseOptions, componentOptions: ComponentOptions) => { 9 | 10 | const reactElement = typeof element === 'string' ? toReactElement(element) : svelteComponentToJsx(element, componentOptions); 11 | 12 | // render the React element-like object into an SVG 13 | const svg = await satori(reactElement, { 14 | width: options.width || 1200, 15 | height: options.height || 630, 16 | fonts: options.fonts?.length 17 | ? options.fonts 18 | : [ 19 | { 20 | name: 'Bitter', 21 | data: await loadGoogleFont({ family: 'Bitter', weight: 600 }), 22 | weight: 500, 23 | style: 'normal' 24 | } 25 | ] 26 | }); 27 | 28 | const requestedFormat = options.format || 'png'; 29 | 30 | if (requestedFormat === 'svg') { 31 | return svg; 32 | } 33 | 34 | // convert the SVG into a PNG 35 | const opts = { 36 | // background: "rgba(238, 235, 230, .9)", 37 | fitTo: { 38 | mode: 'width' as const, 39 | value: options.width || 1200 40 | }, 41 | font: { 42 | loadSystemFonts: false // It will be faster to disable loading system fonts. 43 | } 44 | }; 45 | const resvg = new Resvg(svg, opts); 46 | const pngData = resvg.render(); 47 | const pngBuffer = pngData.asPng(); 48 | 49 | return pngBuffer; 50 | }; 51 | 52 | export class ImageResponse extends Response { 53 | constructor(element: string | typeof SvelteComponent, options: ImageResponseOptions = {} , { props = {}, style='' }: ComponentOptions) { 54 | super(); 55 | 56 | const body = new ReadableStream({ 57 | async start(controller) { 58 | const buffer = await og( element, options, { props, style }); 59 | controller.enqueue(buffer); 60 | controller.close(); 61 | } 62 | }); 63 | 64 | 65 | return new Response(body, { 66 | headers: { 67 | 'Content-Type': 'image/png', 68 | 'Cache-Control': options.debug 69 | ? 'no-cache, no-store' 70 | : 'public, immutable, no-transform, max-age=31536000', 71 | ...options.headers 72 | }, 73 | status: options.status || 200, 74 | statusText: options.statusText 75 | }); 76 | } 77 | } 78 | 79 | declare const apis: { 80 | twemoji: (code: any) => string; 81 | openmoji: string; 82 | blobmoji: string; 83 | noto: string; 84 | fluent: (code: any) => string; 85 | fluentFlat: (code: any) => string; 86 | }; 87 | 88 | declare type EmojiType = keyof typeof apis; 89 | 90 | type Weight = 100 | 200 | 300 | 400 | 500 | 600 | 700 | 800 | 900; 91 | type Style$1 = 'normal' | 'italic'; 92 | 93 | interface FontOptions { 94 | data: Buffer | ArrayBuffer; 95 | name: string; 96 | weight?: Weight; 97 | style?: Style$1; 98 | lang?: string; 99 | } 100 | -------------------------------------------------------------------------------- /src/lib/font.ts: -------------------------------------------------------------------------------- 1 | export async function loadGoogleFont({ 2 | family, 3 | weight, 4 | text 5 | }: { 6 | family: string; 7 | weight?: number; 8 | text?: string; 9 | }) { 10 | const params: Record = { 11 | family: `${encodeURIComponent(family)}${weight ? `:wght@${weight}` : ''}` 12 | }; 13 | 14 | if (text) { 15 | params.text = text; 16 | } else { 17 | params.subset = 'latin'; 18 | } 19 | 20 | const url = `https://fonts.googleapis.com/css2?${Object.keys(params) 21 | .map((key) => `${key}=${params[key]}`) 22 | .join('&')}`; 23 | 24 | const res = await fetch(`${url}`, { 25 | headers: { 26 | // construct user agent to get TTF font 27 | 'User-Agent': 28 | 'Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_8; de-at) AppleWebKit/533.21.1 (KHTML, like Gecko) Version/5.0.5 Safari/533.21.1' 29 | } 30 | }); 31 | 32 | const body = await res.text(); 33 | // Get the font URL from the CSS text 34 | const fontUrl = body.match(/src: url\((.+)\) format\('(opentype|truetype)'\)/)?.[1]; 35 | 36 | if (!fontUrl) { 37 | throw new Error('Could not find font URL'); 38 | } 39 | 40 | return fetch(fontUrl).then((res) => res.arrayBuffer()); 41 | } 42 | -------------------------------------------------------------------------------- /src/lib/index.ts: -------------------------------------------------------------------------------- 1 | export {ImageResponse} from "./api.js" 2 | export type {ImageResponseOptions, ComponentOptions} from "./types.js" 3 | -------------------------------------------------------------------------------- /src/lib/types.ts: -------------------------------------------------------------------------------- 1 | import type { SatoriOptions } from 'satori/wasm'; 2 | 3 | export interface ImageResponseOptions { 4 | width?: number; 5 | height?: number; 6 | // emoji?: 'twemoji' | 'blobmoji' | 'noto' | 'openmoji' = 'twemoji', 7 | fonts?: SatoriOptions['fonts']; 8 | debug?: boolean; 9 | 10 | // Options that will be passed to the HTTP response 11 | status?: number; 12 | statusText?: string; 13 | headers?: Record; 14 | 15 | // Format 16 | format?: 'svg' | 'png'; // Defaults to 'png' 17 | } 18 | 19 | export type ComponentOptions = { 20 | props?: Record; 21 | style?: string; 22 | }; -------------------------------------------------------------------------------- /src/routes/+server.ts: -------------------------------------------------------------------------------- 1 | import type {RequestHandler} from "@sveltejs/kit"; 2 | import {ImageResponse} from "$lib"; 3 | 4 | export const GET: RequestHandler = async () => { 5 | const html = '
hello, world
'; 6 | return new ImageResponse(html) 7 | }; 8 | -------------------------------------------------------------------------------- /src/routes/sc/+server.ts: -------------------------------------------------------------------------------- 1 | import type {RequestHandler} from "@sveltejs/kit"; 2 | import {ImageResponse} from "$lib/api.js"; 3 | import OG from "./OG.svelte"; 4 | 5 | export const GET: RequestHandler = async () => { 6 | return new ImageResponse( 7 | OG as any, 8 | {}, 9 | { props: { 10 | text: 'Ready to dive in?', spanText: 'Start your free trial today.' 11 | } 12 | } 13 | ); 14 | }; 15 | -------------------------------------------------------------------------------- /src/routes/sc/OG.svelte: -------------------------------------------------------------------------------- 1 | 5 | 6 |
7 |
8 |

9 | {text} 10 | {spanText} 11 |

12 | 13 |
14 |
15 | Get started 20 |
21 |
22 | Learn more 27 |
28 |
29 |
30 |
31 | -------------------------------------------------------------------------------- /static/demo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/etherCorps/sveltekit-og/0cbf2ff812724f2cd8b2f0611d27a677bbdb6ae7/static/demo.png -------------------------------------------------------------------------------- /static/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/etherCorps/sveltekit-og/0cbf2ff812724f2cd8b2f0611d27a677bbdb6ae7/static/favicon.png -------------------------------------------------------------------------------- /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 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./.svelte-kit/tsconfig.json", 3 | "compilerOptions": { 4 | "allowJs": true, 5 | "checkJs": true, 6 | "esModuleInterop": true, 7 | "forceConsistentCasingInFileNames": true, 8 | "resolveJsonModule": true, 9 | "skipLibCheck": true, 10 | "sourceMap": true, 11 | "strict": true, 12 | "moduleResolution": "NodeNext" 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /vite.config.ts: -------------------------------------------------------------------------------- 1 | import { sveltekit } from '@sveltejs/kit/vite'; 2 | import { defineConfig } from 'vitest/config'; 3 | 4 | export default defineConfig({ 5 | plugins: [sveltekit()], 6 | test: { 7 | include: ['src/**/*.{test,spec}.{js,ts}'] 8 | } 9 | }); 10 | --------------------------------------------------------------------------------