├── .eslintignore
├── .eslintrc.cjs
├── .github
└── workflows
│ ├── lint.yml
│ ├── playwright.yml
│ └── vitest.yml
├── .gitignore
├── .npmrc
├── .prettierignore
├── .prettierrc
├── LICENSE
├── README.md
├── examples
└── svelte
│ ├── README.md
│ ├── index.html
│ ├── jsconfig.json
│ ├── package.json
│ ├── pnpm-lock.yaml
│ ├── public
│ └── vite.svg
│ ├── src
│ ├── App.svelte
│ ├── app.css
│ ├── assets
│ │ └── svelte.svg
│ ├── lib
│ │ └── Counter.svelte
│ ├── main.js
│ └── vite-env.d.ts
│ ├── svelte.config.js
│ └── vite.config.js
├── mdsvex.config.js
├── package.json
├── playwright.config.ts
├── pnpm-lock.yaml
├── src
├── app.d.ts
├── app.html
├── index.test.ts
├── internal
│ └── Toggle.svelte
├── lib
│ ├── ContextMenu.svelte
│ ├── ContextMenuParentNode.svelte
│ ├── ContextMenuSchema.ts
│ ├── index.js
│ ├── types.ts
│ └── utils.ts
└── routes
│ ├── +layout.svelte
│ ├── +page.svelte
│ ├── Hero.svelte
│ ├── Install.svelte
│ └── docs
│ ├── +layout.svelte
│ ├── basic-usage
│ ├── +page.svelte
│ └── PageContent.svelte.md
│ ├── browser-builtins
│ ├── +page.svelte
│ └── PageContent.svelte.md
│ ├── getting-started
│ ├── +page.svelte
│ └── PageContent.svelte.md
│ ├── install
│ ├── +page.svelte
│ └── PageContent.svelte.md
│ ├── lang.ts
│ ├── philosophy
│ ├── +page.svelte
│ └── PageContent.svelte.md
│ ├── props
│ ├── +page.svelte
│ └── PageContent.svelte.md
│ ├── schemas
│ ├── +page.svelte
│ └── PageContent.svelte.md
│ └── style
│ ├── +page.svelte
│ └── PageContent.svelte.md
├── static
├── base.css
├── favicon.png
├── gruvbox.css
└── images
│ ├── github.svg
│ └── npm.svg
├── svelte.config.js
├── tests
├── e2e
│ └── docs.test.ts
└── unit
│ └── utils.test.ts
├── 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 | parser: '@typescript-eslint/parser',
4 | extends: ['eslint:recommended', 'plugin:@typescript-eslint/recommended', 'prettier'],
5 | plugins: ['svelte3', '@typescript-eslint'],
6 | ignorePatterns: ['*.cjs', '/dist/**'],
7 | overrides: [{ files: ['*.svelte'], processor: 'svelte3/svelte3' }],
8 | settings: {
9 | 'svelte3/typescript': () => require('typescript')
10 | },
11 | parserOptions: {
12 | sourceType: 'module',
13 | ecmaVersion: 2020
14 | },
15 | env: {
16 | browser: true,
17 | es2017: true,
18 | node: true
19 | }
20 | };
21 |
--------------------------------------------------------------------------------
/.github/workflows/lint.yml:
--------------------------------------------------------------------------------
1 | name: Lint
2 |
3 | on:
4 | push:
5 | branches: [main]
6 | pull_request:
7 | branches: [main]
8 |
9 | jobs:
10 | build:
11 | runs-on: ubuntu-latest
12 |
13 | strategy:
14 | matrix:
15 | node-version: [16.x]
16 |
17 | steps:
18 | - uses: actions/checkout@v3
19 | - name: Use Node.js ${{ matrix.node-version }}
20 | uses: actions/setup-node@v3
21 | with:
22 | node-version: ${{ matrix.node-version }}
23 | - run: npm i -g pnpm@latest-7
24 | - run: pnpm install
25 | - run: pnpm run lint
26 | # - run: pnpm run check
27 |
--------------------------------------------------------------------------------
/.github/workflows/playwright.yml:
--------------------------------------------------------------------------------
1 | name: Playwright
2 | on:
3 | push:
4 | branches: [main]
5 | pull_request:
6 | branches: [main]
7 | jobs:
8 | test:
9 | timeout-minutes: 60
10 | runs-on: ubuntu-latest
11 | steps:
12 | - uses: actions/checkout@v3
13 | - uses: actions/setup-node@v3
14 | with:
15 | node-version: 18
16 | - name: Install pnpm
17 | run: npm i -g pnpm@latest-7
18 | - name: Install dependencies
19 | run: pnpm install
20 | - name: Install Playwright Browsers
21 | run: pnpx playwright install --with-deps
22 | - name: Run Playwright tests
23 | run: npx playwright test
24 |
--------------------------------------------------------------------------------
/.github/workflows/vitest.yml:
--------------------------------------------------------------------------------
1 | name: Vitest
2 |
3 | on:
4 | push:
5 | branches: [main]
6 | pull_request:
7 | branches: [main]
8 |
9 | jobs:
10 | build:
11 | runs-on: ubuntu-latest
12 |
13 | strategy:
14 | matrix:
15 | node-version: [16.x]
16 |
17 | steps:
18 | - uses: actions/checkout@v3
19 | - name: Use Node.js ${{ matrix.node-version }}
20 | uses: actions/setup-node@v3
21 | with:
22 | node-version: ${{ matrix.node-version }}
23 | - run: npm i -g pnpm@latest-7
24 | - run: pnpm install
25 | - run: pnpm run test:unit
26 |
--------------------------------------------------------------------------------
/.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 |
--------------------------------------------------------------------------------
/.npmrc:
--------------------------------------------------------------------------------
1 | engine-strict=true
2 |
--------------------------------------------------------------------------------
/.prettierignore:
--------------------------------------------------------------------------------
1 | .DS_Store
2 | node_modules
3 | /build
4 | /.svelte-kit
5 | /package
6 | /dist
7 | .env
8 | .env.*
9 | !.env.example
10 |
11 | # Ignore files for PNPM, NPM and YARN
12 | pnpm-lock.yaml
13 | package-lock.json
14 | yarn.lock
15 |
--------------------------------------------------------------------------------
/.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 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2023 Jacob Størdahl
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # svelte-right-click
2 |
3 | A custom context menu for your Svelte application.
4 |
5 | [](https://github.com/stordahl/svelte-right-click/actions/workflows/vitest.yml)
6 |
7 | [](https://github.com/stordahl/svelte-right-click/actions/workflows/playwright.yml)
8 |
9 | > Currently in Active Development
10 |
11 | ### [Svelte REPL demo](https://svelte.dev/repl/ccf8cf5e39f64955ba0317fc29d9b2b5?version=3.57.0)
12 |
13 | ## Features
14 |
15 | - Schema Driven ✏️
16 | - TypeScript Support ✅
17 | - Stylable via Style Props 🎨
18 | - Support for browser built-in context menu functions 💻
19 |
20 | ## Installation
21 |
22 | ```shell
23 | npm install --save-dev svelte-right-click
24 | # yarn add svelte-right-click
25 | # pnpm add svelte-right-click
26 | ```
27 |
28 | ## Docs
29 |
30 | Read the full documentation [here](https://svelte-right-click.vercel.app)
31 |
32 | ## Contributing
33 |
34 | Contribution docs, issues templates, and more coming soon!
35 |
--------------------------------------------------------------------------------
/examples/svelte/README.md:
--------------------------------------------------------------------------------
1 | # Svelte + Vite
2 |
3 | This template should help get you started developing with Svelte in Vite.
4 |
5 | ## Recommended IDE Setup
6 |
7 | [VS Code](https://code.visualstudio.com/) + [Svelte](https://marketplace.visualstudio.com/items?itemName=svelte.svelte-vscode).
8 |
9 | ## Need an official Svelte framework?
10 |
11 | Check out [SvelteKit](https://github.com/sveltejs/kit#readme), which is also powered by Vite. Deploy anywhere with its serverless-first approach and adapt to various platforms, with out of the box support for TypeScript, SCSS, and Less, and easily-added support for mdsvex, GraphQL, PostCSS, Tailwind CSS, and more.
12 |
13 | ## Technical considerations
14 |
15 | **Why use this over SvelteKit?**
16 |
17 | - It brings its own routing solution which might not be preferable for some users.
18 | - It is first and foremost a framework that just happens to use Vite under the hood, not a Vite app.
19 |
20 | This template contains as little as possible to get started with Vite + Svelte, while taking into account the developer experience with regards to HMR and intellisense. It demonstrates capabilities on par with the other `create-vite` templates and is a good starting point for beginners dipping their toes into a Vite + Svelte project.
21 |
22 | Should you later need the extended capabilities and extensibility provided by SvelteKit, the template has been structured similarly to SvelteKit so that it is easy to migrate.
23 |
24 | **Why `global.d.ts` instead of `compilerOptions.types` inside `jsconfig.json` or `tsconfig.json`?**
25 |
26 | Setting `compilerOptions.types` shuts out all other types not explicitly listed in the configuration. Using triple-slash references keeps the default TypeScript setting of accepting type information from the entire workspace, while also adding `svelte` and `vite/client` type information.
27 |
28 | **Why include `.vscode/extensions.json`?**
29 |
30 | Other templates indirectly recommend extensions via the README, but this file allows VS Code to prompt the user to install the recommended extension upon opening the project.
31 |
32 | **Why enable `checkJs` in the JS template?**
33 |
34 | It is likely that most cases of changing variable types in runtime are likely to be accidental, rather than deliberate. This provides advanced typechecking out of the box. Should you like to take advantage of the dynamically-typed nature of JavaScript, it is trivial to change the configuration.
35 |
36 | **Why is HMR not preserving my local component state?**
37 |
38 | HMR state preservation comes with a number of gotchas! It has been disabled by default in both `svelte-hmr` and `@sveltejs/vite-plugin-svelte` due to its often surprising behavior. You can read the details [here](https://github.com/rixo/svelte-hmr#svelte-hmr).
39 |
40 | If you have state that's important to retain within a component, consider creating an external store which would not be replaced by HMR.
41 |
42 | ```js
43 | // store.js
44 | // An extremely simple external store
45 | import { writable } from 'svelte/store';
46 | export default writable(0);
47 | ```
48 |
--------------------------------------------------------------------------------
/examples/svelte/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | Vite + Svelte
8 |
9 |
10 |
11 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/examples/svelte/jsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "moduleResolution": "Node",
4 | "target": "ESNext",
5 | "module": "ESNext",
6 | /**
7 | * svelte-preprocess cannot figure out whether you have
8 | * a value or a type, so tell TypeScript to enforce using
9 | * `import type` instead of `import` for Types.
10 | */
11 | "importsNotUsedAsValues": "error",
12 | "isolatedModules": true,
13 | "resolveJsonModule": true,
14 | /**
15 | * To have warnings / errors of the Svelte compiler at the
16 | * correct position, enable source maps by default.
17 | */
18 | "sourceMap": true,
19 | "esModuleInterop": true,
20 | "skipLibCheck": true,
21 | "forceConsistentCasingInFileNames": true,
22 | /**
23 | * Typecheck JS in `.svelte` and `.js` files by default.
24 | * Disable this if you'd like to use dynamic types.
25 | */
26 | "checkJs": true
27 | },
28 | /**
29 | * Use global.d.ts instead of compilerOptions.types
30 | * to avoid limiting type declarations.
31 | */
32 | "include": ["src/**/*.d.ts", "src/**/*.js", "src/**/*.svelte"]
33 | }
34 |
--------------------------------------------------------------------------------
/examples/svelte/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "svelte-right-click-example",
3 | "private": true,
4 | "version": "0.0.0",
5 | "type": "module",
6 | "scripts": {
7 | "dev": "vite",
8 | "build": "vite build",
9 | "preview": "vite preview"
10 | },
11 | "devDependencies": {
12 | "@sveltejs/vite-plugin-svelte": "^2.0.3",
13 | "svelte": "^3.55.1",
14 | "vite": "^4.2.0"
15 | },
16 | "dependencies": {
17 | "svelte-right-click": "latest"
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/examples/svelte/pnpm-lock.yaml:
--------------------------------------------------------------------------------
1 | lockfileVersion: 5.4
2 |
3 | specifiers:
4 | '@sveltejs/vite-plugin-svelte': ^2.0.3
5 | svelte: ^3.55.1
6 | svelte-right-click: ^0.0.2
7 | vite: ^4.2.0
8 |
9 | dependencies:
10 | svelte-right-click: 0.0.2_svelte@3.57.0
11 |
12 | devDependencies:
13 | '@sveltejs/vite-plugin-svelte': 2.0.3_svelte@3.57.0+vite@4.2.1
14 | svelte: 3.57.0
15 | vite: 4.2.1
16 |
17 | packages:
18 |
19 | /@esbuild/android-arm/0.17.13:
20 | resolution: {integrity: sha512-5tZZ/hLIfBmt7E8JsE5KbsknoAFmoElkg+A/gjyPtmSQvJjPf+9GsSJihid8VMa08lrsYyaEXOT9RLh3xXQONw==}
21 | engines: {node: '>=12'}
22 | cpu: [arm]
23 | os: [android]
24 | requiresBuild: true
25 | dev: true
26 | optional: true
27 |
28 | /@esbuild/android-arm64/0.17.13:
29 | resolution: {integrity: sha512-F5DgvJMV2ZEpLNpPCO7FEk1wy8O5tg6cikWSB6uvvncsgE1xgbPlm+Boio/4820C2/mj713X83X1h01v0qoeHg==}
30 | engines: {node: '>=12'}
31 | cpu: [arm64]
32 | os: [android]
33 | requiresBuild: true
34 | dev: true
35 | optional: true
36 |
37 | /@esbuild/android-x64/0.17.13:
38 | resolution: {integrity: sha512-5m1UUslzpfVrumG3m3Zv2x9VNAcvMOQWJy009y6jt10tcHpzIq2/b0I0k4fz0QYqGSNS1GteRIhVPN4H7OyCXg==}
39 | engines: {node: '>=12'}
40 | cpu: [x64]
41 | os: [android]
42 | requiresBuild: true
43 | dev: true
44 | optional: true
45 |
46 | /@esbuild/darwin-arm64/0.17.13:
47 | resolution: {integrity: sha512-TXbXp/05r7heRsG8yWwbHw9diay+wXIyRNcIHFoNARRIGahYbTW/qwJzE37zkfxLIUPHgR/SyLTUlnTICg14ag==}
48 | engines: {node: '>=12'}
49 | cpu: [arm64]
50 | os: [darwin]
51 | requiresBuild: true
52 | dev: true
53 | optional: true
54 |
55 | /@esbuild/darwin-x64/0.17.13:
56 | resolution: {integrity: sha512-Ku9Db2sblCxFvQdEO7X9nBaLR/S81uch81e2Q2+Os5z1NcnsFjuqhIYH0Gm6KNNpIKaEbC7gCLbiIPbLLMX4Pg==}
57 | engines: {node: '>=12'}
58 | cpu: [x64]
59 | os: [darwin]
60 | requiresBuild: true
61 | dev: true
62 | optional: true
63 |
64 | /@esbuild/freebsd-arm64/0.17.13:
65 | resolution: {integrity: sha512-t1T5/nIf2j+FdSf1Fa3dcU0cXycr0nK4xJe52qjWa+1I249mM5NBY1ODjiabZxZ0x3CG05y4fd9bxfDLy9kQtA==}
66 | engines: {node: '>=12'}
67 | cpu: [arm64]
68 | os: [freebsd]
69 | requiresBuild: true
70 | dev: true
71 | optional: true
72 |
73 | /@esbuild/freebsd-x64/0.17.13:
74 | resolution: {integrity: sha512-/zbkgEO4gY2qGZr9UNAGI38w/FwUY4bx4EC88k9VeiCKNr3ukNgwH/oIgB5Z9/OqpkNLlcS4w9e2d/MIiy5fbw==}
75 | engines: {node: '>=12'}
76 | cpu: [x64]
77 | os: [freebsd]
78 | requiresBuild: true
79 | dev: true
80 | optional: true
81 |
82 | /@esbuild/linux-arm/0.17.13:
83 | resolution: {integrity: sha512-RrhjzrCF6aCDH248nUAQoldnRmN7nHMxv85GOj5AH+qkxxYvcig7fnUmgANngntRu4btXhN9WKHMgQ5seERDMw==}
84 | engines: {node: '>=12'}
85 | cpu: [arm]
86 | os: [linux]
87 | requiresBuild: true
88 | dev: true
89 | optional: true
90 |
91 | /@esbuild/linux-arm64/0.17.13:
92 | resolution: {integrity: sha512-siu3QZrQ7eGrSttvFaRKyjT7kNRbUuHEKzCCyqRh19MbpGokGY13jbIsBEjx6JmH3T50hds325oweS9Ey2ihAQ==}
93 | engines: {node: '>=12'}
94 | cpu: [arm64]
95 | os: [linux]
96 | requiresBuild: true
97 | dev: true
98 | optional: true
99 |
100 | /@esbuild/linux-ia32/0.17.13:
101 | resolution: {integrity: sha512-ADHA1PqP5gIegehVP0RvxMmNPxpLgetI8QCwYOjUheGXKIKWSdUN8ZS3rusQv3NGZmFCpYdMZzFoI0QtzzGAdw==}
102 | engines: {node: '>=12'}
103 | cpu: [ia32]
104 | os: [linux]
105 | requiresBuild: true
106 | dev: true
107 | optional: true
108 |
109 | /@esbuild/linux-loong64/0.17.13:
110 | resolution: {integrity: sha512-n1JQPxETmR0brkpWlJHeohReEPLH+m00bnJdNnFyHN3zLBt1QypevuZSmnmFWsC+7r7HTwWILj3lBDjtPH3ydg==}
111 | engines: {node: '>=12'}
112 | cpu: [loong64]
113 | os: [linux]
114 | requiresBuild: true
115 | dev: true
116 | optional: true
117 |
118 | /@esbuild/linux-mips64el/0.17.13:
119 | resolution: {integrity: sha512-d0pnD/j5KKQ43xtSIvOD+wNIy6D/Vh9GbXVRa3u4zCyiJMYWjxkPkbBzlEgNjdDmUM+5gBFen9k7B8Xscy+Myg==}
120 | engines: {node: '>=12'}
121 | cpu: [mips64el]
122 | os: [linux]
123 | requiresBuild: true
124 | dev: true
125 | optional: true
126 |
127 | /@esbuild/linux-ppc64/0.17.13:
128 | resolution: {integrity: sha512-C9sMpa/VcGLjVtsT01sXtzZNS7bAZ+icUclkKkiUwBQ9hzT+J+/Xpj+EykI5hB3KgtxQVo4XUahanFoZNxbQ1g==}
129 | engines: {node: '>=12'}
130 | cpu: [ppc64]
131 | os: [linux]
132 | requiresBuild: true
133 | dev: true
134 | optional: true
135 |
136 | /@esbuild/linux-riscv64/0.17.13:
137 | resolution: {integrity: sha512-jYkc5EpNpvjccAHNYekiAtklusVGWftR0VVLtng7dJzDyy+5adAsf1fOG3LllP0WALxS55/w6boLE/728J/bXw==}
138 | engines: {node: '>=12'}
139 | cpu: [riscv64]
140 | os: [linux]
141 | requiresBuild: true
142 | dev: true
143 | optional: true
144 |
145 | /@esbuild/linux-s390x/0.17.13:
146 | resolution: {integrity: sha512-4jAJI5O6E/hATL4lsrG2A+noDjZ377KlATVFKwV3SWaNHj+OvoXe/T84ScQIXEtPI7ndJyLkMYruXj8RR5Ilyw==}
147 | engines: {node: '>=12'}
148 | cpu: [s390x]
149 | os: [linux]
150 | requiresBuild: true
151 | dev: true
152 | optional: true
153 |
154 | /@esbuild/linux-x64/0.17.13:
155 | resolution: {integrity: sha512-eFLQhJq98qijGRcv9je/9M4Mz1suZ+pOtj62ArsLd0gubNGhhQDz6T30X2X3f1KZ8lkKkr+zN5vtZzx1GAMoFw==}
156 | engines: {node: '>=12'}
157 | cpu: [x64]
158 | os: [linux]
159 | requiresBuild: true
160 | dev: true
161 | optional: true
162 |
163 | /@esbuild/netbsd-x64/0.17.13:
164 | resolution: {integrity: sha512-F8PXDeT+3eQpPjf4bmNJapPLu0SKKlWRGPQvBQqVS+YDGoMKnyyYp2UENLFMV8zT7kS39zKxZRZvUL3fMz/7Ww==}
165 | engines: {node: '>=12'}
166 | cpu: [x64]
167 | os: [netbsd]
168 | requiresBuild: true
169 | dev: true
170 | optional: true
171 |
172 | /@esbuild/openbsd-x64/0.17.13:
173 | resolution: {integrity: sha512-9jWfzbFCnIZdHjNs+00KQHArUbp7kjQDNmiuqkwGOQFs67m4/dKNupBv2DP5hTqVlQY4tW4RG3qpb6Y3zOHJeA==}
174 | engines: {node: '>=12'}
175 | cpu: [x64]
176 | os: [openbsd]
177 | requiresBuild: true
178 | dev: true
179 | optional: true
180 |
181 | /@esbuild/sunos-x64/0.17.13:
182 | resolution: {integrity: sha512-ALbOMlTIBkAVi6KqYjONa7u2oH95RN7OpetFqMtjufFLBiSaayRuwUzhs2yuR9CfGT4qi0jv6HQDav+EG314TQ==}
183 | engines: {node: '>=12'}
184 | cpu: [x64]
185 | os: [sunos]
186 | requiresBuild: true
187 | dev: true
188 | optional: true
189 |
190 | /@esbuild/win32-arm64/0.17.13:
191 | resolution: {integrity: sha512-FJBLYL4PkrZGeuHzEqme+0DjNetxkJ+XbB+Aoeow7aQ53JCwsA0/mo8sS5aPkDHgCnMkN4A5GLoFTlDj3BKDrQ==}
192 | engines: {node: '>=12'}
193 | cpu: [arm64]
194 | os: [win32]
195 | requiresBuild: true
196 | dev: true
197 | optional: true
198 |
199 | /@esbuild/win32-ia32/0.17.13:
200 | resolution: {integrity: sha512-Qrvst9RkLz4qgi3hqswNliYuKW92/HGJnd7xLWkGaGPa8S4qsONf81FW0ebDc5iUHb0I7QJwQATutvghTabnFA==}
201 | engines: {node: '>=12'}
202 | cpu: [ia32]
203 | os: [win32]
204 | requiresBuild: true
205 | dev: true
206 | optional: true
207 |
208 | /@esbuild/win32-x64/0.17.13:
209 | resolution: {integrity: sha512-pZ/NIgz861XaUPlIkPFjP55nJ4PJa0o/CD4zgeRb1Q9FVE+8GvdB6ifJcK05jRhny5hKExhnRFIdgHmmCYH8vg==}
210 | engines: {node: '>=12'}
211 | cpu: [x64]
212 | os: [win32]
213 | requiresBuild: true
214 | dev: true
215 | optional: true
216 |
217 | /@jridgewell/sourcemap-codec/1.4.14:
218 | resolution: {integrity: sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==}
219 | dev: true
220 |
221 | /@sveltejs/vite-plugin-svelte/2.0.3_svelte@3.57.0+vite@4.2.1:
222 | resolution: {integrity: sha512-o+cguBFdwIGtRbNkYOyqTM7KvRUffxh5bfK4oJsWKG2obu+v/cbpT03tJrGl58C7tRXo/aEC0/axN5FVHBj0nA==}
223 | engines: {node: ^14.18.0 || >= 16}
224 | peerDependencies:
225 | svelte: ^3.54.0
226 | vite: ^4.0.0
227 | dependencies:
228 | debug: 4.3.4
229 | deepmerge: 4.3.1
230 | kleur: 4.1.5
231 | magic-string: 0.29.0
232 | svelte: 3.57.0
233 | svelte-hmr: 0.15.1_svelte@3.57.0
234 | vite: 4.2.1
235 | vitefu: 0.2.4_vite@4.2.1
236 | transitivePeerDependencies:
237 | - supports-color
238 | dev: true
239 |
240 | /debug/4.3.4:
241 | resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==}
242 | engines: {node: '>=6.0'}
243 | peerDependencies:
244 | supports-color: '*'
245 | peerDependenciesMeta:
246 | supports-color:
247 | optional: true
248 | dependencies:
249 | ms: 2.1.2
250 | dev: true
251 |
252 | /deepmerge/4.3.1:
253 | resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==}
254 | engines: {node: '>=0.10.0'}
255 | dev: true
256 |
257 | /esbuild/0.17.13:
258 | resolution: {integrity: sha512-4ixMwdErBcQHgTBeoxnowENCPKWFAGxgTyKHMK8gqn9sZaC7ZNWFKtim16g2rzQ2b/FYyy3lIUUJboFtjolhqg==}
259 | engines: {node: '>=12'}
260 | hasBin: true
261 | requiresBuild: true
262 | optionalDependencies:
263 | '@esbuild/android-arm': 0.17.13
264 | '@esbuild/android-arm64': 0.17.13
265 | '@esbuild/android-x64': 0.17.13
266 | '@esbuild/darwin-arm64': 0.17.13
267 | '@esbuild/darwin-x64': 0.17.13
268 | '@esbuild/freebsd-arm64': 0.17.13
269 | '@esbuild/freebsd-x64': 0.17.13
270 | '@esbuild/linux-arm': 0.17.13
271 | '@esbuild/linux-arm64': 0.17.13
272 | '@esbuild/linux-ia32': 0.17.13
273 | '@esbuild/linux-loong64': 0.17.13
274 | '@esbuild/linux-mips64el': 0.17.13
275 | '@esbuild/linux-ppc64': 0.17.13
276 | '@esbuild/linux-riscv64': 0.17.13
277 | '@esbuild/linux-s390x': 0.17.13
278 | '@esbuild/linux-x64': 0.17.13
279 | '@esbuild/netbsd-x64': 0.17.13
280 | '@esbuild/openbsd-x64': 0.17.13
281 | '@esbuild/sunos-x64': 0.17.13
282 | '@esbuild/win32-arm64': 0.17.13
283 | '@esbuild/win32-ia32': 0.17.13
284 | '@esbuild/win32-x64': 0.17.13
285 | dev: true
286 |
287 | /fsevents/2.3.2:
288 | resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==}
289 | engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0}
290 | os: [darwin]
291 | requiresBuild: true
292 | dev: true
293 | optional: true
294 |
295 | /function-bind/1.1.1:
296 | resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==}
297 | dev: true
298 |
299 | /has/1.0.3:
300 | resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==}
301 | engines: {node: '>= 0.4.0'}
302 | dependencies:
303 | function-bind: 1.1.1
304 | dev: true
305 |
306 | /is-core-module/2.11.0:
307 | resolution: {integrity: sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==}
308 | dependencies:
309 | has: 1.0.3
310 | dev: true
311 |
312 | /kleur/4.1.5:
313 | resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==}
314 | engines: {node: '>=6'}
315 | dev: true
316 |
317 | /magic-string/0.29.0:
318 | resolution: {integrity: sha512-WcfidHrDjMY+eLjlU+8OvwREqHwpgCeKVBUpQ3OhYYuvfaYCUgcbuBzappNzZvg/v8onU3oQj+BYpkOJe9Iw4Q==}
319 | engines: {node: '>=12'}
320 | dependencies:
321 | '@jridgewell/sourcemap-codec': 1.4.14
322 | dev: true
323 |
324 | /ms/2.1.2:
325 | resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==}
326 | dev: true
327 |
328 | /nanoid/3.3.4:
329 | resolution: {integrity: sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==}
330 | engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
331 | hasBin: true
332 | dev: true
333 |
334 | /path-parse/1.0.7:
335 | resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==}
336 | dev: true
337 |
338 | /picocolors/1.0.0:
339 | resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==}
340 | dev: true
341 |
342 | /postcss/8.4.21:
343 | resolution: {integrity: sha512-tP7u/Sn/dVxK2NnruI4H9BG+x+Wxz6oeZ1cJ8P6G/PZY0IKk4k/63TDsQf2kQq3+qoJeLm2kIBUNlZe3zgb4Zg==}
344 | engines: {node: ^10 || ^12 || >=14}
345 | dependencies:
346 | nanoid: 3.3.4
347 | picocolors: 1.0.0
348 | source-map-js: 1.0.2
349 | dev: true
350 |
351 | /resolve/1.22.1:
352 | resolution: {integrity: sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==}
353 | hasBin: true
354 | dependencies:
355 | is-core-module: 2.11.0
356 | path-parse: 1.0.7
357 | supports-preserve-symlinks-flag: 1.0.0
358 | dev: true
359 |
360 | /rollup/3.20.2:
361 | resolution: {integrity: sha512-3zwkBQl7Ai7MFYQE0y1MeQ15+9jsi7XxfrqwTb/9EK8D9C9+//EBR4M+CuA1KODRaNbFez/lWxA5vhEGZp4MUg==}
362 | engines: {node: '>=14.18.0', npm: '>=8.0.0'}
363 | hasBin: true
364 | optionalDependencies:
365 | fsevents: 2.3.2
366 | dev: true
367 |
368 | /source-map-js/1.0.2:
369 | resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==}
370 | engines: {node: '>=0.10.0'}
371 | dev: true
372 |
373 | /supports-preserve-symlinks-flag/1.0.0:
374 | resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==}
375 | engines: {node: '>= 0.4'}
376 | dev: true
377 |
378 | /svelte-hmr/0.15.1_svelte@3.57.0:
379 | resolution: {integrity: sha512-BiKB4RZ8YSwRKCNVdNxK/GfY+r4Kjgp9jCLEy0DuqAKfmQtpL38cQK3afdpjw4sqSs4PLi3jIPJIFp259NkZtA==}
380 | engines: {node: ^12.20 || ^14.13.1 || >= 16}
381 | peerDependencies:
382 | svelte: '>=3.19.0'
383 | dependencies:
384 | svelte: 3.57.0
385 | dev: true
386 |
387 | /svelte-right-click/0.0.2_svelte@3.57.0:
388 | resolution: {integrity: sha512-lLwPsdu6+4hV2e8evwRo5+ec1elMATkdaLQ3zhtygO0iE6fKoLcPX8q9XpOkzS54kpaQnRNbIOnXASj3k8veOQ==}
389 | peerDependencies:
390 | svelte: ^3.54.0
391 | dependencies:
392 | svelte: 3.57.0
393 | dev: false
394 |
395 | /svelte/3.57.0:
396 | resolution: {integrity: sha512-WMXEvF+RtAaclw0t3bPDTUe19pplMlfyKDsixbHQYgCWi9+O9VN0kXU1OppzrB9gPAvz4NALuoca2LfW2bOjTQ==}
397 | engines: {node: '>= 8'}
398 |
399 | /vite/4.2.1:
400 | resolution: {integrity: sha512-7MKhqdy0ISo4wnvwtqZkjke6XN4taqQ2TBaTccLIpOKv7Vp2h4Y+NpmWCnGDeSvvn45KxvWgGyb0MkHvY1vgbg==}
401 | engines: {node: ^14.18.0 || >=16.0.0}
402 | hasBin: true
403 | peerDependencies:
404 | '@types/node': '>= 14'
405 | less: '*'
406 | sass: '*'
407 | stylus: '*'
408 | sugarss: '*'
409 | terser: ^5.4.0
410 | peerDependenciesMeta:
411 | '@types/node':
412 | optional: true
413 | less:
414 | optional: true
415 | sass:
416 | optional: true
417 | stylus:
418 | optional: true
419 | sugarss:
420 | optional: true
421 | terser:
422 | optional: true
423 | dependencies:
424 | esbuild: 0.17.13
425 | postcss: 8.4.21
426 | resolve: 1.22.1
427 | rollup: 3.20.2
428 | optionalDependencies:
429 | fsevents: 2.3.2
430 | dev: true
431 |
432 | /vitefu/0.2.4_vite@4.2.1:
433 | resolution: {integrity: sha512-fanAXjSaf9xXtOOeno8wZXIhgia+CZury481LsDaV++lSvcU2R9Ch2bPh3PYFyoHW+w9LqAeYRISVQjUIew14g==}
434 | peerDependencies:
435 | vite: ^3.0.0 || ^4.0.0
436 | peerDependenciesMeta:
437 | vite:
438 | optional: true
439 | dependencies:
440 | vite: 4.2.1
441 | dev: true
442 |
--------------------------------------------------------------------------------
/examples/svelte/public/vite.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/examples/svelte/src/App.svelte:
--------------------------------------------------------------------------------
1 |
17 |
18 |
19 |
20 |
28 | Vite + Svelte
29 |
30 |
31 |
32 |
33 |
34 |
35 | Check out SvelteKit , the official Svelte app framework powered by Vite!
38 |
39 |
40 | Click on the Vite and Svelte logos to learn more
41 |
42 |
43 |
60 |
--------------------------------------------------------------------------------
/examples/svelte/src/app.css:
--------------------------------------------------------------------------------
1 | :root {
2 | font-family: Inter, system-ui, Avenir, Helvetica, Arial, sans-serif;
3 | line-height: 1.5;
4 | font-weight: 400;
5 |
6 | color-scheme: light dark;
7 | color: rgba(255, 255, 255, 0.87);
8 | background-color: #242424;
9 |
10 | font-synthesis: none;
11 | text-rendering: optimizeLegibility;
12 | -webkit-font-smoothing: antialiased;
13 | -moz-osx-font-smoothing: grayscale;
14 | -webkit-text-size-adjust: 100%;
15 | }
16 |
17 | a {
18 | font-weight: 500;
19 | color: #646cff;
20 | text-decoration: inherit;
21 | }
22 | a:hover {
23 | color: #535bf2;
24 | }
25 |
26 | body {
27 | margin: 0;
28 | display: flex;
29 | place-items: center;
30 | min-width: 320px;
31 | min-height: 100vh;
32 | }
33 |
34 | h1 {
35 | font-size: 3.2em;
36 | line-height: 1.1;
37 | }
38 |
39 | .card {
40 | padding: 2em;
41 | }
42 |
43 | #app {
44 | max-width: 1280px;
45 | margin: 0 auto;
46 | padding: 2rem;
47 | text-align: center;
48 | }
49 |
50 | button {
51 | border-radius: 8px;
52 | border: 1px solid transparent;
53 | padding: 0.6em 1.2em;
54 | font-size: 1em;
55 | font-weight: 500;
56 | font-family: inherit;
57 | background-color: #1a1a1a;
58 | cursor: pointer;
59 | transition: border-color 0.25s;
60 | }
61 | button:hover {
62 | border-color: #646cff;
63 | }
64 | button:focus,
65 | button:focus-visible {
66 | outline: 4px auto -webkit-focus-ring-color;
67 | }
68 |
69 | @media (prefers-color-scheme: light) {
70 | :root {
71 | color: #213547;
72 | background-color: #ffffff;
73 | }
74 | a:hover {
75 | color: #747bff;
76 | }
77 | button {
78 | background-color: #f9f9f9;
79 | }
80 | }
81 |
--------------------------------------------------------------------------------
/examples/svelte/src/assets/svelte.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/examples/svelte/src/lib/Counter.svelte:
--------------------------------------------------------------------------------
1 |
7 |
8 |
9 | count is {count}
10 |
11 |
--------------------------------------------------------------------------------
/examples/svelte/src/main.js:
--------------------------------------------------------------------------------
1 | import './app.css';
2 | import App from './App.svelte';
3 |
4 | const app = new App({
5 | target: document.getElementById('app')
6 | });
7 |
8 | export default app;
9 |
--------------------------------------------------------------------------------
/examples/svelte/src/vite-env.d.ts:
--------------------------------------------------------------------------------
1 | ///
2 | ///
3 |
--------------------------------------------------------------------------------
/examples/svelte/svelte.config.js:
--------------------------------------------------------------------------------
1 | import { vitePreprocess } from '@sveltejs/vite-plugin-svelte';
2 |
3 | export default {
4 | // Consult https://svelte.dev/docs#compile-time-svelte-preprocess
5 | // for more information about preprocessors
6 | preprocess: vitePreprocess()
7 | };
8 |
--------------------------------------------------------------------------------
/examples/svelte/vite.config.js:
--------------------------------------------------------------------------------
1 | import { defineConfig } from 'vite';
2 | import { svelte } from '@sveltejs/vite-plugin-svelte';
3 |
4 | // https://vitejs.dev/config/
5 | export default defineConfig({
6 | plugins: [svelte()]
7 | });
8 |
--------------------------------------------------------------------------------
/mdsvex.config.js:
--------------------------------------------------------------------------------
1 | import { defineMDSveXConfig as defineConfig } from 'mdsvex';
2 |
3 | const config = defineConfig({
4 | extensions: ['.svelte.md', '.md', '.svx'],
5 |
6 | smartypants: {
7 | dashes: 'oldschool'
8 | },
9 |
10 | remarkPlugins: [],
11 | rehypePlugins: []
12 | });
13 |
14 | export default config;
15 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "svelte-right-click",
3 | "version": "0.0.5",
4 | "scripts": {
5 | "dev": "vite dev",
6 | "dev:ex:svelte": "cd examples/svelte && pnpm run dev",
7 | "build": "vite build && npm run package",
8 | "preview": "vite preview",
9 | "package": "svelte-kit sync && svelte-package && publint",
10 | "prepublishOnly": "npm run package",
11 | "test": "playwright test",
12 | "check": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json",
13 | "check:watch": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch",
14 | "test:unit": "vitest",
15 | "lint": "prettier --plugin-search-dir . --check . && eslint .",
16 | "format": "prettier --plugin-search-dir . --write ."
17 | },
18 | "exports": {
19 | ".": {
20 | "types": "./dist/index.d.ts",
21 | "svelte": "./dist/index.js"
22 | }
23 | },
24 | "files": [
25 | "dist"
26 | ],
27 | "peerDependencies": {
28 | "svelte": "^3.54.0"
29 | },
30 | "devDependencies": {
31 | "@playwright/test": "^1.32.1",
32 | "@sveltejs/adapter-auto": "^2.0.0",
33 | "@sveltejs/kit": "^1.14.0",
34 | "@sveltejs/package": "^2.0.2",
35 | "@typescript-eslint/eslint-plugin": "^5.56.0",
36 | "@typescript-eslint/parser": "^5.56.0",
37 | "eslint": "^8.36.0",
38 | "eslint-config-prettier": "^8.8.0",
39 | "eslint-plugin-svelte3": "^4.0.0",
40 | "jsdom": "^21.1.1",
41 | "mdsvex": "^0.10.6",
42 | "prettier": "^2.8.7",
43 | "prettier-plugin-svelte": "^2.10.0",
44 | "publint": "^0.1.11",
45 | "svelte": "^3.57.0",
46 | "svelte-check": "^3.1.4",
47 | "tslib": "^2.5.0",
48 | "typescript": "^4.9.5",
49 | "vite": "^4.2.1",
50 | "vitest": "^0.25.8"
51 | },
52 | "svelte": "./dist/index.js",
53 | "types": "./dist/index.d.ts",
54 | "type": "module"
55 | }
56 |
--------------------------------------------------------------------------------
/playwright.config.ts:
--------------------------------------------------------------------------------
1 | import type { PlaywrightTestConfig } from '@playwright/test';
2 |
3 | const config: PlaywrightTestConfig = {
4 | webServer: {
5 | command: 'npm run build && npm run preview',
6 | port: 4173
7 | },
8 | testDir: 'tests/e2e'
9 | };
10 |
11 | export default config;
12 |
--------------------------------------------------------------------------------
/pnpm-lock.yaml:
--------------------------------------------------------------------------------
1 | lockfileVersion: 5.4
2 |
3 | specifiers:
4 | '@playwright/test': ^1.32.1
5 | '@sveltejs/adapter-auto': ^2.0.0
6 | '@sveltejs/kit': ^1.14.0
7 | '@sveltejs/package': ^2.0.2
8 | '@typescript-eslint/eslint-plugin': ^5.56.0
9 | '@typescript-eslint/parser': ^5.56.0
10 | eslint: ^8.36.0
11 | eslint-config-prettier: ^8.8.0
12 | eslint-plugin-svelte3: ^4.0.0
13 | jsdom: ^21.1.1
14 | mdsvex: ^0.10.6
15 | prettier: ^2.8.7
16 | prettier-plugin-svelte: ^2.10.0
17 | publint: ^0.1.11
18 | svelte: ^3.57.0
19 | svelte-check: ^3.1.4
20 | tslib: ^2.5.0
21 | typescript: ^4.9.5
22 | vite: ^4.2.1
23 | vitest: ^0.25.8
24 |
25 | devDependencies:
26 | '@playwright/test': 1.32.1
27 | '@sveltejs/adapter-auto': 2.0.0_@sveltejs+kit@1.14.0
28 | '@sveltejs/kit': 1.14.0_svelte@3.57.0+vite@4.2.1
29 | '@sveltejs/package': 2.0.2_wkdgp32a7s6524odeddpfzb52q
30 | '@typescript-eslint/eslint-plugin': 5.56.0_iskin7c6dxqunwflhstekcjqmq
31 | '@typescript-eslint/parser': 5.56.0_vgl77cfdswitgr47lm5swmv43m
32 | eslint: 8.36.0
33 | eslint-config-prettier: 8.8.0_eslint@8.36.0
34 | eslint-plugin-svelte3: 4.0.0_wzem237sbvnwe7n34ytc5phasy
35 | jsdom: 21.1.1
36 | mdsvex: 0.10.6_svelte@3.57.0
37 | prettier: 2.8.7
38 | prettier-plugin-svelte: 2.10.0_5ir2xprf4ygk6mygilwnltaw3a
39 | publint: 0.1.11
40 | svelte: 3.57.0
41 | svelte-check: 3.1.4_svelte@3.57.0
42 | tslib: 2.5.0
43 | typescript: 4.9.5
44 | vite: 4.2.1
45 | vitest: 0.25.8_jsdom@21.1.1
46 |
47 | packages:
48 |
49 | /@esbuild/android-arm/0.17.13:
50 | resolution: {integrity: sha512-5tZZ/hLIfBmt7E8JsE5KbsknoAFmoElkg+A/gjyPtmSQvJjPf+9GsSJihid8VMa08lrsYyaEXOT9RLh3xXQONw==}
51 | engines: {node: '>=12'}
52 | cpu: [arm]
53 | os: [android]
54 | requiresBuild: true
55 | dev: true
56 | optional: true
57 |
58 | /@esbuild/android-arm64/0.17.13:
59 | resolution: {integrity: sha512-F5DgvJMV2ZEpLNpPCO7FEk1wy8O5tg6cikWSB6uvvncsgE1xgbPlm+Boio/4820C2/mj713X83X1h01v0qoeHg==}
60 | engines: {node: '>=12'}
61 | cpu: [arm64]
62 | os: [android]
63 | requiresBuild: true
64 | dev: true
65 | optional: true
66 |
67 | /@esbuild/android-x64/0.17.13:
68 | resolution: {integrity: sha512-5m1UUslzpfVrumG3m3Zv2x9VNAcvMOQWJy009y6jt10tcHpzIq2/b0I0k4fz0QYqGSNS1GteRIhVPN4H7OyCXg==}
69 | engines: {node: '>=12'}
70 | cpu: [x64]
71 | os: [android]
72 | requiresBuild: true
73 | dev: true
74 | optional: true
75 |
76 | /@esbuild/darwin-arm64/0.17.13:
77 | resolution: {integrity: sha512-TXbXp/05r7heRsG8yWwbHw9diay+wXIyRNcIHFoNARRIGahYbTW/qwJzE37zkfxLIUPHgR/SyLTUlnTICg14ag==}
78 | engines: {node: '>=12'}
79 | cpu: [arm64]
80 | os: [darwin]
81 | requiresBuild: true
82 | dev: true
83 | optional: true
84 |
85 | /@esbuild/darwin-x64/0.17.13:
86 | resolution: {integrity: sha512-Ku9Db2sblCxFvQdEO7X9nBaLR/S81uch81e2Q2+Os5z1NcnsFjuqhIYH0Gm6KNNpIKaEbC7gCLbiIPbLLMX4Pg==}
87 | engines: {node: '>=12'}
88 | cpu: [x64]
89 | os: [darwin]
90 | requiresBuild: true
91 | dev: true
92 | optional: true
93 |
94 | /@esbuild/freebsd-arm64/0.17.13:
95 | resolution: {integrity: sha512-t1T5/nIf2j+FdSf1Fa3dcU0cXycr0nK4xJe52qjWa+1I249mM5NBY1ODjiabZxZ0x3CG05y4fd9bxfDLy9kQtA==}
96 | engines: {node: '>=12'}
97 | cpu: [arm64]
98 | os: [freebsd]
99 | requiresBuild: true
100 | dev: true
101 | optional: true
102 |
103 | /@esbuild/freebsd-x64/0.17.13:
104 | resolution: {integrity: sha512-/zbkgEO4gY2qGZr9UNAGI38w/FwUY4bx4EC88k9VeiCKNr3ukNgwH/oIgB5Z9/OqpkNLlcS4w9e2d/MIiy5fbw==}
105 | engines: {node: '>=12'}
106 | cpu: [x64]
107 | os: [freebsd]
108 | requiresBuild: true
109 | dev: true
110 | optional: true
111 |
112 | /@esbuild/linux-arm/0.17.13:
113 | resolution: {integrity: sha512-RrhjzrCF6aCDH248nUAQoldnRmN7nHMxv85GOj5AH+qkxxYvcig7fnUmgANngntRu4btXhN9WKHMgQ5seERDMw==}
114 | engines: {node: '>=12'}
115 | cpu: [arm]
116 | os: [linux]
117 | requiresBuild: true
118 | dev: true
119 | optional: true
120 |
121 | /@esbuild/linux-arm64/0.17.13:
122 | resolution: {integrity: sha512-siu3QZrQ7eGrSttvFaRKyjT7kNRbUuHEKzCCyqRh19MbpGokGY13jbIsBEjx6JmH3T50hds325oweS9Ey2ihAQ==}
123 | engines: {node: '>=12'}
124 | cpu: [arm64]
125 | os: [linux]
126 | requiresBuild: true
127 | dev: true
128 | optional: true
129 |
130 | /@esbuild/linux-ia32/0.17.13:
131 | resolution: {integrity: sha512-ADHA1PqP5gIegehVP0RvxMmNPxpLgetI8QCwYOjUheGXKIKWSdUN8ZS3rusQv3NGZmFCpYdMZzFoI0QtzzGAdw==}
132 | engines: {node: '>=12'}
133 | cpu: [ia32]
134 | os: [linux]
135 | requiresBuild: true
136 | dev: true
137 | optional: true
138 |
139 | /@esbuild/linux-loong64/0.17.13:
140 | resolution: {integrity: sha512-n1JQPxETmR0brkpWlJHeohReEPLH+m00bnJdNnFyHN3zLBt1QypevuZSmnmFWsC+7r7HTwWILj3lBDjtPH3ydg==}
141 | engines: {node: '>=12'}
142 | cpu: [loong64]
143 | os: [linux]
144 | requiresBuild: true
145 | dev: true
146 | optional: true
147 |
148 | /@esbuild/linux-mips64el/0.17.13:
149 | resolution: {integrity: sha512-d0pnD/j5KKQ43xtSIvOD+wNIy6D/Vh9GbXVRa3u4zCyiJMYWjxkPkbBzlEgNjdDmUM+5gBFen9k7B8Xscy+Myg==}
150 | engines: {node: '>=12'}
151 | cpu: [mips64el]
152 | os: [linux]
153 | requiresBuild: true
154 | dev: true
155 | optional: true
156 |
157 | /@esbuild/linux-ppc64/0.17.13:
158 | resolution: {integrity: sha512-C9sMpa/VcGLjVtsT01sXtzZNS7bAZ+icUclkKkiUwBQ9hzT+J+/Xpj+EykI5hB3KgtxQVo4XUahanFoZNxbQ1g==}
159 | engines: {node: '>=12'}
160 | cpu: [ppc64]
161 | os: [linux]
162 | requiresBuild: true
163 | dev: true
164 | optional: true
165 |
166 | /@esbuild/linux-riscv64/0.17.13:
167 | resolution: {integrity: sha512-jYkc5EpNpvjccAHNYekiAtklusVGWftR0VVLtng7dJzDyy+5adAsf1fOG3LllP0WALxS55/w6boLE/728J/bXw==}
168 | engines: {node: '>=12'}
169 | cpu: [riscv64]
170 | os: [linux]
171 | requiresBuild: true
172 | dev: true
173 | optional: true
174 |
175 | /@esbuild/linux-s390x/0.17.13:
176 | resolution: {integrity: sha512-4jAJI5O6E/hATL4lsrG2A+noDjZ377KlATVFKwV3SWaNHj+OvoXe/T84ScQIXEtPI7ndJyLkMYruXj8RR5Ilyw==}
177 | engines: {node: '>=12'}
178 | cpu: [s390x]
179 | os: [linux]
180 | requiresBuild: true
181 | dev: true
182 | optional: true
183 |
184 | /@esbuild/linux-x64/0.17.13:
185 | resolution: {integrity: sha512-eFLQhJq98qijGRcv9je/9M4Mz1suZ+pOtj62ArsLd0gubNGhhQDz6T30X2X3f1KZ8lkKkr+zN5vtZzx1GAMoFw==}
186 | engines: {node: '>=12'}
187 | cpu: [x64]
188 | os: [linux]
189 | requiresBuild: true
190 | dev: true
191 | optional: true
192 |
193 | /@esbuild/netbsd-x64/0.17.13:
194 | resolution: {integrity: sha512-F8PXDeT+3eQpPjf4bmNJapPLu0SKKlWRGPQvBQqVS+YDGoMKnyyYp2UENLFMV8zT7kS39zKxZRZvUL3fMz/7Ww==}
195 | engines: {node: '>=12'}
196 | cpu: [x64]
197 | os: [netbsd]
198 | requiresBuild: true
199 | dev: true
200 | optional: true
201 |
202 | /@esbuild/openbsd-x64/0.17.13:
203 | resolution: {integrity: sha512-9jWfzbFCnIZdHjNs+00KQHArUbp7kjQDNmiuqkwGOQFs67m4/dKNupBv2DP5hTqVlQY4tW4RG3qpb6Y3zOHJeA==}
204 | engines: {node: '>=12'}
205 | cpu: [x64]
206 | os: [openbsd]
207 | requiresBuild: true
208 | dev: true
209 | optional: true
210 |
211 | /@esbuild/sunos-x64/0.17.13:
212 | resolution: {integrity: sha512-ALbOMlTIBkAVi6KqYjONa7u2oH95RN7OpetFqMtjufFLBiSaayRuwUzhs2yuR9CfGT4qi0jv6HQDav+EG314TQ==}
213 | engines: {node: '>=12'}
214 | cpu: [x64]
215 | os: [sunos]
216 | requiresBuild: true
217 | dev: true
218 | optional: true
219 |
220 | /@esbuild/win32-arm64/0.17.13:
221 | resolution: {integrity: sha512-FJBLYL4PkrZGeuHzEqme+0DjNetxkJ+XbB+Aoeow7aQ53JCwsA0/mo8sS5aPkDHgCnMkN4A5GLoFTlDj3BKDrQ==}
222 | engines: {node: '>=12'}
223 | cpu: [arm64]
224 | os: [win32]
225 | requiresBuild: true
226 | dev: true
227 | optional: true
228 |
229 | /@esbuild/win32-ia32/0.17.13:
230 | resolution: {integrity: sha512-Qrvst9RkLz4qgi3hqswNliYuKW92/HGJnd7xLWkGaGPa8S4qsONf81FW0ebDc5iUHb0I7QJwQATutvghTabnFA==}
231 | engines: {node: '>=12'}
232 | cpu: [ia32]
233 | os: [win32]
234 | requiresBuild: true
235 | dev: true
236 | optional: true
237 |
238 | /@esbuild/win32-x64/0.17.13:
239 | resolution: {integrity: sha512-pZ/NIgz861XaUPlIkPFjP55nJ4PJa0o/CD4zgeRb1Q9FVE+8GvdB6ifJcK05jRhny5hKExhnRFIdgHmmCYH8vg==}
240 | engines: {node: '>=12'}
241 | cpu: [x64]
242 | os: [win32]
243 | requiresBuild: true
244 | dev: true
245 | optional: true
246 |
247 | /@eslint-community/eslint-utils/4.4.0_eslint@8.36.0:
248 | resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==}
249 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
250 | peerDependencies:
251 | eslint: ^6.0.0 || ^7.0.0 || >=8.0.0
252 | dependencies:
253 | eslint: 8.36.0
254 | eslint-visitor-keys: 3.3.0
255 | dev: true
256 |
257 | /@eslint-community/regexpp/4.4.1:
258 | resolution: {integrity: sha512-BISJ6ZE4xQsuL/FmsyRaiffpq977bMlsKfGHTQrOGFErfByxIe6iZTxPf/00Zon9b9a7iUykfQwejN3s2ZW/Bw==}
259 | engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0}
260 | dev: true
261 |
262 | /@eslint/eslintrc/2.0.1:
263 | resolution: {integrity: sha512-eFRmABvW2E5Ho6f5fHLqgena46rOj7r7OKHYfLElqcBfGFHHpjBhivyi5+jOEQuSpdc/1phIZJlbC2te+tZNIw==}
264 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
265 | dependencies:
266 | ajv: 6.12.6
267 | debug: 4.3.4
268 | espree: 9.5.0
269 | globals: 13.20.0
270 | ignore: 5.2.4
271 | import-fresh: 3.3.0
272 | js-yaml: 4.1.0
273 | minimatch: 3.1.2
274 | strip-json-comments: 3.1.1
275 | transitivePeerDependencies:
276 | - supports-color
277 | dev: true
278 |
279 | /@eslint/js/8.36.0:
280 | resolution: {integrity: sha512-lxJ9R5ygVm8ZWgYdUweoq5ownDlJ4upvoWmO4eLxBYHdMo+vZ/Rx0EN6MbKWDJOSUGrqJy2Gt+Dyv/VKml0fjg==}
281 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
282 | dev: true
283 |
284 | /@humanwhocodes/config-array/0.11.8:
285 | resolution: {integrity: sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g==}
286 | engines: {node: '>=10.10.0'}
287 | dependencies:
288 | '@humanwhocodes/object-schema': 1.2.1
289 | debug: 4.3.4
290 | minimatch: 3.1.2
291 | transitivePeerDependencies:
292 | - supports-color
293 | dev: true
294 |
295 | /@humanwhocodes/module-importer/1.0.1:
296 | resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==}
297 | engines: {node: '>=12.22'}
298 | dev: true
299 |
300 | /@humanwhocodes/object-schema/1.2.1:
301 | resolution: {integrity: sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==}
302 | dev: true
303 |
304 | /@jridgewell/resolve-uri/3.1.0:
305 | resolution: {integrity: sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==}
306 | engines: {node: '>=6.0.0'}
307 | dev: true
308 |
309 | /@jridgewell/sourcemap-codec/1.4.14:
310 | resolution: {integrity: sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==}
311 | dev: true
312 |
313 | /@jridgewell/trace-mapping/0.3.17:
314 | resolution: {integrity: sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==}
315 | dependencies:
316 | '@jridgewell/resolve-uri': 3.1.0
317 | '@jridgewell/sourcemap-codec': 1.4.14
318 | dev: true
319 |
320 | /@nodelib/fs.scandir/2.1.5:
321 | resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==}
322 | engines: {node: '>= 8'}
323 | dependencies:
324 | '@nodelib/fs.stat': 2.0.5
325 | run-parallel: 1.2.0
326 | dev: true
327 |
328 | /@nodelib/fs.stat/2.0.5:
329 | resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==}
330 | engines: {node: '>= 8'}
331 | dev: true
332 |
333 | /@nodelib/fs.walk/1.2.8:
334 | resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==}
335 | engines: {node: '>= 8'}
336 | dependencies:
337 | '@nodelib/fs.scandir': 2.1.5
338 | fastq: 1.15.0
339 | dev: true
340 |
341 | /@playwright/test/1.32.1:
342 | resolution: {integrity: sha512-FTwjCuhlm1qHUGf4hWjfr64UMJD/z0hXYbk+O387Ioe6WdyZQ+0TBDAc6P+pHjx2xCv1VYNgrKbYrNixFWy4Dg==}
343 | engines: {node: '>=14'}
344 | hasBin: true
345 | dependencies:
346 | '@types/node': 18.15.9
347 | playwright-core: 1.32.1
348 | optionalDependencies:
349 | fsevents: 2.3.2
350 | dev: true
351 |
352 | /@polka/url/1.0.0-next.21:
353 | resolution: {integrity: sha512-a5Sab1C4/icpTZVzZc5Ghpz88yQtGOyNqYXcZgOssB2uuAr+wF/MvN6bgtW32q7HHrvBki+BsZ0OuNv6EV3K9g==}
354 | dev: true
355 |
356 | /@sveltejs/adapter-auto/2.0.0_@sveltejs+kit@1.14.0:
357 | resolution: {integrity: sha512-b+gkHFZgD771kgV3aO4avHFd7y1zhmMYy9i6xOK7m/rwmwaRO8gnF5zBc0Rgca80B2PMU1bKNxyBTHA14OzUAQ==}
358 | peerDependencies:
359 | '@sveltejs/kit': ^1.0.0
360 | dependencies:
361 | '@sveltejs/kit': 1.14.0_svelte@3.57.0+vite@4.2.1
362 | import-meta-resolve: 2.2.2
363 | dev: true
364 |
365 | /@sveltejs/kit/1.14.0_svelte@3.57.0+vite@4.2.1:
366 | resolution: {integrity: sha512-4e/cZT0z4IppEkqNvMrurGz6VE1gScukFU7XqwTL/yrGJGXHqS9D7RvsOcE1hASsgrMu6w/fKTIhxT5oN0K1Jw==}
367 | engines: {node: ^16.14 || >=18}
368 | hasBin: true
369 | requiresBuild: true
370 | peerDependencies:
371 | svelte: ^3.54.0
372 | vite: ^4.0.0
373 | dependencies:
374 | '@sveltejs/vite-plugin-svelte': 2.0.3_svelte@3.57.0+vite@4.2.1
375 | '@types/cookie': 0.5.1
376 | cookie: 0.5.0
377 | devalue: 4.3.0
378 | esm-env: 1.0.0
379 | kleur: 4.1.5
380 | magic-string: 0.30.0
381 | mime: 3.0.0
382 | sade: 1.8.1
383 | set-cookie-parser: 2.6.0
384 | sirv: 2.0.2
385 | svelte: 3.57.0
386 | tiny-glob: 0.2.9
387 | undici: 5.21.0
388 | vite: 4.2.1
389 | transitivePeerDependencies:
390 | - supports-color
391 | dev: true
392 |
393 | /@sveltejs/package/2.0.2_wkdgp32a7s6524odeddpfzb52q:
394 | resolution: {integrity: sha512-cCOCcO8yMHnhHyaR51nQtvKZ3o/vSU9UYI1EXLT1j2CKNPMuH1/g6JNwKcNNrtQGwwquudc69ZeYy8D/TDNwEw==}
395 | engines: {node: ^16.14 || >=18}
396 | hasBin: true
397 | peerDependencies:
398 | svelte: ^3.44.0
399 | dependencies:
400 | chokidar: 3.5.3
401 | kleur: 4.1.5
402 | sade: 1.8.1
403 | svelte: 3.57.0
404 | svelte2tsx: 0.6.10_wkdgp32a7s6524odeddpfzb52q
405 | transitivePeerDependencies:
406 | - typescript
407 | dev: true
408 |
409 | /@sveltejs/vite-plugin-svelte/2.0.3_svelte@3.57.0+vite@4.2.1:
410 | resolution: {integrity: sha512-o+cguBFdwIGtRbNkYOyqTM7KvRUffxh5bfK4oJsWKG2obu+v/cbpT03tJrGl58C7tRXo/aEC0/axN5FVHBj0nA==}
411 | engines: {node: ^14.18.0 || >= 16}
412 | peerDependencies:
413 | svelte: ^3.54.0
414 | vite: ^4.0.0
415 | dependencies:
416 | debug: 4.3.4
417 | deepmerge: 4.3.1
418 | kleur: 4.1.5
419 | magic-string: 0.29.0
420 | svelte: 3.57.0
421 | svelte-hmr: 0.15.1_svelte@3.57.0
422 | vite: 4.2.1
423 | vitefu: 0.2.4_vite@4.2.1
424 | transitivePeerDependencies:
425 | - supports-color
426 | dev: true
427 |
428 | /@tootallnate/once/2.0.0:
429 | resolution: {integrity: sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==}
430 | engines: {node: '>= 10'}
431 | dev: true
432 |
433 | /@types/chai-subset/1.3.3:
434 | resolution: {integrity: sha512-frBecisrNGz+F4T6bcc+NLeolfiojh5FxW2klu669+8BARtyQv2C/GkNW6FUodVe4BroGMP/wER/YDGc7rEllw==}
435 | dependencies:
436 | '@types/chai': 4.3.4
437 | dev: true
438 |
439 | /@types/chai/4.3.4:
440 | resolution: {integrity: sha512-KnRanxnpfpjUTqTCXslZSEdLfXExwgNxYPdiO2WGUj8+HDjFi8R3k5RVKPeSCzLjCcshCAtVO2QBbVuAV4kTnw==}
441 | dev: true
442 |
443 | /@types/cookie/0.5.1:
444 | resolution: {integrity: sha512-COUnqfB2+ckwXXSFInsFdOAWQzCCx+a5hq2ruyj+Vjund94RJQd4LG2u9hnvJrTgunKAaax7ancBYlDrNYxA0g==}
445 | dev: true
446 |
447 | /@types/json-schema/7.0.11:
448 | resolution: {integrity: sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==}
449 | dev: true
450 |
451 | /@types/node/18.15.9:
452 | resolution: {integrity: sha512-dUxhiNzBLr6IqlZXz6e/rN2YQXlFgOei/Dxy+e3cyXTJ4txSUbGT2/fmnD6zd/75jDMeW5bDee+YXxlFKHoV0A==}
453 | dev: true
454 |
455 | /@types/pug/2.0.6:
456 | resolution: {integrity: sha512-SnHmG9wN1UVmagJOnyo/qkk0Z7gejYxOYYmaAwr5u2yFYfsupN3sg10kyzN8Hep/2zbHxCnsumxOoRIRMBwKCg==}
457 | dev: true
458 |
459 | /@types/semver/7.3.13:
460 | resolution: {integrity: sha512-21cFJr9z3g5dW8B0CVI9g2O9beqaThGQ6ZFBqHfwhzLDKUxaqTIy3vnfah/UPkfOiF2pLq+tGz+W8RyCskuslw==}
461 | dev: true
462 |
463 | /@types/unist/2.0.6:
464 | resolution: {integrity: sha512-PBjIUxZHOuj0R15/xuwJYjFi+KZdNFrehocChv4g5hu6aFroHue8m0lBP0POdK2nKzbw0cgV1mws8+V/JAcEkQ==}
465 | dev: true
466 |
467 | /@typescript-eslint/eslint-plugin/5.56.0_iskin7c6dxqunwflhstekcjqmq:
468 | resolution: {integrity: sha512-ZNW37Ccl3oMZkzxrYDUX4o7cnuPgU+YrcaYXzsRtLB16I1FR5SHMqga3zGsaSliZADCWo2v8qHWqAYIj8nWCCg==}
469 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
470 | peerDependencies:
471 | '@typescript-eslint/parser': ^5.0.0
472 | eslint: ^6.0.0 || ^7.0.0 || ^8.0.0
473 | typescript: '*'
474 | peerDependenciesMeta:
475 | typescript:
476 | optional: true
477 | dependencies:
478 | '@eslint-community/regexpp': 4.4.1
479 | '@typescript-eslint/parser': 5.56.0_vgl77cfdswitgr47lm5swmv43m
480 | '@typescript-eslint/scope-manager': 5.56.0
481 | '@typescript-eslint/type-utils': 5.56.0_vgl77cfdswitgr47lm5swmv43m
482 | '@typescript-eslint/utils': 5.56.0_vgl77cfdswitgr47lm5swmv43m
483 | debug: 4.3.4
484 | eslint: 8.36.0
485 | grapheme-splitter: 1.0.4
486 | ignore: 5.2.4
487 | natural-compare-lite: 1.4.0
488 | semver: 7.3.8
489 | tsutils: 3.21.0_typescript@4.9.5
490 | typescript: 4.9.5
491 | transitivePeerDependencies:
492 | - supports-color
493 | dev: true
494 |
495 | /@typescript-eslint/parser/5.56.0_vgl77cfdswitgr47lm5swmv43m:
496 | resolution: {integrity: sha512-sn1OZmBxUsgxMmR8a8U5QM/Wl+tyqlH//jTqCg8daTAmhAk26L2PFhcqPLlYBhYUJMZJK276qLXlHN3a83o2cg==}
497 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
498 | peerDependencies:
499 | eslint: ^6.0.0 || ^7.0.0 || ^8.0.0
500 | typescript: '*'
501 | peerDependenciesMeta:
502 | typescript:
503 | optional: true
504 | dependencies:
505 | '@typescript-eslint/scope-manager': 5.56.0
506 | '@typescript-eslint/types': 5.56.0
507 | '@typescript-eslint/typescript-estree': 5.56.0_typescript@4.9.5
508 | debug: 4.3.4
509 | eslint: 8.36.0
510 | typescript: 4.9.5
511 | transitivePeerDependencies:
512 | - supports-color
513 | dev: true
514 |
515 | /@typescript-eslint/scope-manager/5.56.0:
516 | resolution: {integrity: sha512-jGYKyt+iBakD0SA5Ww8vFqGpoV2asSjwt60Gl6YcO8ksQ8s2HlUEyHBMSa38bdLopYqGf7EYQMUIGdT/Luw+sw==}
517 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
518 | dependencies:
519 | '@typescript-eslint/types': 5.56.0
520 | '@typescript-eslint/visitor-keys': 5.56.0
521 | dev: true
522 |
523 | /@typescript-eslint/type-utils/5.56.0_vgl77cfdswitgr47lm5swmv43m:
524 | resolution: {integrity: sha512-8WxgOgJjWRy6m4xg9KoSHPzBNZeQbGlQOH7l2QEhQID/+YseaFxg5J/DLwWSsi9Axj4e/cCiKx7PVzOq38tY4A==}
525 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
526 | peerDependencies:
527 | eslint: '*'
528 | typescript: '*'
529 | peerDependenciesMeta:
530 | typescript:
531 | optional: true
532 | dependencies:
533 | '@typescript-eslint/typescript-estree': 5.56.0_typescript@4.9.5
534 | '@typescript-eslint/utils': 5.56.0_vgl77cfdswitgr47lm5swmv43m
535 | debug: 4.3.4
536 | eslint: 8.36.0
537 | tsutils: 3.21.0_typescript@4.9.5
538 | typescript: 4.9.5
539 | transitivePeerDependencies:
540 | - supports-color
541 | dev: true
542 |
543 | /@typescript-eslint/types/5.56.0:
544 | resolution: {integrity: sha512-JyAzbTJcIyhuUhogmiu+t79AkdnqgPUEsxMTMc/dCZczGMJQh1MK2wgrju++yMN6AWroVAy2jxyPcPr3SWCq5w==}
545 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
546 | dev: true
547 |
548 | /@typescript-eslint/typescript-estree/5.56.0_typescript@4.9.5:
549 | resolution: {integrity: sha512-41CH/GncsLXOJi0jb74SnC7jVPWeVJ0pxQj8bOjH1h2O26jXN3YHKDT1ejkVz5YeTEQPeLCCRY0U2r68tfNOcg==}
550 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
551 | peerDependencies:
552 | typescript: '*'
553 | peerDependenciesMeta:
554 | typescript:
555 | optional: true
556 | dependencies:
557 | '@typescript-eslint/types': 5.56.0
558 | '@typescript-eslint/visitor-keys': 5.56.0
559 | debug: 4.3.4
560 | globby: 11.1.0
561 | is-glob: 4.0.3
562 | semver: 7.3.8
563 | tsutils: 3.21.0_typescript@4.9.5
564 | typescript: 4.9.5
565 | transitivePeerDependencies:
566 | - supports-color
567 | dev: true
568 |
569 | /@typescript-eslint/utils/5.56.0_vgl77cfdswitgr47lm5swmv43m:
570 | resolution: {integrity: sha512-XhZDVdLnUJNtbzaJeDSCIYaM+Tgr59gZGbFuELgF7m0IY03PlciidS7UQNKLE0+WpUTn1GlycEr6Ivb/afjbhA==}
571 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
572 | peerDependencies:
573 | eslint: ^6.0.0 || ^7.0.0 || ^8.0.0
574 | dependencies:
575 | '@eslint-community/eslint-utils': 4.4.0_eslint@8.36.0
576 | '@types/json-schema': 7.0.11
577 | '@types/semver': 7.3.13
578 | '@typescript-eslint/scope-manager': 5.56.0
579 | '@typescript-eslint/types': 5.56.0
580 | '@typescript-eslint/typescript-estree': 5.56.0_typescript@4.9.5
581 | eslint: 8.36.0
582 | eslint-scope: 5.1.1
583 | semver: 7.3.8
584 | transitivePeerDependencies:
585 | - supports-color
586 | - typescript
587 | dev: true
588 |
589 | /@typescript-eslint/visitor-keys/5.56.0:
590 | resolution: {integrity: sha512-1mFdED7u5bZpX6Xxf5N9U2c18sb+8EvU3tyOIj6LQZ5OOvnmj8BVeNNP603OFPm5KkS1a7IvCIcwrdHXaEMG/Q==}
591 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
592 | dependencies:
593 | '@typescript-eslint/types': 5.56.0
594 | eslint-visitor-keys: 3.3.0
595 | dev: true
596 |
597 | /abab/2.0.6:
598 | resolution: {integrity: sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==}
599 | dev: true
600 |
601 | /acorn-globals/7.0.1:
602 | resolution: {integrity: sha512-umOSDSDrfHbTNPuNpC2NSnnA3LUrqpevPb4T9jRx4MagXNS0rs+gwiTcAvqCRmsD6utzsrzNt+ebm00SNWiC3Q==}
603 | dependencies:
604 | acorn: 8.8.2
605 | acorn-walk: 8.2.0
606 | dev: true
607 |
608 | /acorn-jsx/5.3.2_acorn@8.8.2:
609 | resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==}
610 | peerDependencies:
611 | acorn: ^6.0.0 || ^7.0.0 || ^8.0.0
612 | dependencies:
613 | acorn: 8.8.2
614 | dev: true
615 |
616 | /acorn-walk/8.2.0:
617 | resolution: {integrity: sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==}
618 | engines: {node: '>=0.4.0'}
619 | dev: true
620 |
621 | /acorn/8.8.2:
622 | resolution: {integrity: sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==}
623 | engines: {node: '>=0.4.0'}
624 | hasBin: true
625 | dev: true
626 |
627 | /agent-base/6.0.2:
628 | resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==}
629 | engines: {node: '>= 6.0.0'}
630 | dependencies:
631 | debug: 4.3.4
632 | transitivePeerDependencies:
633 | - supports-color
634 | dev: true
635 |
636 | /ajv/6.12.6:
637 | resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==}
638 | dependencies:
639 | fast-deep-equal: 3.1.3
640 | fast-json-stable-stringify: 2.1.0
641 | json-schema-traverse: 0.4.1
642 | uri-js: 4.4.1
643 | dev: true
644 |
645 | /ansi-regex/5.0.1:
646 | resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==}
647 | engines: {node: '>=8'}
648 | dev: true
649 |
650 | /ansi-styles/4.3.0:
651 | resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==}
652 | engines: {node: '>=8'}
653 | dependencies:
654 | color-convert: 2.0.1
655 | dev: true
656 |
657 | /anymatch/3.1.3:
658 | resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==}
659 | engines: {node: '>= 8'}
660 | dependencies:
661 | normalize-path: 3.0.0
662 | picomatch: 2.3.1
663 | dev: true
664 |
665 | /argparse/2.0.1:
666 | resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==}
667 | dev: true
668 |
669 | /array-union/2.1.0:
670 | resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==}
671 | engines: {node: '>=8'}
672 | dev: true
673 |
674 | /assertion-error/1.1.0:
675 | resolution: {integrity: sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==}
676 | dev: true
677 |
678 | /asynckit/0.4.0:
679 | resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==}
680 | dev: true
681 |
682 | /balanced-match/1.0.2:
683 | resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==}
684 | dev: true
685 |
686 | /binary-extensions/2.2.0:
687 | resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==}
688 | engines: {node: '>=8'}
689 | dev: true
690 |
691 | /brace-expansion/1.1.11:
692 | resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==}
693 | dependencies:
694 | balanced-match: 1.0.2
695 | concat-map: 0.0.1
696 | dev: true
697 |
698 | /brace-expansion/2.0.1:
699 | resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==}
700 | dependencies:
701 | balanced-match: 1.0.2
702 | dev: true
703 |
704 | /braces/3.0.2:
705 | resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==}
706 | engines: {node: '>=8'}
707 | dependencies:
708 | fill-range: 7.0.1
709 | dev: true
710 |
711 | /buffer-crc32/0.2.13:
712 | resolution: {integrity: sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==}
713 | dev: true
714 |
715 | /busboy/1.6.0:
716 | resolution: {integrity: sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==}
717 | engines: {node: '>=10.16.0'}
718 | dependencies:
719 | streamsearch: 1.1.0
720 | dev: true
721 |
722 | /callsites/3.1.0:
723 | resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==}
724 | engines: {node: '>=6'}
725 | dev: true
726 |
727 | /chai/4.3.7:
728 | resolution: {integrity: sha512-HLnAzZ2iupm25PlN0xFreAlBA5zaBSv3og0DdeGA4Ar6h6rJ3A0rolRUKJhSF2V10GZKDgWF/VmAEsNWjCRB+A==}
729 | engines: {node: '>=4'}
730 | dependencies:
731 | assertion-error: 1.1.0
732 | check-error: 1.0.2
733 | deep-eql: 4.1.3
734 | get-func-name: 2.0.0
735 | loupe: 2.3.6
736 | pathval: 1.1.1
737 | type-detect: 4.0.8
738 | dev: true
739 |
740 | /chalk/4.1.2:
741 | resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==}
742 | engines: {node: '>=10'}
743 | dependencies:
744 | ansi-styles: 4.3.0
745 | supports-color: 7.2.0
746 | dev: true
747 |
748 | /check-error/1.0.2:
749 | resolution: {integrity: sha512-BrgHpW9NURQgzoNyjfq0Wu6VFO6D7IZEmJNdtgNqpzGG8RuNFHt2jQxWlAs4HMe119chBnv+34syEZtc6IhLtA==}
750 | dev: true
751 |
752 | /chokidar/3.5.3:
753 | resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==}
754 | engines: {node: '>= 8.10.0'}
755 | dependencies:
756 | anymatch: 3.1.3
757 | braces: 3.0.2
758 | glob-parent: 5.1.2
759 | is-binary-path: 2.1.0
760 | is-glob: 4.0.3
761 | normalize-path: 3.0.0
762 | readdirp: 3.6.0
763 | optionalDependencies:
764 | fsevents: 2.3.2
765 | dev: true
766 |
767 | /color-convert/2.0.1:
768 | resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==}
769 | engines: {node: '>=7.0.0'}
770 | dependencies:
771 | color-name: 1.1.4
772 | dev: true
773 |
774 | /color-name/1.1.4:
775 | resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==}
776 | dev: true
777 |
778 | /combined-stream/1.0.8:
779 | resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==}
780 | engines: {node: '>= 0.8'}
781 | dependencies:
782 | delayed-stream: 1.0.0
783 | dev: true
784 |
785 | /concat-map/0.0.1:
786 | resolution: {integrity: sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=}
787 | dev: true
788 |
789 | /cookie/0.5.0:
790 | resolution: {integrity: sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==}
791 | engines: {node: '>= 0.6'}
792 | dev: true
793 |
794 | /cross-spawn/7.0.3:
795 | resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==}
796 | engines: {node: '>= 8'}
797 | dependencies:
798 | path-key: 3.1.1
799 | shebang-command: 2.0.0
800 | which: 2.0.2
801 | dev: true
802 |
803 | /cssstyle/3.0.0:
804 | resolution: {integrity: sha512-N4u2ABATi3Qplzf0hWbVCdjenim8F3ojEXpBDF5hBpjzW182MjNGLqfmQ0SkSPeQ+V86ZXgeH8aXj6kayd4jgg==}
805 | engines: {node: '>=14'}
806 | dependencies:
807 | rrweb-cssom: 0.6.0
808 | dev: true
809 |
810 | /data-urls/4.0.0:
811 | resolution: {integrity: sha512-/mMTei/JXPqvFqQtfyTowxmJVwr2PVAeCcDxyFf6LhoOu/09TX2OX3kb2wzi4DMXcfj4OItwDOnhl5oziPnT6g==}
812 | engines: {node: '>=14'}
813 | dependencies:
814 | abab: 2.0.6
815 | whatwg-mimetype: 3.0.0
816 | whatwg-url: 12.0.1
817 | dev: true
818 |
819 | /debug/4.3.4:
820 | resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==}
821 | engines: {node: '>=6.0'}
822 | peerDependencies:
823 | supports-color: '*'
824 | peerDependenciesMeta:
825 | supports-color:
826 | optional: true
827 | dependencies:
828 | ms: 2.1.2
829 | dev: true
830 |
831 | /decimal.js/10.4.3:
832 | resolution: {integrity: sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==}
833 | dev: true
834 |
835 | /dedent-js/1.0.1:
836 | resolution: {integrity: sha512-OUepMozQULMLUmhxS95Vudo0jb0UchLimi3+pQ2plj61Fcy8axbP9hbiD4Sz6DPqn6XG3kfmziVfQ1rSys5AJQ==}
837 | dev: true
838 |
839 | /deep-eql/4.1.3:
840 | resolution: {integrity: sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==}
841 | engines: {node: '>=6'}
842 | dependencies:
843 | type-detect: 4.0.8
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 | /delayed-stream/1.0.0:
856 | resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==}
857 | engines: {node: '>=0.4.0'}
858 | dev: true
859 |
860 | /detect-indent/6.1.0:
861 | resolution: {integrity: sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==}
862 | engines: {node: '>=8'}
863 | dev: true
864 |
865 | /devalue/4.3.0:
866 | resolution: {integrity: sha512-n94yQo4LI3w7erwf84mhRUkUJfhLoCZiLyoOZ/QFsDbcWNZePrLwbQpvZBUG2TNxwV3VjCKPxkiiQA6pe3TrTA==}
867 | dev: true
868 |
869 | /dir-glob/3.0.1:
870 | resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==}
871 | engines: {node: '>=8'}
872 | dependencies:
873 | path-type: 4.0.0
874 | dev: true
875 |
876 | /doctrine/3.0.0:
877 | resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==}
878 | engines: {node: '>=6.0.0'}
879 | dependencies:
880 | esutils: 2.0.3
881 | dev: true
882 |
883 | /domexception/4.0.0:
884 | resolution: {integrity: sha512-A2is4PLG+eeSfoTMA95/s4pvAoSo2mKtiM5jlHkAVewmiO8ISFTFKZjH7UAM1Atli/OT/7JHOrJRJiMKUZKYBw==}
885 | engines: {node: '>=12'}
886 | dependencies:
887 | webidl-conversions: 7.0.0
888 | dev: true
889 |
890 | /entities/4.4.0:
891 | resolution: {integrity: sha512-oYp7156SP8LkeGD0GF85ad1X9Ai79WtRsZ2gxJqtBuzH+98YUV6jkHEKlZkMbcrjJjIVJNIDP/3WL9wQkoPbWA==}
892 | engines: {node: '>=0.12'}
893 | dev: true
894 |
895 | /es6-promise/3.3.1:
896 | resolution: {integrity: sha512-SOp9Phqvqn7jtEUxPWdWfWoLmyt2VaJ6MpvP9Comy1MceMXqE6bxvaTu4iaxpYYPzhny28Lc+M87/c2cPK6lDg==}
897 | dev: true
898 |
899 | /esbuild/0.17.13:
900 | resolution: {integrity: sha512-4ixMwdErBcQHgTBeoxnowENCPKWFAGxgTyKHMK8gqn9sZaC7ZNWFKtim16g2rzQ2b/FYyy3lIUUJboFtjolhqg==}
901 | engines: {node: '>=12'}
902 | hasBin: true
903 | requiresBuild: true
904 | optionalDependencies:
905 | '@esbuild/android-arm': 0.17.13
906 | '@esbuild/android-arm64': 0.17.13
907 | '@esbuild/android-x64': 0.17.13
908 | '@esbuild/darwin-arm64': 0.17.13
909 | '@esbuild/darwin-x64': 0.17.13
910 | '@esbuild/freebsd-arm64': 0.17.13
911 | '@esbuild/freebsd-x64': 0.17.13
912 | '@esbuild/linux-arm': 0.17.13
913 | '@esbuild/linux-arm64': 0.17.13
914 | '@esbuild/linux-ia32': 0.17.13
915 | '@esbuild/linux-loong64': 0.17.13
916 | '@esbuild/linux-mips64el': 0.17.13
917 | '@esbuild/linux-ppc64': 0.17.13
918 | '@esbuild/linux-riscv64': 0.17.13
919 | '@esbuild/linux-s390x': 0.17.13
920 | '@esbuild/linux-x64': 0.17.13
921 | '@esbuild/netbsd-x64': 0.17.13
922 | '@esbuild/openbsd-x64': 0.17.13
923 | '@esbuild/sunos-x64': 0.17.13
924 | '@esbuild/win32-arm64': 0.17.13
925 | '@esbuild/win32-ia32': 0.17.13
926 | '@esbuild/win32-x64': 0.17.13
927 | dev: true
928 |
929 | /escape-string-regexp/4.0.0:
930 | resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==}
931 | engines: {node: '>=10'}
932 | dev: true
933 |
934 | /escodegen/2.0.0:
935 | resolution: {integrity: sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw==}
936 | engines: {node: '>=6.0'}
937 | hasBin: true
938 | dependencies:
939 | esprima: 4.0.1
940 | estraverse: 5.3.0
941 | esutils: 2.0.3
942 | optionator: 0.8.3
943 | optionalDependencies:
944 | source-map: 0.6.1
945 | dev: true
946 |
947 | /eslint-config-prettier/8.8.0_eslint@8.36.0:
948 | resolution: {integrity: sha512-wLbQiFre3tdGgpDv67NQKnJuTlcUVYHas3k+DZCc2U2BadthoEY4B7hLPvAxaqdyOGCzuLfii2fqGph10va7oA==}
949 | hasBin: true
950 | peerDependencies:
951 | eslint: '>=7.0.0'
952 | dependencies:
953 | eslint: 8.36.0
954 | dev: true
955 |
956 | /eslint-plugin-svelte3/4.0.0_wzem237sbvnwe7n34ytc5phasy:
957 | resolution: {integrity: sha512-OIx9lgaNzD02+MDFNLw0GEUbuovNcglg+wnd/UY0fbZmlQSz7GlQiQ1f+yX0XvC07XPcDOnFcichqI3xCwp71g==}
958 | peerDependencies:
959 | eslint: '>=8.0.0'
960 | svelte: ^3.2.0
961 | dependencies:
962 | eslint: 8.36.0
963 | svelte: 3.57.0
964 | dev: true
965 |
966 | /eslint-scope/5.1.1:
967 | resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==}
968 | engines: {node: '>=8.0.0'}
969 | dependencies:
970 | esrecurse: 4.3.0
971 | estraverse: 4.3.0
972 | dev: true
973 |
974 | /eslint-scope/7.1.1:
975 | resolution: {integrity: sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==}
976 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
977 | dependencies:
978 | esrecurse: 4.3.0
979 | estraverse: 5.3.0
980 | dev: true
981 |
982 | /eslint-visitor-keys/3.3.0:
983 | resolution: {integrity: sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==}
984 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
985 | dev: true
986 |
987 | /eslint/8.36.0:
988 | resolution: {integrity: sha512-Y956lmS7vDqomxlaaQAHVmeb4tNMp2FWIvU/RnU5BD3IKMD/MJPr76xdyr68P8tV1iNMvN2mRK0yy3c+UjL+bw==}
989 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
990 | hasBin: true
991 | dependencies:
992 | '@eslint-community/eslint-utils': 4.4.0_eslint@8.36.0
993 | '@eslint-community/regexpp': 4.4.1
994 | '@eslint/eslintrc': 2.0.1
995 | '@eslint/js': 8.36.0
996 | '@humanwhocodes/config-array': 0.11.8
997 | '@humanwhocodes/module-importer': 1.0.1
998 | '@nodelib/fs.walk': 1.2.8
999 | ajv: 6.12.6
1000 | chalk: 4.1.2
1001 | cross-spawn: 7.0.3
1002 | debug: 4.3.4
1003 | doctrine: 3.0.0
1004 | escape-string-regexp: 4.0.0
1005 | eslint-scope: 7.1.1
1006 | eslint-visitor-keys: 3.3.0
1007 | espree: 9.5.0
1008 | esquery: 1.5.0
1009 | esutils: 2.0.3
1010 | fast-deep-equal: 3.1.3
1011 | file-entry-cache: 6.0.1
1012 | find-up: 5.0.0
1013 | glob-parent: 6.0.2
1014 | globals: 13.20.0
1015 | grapheme-splitter: 1.0.4
1016 | ignore: 5.2.4
1017 | import-fresh: 3.3.0
1018 | imurmurhash: 0.1.4
1019 | is-glob: 4.0.3
1020 | is-path-inside: 3.0.3
1021 | js-sdsl: 4.4.0
1022 | js-yaml: 4.1.0
1023 | json-stable-stringify-without-jsonify: 1.0.1
1024 | levn: 0.4.1
1025 | lodash.merge: 4.6.2
1026 | minimatch: 3.1.2
1027 | natural-compare: 1.4.0
1028 | optionator: 0.9.1
1029 | strip-ansi: 6.0.1
1030 | strip-json-comments: 3.1.1
1031 | text-table: 0.2.0
1032 | transitivePeerDependencies:
1033 | - supports-color
1034 | dev: true
1035 |
1036 | /esm-env/1.0.0:
1037 | resolution: {integrity: sha512-Cf6VksWPsTuW01vU9Mk/3vRue91Zevka5SjyNf3nEpokFRuqt/KjUQoGAwq9qMmhpLTHmXzSIrFRw8zxWzmFBA==}
1038 | dev: true
1039 |
1040 | /espree/9.5.0:
1041 | resolution: {integrity: sha512-JPbJGhKc47++oo4JkEoTe2wjy4fmMwvFpgJT9cQzmfXKp22Dr6Hf1tdCteLz1h0P3t+mGvWZ+4Uankvh8+c6zw==}
1042 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
1043 | dependencies:
1044 | acorn: 8.8.2
1045 | acorn-jsx: 5.3.2_acorn@8.8.2
1046 | eslint-visitor-keys: 3.3.0
1047 | dev: true
1048 |
1049 | /esprima/4.0.1:
1050 | resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==}
1051 | engines: {node: '>=4'}
1052 | hasBin: true
1053 | dev: true
1054 |
1055 | /esquery/1.5.0:
1056 | resolution: {integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==}
1057 | engines: {node: '>=0.10'}
1058 | dependencies:
1059 | estraverse: 5.3.0
1060 | dev: true
1061 |
1062 | /esrecurse/4.3.0:
1063 | resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==}
1064 | engines: {node: '>=4.0'}
1065 | dependencies:
1066 | estraverse: 5.3.0
1067 | dev: true
1068 |
1069 | /estraverse/4.3.0:
1070 | resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==}
1071 | engines: {node: '>=4.0'}
1072 | dev: true
1073 |
1074 | /estraverse/5.3.0:
1075 | resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==}
1076 | engines: {node: '>=4.0'}
1077 | dev: true
1078 |
1079 | /esutils/2.0.3:
1080 | resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==}
1081 | engines: {node: '>=0.10.0'}
1082 | dev: true
1083 |
1084 | /fast-deep-equal/3.1.3:
1085 | resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==}
1086 | dev: true
1087 |
1088 | /fast-glob/3.2.12:
1089 | resolution: {integrity: sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==}
1090 | engines: {node: '>=8.6.0'}
1091 | dependencies:
1092 | '@nodelib/fs.stat': 2.0.5
1093 | '@nodelib/fs.walk': 1.2.8
1094 | glob-parent: 5.1.2
1095 | merge2: 1.4.1
1096 | micromatch: 4.0.5
1097 | dev: true
1098 |
1099 | /fast-json-stable-stringify/2.1.0:
1100 | resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==}
1101 | dev: true
1102 |
1103 | /fast-levenshtein/2.0.6:
1104 | resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==}
1105 | dev: true
1106 |
1107 | /fastq/1.15.0:
1108 | resolution: {integrity: sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==}
1109 | dependencies:
1110 | reusify: 1.0.4
1111 | dev: true
1112 |
1113 | /file-entry-cache/6.0.1:
1114 | resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==}
1115 | engines: {node: ^10.12.0 || >=12.0.0}
1116 | dependencies:
1117 | flat-cache: 3.0.4
1118 | dev: true
1119 |
1120 | /fill-range/7.0.1:
1121 | resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==}
1122 | engines: {node: '>=8'}
1123 | dependencies:
1124 | to-regex-range: 5.0.1
1125 | dev: true
1126 |
1127 | /find-up/5.0.0:
1128 | resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==}
1129 | engines: {node: '>=10'}
1130 | dependencies:
1131 | locate-path: 6.0.0
1132 | path-exists: 4.0.0
1133 | dev: true
1134 |
1135 | /flat-cache/3.0.4:
1136 | resolution: {integrity: sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==}
1137 | engines: {node: ^10.12.0 || >=12.0.0}
1138 | dependencies:
1139 | flatted: 3.2.7
1140 | rimraf: 3.0.2
1141 | dev: true
1142 |
1143 | /flatted/3.2.7:
1144 | resolution: {integrity: sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==}
1145 | dev: true
1146 |
1147 | /form-data/4.0.0:
1148 | resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==}
1149 | engines: {node: '>= 6'}
1150 | dependencies:
1151 | asynckit: 0.4.0
1152 | combined-stream: 1.0.8
1153 | mime-types: 2.1.35
1154 | dev: true
1155 |
1156 | /fs.realpath/1.0.0:
1157 | resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==}
1158 | dev: true
1159 |
1160 | /fsevents/2.3.2:
1161 | resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==}
1162 | engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0}
1163 | os: [darwin]
1164 | requiresBuild: true
1165 | dev: true
1166 | optional: true
1167 |
1168 | /function-bind/1.1.1:
1169 | resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==}
1170 | dev: true
1171 |
1172 | /get-func-name/2.0.0:
1173 | resolution: {integrity: sha512-Hm0ixYtaSZ/V7C8FJrtZIuBBI+iSgL+1Aq82zSu8VQNB4S3Gk8e7Qs3VwBDJAhmRZcFqkl3tQu36g/Foh5I5ig==}
1174 | dev: true
1175 |
1176 | /glob-parent/5.1.2:
1177 | resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==}
1178 | engines: {node: '>= 6'}
1179 | dependencies:
1180 | is-glob: 4.0.3
1181 | dev: true
1182 |
1183 | /glob-parent/6.0.2:
1184 | resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==}
1185 | engines: {node: '>=10.13.0'}
1186 | dependencies:
1187 | is-glob: 4.0.3
1188 | dev: true
1189 |
1190 | /glob/7.2.3:
1191 | resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==}
1192 | dependencies:
1193 | fs.realpath: 1.0.0
1194 | inflight: 1.0.6
1195 | inherits: 2.0.4
1196 | minimatch: 3.1.2
1197 | once: 1.4.0
1198 | path-is-absolute: 1.0.1
1199 | dev: true
1200 |
1201 | /glob/8.1.0:
1202 | resolution: {integrity: sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==}
1203 | engines: {node: '>=12'}
1204 | dependencies:
1205 | fs.realpath: 1.0.0
1206 | inflight: 1.0.6
1207 | inherits: 2.0.4
1208 | minimatch: 5.1.6
1209 | once: 1.4.0
1210 | dev: true
1211 |
1212 | /globals/13.20.0:
1213 | resolution: {integrity: sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==}
1214 | engines: {node: '>=8'}
1215 | dependencies:
1216 | type-fest: 0.20.2
1217 | dev: true
1218 |
1219 | /globalyzer/0.1.0:
1220 | resolution: {integrity: sha512-40oNTM9UfG6aBmuKxk/giHn5nQ8RVz/SS4Ir6zgzOv9/qC3kKZ9v4etGTcJbEl/NyVQH7FGU7d+X1egr57Md2Q==}
1221 | dev: true
1222 |
1223 | /globby/11.1.0:
1224 | resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==}
1225 | engines: {node: '>=10'}
1226 | dependencies:
1227 | array-union: 2.1.0
1228 | dir-glob: 3.0.1
1229 | fast-glob: 3.2.12
1230 | ignore: 5.2.4
1231 | merge2: 1.4.1
1232 | slash: 3.0.0
1233 | dev: true
1234 |
1235 | /globrex/0.1.2:
1236 | resolution: {integrity: sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==}
1237 | dev: true
1238 |
1239 | /graceful-fs/4.2.11:
1240 | resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==}
1241 | dev: true
1242 |
1243 | /grapheme-splitter/1.0.4:
1244 | resolution: {integrity: sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==}
1245 | dev: true
1246 |
1247 | /has-flag/4.0.0:
1248 | resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==}
1249 | engines: {node: '>=8'}
1250 | dev: true
1251 |
1252 | /has/1.0.3:
1253 | resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==}
1254 | engines: {node: '>= 0.4.0'}
1255 | dependencies:
1256 | function-bind: 1.1.1
1257 | dev: true
1258 |
1259 | /html-encoding-sniffer/3.0.0:
1260 | resolution: {integrity: sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==}
1261 | engines: {node: '>=12'}
1262 | dependencies:
1263 | whatwg-encoding: 2.0.0
1264 | dev: true
1265 |
1266 | /http-proxy-agent/5.0.0:
1267 | resolution: {integrity: sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==}
1268 | engines: {node: '>= 6'}
1269 | dependencies:
1270 | '@tootallnate/once': 2.0.0
1271 | agent-base: 6.0.2
1272 | debug: 4.3.4
1273 | transitivePeerDependencies:
1274 | - supports-color
1275 | dev: true
1276 |
1277 | /https-proxy-agent/5.0.1:
1278 | resolution: {integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==}
1279 | engines: {node: '>= 6'}
1280 | dependencies:
1281 | agent-base: 6.0.2
1282 | debug: 4.3.4
1283 | transitivePeerDependencies:
1284 | - supports-color
1285 | dev: true
1286 |
1287 | /iconv-lite/0.6.3:
1288 | resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==}
1289 | engines: {node: '>=0.10.0'}
1290 | dependencies:
1291 | safer-buffer: 2.1.2
1292 | dev: true
1293 |
1294 | /ignore-walk/5.0.1:
1295 | resolution: {integrity: sha512-yemi4pMf51WKT7khInJqAvsIGzoqYXblnsz0ql8tM+yi1EKYTY1evX4NAbJrLL/Aanr2HyZeluqU+Oi7MGHokw==}
1296 | engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
1297 | dependencies:
1298 | minimatch: 5.1.6
1299 | dev: true
1300 |
1301 | /ignore/5.2.4:
1302 | resolution: {integrity: sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==}
1303 | engines: {node: '>= 4'}
1304 | dev: true
1305 |
1306 | /import-fresh/3.3.0:
1307 | resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==}
1308 | engines: {node: '>=6'}
1309 | dependencies:
1310 | parent-module: 1.0.1
1311 | resolve-from: 4.0.0
1312 | dev: true
1313 |
1314 | /import-meta-resolve/2.2.2:
1315 | resolution: {integrity: sha512-f8KcQ1D80V7RnqVm+/lirO9zkOxjGxhaTC1IPrBGd3MEfNgmNG67tSUO9gTi2F3Blr2Az6g1vocaxzkVnWl9MA==}
1316 | dev: true
1317 |
1318 | /imurmurhash/0.1.4:
1319 | resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==}
1320 | engines: {node: '>=0.8.19'}
1321 | dev: true
1322 |
1323 | /inflight/1.0.6:
1324 | resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==}
1325 | dependencies:
1326 | once: 1.4.0
1327 | wrappy: 1.0.2
1328 | dev: true
1329 |
1330 | /inherits/2.0.4:
1331 | resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==}
1332 | dev: true
1333 |
1334 | /is-binary-path/2.1.0:
1335 | resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==}
1336 | engines: {node: '>=8'}
1337 | dependencies:
1338 | binary-extensions: 2.2.0
1339 | dev: true
1340 |
1341 | /is-core-module/2.11.0:
1342 | resolution: {integrity: sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==}
1343 | dependencies:
1344 | has: 1.0.3
1345 | dev: true
1346 |
1347 | /is-extglob/2.1.1:
1348 | resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==}
1349 | engines: {node: '>=0.10.0'}
1350 | dev: true
1351 |
1352 | /is-glob/4.0.3:
1353 | resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==}
1354 | engines: {node: '>=0.10.0'}
1355 | dependencies:
1356 | is-extglob: 2.1.1
1357 | dev: true
1358 |
1359 | /is-number/7.0.0:
1360 | resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==}
1361 | engines: {node: '>=0.12.0'}
1362 | dev: true
1363 |
1364 | /is-path-inside/3.0.3:
1365 | resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==}
1366 | engines: {node: '>=8'}
1367 | dev: true
1368 |
1369 | /is-potential-custom-element-name/1.0.1:
1370 | resolution: {integrity: sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==}
1371 | dev: true
1372 |
1373 | /isexe/2.0.0:
1374 | resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==}
1375 | dev: true
1376 |
1377 | /js-sdsl/4.4.0:
1378 | resolution: {integrity: sha512-FfVSdx6pJ41Oa+CF7RDaFmTnCaFhua+SNYQX74riGOpl96x+2jQCqEfQ2bnXu/5DPCqlRuiqyvTJM0Qjz26IVg==}
1379 | dev: true
1380 |
1381 | /js-yaml/4.1.0:
1382 | resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==}
1383 | hasBin: true
1384 | dependencies:
1385 | argparse: 2.0.1
1386 | dev: true
1387 |
1388 | /jsdom/21.1.1:
1389 | resolution: {integrity: sha512-Jjgdmw48RKcdAIQyUD1UdBh2ecH7VqwaXPN3ehoZN6MqgVbMn+lRm1aAT1AsdJRAJpwfa4IpwgzySn61h2qu3w==}
1390 | engines: {node: '>=14'}
1391 | peerDependencies:
1392 | canvas: ^2.5.0
1393 | peerDependenciesMeta:
1394 | canvas:
1395 | optional: true
1396 | dependencies:
1397 | abab: 2.0.6
1398 | acorn: 8.8.2
1399 | acorn-globals: 7.0.1
1400 | cssstyle: 3.0.0
1401 | data-urls: 4.0.0
1402 | decimal.js: 10.4.3
1403 | domexception: 4.0.0
1404 | escodegen: 2.0.0
1405 | form-data: 4.0.0
1406 | html-encoding-sniffer: 3.0.0
1407 | http-proxy-agent: 5.0.0
1408 | https-proxy-agent: 5.0.1
1409 | is-potential-custom-element-name: 1.0.1
1410 | nwsapi: 2.2.2
1411 | parse5: 7.1.2
1412 | rrweb-cssom: 0.6.0
1413 | saxes: 6.0.0
1414 | symbol-tree: 3.2.4
1415 | tough-cookie: 4.1.2
1416 | w3c-xmlserializer: 4.0.0
1417 | webidl-conversions: 7.0.0
1418 | whatwg-encoding: 2.0.0
1419 | whatwg-mimetype: 3.0.0
1420 | whatwg-url: 12.0.1
1421 | ws: 8.13.0
1422 | xml-name-validator: 4.0.0
1423 | transitivePeerDependencies:
1424 | - bufferutil
1425 | - supports-color
1426 | - utf-8-validate
1427 | dev: true
1428 |
1429 | /json-schema-traverse/0.4.1:
1430 | resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==}
1431 | dev: true
1432 |
1433 | /json-stable-stringify-without-jsonify/1.0.1:
1434 | resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==}
1435 | dev: true
1436 |
1437 | /kleur/4.1.5:
1438 | resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==}
1439 | engines: {node: '>=6'}
1440 | dev: true
1441 |
1442 | /levn/0.3.0:
1443 | resolution: {integrity: sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==}
1444 | engines: {node: '>= 0.8.0'}
1445 | dependencies:
1446 | prelude-ls: 1.1.2
1447 | type-check: 0.3.2
1448 | dev: true
1449 |
1450 | /levn/0.4.1:
1451 | resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==}
1452 | engines: {node: '>= 0.8.0'}
1453 | dependencies:
1454 | prelude-ls: 1.2.1
1455 | type-check: 0.4.0
1456 | dev: true
1457 |
1458 | /local-pkg/0.4.3:
1459 | resolution: {integrity: sha512-SFppqq5p42fe2qcZQqqEOiVRXl+WCP1MdT6k7BDEW1j++sp5fIY+/fdRQitvKgB5BrBcmrs5m/L0v2FrU5MY1g==}
1460 | engines: {node: '>=14'}
1461 | dev: true
1462 |
1463 | /locate-path/6.0.0:
1464 | resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==}
1465 | engines: {node: '>=10'}
1466 | dependencies:
1467 | p-locate: 5.0.0
1468 | dev: true
1469 |
1470 | /lodash.merge/4.6.2:
1471 | resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==}
1472 | dev: true
1473 |
1474 | /loupe/2.3.6:
1475 | resolution: {integrity: sha512-RaPMZKiMy8/JruncMU5Bt6na1eftNoo++R4Y+N2FrxkDVTrGvcyzFTsaGif4QTeKESheMGegbhw6iUAq+5A8zA==}
1476 | dependencies:
1477 | get-func-name: 2.0.0
1478 | dev: true
1479 |
1480 | /lower-case/2.0.2:
1481 | resolution: {integrity: sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==}
1482 | dependencies:
1483 | tslib: 2.5.0
1484 | dev: true
1485 |
1486 | /lru-cache/6.0.0:
1487 | resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==}
1488 | engines: {node: '>=10'}
1489 | dependencies:
1490 | yallist: 4.0.0
1491 | dev: true
1492 |
1493 | /magic-string/0.27.0:
1494 | resolution: {integrity: sha512-8UnnX2PeRAPZuN12svgR9j7M1uWMovg/CEnIwIG0LFkXSJJe4PdfUGiTGl8V9bsBHFUtfVINcSyYxd7q+kx9fA==}
1495 | engines: {node: '>=12'}
1496 | dependencies:
1497 | '@jridgewell/sourcemap-codec': 1.4.14
1498 | dev: true
1499 |
1500 | /magic-string/0.29.0:
1501 | resolution: {integrity: sha512-WcfidHrDjMY+eLjlU+8OvwREqHwpgCeKVBUpQ3OhYYuvfaYCUgcbuBzappNzZvg/v8onU3oQj+BYpkOJe9Iw4Q==}
1502 | engines: {node: '>=12'}
1503 | dependencies:
1504 | '@jridgewell/sourcemap-codec': 1.4.14
1505 | dev: true
1506 |
1507 | /magic-string/0.30.0:
1508 | resolution: {integrity: sha512-LA+31JYDJLs82r2ScLrlz1GjSgu66ZV518eyWT+S8VhyQn/JL0u9MeBOvQMGYiPk1DBiSN9DDMOcXvigJZaViQ==}
1509 | engines: {node: '>=12'}
1510 | dependencies:
1511 | '@jridgewell/sourcemap-codec': 1.4.14
1512 | dev: true
1513 |
1514 | /mdsvex/0.10.6_svelte@3.57.0:
1515 | resolution: {integrity: sha512-aGRDY0r5jx9+OOgFdyB9Xm3EBr9OUmcrTDPWLB7a7g8VPRxzPy4MOBmcVYgz7ErhAJ7bZ/coUoj6aHio3x/2mA==}
1516 | peerDependencies:
1517 | svelte: 3.x
1518 | dependencies:
1519 | '@types/unist': 2.0.6
1520 | prism-svelte: 0.4.7
1521 | prismjs: 1.29.0
1522 | svelte: 3.57.0
1523 | vfile-message: 2.0.4
1524 | dev: true
1525 |
1526 | /merge2/1.4.1:
1527 | resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==}
1528 | engines: {node: '>= 8'}
1529 | dev: true
1530 |
1531 | /micromatch/4.0.5:
1532 | resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==}
1533 | engines: {node: '>=8.6'}
1534 | dependencies:
1535 | braces: 3.0.2
1536 | picomatch: 2.3.1
1537 | dev: true
1538 |
1539 | /mime-db/1.52.0:
1540 | resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==}
1541 | engines: {node: '>= 0.6'}
1542 | dev: true
1543 |
1544 | /mime-types/2.1.35:
1545 | resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==}
1546 | engines: {node: '>= 0.6'}
1547 | dependencies:
1548 | mime-db: 1.52.0
1549 | dev: true
1550 |
1551 | /mime/3.0.0:
1552 | resolution: {integrity: sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==}
1553 | engines: {node: '>=10.0.0'}
1554 | hasBin: true
1555 | dev: true
1556 |
1557 | /min-indent/1.0.1:
1558 | resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==}
1559 | engines: {node: '>=4'}
1560 | dev: true
1561 |
1562 | /minimatch/3.1.2:
1563 | resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==}
1564 | dependencies:
1565 | brace-expansion: 1.1.11
1566 | dev: true
1567 |
1568 | /minimatch/5.1.6:
1569 | resolution: {integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==}
1570 | engines: {node: '>=10'}
1571 | dependencies:
1572 | brace-expansion: 2.0.1
1573 | dev: true
1574 |
1575 | /minimist/1.2.8:
1576 | resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==}
1577 | dev: true
1578 |
1579 | /mkdirp/0.5.6:
1580 | resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==}
1581 | hasBin: true
1582 | dependencies:
1583 | minimist: 1.2.8
1584 | dev: true
1585 |
1586 | /mri/1.2.0:
1587 | resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==}
1588 | engines: {node: '>=4'}
1589 | dev: true
1590 |
1591 | /mrmime/1.0.1:
1592 | resolution: {integrity: sha512-hzzEagAgDyoU1Q6yg5uI+AorQgdvMCur3FcKf7NhMKWsaYg+RnbTyHRa/9IlLF9rf455MOCtcqqrQQ83pPP7Uw==}
1593 | engines: {node: '>=10'}
1594 | dev: true
1595 |
1596 | /ms/2.1.2:
1597 | resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==}
1598 | dev: true
1599 |
1600 | /nanoid/3.3.4:
1601 | resolution: {integrity: sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==}
1602 | engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
1603 | hasBin: true
1604 | dev: true
1605 |
1606 | /natural-compare-lite/1.4.0:
1607 | resolution: {integrity: sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==}
1608 | dev: true
1609 |
1610 | /natural-compare/1.4.0:
1611 | resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==}
1612 | dev: true
1613 |
1614 | /no-case/3.0.4:
1615 | resolution: {integrity: sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==}
1616 | dependencies:
1617 | lower-case: 2.0.2
1618 | tslib: 2.5.0
1619 | dev: true
1620 |
1621 | /normalize-path/3.0.0:
1622 | resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==}
1623 | engines: {node: '>=0.10.0'}
1624 | dev: true
1625 |
1626 | /npm-bundled/2.0.1:
1627 | resolution: {integrity: sha512-gZLxXdjEzE/+mOstGDqR6b0EkhJ+kM6fxM6vUuckuctuVPh80Q6pw/rSZj9s4Gex9GxWtIicO1pc8DB9KZWudw==}
1628 | engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
1629 | dependencies:
1630 | npm-normalize-package-bin: 2.0.0
1631 | dev: true
1632 |
1633 | /npm-normalize-package-bin/2.0.0:
1634 | resolution: {integrity: sha512-awzfKUO7v0FscrSpRoogyNm0sajikhBWpU0QMrW09AMi9n1PoKU6WaIqUzuJSQnpciZZmJ/jMZ2Egfmb/9LiWQ==}
1635 | engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
1636 | dev: true
1637 |
1638 | /npm-packlist/5.1.3:
1639 | resolution: {integrity: sha512-263/0NGrn32YFYi4J533qzrQ/krmmrWwhKkzwTuM4f/07ug51odoaNjUexxO4vxlzURHcmYMH1QjvHjsNDKLVg==}
1640 | engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
1641 | hasBin: true
1642 | dependencies:
1643 | glob: 8.1.0
1644 | ignore-walk: 5.0.1
1645 | npm-bundled: 2.0.1
1646 | npm-normalize-package-bin: 2.0.0
1647 | dev: true
1648 |
1649 | /nwsapi/2.2.2:
1650 | resolution: {integrity: sha512-90yv+6538zuvUMnN+zCr8LuV6bPFdq50304114vJYJ8RDyK8D5O9Phpbd6SZWgI7PwzmmfN1upeOJlvybDSgCw==}
1651 | dev: true
1652 |
1653 | /once/1.4.0:
1654 | resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==}
1655 | dependencies:
1656 | wrappy: 1.0.2
1657 | dev: true
1658 |
1659 | /optionator/0.8.3:
1660 | resolution: {integrity: sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==}
1661 | engines: {node: '>= 0.8.0'}
1662 | dependencies:
1663 | deep-is: 0.1.4
1664 | fast-levenshtein: 2.0.6
1665 | levn: 0.3.0
1666 | prelude-ls: 1.1.2
1667 | type-check: 0.3.2
1668 | word-wrap: 1.2.3
1669 | dev: true
1670 |
1671 | /optionator/0.9.1:
1672 | resolution: {integrity: sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==}
1673 | engines: {node: '>= 0.8.0'}
1674 | dependencies:
1675 | deep-is: 0.1.4
1676 | fast-levenshtein: 2.0.6
1677 | levn: 0.4.1
1678 | prelude-ls: 1.2.1
1679 | type-check: 0.4.0
1680 | word-wrap: 1.2.3
1681 | dev: true
1682 |
1683 | /p-limit/3.1.0:
1684 | resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==}
1685 | engines: {node: '>=10'}
1686 | dependencies:
1687 | yocto-queue: 0.1.0
1688 | dev: true
1689 |
1690 | /p-locate/5.0.0:
1691 | resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==}
1692 | engines: {node: '>=10'}
1693 | dependencies:
1694 | p-limit: 3.1.0
1695 | dev: true
1696 |
1697 | /parent-module/1.0.1:
1698 | resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==}
1699 | engines: {node: '>=6'}
1700 | dependencies:
1701 | callsites: 3.1.0
1702 | dev: true
1703 |
1704 | /parse5/7.1.2:
1705 | resolution: {integrity: sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==}
1706 | dependencies:
1707 | entities: 4.4.0
1708 | dev: true
1709 |
1710 | /pascal-case/3.1.2:
1711 | resolution: {integrity: sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==}
1712 | dependencies:
1713 | no-case: 3.0.4
1714 | tslib: 2.5.0
1715 | dev: true
1716 |
1717 | /path-exists/4.0.0:
1718 | resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==}
1719 | engines: {node: '>=8'}
1720 | dev: true
1721 |
1722 | /path-is-absolute/1.0.1:
1723 | resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==}
1724 | engines: {node: '>=0.10.0'}
1725 | dev: true
1726 |
1727 | /path-key/3.1.1:
1728 | resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==}
1729 | engines: {node: '>=8'}
1730 | dev: true
1731 |
1732 | /path-parse/1.0.7:
1733 | resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==}
1734 | dev: true
1735 |
1736 | /path-type/4.0.0:
1737 | resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==}
1738 | engines: {node: '>=8'}
1739 | dev: true
1740 |
1741 | /pathval/1.1.1:
1742 | resolution: {integrity: sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==}
1743 | dev: true
1744 |
1745 | /picocolors/1.0.0:
1746 | resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==}
1747 | dev: true
1748 |
1749 | /picomatch/2.3.1:
1750 | resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==}
1751 | engines: {node: '>=8.6'}
1752 | dev: true
1753 |
1754 | /playwright-core/1.32.1:
1755 | resolution: {integrity: sha512-KZYUQC10mXD2Am1rGlidaalNGYk3LU1vZqqNk0gT4XPty1jOqgup8KDP8l2CUlqoNKhXM5IfGjWgW37xvGllBA==}
1756 | engines: {node: '>=14'}
1757 | hasBin: true
1758 | dev: true
1759 |
1760 | /postcss/8.4.21:
1761 | resolution: {integrity: sha512-tP7u/Sn/dVxK2NnruI4H9BG+x+Wxz6oeZ1cJ8P6G/PZY0IKk4k/63TDsQf2kQq3+qoJeLm2kIBUNlZe3zgb4Zg==}
1762 | engines: {node: ^10 || ^12 || >=14}
1763 | dependencies:
1764 | nanoid: 3.3.4
1765 | picocolors: 1.0.0
1766 | source-map-js: 1.0.2
1767 | dev: true
1768 |
1769 | /prelude-ls/1.1.2:
1770 | resolution: {integrity: sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==}
1771 | engines: {node: '>= 0.8.0'}
1772 | dev: true
1773 |
1774 | /prelude-ls/1.2.1:
1775 | resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==}
1776 | engines: {node: '>= 0.8.0'}
1777 | dev: true
1778 |
1779 | /prettier-plugin-svelte/2.10.0_5ir2xprf4ygk6mygilwnltaw3a:
1780 | resolution: {integrity: sha512-GXMY6t86thctyCvQq+jqElO+MKdB09BkL3hexyGP3Oi8XLKRFaJP1ud/xlWCZ9ZIa2BxHka32zhHfcuU+XsRQg==}
1781 | peerDependencies:
1782 | prettier: ^1.16.4 || ^2.0.0
1783 | svelte: ^3.2.0
1784 | dependencies:
1785 | prettier: 2.8.7
1786 | svelte: 3.57.0
1787 | dev: true
1788 |
1789 | /prettier/2.8.7:
1790 | resolution: {integrity: sha512-yPngTo3aXUUmyuTjeTUT75txrf+aMh9FiD7q9ZE/i6r0bPb22g4FsE6Y338PQX1bmfy08i9QQCB7/rcUAVntfw==}
1791 | engines: {node: '>=10.13.0'}
1792 | hasBin: true
1793 | dev: true
1794 |
1795 | /prism-svelte/0.4.7:
1796 | resolution: {integrity: sha512-yABh19CYbM24V7aS7TuPYRNMqthxwbvx6FF/Rw920YbyBWO3tnyPIqRMgHuSVsLmuHkkBS1Akyof463FVdkeDQ==}
1797 | dev: true
1798 |
1799 | /prismjs/1.29.0:
1800 | resolution: {integrity: sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q==}
1801 | engines: {node: '>=6'}
1802 | dev: true
1803 |
1804 | /psl/1.9.0:
1805 | resolution: {integrity: sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==}
1806 | dev: true
1807 |
1808 | /publint/0.1.11:
1809 | resolution: {integrity: sha512-sD0rtIEadks83MkpomJswBO/YHExJLkta1TyqUhb0/aVV+o3ZlVnwsDPjCAow8tpfxmLGutCSLWq32yfhPB98w==}
1810 | engines: {node: '>=16'}
1811 | hasBin: true
1812 | dependencies:
1813 | npm-packlist: 5.1.3
1814 | picocolors: 1.0.0
1815 | sade: 1.8.1
1816 | dev: true
1817 |
1818 | /punycode/2.3.0:
1819 | resolution: {integrity: sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==}
1820 | engines: {node: '>=6'}
1821 | dev: true
1822 |
1823 | /querystringify/2.2.0:
1824 | resolution: {integrity: sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==}
1825 | dev: true
1826 |
1827 | /queue-microtask/1.2.3:
1828 | resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==}
1829 | dev: true
1830 |
1831 | /readdirp/3.6.0:
1832 | resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==}
1833 | engines: {node: '>=8.10.0'}
1834 | dependencies:
1835 | picomatch: 2.3.1
1836 | dev: true
1837 |
1838 | /requires-port/1.0.0:
1839 | resolution: {integrity: sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==}
1840 | dev: true
1841 |
1842 | /resolve-from/4.0.0:
1843 | resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==}
1844 | engines: {node: '>=4'}
1845 | dev: true
1846 |
1847 | /resolve/1.22.1:
1848 | resolution: {integrity: sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==}
1849 | hasBin: true
1850 | dependencies:
1851 | is-core-module: 2.11.0
1852 | path-parse: 1.0.7
1853 | supports-preserve-symlinks-flag: 1.0.0
1854 | dev: true
1855 |
1856 | /reusify/1.0.4:
1857 | resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==}
1858 | engines: {iojs: '>=1.0.0', node: '>=0.10.0'}
1859 | dev: true
1860 |
1861 | /rimraf/2.7.1:
1862 | resolution: {integrity: sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==}
1863 | hasBin: true
1864 | dependencies:
1865 | glob: 7.2.3
1866 | dev: true
1867 |
1868 | /rimraf/3.0.2:
1869 | resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==}
1870 | hasBin: true
1871 | dependencies:
1872 | glob: 7.2.3
1873 | dev: true
1874 |
1875 | /rollup/3.20.2:
1876 | resolution: {integrity: sha512-3zwkBQl7Ai7MFYQE0y1MeQ15+9jsi7XxfrqwTb/9EK8D9C9+//EBR4M+CuA1KODRaNbFez/lWxA5vhEGZp4MUg==}
1877 | engines: {node: '>=14.18.0', npm: '>=8.0.0'}
1878 | hasBin: true
1879 | optionalDependencies:
1880 | fsevents: 2.3.2
1881 | dev: true
1882 |
1883 | /rrweb-cssom/0.6.0:
1884 | resolution: {integrity: sha512-APM0Gt1KoXBz0iIkkdB/kfvGOwC4UuJFeG/c+yV7wSc7q96cG/kJ0HiYCnzivD9SB53cLV1MlHFNfOuPaadYSw==}
1885 | dev: true
1886 |
1887 | /run-parallel/1.2.0:
1888 | resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==}
1889 | dependencies:
1890 | queue-microtask: 1.2.3
1891 | dev: true
1892 |
1893 | /sade/1.8.1:
1894 | resolution: {integrity: sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==}
1895 | engines: {node: '>=6'}
1896 | dependencies:
1897 | mri: 1.2.0
1898 | dev: true
1899 |
1900 | /safer-buffer/2.1.2:
1901 | resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==}
1902 | dev: true
1903 |
1904 | /sander/0.5.1:
1905 | resolution: {integrity: sha512-3lVqBir7WuKDHGrKRDn/1Ye3kwpXaDOMsiRP1wd6wpZW56gJhsbp5RqQpA6JG/P+pkXizygnr1dKR8vzWaVsfA==}
1906 | dependencies:
1907 | es6-promise: 3.3.1
1908 | graceful-fs: 4.2.11
1909 | mkdirp: 0.5.6
1910 | rimraf: 2.7.1
1911 | dev: true
1912 |
1913 | /saxes/6.0.0:
1914 | resolution: {integrity: sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==}
1915 | engines: {node: '>=v12.22.7'}
1916 | dependencies:
1917 | xmlchars: 2.2.0
1918 | dev: true
1919 |
1920 | /semver/7.3.8:
1921 | resolution: {integrity: sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==}
1922 | engines: {node: '>=10'}
1923 | hasBin: true
1924 | dependencies:
1925 | lru-cache: 6.0.0
1926 | dev: true
1927 |
1928 | /set-cookie-parser/2.6.0:
1929 | resolution: {integrity: sha512-RVnVQxTXuerk653XfuliOxBP81Sf0+qfQE73LIYKcyMYHG94AuH0kgrQpRDuTZnSmjpysHmzxJXKNfa6PjFhyQ==}
1930 | dev: true
1931 |
1932 | /shebang-command/2.0.0:
1933 | resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==}
1934 | engines: {node: '>=8'}
1935 | dependencies:
1936 | shebang-regex: 3.0.0
1937 | dev: true
1938 |
1939 | /shebang-regex/3.0.0:
1940 | resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==}
1941 | engines: {node: '>=8'}
1942 | dev: true
1943 |
1944 | /sirv/2.0.2:
1945 | resolution: {integrity: sha512-4Qog6aE29nIjAOKe/wowFTxOdmbEZKb+3tsLljaBRzJwtqto0BChD2zzH0LhgCSXiI+V7X+Y45v14wBZQ1TK3w==}
1946 | engines: {node: '>= 10'}
1947 | dependencies:
1948 | '@polka/url': 1.0.0-next.21
1949 | mrmime: 1.0.1
1950 | totalist: 3.0.0
1951 | dev: true
1952 |
1953 | /slash/3.0.0:
1954 | resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==}
1955 | engines: {node: '>=8'}
1956 | dev: true
1957 |
1958 | /sorcery/0.11.0:
1959 | resolution: {integrity: sha512-J69LQ22xrQB1cIFJhPfgtLuI6BpWRiWu1Y3vSsIwK/eAScqJxd/+CJlUuHQRdX2C9NGFamq+KqNywGgaThwfHw==}
1960 | hasBin: true
1961 | dependencies:
1962 | '@jridgewell/sourcemap-codec': 1.4.14
1963 | buffer-crc32: 0.2.13
1964 | minimist: 1.2.8
1965 | sander: 0.5.1
1966 | dev: true
1967 |
1968 | /source-map-js/1.0.2:
1969 | resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==}
1970 | engines: {node: '>=0.10.0'}
1971 | dev: true
1972 |
1973 | /source-map/0.6.1:
1974 | resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==}
1975 | engines: {node: '>=0.10.0'}
1976 | dev: true
1977 |
1978 | /streamsearch/1.1.0:
1979 | resolution: {integrity: sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==}
1980 | engines: {node: '>=10.0.0'}
1981 | dev: true
1982 |
1983 | /strip-ansi/6.0.1:
1984 | resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==}
1985 | engines: {node: '>=8'}
1986 | dependencies:
1987 | ansi-regex: 5.0.1
1988 | dev: true
1989 |
1990 | /strip-indent/3.0.0:
1991 | resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==}
1992 | engines: {node: '>=8'}
1993 | dependencies:
1994 | min-indent: 1.0.1
1995 | dev: true
1996 |
1997 | /strip-json-comments/3.1.1:
1998 | resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==}
1999 | engines: {node: '>=8'}
2000 | dev: true
2001 |
2002 | /strip-literal/1.0.1:
2003 | resolution: {integrity: sha512-QZTsipNpa2Ppr6v1AmJHESqJ3Uz247MUS0OjrnnZjFAvEoWqxuyFuXn2xLgMtRnijJShAa1HL0gtJyUs7u7n3Q==}
2004 | dependencies:
2005 | acorn: 8.8.2
2006 | dev: true
2007 |
2008 | /supports-color/7.2.0:
2009 | resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==}
2010 | engines: {node: '>=8'}
2011 | dependencies:
2012 | has-flag: 4.0.0
2013 | dev: true
2014 |
2015 | /supports-preserve-symlinks-flag/1.0.0:
2016 | resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==}
2017 | engines: {node: '>= 0.4'}
2018 | dev: true
2019 |
2020 | /svelte-check/3.1.4_svelte@3.57.0:
2021 | resolution: {integrity: sha512-25Lb46ZS4IK/XpBMe4IBMrtYf23V8alqBX+szXoccb7uM0D2Wqq5rMRzYBONZnFVuU1bQG3R50lyIT5eRewv2g==}
2022 | hasBin: true
2023 | peerDependencies:
2024 | svelte: ^3.55.0
2025 | dependencies:
2026 | '@jridgewell/trace-mapping': 0.3.17
2027 | chokidar: 3.5.3
2028 | fast-glob: 3.2.12
2029 | import-fresh: 3.3.0
2030 | picocolors: 1.0.0
2031 | sade: 1.8.1
2032 | svelte: 3.57.0
2033 | svelte-preprocess: 5.0.3_wkdgp32a7s6524odeddpfzb52q
2034 | typescript: 4.9.5
2035 | transitivePeerDependencies:
2036 | - '@babel/core'
2037 | - coffeescript
2038 | - less
2039 | - postcss
2040 | - postcss-load-config
2041 | - pug
2042 | - sass
2043 | - stylus
2044 | - sugarss
2045 | dev: true
2046 |
2047 | /svelte-hmr/0.15.1_svelte@3.57.0:
2048 | resolution: {integrity: sha512-BiKB4RZ8YSwRKCNVdNxK/GfY+r4Kjgp9jCLEy0DuqAKfmQtpL38cQK3afdpjw4sqSs4PLi3jIPJIFp259NkZtA==}
2049 | engines: {node: ^12.20 || ^14.13.1 || >= 16}
2050 | peerDependencies:
2051 | svelte: '>=3.19.0'
2052 | dependencies:
2053 | svelte: 3.57.0
2054 | dev: true
2055 |
2056 | /svelte-preprocess/5.0.3_wkdgp32a7s6524odeddpfzb52q:
2057 | resolution: {integrity: sha512-GrHF1rusdJVbOZOwgPWtpqmaexkydznKzy5qIC2FabgpFyKN57bjMUUUqPRfbBXK5igiEWn1uO/DXsa2vJ5VHA==}
2058 | engines: {node: '>= 14.10.0'}
2059 | requiresBuild: true
2060 | peerDependencies:
2061 | '@babel/core': ^7.10.2
2062 | coffeescript: ^2.5.1
2063 | less: ^3.11.3 || ^4.0.0
2064 | postcss: ^7 || ^8
2065 | postcss-load-config: ^2.1.0 || ^3.0.0 || ^4.0.0
2066 | pug: ^3.0.0
2067 | sass: ^1.26.8
2068 | stylus: ^0.55.0
2069 | sugarss: ^2.0.0 || ^3.0.0 || ^4.0.0
2070 | svelte: ^3.23.0
2071 | typescript: '>=3.9.5 || ^4.0.0 || ^5.0.0'
2072 | peerDependenciesMeta:
2073 | '@babel/core':
2074 | optional: true
2075 | coffeescript:
2076 | optional: true
2077 | less:
2078 | optional: true
2079 | postcss:
2080 | optional: true
2081 | postcss-load-config:
2082 | optional: true
2083 | pug:
2084 | optional: true
2085 | sass:
2086 | optional: true
2087 | stylus:
2088 | optional: true
2089 | sugarss:
2090 | optional: true
2091 | typescript:
2092 | optional: true
2093 | dependencies:
2094 | '@types/pug': 2.0.6
2095 | detect-indent: 6.1.0
2096 | magic-string: 0.27.0
2097 | sorcery: 0.11.0
2098 | strip-indent: 3.0.0
2099 | svelte: 3.57.0
2100 | typescript: 4.9.5
2101 | dev: true
2102 |
2103 | /svelte/3.57.0:
2104 | resolution: {integrity: sha512-WMXEvF+RtAaclw0t3bPDTUe19pplMlfyKDsixbHQYgCWi9+O9VN0kXU1OppzrB9gPAvz4NALuoca2LfW2bOjTQ==}
2105 | engines: {node: '>= 8'}
2106 | dev: true
2107 |
2108 | /svelte2tsx/0.6.10_wkdgp32a7s6524odeddpfzb52q:
2109 | resolution: {integrity: sha512-7CtUexhSHppSpLwVX7yI9OxJp7+esCNTuOF/CaVxWTgWp88QF/2/dCbpND/cTZmBxht5cFFQBwoLXXqFLdYe3Q==}
2110 | peerDependencies:
2111 | svelte: ^3.55
2112 | typescript: ^4.9.4 || ^5.0.0
2113 | dependencies:
2114 | dedent-js: 1.0.1
2115 | pascal-case: 3.1.2
2116 | svelte: 3.57.0
2117 | typescript: 4.9.5
2118 | dev: true
2119 |
2120 | /symbol-tree/3.2.4:
2121 | resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==}
2122 | dev: true
2123 |
2124 | /text-table/0.2.0:
2125 | resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==}
2126 | dev: true
2127 |
2128 | /tiny-glob/0.2.9:
2129 | resolution: {integrity: sha512-g/55ssRPUjShh+xkfx9UPDXqhckHEsHr4Vd9zX55oSdGZc/MD0m3sferOkwWtp98bv+kcVfEHtRJgBVJzelrzg==}
2130 | dependencies:
2131 | globalyzer: 0.1.0
2132 | globrex: 0.1.2
2133 | dev: true
2134 |
2135 | /tinybench/2.4.0:
2136 | resolution: {integrity: sha512-iyziEiyFxX4kyxSp+MtY1oCH/lvjH3PxFN8PGCDeqcZWAJ/i+9y+nL85w99PxVzrIvew/GSkSbDYtiGVa85Afg==}
2137 | dev: true
2138 |
2139 | /tinypool/0.3.1:
2140 | resolution: {integrity: sha512-zLA1ZXlstbU2rlpA4CIeVaqvWq41MTWqLY3FfsAXgC8+f7Pk7zroaJQxDgxn1xNudKW6Kmj4808rPFShUlIRmQ==}
2141 | engines: {node: '>=14.0.0'}
2142 | dev: true
2143 |
2144 | /tinyspy/1.1.1:
2145 | resolution: {integrity: sha512-UVq5AXt/gQlti7oxoIg5oi/9r0WpF7DGEVwXgqWSMmyN16+e3tl5lIvTaOpJ3TAtu5xFzWccFRM4R5NaWHF+4g==}
2146 | engines: {node: '>=14.0.0'}
2147 | dev: true
2148 |
2149 | /to-regex-range/5.0.1:
2150 | resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==}
2151 | engines: {node: '>=8.0'}
2152 | dependencies:
2153 | is-number: 7.0.0
2154 | dev: true
2155 |
2156 | /totalist/3.0.0:
2157 | resolution: {integrity: sha512-eM+pCBxXO/njtF7vdFsHuqb+ElbxqtI4r5EAvk6grfAFyJ6IvWlSkfZ5T9ozC6xWw3Fj1fGoSmrl0gUs46JVIw==}
2158 | engines: {node: '>=6'}
2159 | dev: true
2160 |
2161 | /tough-cookie/4.1.2:
2162 | resolution: {integrity: sha512-G9fqXWoYFZgTc2z8Q5zaHy/vJMjm+WV0AkAeHxVCQiEB1b+dGvWzFW6QV07cY5jQ5gRkeid2qIkzkxUnmoQZUQ==}
2163 | engines: {node: '>=6'}
2164 | dependencies:
2165 | psl: 1.9.0
2166 | punycode: 2.3.0
2167 | universalify: 0.2.0
2168 | url-parse: 1.5.10
2169 | dev: true
2170 |
2171 | /tr46/4.1.1:
2172 | resolution: {integrity: sha512-2lv/66T7e5yNyhAAC4NaKe5nVavzuGJQVVtRYLyQ2OI8tsJ61PMLlelehb0wi2Hx6+hT/OJUWZcw8MjlSRnxvw==}
2173 | engines: {node: '>=14'}
2174 | dependencies:
2175 | punycode: 2.3.0
2176 | dev: true
2177 |
2178 | /tslib/1.14.1:
2179 | resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==}
2180 | dev: true
2181 |
2182 | /tslib/2.5.0:
2183 | resolution: {integrity: sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==}
2184 | dev: true
2185 |
2186 | /tsutils/3.21.0_typescript@4.9.5:
2187 | resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==}
2188 | engines: {node: '>= 6'}
2189 | peerDependencies:
2190 | typescript: '>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta'
2191 | dependencies:
2192 | tslib: 1.14.1
2193 | typescript: 4.9.5
2194 | dev: true
2195 |
2196 | /type-check/0.3.2:
2197 | resolution: {integrity: sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==}
2198 | engines: {node: '>= 0.8.0'}
2199 | dependencies:
2200 | prelude-ls: 1.1.2
2201 | dev: true
2202 |
2203 | /type-check/0.4.0:
2204 | resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==}
2205 | engines: {node: '>= 0.8.0'}
2206 | dependencies:
2207 | prelude-ls: 1.2.1
2208 | dev: true
2209 |
2210 | /type-detect/4.0.8:
2211 | resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==}
2212 | engines: {node: '>=4'}
2213 | dev: true
2214 |
2215 | /type-fest/0.20.2:
2216 | resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==}
2217 | engines: {node: '>=10'}
2218 | dev: true
2219 |
2220 | /typescript/4.9.5:
2221 | resolution: {integrity: sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==}
2222 | engines: {node: '>=4.2.0'}
2223 | hasBin: true
2224 | dev: true
2225 |
2226 | /undici/5.21.0:
2227 | resolution: {integrity: sha512-HOjK8l6a57b2ZGXOcUsI5NLfoTrfmbOl90ixJDl0AEFG4wgHNDQxtZy15/ZQp7HhjkpaGlp/eneMgtsu1dIlUA==}
2228 | engines: {node: '>=12.18'}
2229 | dependencies:
2230 | busboy: 1.6.0
2231 | dev: true
2232 |
2233 | /unist-util-stringify-position/2.0.3:
2234 | resolution: {integrity: sha512-3faScn5I+hy9VleOq/qNbAd6pAx7iH5jYBMS9I1HgQVijz/4mv5Bvw5iw1sC/90CODiKo81G/ps8AJrISn687g==}
2235 | dependencies:
2236 | '@types/unist': 2.0.6
2237 | dev: true
2238 |
2239 | /universalify/0.2.0:
2240 | resolution: {integrity: sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==}
2241 | engines: {node: '>= 4.0.0'}
2242 | dev: true
2243 |
2244 | /uri-js/4.4.1:
2245 | resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==}
2246 | dependencies:
2247 | punycode: 2.3.0
2248 | dev: true
2249 |
2250 | /url-parse/1.5.10:
2251 | resolution: {integrity: sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==}
2252 | dependencies:
2253 | querystringify: 2.2.0
2254 | requires-port: 1.0.0
2255 | dev: true
2256 |
2257 | /vfile-message/2.0.4:
2258 | resolution: {integrity: sha512-DjssxRGkMvifUOJre00juHoP9DPWuzjxKuMDrhNbk2TdaYYBNMStsNhEOt3idrtI12VQYM/1+iM0KOzXi4pxwQ==}
2259 | dependencies:
2260 | '@types/unist': 2.0.6
2261 | unist-util-stringify-position: 2.0.3
2262 | dev: true
2263 |
2264 | /vite/4.2.1:
2265 | resolution: {integrity: sha512-7MKhqdy0ISo4wnvwtqZkjke6XN4taqQ2TBaTccLIpOKv7Vp2h4Y+NpmWCnGDeSvvn45KxvWgGyb0MkHvY1vgbg==}
2266 | engines: {node: ^14.18.0 || >=16.0.0}
2267 | hasBin: true
2268 | peerDependencies:
2269 | '@types/node': '>= 14'
2270 | less: '*'
2271 | sass: '*'
2272 | stylus: '*'
2273 | sugarss: '*'
2274 | terser: ^5.4.0
2275 | peerDependenciesMeta:
2276 | '@types/node':
2277 | optional: true
2278 | less:
2279 | optional: true
2280 | sass:
2281 | optional: true
2282 | stylus:
2283 | optional: true
2284 | sugarss:
2285 | optional: true
2286 | terser:
2287 | optional: true
2288 | dependencies:
2289 | esbuild: 0.17.13
2290 | postcss: 8.4.21
2291 | resolve: 1.22.1
2292 | rollup: 3.20.2
2293 | optionalDependencies:
2294 | fsevents: 2.3.2
2295 | dev: true
2296 |
2297 | /vite/4.2.1_@types+node@18.15.9:
2298 | resolution: {integrity: sha512-7MKhqdy0ISo4wnvwtqZkjke6XN4taqQ2TBaTccLIpOKv7Vp2h4Y+NpmWCnGDeSvvn45KxvWgGyb0MkHvY1vgbg==}
2299 | engines: {node: ^14.18.0 || >=16.0.0}
2300 | hasBin: true
2301 | peerDependencies:
2302 | '@types/node': '>= 14'
2303 | less: '*'
2304 | sass: '*'
2305 | stylus: '*'
2306 | sugarss: '*'
2307 | terser: ^5.4.0
2308 | peerDependenciesMeta:
2309 | '@types/node':
2310 | optional: true
2311 | less:
2312 | optional: true
2313 | sass:
2314 | optional: true
2315 | stylus:
2316 | optional: true
2317 | sugarss:
2318 | optional: true
2319 | terser:
2320 | optional: true
2321 | dependencies:
2322 | '@types/node': 18.15.9
2323 | esbuild: 0.17.13
2324 | postcss: 8.4.21
2325 | resolve: 1.22.1
2326 | rollup: 3.20.2
2327 | optionalDependencies:
2328 | fsevents: 2.3.2
2329 | dev: true
2330 |
2331 | /vitefu/0.2.4_vite@4.2.1:
2332 | resolution: {integrity: sha512-fanAXjSaf9xXtOOeno8wZXIhgia+CZury481LsDaV++lSvcU2R9Ch2bPh3PYFyoHW+w9LqAeYRISVQjUIew14g==}
2333 | peerDependencies:
2334 | vite: ^3.0.0 || ^4.0.0
2335 | peerDependenciesMeta:
2336 | vite:
2337 | optional: true
2338 | dependencies:
2339 | vite: 4.2.1
2340 | dev: true
2341 |
2342 | /vitest/0.25.8_jsdom@21.1.1:
2343 | resolution: {integrity: sha512-X75TApG2wZTJn299E/TIYevr4E9/nBo1sUtZzn0Ci5oK8qnpZAZyhwg0qCeMSakGIWtc6oRwcQFyFfW14aOFWg==}
2344 | engines: {node: '>=v14.16.0'}
2345 | hasBin: true
2346 | peerDependencies:
2347 | '@edge-runtime/vm': '*'
2348 | '@vitest/browser': '*'
2349 | '@vitest/ui': '*'
2350 | happy-dom: '*'
2351 | jsdom: '*'
2352 | peerDependenciesMeta:
2353 | '@edge-runtime/vm':
2354 | optional: true
2355 | '@vitest/browser':
2356 | optional: true
2357 | '@vitest/ui':
2358 | optional: true
2359 | happy-dom:
2360 | optional: true
2361 | jsdom:
2362 | optional: true
2363 | dependencies:
2364 | '@types/chai': 4.3.4
2365 | '@types/chai-subset': 1.3.3
2366 | '@types/node': 18.15.9
2367 | acorn: 8.8.2
2368 | acorn-walk: 8.2.0
2369 | chai: 4.3.7
2370 | debug: 4.3.4
2371 | jsdom: 21.1.1
2372 | local-pkg: 0.4.3
2373 | source-map: 0.6.1
2374 | strip-literal: 1.0.1
2375 | tinybench: 2.4.0
2376 | tinypool: 0.3.1
2377 | tinyspy: 1.1.1
2378 | vite: 4.2.1_@types+node@18.15.9
2379 | transitivePeerDependencies:
2380 | - less
2381 | - sass
2382 | - stylus
2383 | - sugarss
2384 | - supports-color
2385 | - terser
2386 | dev: true
2387 |
2388 | /w3c-xmlserializer/4.0.0:
2389 | resolution: {integrity: sha512-d+BFHzbiCx6zGfz0HyQ6Rg69w9k19nviJspaj4yNscGjrHu94sVP+aRm75yEbCh+r2/yR+7q6hux9LVtbuTGBw==}
2390 | engines: {node: '>=14'}
2391 | dependencies:
2392 | xml-name-validator: 4.0.0
2393 | dev: true
2394 |
2395 | /webidl-conversions/7.0.0:
2396 | resolution: {integrity: sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==}
2397 | engines: {node: '>=12'}
2398 | dev: true
2399 |
2400 | /whatwg-encoding/2.0.0:
2401 | resolution: {integrity: sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==}
2402 | engines: {node: '>=12'}
2403 | dependencies:
2404 | iconv-lite: 0.6.3
2405 | dev: true
2406 |
2407 | /whatwg-mimetype/3.0.0:
2408 | resolution: {integrity: sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==}
2409 | engines: {node: '>=12'}
2410 | dev: true
2411 |
2412 | /whatwg-url/12.0.1:
2413 | resolution: {integrity: sha512-Ed/LrqB8EPlGxjS+TrsXcpUond1mhccS3pchLhzSgPCnTimUCKj3IZE75pAs5m6heB2U2TMerKFUXheyHY+VDQ==}
2414 | engines: {node: '>=14'}
2415 | dependencies:
2416 | tr46: 4.1.1
2417 | webidl-conversions: 7.0.0
2418 | dev: true
2419 |
2420 | /which/2.0.2:
2421 | resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==}
2422 | engines: {node: '>= 8'}
2423 | hasBin: true
2424 | dependencies:
2425 | isexe: 2.0.0
2426 | dev: true
2427 |
2428 | /word-wrap/1.2.3:
2429 | resolution: {integrity: sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==}
2430 | engines: {node: '>=0.10.0'}
2431 | dev: true
2432 |
2433 | /wrappy/1.0.2:
2434 | resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==}
2435 | dev: true
2436 |
2437 | /ws/8.13.0:
2438 | resolution: {integrity: sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA==}
2439 | engines: {node: '>=10.0.0'}
2440 | peerDependencies:
2441 | bufferutil: ^4.0.1
2442 | utf-8-validate: '>=5.0.2'
2443 | peerDependenciesMeta:
2444 | bufferutil:
2445 | optional: true
2446 | utf-8-validate:
2447 | optional: true
2448 | dev: true
2449 |
2450 | /xml-name-validator/4.0.0:
2451 | resolution: {integrity: sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==}
2452 | engines: {node: '>=12'}
2453 | dev: true
2454 |
2455 | /xmlchars/2.2.0:
2456 | resolution: {integrity: sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==}
2457 | dev: true
2458 |
2459 | /yallist/4.0.0:
2460 | resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==}
2461 | dev: true
2462 |
2463 | /yocto-queue/0.1.0:
2464 | resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==}
2465 | engines: {node: '>=10'}
2466 | dev: true
2467 |
--------------------------------------------------------------------------------
/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 |
8 |
9 | %sveltekit.head%
10 |
11 |
12 | %sveltekit.body%
13 |
14 |
15 |
--------------------------------------------------------------------------------
/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/internal/Toggle.svelte:
--------------------------------------------------------------------------------
1 |
21 |
22 |
23 | {offLabel}
24 |
30 | {onLabel}
31 |
32 |
33 |
85 |
--------------------------------------------------------------------------------
/src/lib/ContextMenu.svelte:
--------------------------------------------------------------------------------
1 |
53 |
54 | {
58 | setTimeout(() => open.set(false), 300);
59 | }}
60 | />
61 |
62 | {#if $open}
63 |
68 |
69 | {#each $contextMenuSchema.nodes as item}
70 | {#if item.node_type == 'action'}
71 | {@const cb = item.callback}
72 |
73 | callbackWrapper(cb, open)}>{item.node_content}
74 |
75 | {:else if item.node_type == 'parent'}
76 |
77 | {/if}
78 | {/each}
79 | {#if renderDefaults}
80 |
81 | {#each $browserSchema.nodes as item}
82 | {#if item.node_type == 'action'}
83 | {@const cb = item.callback}
84 |
85 | callbackWrapper(cb, open)}>{item.node_content}
86 |
87 | {:else if item.node_type == 'parent'}
88 |
89 | {/if}
90 | {/each}
91 | {/if}
92 |
93 |
94 | {/if}
95 |
96 |
147 |
--------------------------------------------------------------------------------
/src/lib/ContextMenuParentNode.svelte:
--------------------------------------------------------------------------------
1 |
14 |
15 | ($open = true)}
19 | on:mouseleave={() => ($open = false)}
20 | >
21 | {item.node_content}
22 | {#if $open}
23 |
28 | {#each item.children as child}
29 |
30 | {#if child.node_type == 'action'}
31 | {@const cb = child.callback}
32 | callbackWrapper(cb, open)}>{child.node_content}
33 | {/if}
34 |
35 | {/each}
36 |
37 | {/if}
38 |
39 |
40 |
84 |
--------------------------------------------------------------------------------
/src/lib/ContextMenuSchema.ts:
--------------------------------------------------------------------------------
1 | import { writable, readable } from 'svelte/store';
2 | import type { ContextMenuSchema } from './types';
3 | import { pageBack, pageReload, pagePrint } from './utils';
4 |
5 | const defaultSchema: ContextMenuSchema = {
6 | nodes: [
7 | {
8 | node_type: 'parent',
9 | node_content: 'A Parent Node',
10 | node_is_open: false,
11 | children: [
12 | {
13 | node_type: 'action',
14 | node_content: 'Send Message to the Console',
15 | callback: () => console.log('Hello from the Context Menu!')
16 | }
17 | ]
18 | },
19 | {
20 | node_type: 'action',
21 | node_content: 'Fire an Alert!',
22 | callback: () => alert('Clicked the Custom Context Menu!')
23 | }
24 | ]
25 | };
26 |
27 | /*
28 | default browser actions
29 | - [x] back
30 | - [x] reload
31 | - [x] print
32 | - [ ] save as
33 | - [ ] view source
34 | - [wont do] inspect
35 | */
36 | const defaultBrowserSchema: ContextMenuSchema = {
37 | nodes: [
38 | {
39 | node_type: 'parent',
40 | node_content: 'Browser Actions',
41 | node_is_open: false,
42 | children: [
43 | {
44 | node_type: 'action',
45 | node_content: 'Back',
46 | callback: pageBack
47 | },
48 | {
49 | node_type: 'action',
50 | node_content: 'Reload',
51 | callback: pageReload
52 | },
53 | {
54 | node_type: 'action',
55 | node_content: 'Print',
56 | callback: pagePrint
57 | }
58 | /*{
59 | node_type: "action",
60 | node_content: "Save",
61 | callback: pageSave,
62 | },*/
63 | ]
64 | }
65 | ]
66 | };
67 |
68 | export const contextMenuSchema = writable(defaultSchema);
69 | export const browserSchema = readable(defaultBrowserSchema);
70 |
--------------------------------------------------------------------------------
/src/lib/index.js:
--------------------------------------------------------------------------------
1 | // components
2 | export { default as ContextMenu } from './ContextMenu.svelte';
3 |
4 | // stores
5 | export { contextMenuSchema } from './ContextMenuSchema';
6 |
--------------------------------------------------------------------------------
/src/lib/types.ts:
--------------------------------------------------------------------------------
1 | import type { Writable } from 'svelte/store';
2 |
3 | export type ContextMenuSchema = {
4 | container?: HTMLElement;
5 | nodes: ContextMenuSchemaNode[];
6 | };
7 |
8 | export type ContextMenuSchemaNode = ContextMenuSchemaParentNode | ContextMenuSchemaActionNode;
9 |
10 | export type ContextMenuSchemaParentNode = {
11 | node_type: 'parent';
12 | node_content: string;
13 | node_is_open: boolean;
14 | children: ContextMenuSchemaActionNode[];
15 | };
16 |
17 | export type ContextMenuSchemaActionNode = {
18 | node_type: 'action';
19 | node_content: string;
20 | callback: (openState?: Writable) => void;
21 | };
22 |
23 | // internal
24 | export type CalculateCoordsFromChildArg = {
25 | eventX: number;
26 | eventY: number;
27 | childX: number;
28 | childY: number;
29 | container: HTMLElement;
30 | };
31 |
--------------------------------------------------------------------------------
/src/lib/utils.ts:
--------------------------------------------------------------------------------
1 | import type { Writable } from 'svelte/store';
2 | import type { CalculateCoordsFromChildArg } from './types';
3 |
4 | /*
5 | * @name callbackWrapper
6 | * @description calls the given callback, passing the openState store as an argument */
7 | export function callbackWrapper(
8 | cb: (openState: Writable) => void,
9 | openState: Writable
10 | ) {
11 | cb(openState);
12 | }
13 |
14 | /**
15 | * @name pageBack
16 | * @description A generic wrapper around history.back() with error handling */
17 | export function pageBack() {
18 | if (!history) throw new Error('svelte-right-click(pageBack): History Object not found.');
19 | history.back();
20 | }
21 |
22 | /**
23 | * @name pageReload
24 | * @description A generic wrapper around location.reload() with error handling */
25 | export function pageReload() {
26 | if (!location) throw new Error('svelte-right-click(pageReload): Location Object not found.');
27 | location.reload();
28 | }
29 |
30 | /**
31 | * @name pagePrint
32 | * @description A generic wrapper around window.print() with error handling */
33 | export function pagePrint(state: Writable) {
34 | window.addEventListener('beforeprint', () => state.set(false));
35 | if (!window || !window.print)
36 | throw new Error('svelte-right-click(pagePrint): window.print Method not found.');
37 | window.print();
38 | }
39 |
40 | /**
41 | * @name pageSave
42 | * @description A progressively enhanced pageSave function */
43 | /*export async function pageSave() {
44 | //await window.showSaveFilePicker()
45 | }*/
46 |
47 | /**
48 | * @name calculateCoordsFromChild
49 | * @description re-calculate offsetX and offsetY based on the given container, not the target
50 | * @param eventX {number} - offsetX value from a mouse event
51 | * @param eventY {number} - offsetY value from a mouse event
52 | * @param childX {number} - child elements X position value
53 | * @param childY {number} - child elements Y position value
54 | * @param container {HTMLElement} - Container element
55 | */
56 | export function calculateCoordsFromChild({
57 | eventX,
58 | eventY,
59 | childX,
60 | childY,
61 | container
62 | }: CalculateCoordsFromChildArg) {
63 | const { left, top } = container.getBoundingClientRect();
64 | const diffX = childX - left;
65 | const diffY = childY - top;
66 | return {
67 | x: eventX + diffX,
68 | y: eventY + diffY
69 | };
70 | }
71 |
--------------------------------------------------------------------------------
/src/routes/+layout.svelte:
--------------------------------------------------------------------------------
1 |
14 |
15 |
16 |
17 |
22 |
23 |
68 |
--------------------------------------------------------------------------------
/src/routes/+page.svelte:
--------------------------------------------------------------------------------
1 |
11 |
12 |
13 |
14 |
15 |
16 |
17 | Right Click here!
18 |
19 |
20 |
21 |
22 |
47 |
--------------------------------------------------------------------------------
/src/routes/Hero.svelte:
--------------------------------------------------------------------------------
1 |
2 | a custom context menu for your Svelte application
3 | Read the docs
4 |
5 |
6 |
22 |
--------------------------------------------------------------------------------
/src/routes/Install.svelte:
--------------------------------------------------------------------------------
1 |
19 |
20 |
21 |
22 | {selection.cmd}
23 |
24 |
25 |
26 |
27 | {#each managers as m}
28 |
29 | {m.name}
30 |
31 | {/each}
32 |
33 |
34 |
35 |
36 |
37 |
52 |
53 |
54 |
55 |
94 |
--------------------------------------------------------------------------------
/src/routes/docs/+layout.svelte:
--------------------------------------------------------------------------------
1 |
10 |
11 |
31 |
32 |
59 |
--------------------------------------------------------------------------------
/src/routes/docs/basic-usage/+page.svelte:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/src/routes/docs/basic-usage/PageContent.svelte.md:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
7 | ## Basic Usage
8 |
9 | {#if $lang === "TS"}
10 |
11 | ```svelte
12 |
13 |
39 | ```
40 |
41 | {:else}
42 |
43 | ```svelte
44 |
45 |
70 | ```
71 |
72 | {/if}
73 |
74 |
75 |
--------------------------------------------------------------------------------
/src/routes/docs/browser-builtins/+page.svelte:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/src/routes/docs/browser-builtins/PageContent.svelte.md:
--------------------------------------------------------------------------------
1 | ## Browser Built-ins
2 |
3 | svelte-right-click provides access to some of the standard functionality you find in the browsers default context. Simply pass a prop to have them appended to the context menu after your schema is rendered.
4 |
5 | ```svelte
6 |
7 | ```
8 |
--------------------------------------------------------------------------------
/src/routes/docs/getting-started/+page.svelte:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/src/routes/docs/getting-started/PageContent.svelte.md:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
7 | ## Getting Started
8 |
9 | To get started with svelte-right-click, first install the package in your project.
10 |
11 | ```shell
12 | npm install --save-dev svelte-right-click
13 | # pnpm add svelte-right-click
14 | # yarn add svelte-right-click
15 | ```
16 |
17 | Initialize the component, create a basic schema, and pass the schema to the `contextMenuSchema` store.
18 |
19 | {#if $lang === "TS"}
20 |
21 | ```svelte
22 |
38 |
39 |
40 | ```
41 |
42 | {:else}
43 |
44 | ```svelte
45 |
60 |
61 |
62 | ```
63 |
64 | {/if}
65 |
66 |
67 |
--------------------------------------------------------------------------------
/src/routes/docs/install/+page.svelte:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/src/routes/docs/install/PageContent.svelte.md:
--------------------------------------------------------------------------------
1 |
2 |
3 | ## Installation
4 |
5 | Install with your favorite package manager
6 |
7 | ```sh
8 | npm install --save-dev svelte-right-click
9 | # pnpm add svelte-right-click
10 | # yarn add svelte-right-click
11 | ```
12 |
13 |
14 |
--------------------------------------------------------------------------------
/src/routes/docs/lang.ts:
--------------------------------------------------------------------------------
1 | import { writable } from 'svelte/store';
2 | import type { Writable } from 'svelte/store';
3 |
4 | export const lang: Writable<'JS' | 'TS'> = writable('JS');
5 |
--------------------------------------------------------------------------------
/src/routes/docs/philosophy/+page.svelte:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/src/routes/docs/philosophy/PageContent.svelte.md:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
7 | ## Philosophy
8 |
9 | Although there are existing libaries in the Svelte ecosystem for custom context menus, their mental model often doesn't make sense to me. That's why I'm building svelte-right-click. svelte-right-click is designed to exist at the very top level of your component tree, with it's state being managed by a Svelte store. This design pattern limits the amount of code needed to achieve this functionality.
10 |
11 | Due to this design philosophy, it's recommended to place the ` ` component at the root of your application (whether that is a your root +layout.svelte in SvelteKit, or in the App.svelte root of an SPA). From there, simply update or set a new schema into the provided store, and the context menu will update accordingly.
12 |
13 | If this philosophy doesn't jive with how you're building your app, and you want something more declarative, I recommend checking out Vincent La's library [svelte-contextmenu](https://github.com/vincentlaucsb/svelte-contextmenu).
14 |
15 |
16 |
--------------------------------------------------------------------------------
/src/routes/docs/props/+page.svelte:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/src/routes/docs/props/PageContent.svelte.md:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
7 | ## Props
8 |
9 | svelte-right-click purposefully has limited props, but there are a few for global configuration.
10 |
11 | | Name | Description | Type | Default |
12 | | -------------- | --------------------------------------------------------------------- | ------------------- | ------- |
13 | | open | Toggle the context menus open state from the parent componenet | `Writable` | false |
14 | | renderDefaults | Render the included browser default functions inside the context menu | boolean | true |
15 |
16 |
17 |
--------------------------------------------------------------------------------
/src/routes/docs/schemas/+page.svelte:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/src/routes/docs/schemas/PageContent.svelte.md:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
7 | ## Schemas
8 |
9 | svelte-right-click is driven by a schema that defines the nodes to render inside a context menu including their text content, callback functions to run on click, and any child nodes.
10 |
11 | ```typescript
12 | type ContextMenuSchema = {
13 | container?: HTMLElement;
14 | nodes: ContextMenuSchemaNode[];
15 | };
16 | ```
17 |
18 | ### Container
19 |
20 | `container` is a an optional field in a schema, that "contains" the context menu within a given element, rather than globally on the page. Simply bind the element you want to enable ContextMenu within, then use the ref in your schema.
21 |
22 | {#if $lang == "TS"}
23 |
24 | ```svelte
25 |
38 |
39 |
40 |
41 |
42 | ```
43 |
44 | {:else}
45 |
46 | ```svelte
47 |
59 |
60 |
61 |
62 |
63 | ```
64 |
65 | {/if}
66 |
67 | ### Nodes
68 |
69 | `nodes` is an array field in a schema that represents the structure of the context menu. This arrays items can be one of two types: `ContextMenuParentNode` (parent node) & `ContextMenuSchemaActionNode` (action node).
70 |
71 | #### Parent Nodes
72 |
73 | Parent nodes define a sub tree of the context menu.
74 |
75 | ```typescript
76 | type ContextMenuSchemaParentNode = {
77 | node_type: 'parent';
78 | node_content: string; // text to display inside the node
79 | node_is_open: boolean; // open/close state
80 | children: ContextMenuSchemaActionNode[];
81 | };
82 | ```
83 |
84 | > Currently, parent nodes can not contain other parent nodes. This is to ensure the best UX for end users.
85 |
86 | #### Action Nodes
87 |
88 | Action nodes run a callback function provided in the schema. The callback recieves a Svelte store as an argument to allow for updating the context menus open state within the callback function.
89 |
90 | ```typescript
91 | type ContextMenuSchemaActionNode = {
92 | node_type: 'action';
93 | node_content: string;
94 | callback: (openState?: Writable) => void;
95 | };
96 | ```
97 |
98 |
99 |
--------------------------------------------------------------------------------
/src/routes/docs/style/+page.svelte:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/src/routes/docs/style/PageContent.svelte.md:
--------------------------------------------------------------------------------
1 |
2 |
3 | ## Styling
4 |
5 | Override the context menu's default styles using Svelte Style Props. Available props include...
6 |
7 | | Name | Description | Default |
8 | | ----------------------- | --------------------------------------- | ---------------------- |
9 | | --background-color | Parent elements background color | #FFFFFF |
10 | | --border | Parent elements border | 1px solid lightgrey |
11 | | --border-radius | Parent elements border radius | 5px |
12 | | --box-shadow | Parent elements box shadow | 0px 0px 15px #163a6726 |
13 | | --color | Font color for all elements | #000000 |
14 | | --font-family | Font family for all elements | sans-serif |
15 | | --font-size | Font size for all elements | 1rem |
16 | | --node-background-hover | Node elements background color on hover | lightgray |
17 | | --node-border-radius | Node elements border radius | 3px |
18 | | --node-padding | Node elements padding | 4px |
19 | | --padding | Parent elements padding | 5px |
20 |
21 |
22 |
--------------------------------------------------------------------------------
/static/base.css:
--------------------------------------------------------------------------------
1 | @import url('https://fonts.googleapis.com/css2?family=DM+Mono:ital,wght@0,300;0,400;0,500;1,300;1,400;1,500&display=swap');
2 |
3 | * {
4 | margin: 0;
5 | padding: 0;
6 | box-sizing: border-box;
7 | }
8 |
9 | html {
10 | max-width: 100vw;
11 | font-family: 'DM Mono', monospace;
12 | }
13 |
14 | body {
15 | max-width: 100vw;
16 | min-height: 100vh;
17 | overflow-x: hidden;
18 | font-size: 16px;
19 | background: var(--black);
20 | padding: 2.5rem;
21 | display: flex;
22 |
23 | --ochre: hsla(34, 79%, 42%, 1);
24 | --earth-yellow: hsla(34, 79%, 68%, 1);
25 | --seashell: hsla(12, 48%, 94%, 1);
26 | --jet: hsla(15, 3%, 26%, 1);
27 | --raisin-black: hsla(240, 9%, 13%, 1);
28 |
29 | --white: var(--seashell);
30 | --black: var(--raisin-black);
31 | --grey: var(--jet);
32 | --gray: var(--grey);
33 | --yellow: var(--ochre);
34 | --light-yellow: var(--earth-yellow);
35 |
36 | --blue: rgba(0, 95, 227, 1);
37 | --light-blue: #7d9dff;
38 |
39 | /* Dynamic Colors */
40 | --text-primary: var(--white);
41 | --text-secondary: var(--blue);
42 | }
43 |
44 | body > div {
45 | min-height: 100%;
46 | width: 100%;
47 | }
48 |
49 | h1,
50 | h2,
51 | h3,
52 | h4,
53 | h5,
54 | h6,
55 | p,
56 | span {
57 | color: var(--text-primary);
58 | }
59 |
60 | h1,
61 | h2,
62 | h3,
63 | h4,
64 | h5,
65 | h6 {
66 | margin-bottom: 20px;
67 | }
68 |
69 | p:not(blockquote p) {
70 | font-size: 1.1rem;
71 | margin-bottom: 15px;
72 | }
73 |
74 | blockquote {
75 | font-size: 1.2rem;
76 | border-left: 2px solid var(--yellow);
77 | padding-left: 15px;
78 | margin-bottom: 20px;
79 | }
80 |
81 | p code {
82 | background-color: var(--white);
83 | color: var(--black);
84 | padding: 3px;
85 | border-radius: 5px;
86 | white-space: nowrap;
87 | }
88 |
89 | pre,
90 | code {
91 | font-size: 13px;
92 | }
93 |
94 | :not(pre) > code[class*='language-'],
95 | pre[class*='language-'] {
96 | border-radius: 8px;
97 | }
98 |
99 | code span {
100 | color: unset;
101 | }
102 |
103 | .secondary {
104 | color: var(--text-secondary);
105 | }
106 |
107 | section {
108 | margin-bottom: 30px;
109 | }
110 |
111 | section > * {
112 | margin-bottom: 20px;
113 | }
114 |
115 | a:not(.button) {
116 | color: var(--light-yellow);
117 | }
118 |
119 | a:hover {
120 | text-decoration: underline;
121 | }
122 |
123 | a:visited:not(.button) {
124 | color: var(--light-yellow);
125 | }
126 |
127 | .button {
128 | background: var(--light-yellow);
129 | padding: 15px;
130 | border-radius: 8px;
131 | color: var(--black);
132 | text-decoration: none;
133 | }
134 |
135 | .button:hover {
136 | text-decoration: underline;
137 | }
138 |
139 | table {
140 | --table-border: 2px solid var(--light-yellow);
141 | border-collapse: collapse;
142 | margin-bottom: 1rem;
143 | color: var(--light-yellow);
144 | border: var(--table-border);
145 | }
146 |
147 | thead,
148 | tr {
149 | border-bottom: var(--table-border);
150 | }
151 |
152 | td,
153 | th {
154 | padding: 10px;
155 | border-right: var(--table-border);
156 | }
157 |
158 | th {
159 | font-size: 1.2rem;
160 | }
161 |
--------------------------------------------------------------------------------
/static/favicon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stordahl/svelte-right-click/948098c1965849a09375fa5f4ece4f99c73390c5/static/favicon.png
--------------------------------------------------------------------------------
/static/gruvbox.css:
--------------------------------------------------------------------------------
1 | /**
2 | * Gruvbox light theme
3 | *
4 | * Based on Gruvbox: https://github.com/morhetz/gruvbox
5 | * Adapted from PrismJS gruvbox-dark theme: https://github.com/schnerring/prism-themes/blob/master/themes/prism-gruvbox-dark.css
6 | *
7 | * @author Michael Schnerring (https://schnerring.net)
8 | * @version 1.0
9 | */
10 |
11 | code[class*='language-'],
12 | pre[class*='language-'] {
13 | color: #3c3836; /* fg1 / fg */
14 | font-family: Consolas, Monaco, 'Andale Mono', monospace;
15 | direction: ltr;
16 | text-align: left;
17 | white-space: pre;
18 | word-spacing: normal;
19 | word-break: normal;
20 | line-height: 1.5;
21 | font-size: 1em;
22 |
23 | -moz-tab-size: 4;
24 | -o-tab-size: 4;
25 | tab-size: 4;
26 |
27 | -webkit-hyphens: none;
28 | -moz-hyphens: none;
29 | -ms-hyphens: none;
30 | hyphens: none;
31 | }
32 |
33 | pre[class*='language-']::-moz-selection,
34 | pre[class*='language-'] ::-moz-selection,
35 | code[class*='language-']::-moz-selection,
36 | code[class*='language-'] ::-moz-selection {
37 | color: #282828; /* fg0 */
38 | background: #a89984; /* bg4 */
39 | }
40 |
41 | pre[class*='language-']::selection,
42 | pre[class*='language-'] ::selection,
43 | code[class*='language-']::selection,
44 | code[class*='language-'] ::selection {
45 | color: #282828; /* fg0 */
46 | background: #a89984; /* bg4 */
47 | }
48 |
49 | /* Code blocks */
50 | pre[class*='language-'] {
51 | padding: 1em;
52 | overflow: auto;
53 | }
54 |
55 | :not(pre) > code[class*='language-'],
56 | pre[class*='language-'] {
57 | background: #f9f5d7; /* bg0_h */
58 | }
59 |
60 | /* Inline code */
61 | :not(pre) > code[class*='language-'] {
62 | padding: 0.1em;
63 | border-radius: 0.3em;
64 | }
65 |
66 | .token.comment,
67 | .token.prolog,
68 | .token.cdata {
69 | color: #7c6f64; /* fg4 / gray1 */
70 | }
71 |
72 | .token.delimiter,
73 | .token.boolean,
74 | .token.keyword,
75 | .token.selector,
76 | .token.important,
77 | .token.atrule {
78 | color: #9d0006; /* red2 */
79 | }
80 |
81 | .token.operator,
82 | .token.punctuation,
83 | .token.attr-name {
84 | color: #7c6f64; /* fg4 / gray1 */
85 | }
86 |
87 | .token.tag,
88 | .token.tag .punctuation,
89 | .token.doctype,
90 | .token.builtin {
91 | color: #b57614; /* yellow2 */
92 | }
93 |
94 | .token.entity,
95 | .token.number,
96 | .token.symbol {
97 | color: #8f3f71; /* purple2 */
98 | }
99 |
100 | .token.property,
101 | .token.constant,
102 | .token.variable {
103 | color: #9d0006; /* red2 */
104 | }
105 |
106 | .token.string,
107 | .token.char {
108 | color: #797403; /* green2 */
109 | }
110 |
111 | .token.attr-value,
112 | .token.attr-value .punctuation {
113 | color: #7c6f64; /* fg4 / gray1 */
114 | }
115 |
116 | .token.url {
117 | color: #797403; /* green2 */
118 | text-decoration: underline;
119 | }
120 |
121 | .token.function {
122 | color: #b57614; /* yellow2 */
123 | }
124 |
125 | .token.regex {
126 | background: #797403; /* green2 */
127 | }
128 |
129 | .token.bold {
130 | font-weight: bold;
131 | }
132 |
133 | .token.italic {
134 | font-style: italic;
135 | }
136 |
137 | .token.inserted {
138 | background: #7c6f64; /* fg4 / gray1 */
139 | }
140 |
141 | .token.deleted {
142 | background: #9d0006; /* red2 */
143 | }
144 |
--------------------------------------------------------------------------------
/static/images/github.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/static/images/npm.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/svelte.config.js:
--------------------------------------------------------------------------------
1 | import { mdsvex } from 'mdsvex';
2 | import mdsvexConfig from './mdsvex.config.js';
3 | import adapter from '@sveltejs/adapter-auto';
4 | import { vitePreprocess } from '@sveltejs/kit/vite';
5 |
6 | /** @type {import('@sveltejs/kit').Config} */
7 | const config = {
8 | extensions: ['.svelte', ...mdsvexConfig.extensions],
9 |
10 | // Consult https://kit.svelte.dev/docs/integrations#preprocessors
11 | // for more information about preprocessors
12 | preprocess: [vitePreprocess(), mdsvex(mdsvexConfig)],
13 |
14 | kit: {
15 | // adapter-auto only supports some environments, see https://kit.svelte.dev/docs/adapter-auto for a list.
16 | // If your environment is not supported or you settled on a specific environment, switch out the adapter.
17 | // See https://kit.svelte.dev/docs/adapters for more information about adapters.
18 | adapter: adapter(),
19 | alias: {
20 | '$internal/*': 'src/internal/*'
21 | }
22 | }
23 | };
24 |
25 | export default config;
26 |
--------------------------------------------------------------------------------
/tests/e2e/docs.test.ts:
--------------------------------------------------------------------------------
1 | import { expect, test } from '@playwright/test';
2 |
3 | test('index page has expected h1', async ({ page }) => {
4 | await page.goto('/');
5 | await expect(page.getByRole('heading', { name: 'svelte-right-click' })).toBeVisible();
6 | });
7 |
--------------------------------------------------------------------------------
/tests/unit/utils.test.ts:
--------------------------------------------------------------------------------
1 | // @vitest-environment jsdom
2 | import { describe, it, expect } from 'vitest';
3 | import { calculateCoordsFromChild } from '../../src/lib/utils';
4 | import type { CalculateCoordsFromChildArg } from '../../src/lib/types';
5 |
6 | describe('calculateCoodsFromChild', () => {
7 | it('returns the correct coordinate values', () => {
8 | const el = global.document.createElement('div') as HTMLElement;
9 | el.style.width = '200px';
10 | el.style.height = '200px';
11 | el.style.left = '200px';
12 | el.style.top = '200px';
13 |
14 | const args: CalculateCoordsFromChildArg = {
15 | eventX: 100,
16 | eventY: 100,
17 | childX: 300,
18 | childY: 300,
19 | container: el
20 | };
21 |
22 | const res = calculateCoordsFromChild(args);
23 | expect(res).toMatchObject({ x: 400, y: 400 });
24 | });
25 | });
26 |
--------------------------------------------------------------------------------
/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 | "types": ["vitest/globals"]
13 | }
14 | // Path aliases are handled by https://kit.svelte.dev/docs/configuration#alias
15 | //
16 | // If you want to overwrite includes/excludes, make sure to copy over the relevant includes/excludes
17 | // from the referenced tsconfig.json - TypeScript does not merge them in
18 | }
19 |
--------------------------------------------------------------------------------
/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: ['tests/unit/*.{test,spec}.{js,ts}']
8 | }
9 | });
10 |
--------------------------------------------------------------------------------