├── .eslintignore
├── .husky
└── pre-commit
├── .gitignore
├── cypress.json
├── .vscode
└── settings.json
├── cypress
├── cypress.d.ts
├── fixtures
│ └── example.json
├── plugins
│ └── index.js
└── support
│ ├── index.js
│ └── commands.js
├── tsconfig.typings.json
├── index.html
├── src
├── server.ts
├── create-update-throttler.ts
├── bounds.ts
├── create-update-throttler.test.tsx
├── types.ts
├── create-global-observer.ts
├── create-global-observer.test.tsx
├── index.test.tsx
└── index.ts
├── .eslintrc.js
├── .github
├── ISSUE_TEMPLATE
│ ├── bug_report.md
│ └── feature_request.md
└── workflows
│ └── main.yml
├── tsconfig.json
├── vite.config.ts
├── LICENSE
├── CONTRIBUTING.MD
├── browser-tests
├── helper.ts
└── main.test.tsx
├── example
├── index.css
└── index.tsx
├── package.json
├── README.md
└── pnpm-lock.yaml
/.eslintignore:
--------------------------------------------------------------------------------
1 | node_modules
2 | cache
3 | build
4 | dist
5 | cypress
--------------------------------------------------------------------------------
/.husky/pre-commit:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | . "$(dirname "$0")/_/husky.sh"
3 |
4 | yarn precommit
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | *.log
2 | .DS_Store
3 | node_modules
4 | .cache
5 | dist
6 | cypress/videos
7 | coverage
--------------------------------------------------------------------------------
/cypress.json:
--------------------------------------------------------------------------------
1 | {
2 | "component": {
3 | "componentFolder": "browser-tests",
4 | "testFiles": "**/*.test.{ts,tsx}"
5 | }
6 | }
7 |
--------------------------------------------------------------------------------
/.vscode/settings.json:
--------------------------------------------------------------------------------
1 | {
2 | "editor.tabSize": 2,
3 | "editor.formatOnSave": true,
4 | "typescript.reportStyleChecksAsWarnings": false
5 | }
6 |
--------------------------------------------------------------------------------
/cypress/cypress.d.ts:
--------------------------------------------------------------------------------
1 | ///
2 |
3 | declare module "@cypress/mount-utils" {
4 | export const ROOT_ID: string;
5 | }
6 |
--------------------------------------------------------------------------------
/cypress/fixtures/example.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "Using fixtures to represent data",
3 | "email": "hello@cypress.io",
4 | "body": "Fixtures are a great way to mock data for responses to routes"
5 | }
6 |
--------------------------------------------------------------------------------
/tsconfig.typings.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "./tsconfig.json",
3 | "include": ["src"],
4 | "exclude": ["**/*.test.tsx", "**/*.test.ts"],
5 | "compilerOptions": {
6 | "declaration": true,
7 | "emitDeclarationOnly": true,
8 | "declarationDir": "./dist"
9 | }
10 | }
11 |
--------------------------------------------------------------------------------
/cypress/plugins/index.js:
--------------------------------------------------------------------------------
1 | const path = require("path");
2 | const { startDevServer } = require("@cypress/vite-dev-server");
3 |
4 | module.exports = (on, config) => {
5 | on("dev-server:start", options => {
6 | return startDevServer({
7 | options,
8 | viteConfig: {
9 | configFile: path.resolve(__dirname, "..", "..", "vite.config.ts")
10 | }
11 | });
12 | });
13 | };
14 |
--------------------------------------------------------------------------------
/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | solid-boundaries example
8 |
9 |
10 | You need to enable JavaScript to run this app.
11 |
12 |
13 |
14 |
15 |
16 |
--------------------------------------------------------------------------------
/src/server.ts:
--------------------------------------------------------------------------------
1 | import { createSignal } from "solid-js";
2 | import type { TrackBoundsConfig, TrackBoundsProps } from "./types";
3 | import type { Bounds, BoundsKeys } from "./bounds";
4 | export type { Bounds, TrackBoundsConfig, TrackBoundsProps, BoundsKeys };
5 |
6 | export function createBoundaryTracker(
7 | _config: TrackBoundsConfig = {}
8 | ): TrackBoundsProps {
9 | const [element, setElement] = createSignal(null);
10 | const [bounds] = createSignal(null);
11 |
12 | return {
13 | bounds,
14 | ref: setElement,
15 | element
16 | };
17 | }
18 |
--------------------------------------------------------------------------------
/.eslintrc.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | parser: "@typescript-eslint/parser",
3 | parserOptions: {
4 | ecmaVersion: 2020,
5 | sourceType: "module"
6 | },
7 | extends: [
8 | "prettier",
9 | "plugin:@typescript-eslint/recommended",
10 | "plugin:prettier/recommended"
11 | ],
12 | rules: {
13 | "@typescript-eslint/no-redeclare": "off",
14 | "@typescript-eslint/no-non-null-assertion": "off",
15 | "@typescript-eslint/no-unused-vars": "off",
16 | "@typescript-eslint/consistent-type-imports": "error",
17 | "@typescript-eslint/no-explicit-any": "error"
18 | },
19 | plugins: ["import"],
20 | overrides: [
21 |
22 | ]
23 | };
24 |
--------------------------------------------------------------------------------
/cypress/support/index.js:
--------------------------------------------------------------------------------
1 | // ***********************************************************
2 | // This example support/index.js is processed and
3 | // loaded automatically before your test files.
4 | //
5 | // This is a great place to put global configuration and
6 | // behavior that modifies Cypress.
7 | //
8 | // You can change the location of this file or turn off
9 | // automatically serving support files with the
10 | // 'supportFile' configuration option.
11 | //
12 | // You can read more here:
13 | // https://on.cypress.io/configuration
14 | // ***********************************************************
15 |
16 | // Import commands.js using ES2015 syntax:
17 | import './commands'
18 |
19 | // Alternatively you can use CommonJS syntax:
20 | // require('./commands')
21 |
--------------------------------------------------------------------------------
/src/create-update-throttler.ts:
--------------------------------------------------------------------------------
1 | import { onCleanup } from "solid-js";
2 |
3 | type Callback = () => void;
4 |
5 | /**
6 | * Utility that ensures that a task is not called more often
7 | * than once per frame.
8 | */
9 | export function createUpdateThrottler() {
10 | let cancelled = false,
11 | isUpdating = false,
12 | latestCallBack: Callback | null = null;
13 |
14 | const updater = async (callback: Callback) => {
15 | latestCallBack = callback;
16 | if (isUpdating || cancelled) {
17 | return;
18 | }
19 |
20 | isUpdating = true;
21 | await Promise.resolve();
22 |
23 | if (!cancelled) {
24 | isUpdating = false;
25 | latestCallBack();
26 | latestCallBack = null;
27 | }
28 | };
29 |
30 | onCleanup(() => (cancelled = true));
31 |
32 | return updater;
33 | }
34 |
--------------------------------------------------------------------------------
/.github/ISSUE_TEMPLATE/bug_report.md:
--------------------------------------------------------------------------------
1 | ---
2 | name: Bug report
3 | about: Create a report to help us improve
4 | title: "[BUG]"
5 | labels: bug
6 | assignees: ''
7 |
8 | ---
9 |
10 | **Describe the bug**
11 | A clear and concise description of what the bug is.
12 |
13 | **To Reproduce**
14 | Steps to reproduce the behavior:
15 | 1. Go to '...'
16 | 2. Click on '....'
17 | 3. Scroll down to '....'
18 | 4. See error
19 |
20 | **Expected behavior**
21 | A clear and concise description of what you expected to happen.
22 |
23 | **Screenshots**
24 | If applicable, add screenshots to help explain your problem.
25 |
26 | **Browser / OS (please complete the following information):**
27 | - OS: [e.g. windows]
28 | - Browser [e.g. chrome, safari]
29 | - Version [e.g. 22]
30 |
31 | **Additional context**
32 | Add any other context about the problem here.
33 |
--------------------------------------------------------------------------------
/.github/ISSUE_TEMPLATE/feature_request.md:
--------------------------------------------------------------------------------
1 | ---
2 | name: Feature request
3 | about: Suggest an idea for this project
4 | title: "[FEATURE]"
5 | labels: feature
6 | assignees: ""
7 | ---
8 |
9 | **Is your feature request related to a problem? Please describe.**
10 | A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
11 |
12 | **Describe the solution you'd like**
13 | A clear and concise description of what you want to happen.
14 |
15 | **Describe alternatives you've considered**
16 | A clear and concise description of any alternative solutions or features you've considered.
17 |
18 | **(Optional) Do you want to work on this feature?**
19 | Do you already have ideas / strategies how to solve the problem? Does it impact the API? In which way?
20 |
21 | **Additional context**
22 | Add any other context or screenshots about the feature request here.
23 |
--------------------------------------------------------------------------------
/src/bounds.ts:
--------------------------------------------------------------------------------
1 | export interface Bounds {
2 | top: number;
3 | left: number;
4 | bottom: number;
5 | right: number;
6 | width: number;
7 | height: number;
8 | }
9 |
10 | export type BoundsKeys = Array;
11 |
12 | export const allKeys = [
13 | "bottom",
14 | "height",
15 | "left",
16 | "right",
17 | "top",
18 | "width"
19 | ] as BoundsKeys;
20 |
21 | /**
22 | * Check if two bounds are equal.
23 | */
24 | export function equals(
25 | a: Bounds,
26 | b: Bounds | null,
27 | keys: BoundsKeys = allKeys
28 | ) {
29 | return b && keys.every(key => a[key] === b[key]);
30 | }
31 |
32 | /**
33 | * Creates bounds from an element.
34 | */
35 | export const boundsFromElement = (element: HTMLElement): Bounds => {
36 | const domRect = element.getBoundingClientRect();
37 | const bounds = Object.fromEntries(
38 | allKeys.map(key => [key, domRect[key]])
39 | ) as unknown as Bounds;
40 | return bounds;
41 | };
42 |
--------------------------------------------------------------------------------
/cypress/support/commands.js:
--------------------------------------------------------------------------------
1 | // ***********************************************
2 | // This example commands.js shows you how to
3 | // create various custom commands and overwrite
4 | // existing commands.
5 | //
6 | // For more comprehensive examples of custom
7 | // commands please read more here:
8 | // https://on.cypress.io/custom-commands
9 | // ***********************************************
10 | //
11 | //
12 | // -- This is a parent command --
13 | // Cypress.Commands.add('login', (email, password) => { ... })
14 | //
15 | //
16 | // -- This is a child command --
17 | // Cypress.Commands.add('drag', { prevSubject: 'element'}, (subject, options) => { ... })
18 | //
19 | //
20 | // -- This is a dual command --
21 | // Cypress.Commands.add('dismiss', { prevSubject: 'optional'}, (subject, options) => { ... })
22 | //
23 | //
24 | // -- This will overwrite an existing command --
25 | // Cypress.Commands.overwrite('visit', (originalFn, url, options) => { ... })
26 |
--------------------------------------------------------------------------------
/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "include": ["src", "types", "browser-tests", "cypress"],
3 | "compilerOptions": {
4 | "allowJs": false,
5 | "allowSyntheticDefaultImports": true,
6 | "alwaysStrict": true,
7 | "checkJs": false,
8 | "declaration": true,
9 | "stripInternal": true,
10 | "downlevelIteration": true,
11 | "forceConsistentCasingInFileNames": true,
12 | "importHelpers": true,
13 | "isolatedModules": true,
14 | "moduleResolution": "Node",
15 | "noUnusedParameters": true,
16 | "noUnusedLocals": true,
17 | "skipLibCheck": true,
18 | "strict": true,
19 | "esModuleInterop": true,
20 | "module": "esnext",
21 | "lib": ["dom", "esnext"],
22 | "types": ["cypress", "./cypress/cypress"],
23 | "sourceMap": true,
24 | // "rootDir": "./src",
25 | "noImplicitReturns": true,
26 | "noFallthroughCasesInSwitch": true,
27 | "jsx": "preserve",
28 | "jsxImportSource": "solid-js"
29 | }
30 | }
31 |
--------------------------------------------------------------------------------
/.github/workflows/main.yml:
--------------------------------------------------------------------------------
1 | name: CI
2 | on: [push, pull_request]
3 | jobs:
4 | build:
5 | runs-on: ubuntu-latest
6 | name: Lint, test, and build
7 |
8 | steps:
9 | - name: Checkout repo
10 | uses: actions/checkout@v2
11 |
12 | - name: Cache pnpm modules
13 | uses: actions/cache@v2
14 | with:
15 | path: ~/.pnpm-store
16 | key: ${{ runner.os }}-${{ hashFiles('**/pnpm-lock.yaml') }}
17 | restore-keys: |
18 | ${{ runner.os }}-
19 |
20 | - name: Install deps and build (with cache)
21 | uses: pnpm/action-setup@v2.1.0
22 | with:
23 | version: 6
24 | run_install: |
25 | args: [--frozen-lockfile]
26 |
27 | - name: Lint
28 | run: pnpm lint
29 |
30 | - name: Typecheck
31 | run: pnpm typecheck
32 |
33 | - name: Integration test
34 | run: pnpm test
35 |
36 | - name: Browser test
37 | run: pnpm test:browser:ci
38 |
39 | - name: Build
40 | run: pnpm build
41 |
--------------------------------------------------------------------------------
/vite.config.ts:
--------------------------------------------------------------------------------
1 | ///
2 |
3 | import { defineConfig } from "vite";
4 | import solidPlugin from "vite-plugin-solid";
5 | import path from "path";
6 |
7 | export default defineConfig({
8 | plugins: [solidPlugin()],
9 | build: {
10 | lib: {
11 | formats: ["cjs", "es"],
12 | entry: path.resolve(__dirname, "src/index.ts")
13 | },
14 | rollupOptions: {
15 | treeshake: true,
16 | external: ["solid-js"],
17 | input: {
18 | index: path.resolve(__dirname, "src/index.ts"),
19 | server: path.resolve(__dirname, "src/server.ts")
20 | },
21 | output: {
22 | entryFileNames: () => "[name].[format].js"
23 | }
24 | }
25 | },
26 | test: {
27 | dir: "./src",
28 | environment: "jsdom",
29 | globals: false,
30 | transformMode: {
31 | web: [/\.tsx?$/]
32 | },
33 | deps: {
34 | inline: [/solid-js/]
35 | },
36 | threads: true,
37 | isolate: true
38 | },
39 |
40 | resolve: {
41 | conditions: ["development", "browser"]
42 | }
43 | });
44 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2022 Erik Verweij
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.
--------------------------------------------------------------------------------
/src/create-update-throttler.test.tsx:
--------------------------------------------------------------------------------
1 | import { createRoot } from "solid-js";
2 | import { describe, it, fn, expect } from "vitest";
3 | import { createUpdateThrottler } from "./create-update-throttler";
4 |
5 | const nextTick = () => new Promise(resolve => setTimeout(resolve, 1000 / 60));
6 |
7 | describe("createUpdateThrottler", () => {
8 | it("ensures that a task is not performed more than once per frame and only the last task remains", () =>
9 | createRoot(async dispose => {
10 | const updater = createUpdateThrottler();
11 |
12 | let returnValue = "foo";
13 | const mock = fn().mockImplementation(() => returnValue);
14 | updater(mock);
15 | updater(mock);
16 | returnValue = "bar";
17 | updater(mock);
18 |
19 | await nextTick();
20 |
21 | expect(mock).toHaveBeenCalledTimes(1);
22 | expect(mock).toHaveLastReturnedWith("bar");
23 |
24 | dispose();
25 | }));
26 |
27 | it("ensures that a task is not performed after cleanup", () =>
28 | createRoot(async dispose => {
29 | const updater = createUpdateThrottler();
30 |
31 | const mock = fn();
32 | updater(mock);
33 |
34 | dispose();
35 |
36 | await nextTick();
37 |
38 | expect(mock).not.toHaveBeenCalled();
39 | }));
40 | });
41 |
--------------------------------------------------------------------------------
/CONTRIBUTING.MD:
--------------------------------------------------------------------------------
1 | # Contributing
2 |
3 | ## General
4 |
5 | ### Bugs
6 |
7 | Open issues can be found on the GitHub [issues](https://github.com/everweij/solid-boundaries/labels/bug) page with a "Bug" label.
8 |
9 | These are a great place to start contributing to the repo!
10 |
11 | Once you start work on a bug, post your intent on the issue itself. This will prevent more than one person working on it at once.
12 |
13 | If the bug you want to work on doesn't have a related issue, open one, and attach the "Bug" label.
14 |
15 | ### New features
16 |
17 | Before adding any features, open a [Feature Proposal](https://github.com/everweij/solid-boundaries/issues/new/choose).
18 |
19 | This will let us talk through your proposal before you spend time on it.
20 |
21 | `solid-boundaries` is a low-level building block which also makes it flexible. Keep this in mind when proposing a new feature -> does this benefit all of us, or is the feature a more specific use-case?
22 |
23 | ### Documentation
24 |
25 | If a PR introduces or changes API, please make sure to update the relevant docs (readme) or examples (storybook) as well.
26 |
27 | ## Development
28 |
29 | ### Getting started
30 |
31 | In order to get started with your PR:
32 |
33 | 1. Fork the solid-boundaries repo
34 | 2. Clone york fork locally
35 | 3. run `pnpm install` (make sure you have `pnpm` installed on your machine)
36 | 4. See the scripts-section of the `package.json` of the project for a list of available commands
37 | 5. Add your code and supporting tests
38 | 6. If this is a feature that requires doc changes, make as necessary.
39 | 7. You're ready!
40 |
--------------------------------------------------------------------------------
/src/types.ts:
--------------------------------------------------------------------------------
1 | import type { Accessor, Setter } from "solid-js";
2 | import type { BoundsKeys, Bounds } from "./bounds";
3 |
4 | export type TrackBoundsProps = {
5 | /**
6 | * Setter which should be passed to the `ref` prop of the
7 | * element you want to track.
8 | */
9 | ref: Setter;
10 | /**
11 | * The bounds of the element you are tracking.
12 | * Note: returns `null` if the element is not connected
13 | * to the DOM.
14 | */
15 | bounds: Accessor;
16 | /**
17 | * Provides a reference to the element.
18 | */
19 | element: Accessor;
20 | };
21 |
22 | export interface TrackBoundsConfig {
23 | /**
24 | * Whether to actively track the element's position.
25 | * @default () => true
26 | */
27 | enabled?: Accessor;
28 | /**
29 | * Whether to actively track mutations in the DOM.
30 | * @default () => true
31 | */
32 | trackMutations?: boolean;
33 | /**
34 | * Whether to actively track resizes of the element you're
35 | * tracking or of the entire window.
36 | * @default () => true
37 | */
38 | trackResize?: boolean;
39 | /**
40 | * Whether to actively track scrolling.
41 | * @default () => true
42 | */
43 | trackScroll?: boolean;
44 | /**
45 | * Defines specific keys of the boundary to track.
46 | * By default all keys are tracked.
47 | * @default ["top", "right", "bottom", "left", "width", "height"]
48 | */
49 | keys?: BoundsKeys;
50 | /**
51 | * Whether not to show warning messages in the console
52 | */
53 | suppressWarnings?: boolean;
54 | }
55 |
--------------------------------------------------------------------------------
/src/create-global-observer.ts:
--------------------------------------------------------------------------------
1 | import { batch } from "solid-js";
2 |
3 | type Callback = (payload: Payload) => void;
4 | export type UnregisterFn = () => void;
5 | export type RegisterFn = (callback: Callback) => UnregisterFn;
6 |
7 | /**
8 | * Creates a global observer which forwards events to one or
9 | * multiple listeners. If there are no listeners, nothing
10 | * will be observed.
11 | */
12 | export function createGlobalObserver(props: {
13 | init: (handler: Callback) => T;
14 | connect: (subject: T) => void;
15 | disconnect: (subject: T) => void;
16 | }): RegisterFn;
17 | export function createGlobalObserver(props: {
18 | connect: (callback: Callback) => void;
19 | disconnect: (callback: Callback) => void;
20 | }): RegisterFn;
21 | // eslint-disable-next-line @typescript-eslint/no-explicit-any
22 | export function createGlobalObserver(props: any): any {
23 | const callbacks: Set> = new Set();
24 |
25 | const handler: Callback = payload => {
26 | batch(() => {
27 | for (const callback of callbacks) {
28 | callback(payload);
29 | }
30 | });
31 | };
32 |
33 | const subject = props.init?.(handler);
34 |
35 | return function register(callback: Callback) {
36 | if (callbacks.size === 0) {
37 | props.connect(subject ?? handler);
38 | }
39 |
40 | callbacks.add(callback);
41 |
42 | function unregister() {
43 | callbacks.delete(callback);
44 |
45 | if (callbacks.size === 0) {
46 | props.disconnect(subject ?? handler);
47 | }
48 | }
49 |
50 | return unregister;
51 | };
52 | }
53 |
--------------------------------------------------------------------------------
/browser-tests/helper.ts:
--------------------------------------------------------------------------------
1 | import { ROOT_ID } from "@cypress/mount-utils";
2 | import { createEffect, onCleanup } from "solid-js";
3 | import { render as _render } from "solid-js/web";
4 | import type { Accessor, JSXElement } from "solid-js";
5 | import type { Bounds } from "../src/bounds";
6 | import { allKeys, boundsFromElement } from "../src/bounds";
7 |
8 | export let unmount: null | (() => void) = null;
9 |
10 | export function render(code: () => JSXElement) {
11 | const _unmount = _render(code, document.getElementById(ROOT_ID)!);
12 |
13 | unmount = () => {
14 | _unmount();
15 | unmount = null;
16 | };
17 |
18 | return unmount;
19 | }
20 |
21 | const boundsMap: Map = new Map();
22 |
23 | export function storeBounds(id: string, bounds: Accessor) {
24 | createEffect(() => {
25 | boundsMap.set(id, bounds());
26 | });
27 | onCleanup(() => boundsMap.delete(id));
28 | }
29 |
30 | function isSet(value: T | null | undefined): value is T {
31 | return value === null || value === undefined ? false : true;
32 | }
33 |
34 | const MAX_RETRIES = 4;
35 |
36 | export function checkBounds(description?: string) {
37 | cy.log(`Checking bounds ${description}`);
38 | for (const id of boundsMap.keys()) {
39 | cy.get(`#${id}`).then(subject => {
40 | return new Cypress.Promise((resolve, reject) => {
41 | let attempt = 0;
42 | const actualBounds = boundsFromElement(subject[0]);
43 |
44 | function check() {
45 | attempt++;
46 | const trackedBounds = boundsMap.get(id);
47 |
48 | const boundsAreEqual =
49 | isSet(trackedBounds) &&
50 | isSet(actualBounds) &&
51 | allKeys.every(key => actualBounds[key] === trackedBounds[key]);
52 |
53 | if (boundsAreEqual) {
54 | resolve();
55 | return;
56 | }
57 |
58 | if (attempt <= MAX_RETRIES) {
59 | const frame = 1000 / 60;
60 | setTimeout(check, frame);
61 | return;
62 | }
63 |
64 | reject(
65 | new Error(
66 | `Bounds mismatch on id ${id}.${
67 | description ? `\nDescription: "${description}"` : ""
68 | }\nExpected:\n${JSON.stringify(
69 | trackedBounds
70 | )}\nActual:\n${JSON.stringify(actualBounds)}`
71 | )
72 | );
73 | }
74 |
75 | check();
76 | });
77 | });
78 | }
79 | }
80 |
--------------------------------------------------------------------------------
/src/create-global-observer.test.tsx:
--------------------------------------------------------------------------------
1 | import { createEffect, createRoot, onCleanup } from "solid-js";
2 | import { describe, it, fn, expect, beforeEach } from "vitest";
3 | import type { RegisterFn } from "./create-global-observer";
4 | import { createGlobalObserver } from "./create-global-observer";
5 |
6 | const nextTick = () => new Promise(resolve => setTimeout(resolve, 1000 / 60));
7 |
8 | class MockObserver {
9 | observedItems: T[] = [];
10 | constructor(private handler: (items: T[]) => void) {}
11 |
12 | observe(item: T) {
13 | this.observedItems.push(item);
14 | }
15 |
16 | disconnect() {
17 | this.observedItems = [];
18 | }
19 |
20 | trigger() {
21 | if (this.observedItems.length) {
22 | this.handler(this.observedItems);
23 | }
24 | }
25 | }
26 |
27 | const item = {};
28 | type Item = typeof item;
29 |
30 | describe("createGlobalObserver", () => {
31 | let register: RegisterFn- ;
32 | let subject: MockObserver
- ;
33 |
34 | beforeEach(() => {
35 | register = createGlobalObserver
- >({
36 | init: handler => {
37 | subject = new MockObserver(handler);
38 | return subject;
39 | },
40 | connect: subject => subject.observe(item),
41 | disconnect: subject => subject.disconnect()
42 | });
43 | });
44 |
45 | it("lets you register a callback and immediately starts listening to the subject", () => {
46 | const callback = fn();
47 |
48 | return createRoot(async dispose => {
49 | createEffect(() => register(callback));
50 |
51 | await nextTick();
52 |
53 | subject.trigger();
54 |
55 | expect(callback).toHaveBeenCalled();
56 | dispose();
57 | });
58 | });
59 |
60 | it("does not observe anything when no handlers have been registered yet", () => {
61 | expect(subject.observedItems).toEqual([]);
62 | });
63 |
64 | it("unregisters the callback on cleanup", () => {
65 | const callback = fn();
66 |
67 | return createRoot(async dispose => {
68 | createEffect(() => onCleanup(register(callback)));
69 |
70 | await nextTick();
71 |
72 | dispose();
73 | subject.trigger();
74 |
75 | expect(callback).not.toHaveBeenCalled();
76 | expect(subject.observedItems).toEqual([]);
77 | });
78 | });
79 |
80 | it("calls multiple callbacks", () => {
81 | const callback1 = fn();
82 | const callback2 = fn();
83 |
84 | return createRoot(async dispose => {
85 | createEffect(() => onCleanup(register(callback1)));
86 | createEffect(() => onCleanup(register(callback2)));
87 |
88 | await nextTick();
89 |
90 | subject.trigger();
91 |
92 | expect(callback1).toHaveBeenCalled();
93 | expect(callback2).toHaveBeenCalled();
94 |
95 | dispose();
96 | });
97 | });
98 | });
99 |
--------------------------------------------------------------------------------
/example/index.css:
--------------------------------------------------------------------------------
1 | :root {
2 | --scroll-background: #a7f3d0;
3 | --body-background: #6ee7b7;
4 | --header-color: #16a34a;
5 | --primary: #047857;
6 | }
7 |
8 | body {
9 | margin: 0;
10 | font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen",
11 | "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue",
12 | sans-serif;
13 | -webkit-font-smoothing: antialiased;
14 | -moz-osx-font-smoothing: grayscale;
15 | background-color: var(--body-background);
16 | }
17 |
18 | code,
19 | .menu-bounds {
20 | font-family: source-code-pro, Menlo, Monaco, Consolas, "Courier New",
21 | monospace;
22 | }
23 |
24 | .container {
25 | width: 100vw;
26 | height: 100vh;
27 | max-height: 1000px;
28 | display: grid;
29 | grid-template-rows: 1fr auto 10vh;
30 | justify-content: center;
31 | }
32 |
33 | header {
34 | margin-top: 48px;
35 | margin-bottom: 48px;
36 | display: flex;
37 | flex-direction: column;
38 | align-items: center;
39 | }
40 |
41 | a {
42 | color: var(--primary);
43 | text-decoration-color: var(--primary);
44 | }
45 |
46 | h1 {
47 | font-weight: 900;
48 | font-size: 42px;
49 | text-shadow: 1px 1px 10px rgba(0, 0, 0, 0.1);
50 | }
51 |
52 | p {
53 | color: var(--primary);
54 | }
55 |
56 | button {
57 | background-color: var(--primary);
58 | border: 0;
59 | display: flex;
60 | width: 100px;
61 | height: 48px;
62 | justify-content: center;
63 | align-items: center;
64 | color: white;
65 | font-size: 16px;
66 | font-weight: 700;
67 | border-radius: 5px;
68 | cursor: pointer;
69 | transition: width 0.5s, height 0.5s;
70 | }
71 |
72 | button:hover {
73 | background-color: #064e3b;
74 | }
75 |
76 | button.large {
77 | width: 240px;
78 | height: 100px;
79 | }
80 |
81 | .filler {
82 | height: 100vh;
83 | }
84 |
85 | .scroll-box {
86 | background-color: var(--scroll-background);
87 | width: min(80vw, 800px);
88 | overflow: auto;
89 | border-radius: 4px;
90 | }
91 |
92 | .scroll-box .inner {
93 | width: 300vw;
94 | height: 300vh;
95 | display: flex;
96 | justify-content: center;
97 | align-items: center;
98 | }
99 |
100 | .menu {
101 | position: fixed;
102 | top: 0;
103 | left: 0;
104 | background-color: white;
105 | display: flex;
106 | justify-content: center;
107 | align-items: center;
108 | border-radius: 4px;
109 | box-shadow: 3px 4px 15px rgba(0, 0, 0, 0.15);
110 | width: 200px;
111 | height: 200px;
112 | cursor: pointer;
113 | will-change: transform, top, left;
114 | }
115 |
116 | .menu-title {
117 | font-weight: bold;
118 | margin-bottom: 4px;
119 | }
120 |
121 | .menu-bounds {
122 | font-size: 14px;
123 | color: #333;
124 | }
125 |
126 | .menu-bounds > .data {
127 | display: flex;
128 | width: 150px;
129 | justify-content: space-between;
130 | }
131 |
--------------------------------------------------------------------------------
/src/index.test.tsx:
--------------------------------------------------------------------------------
1 | import { createRoot, createSignal } from "solid-js";
2 | import { describe, it, fn, expect, beforeEach, vi } from "vitest";
3 |
4 | const nextTick = () => new Promise(resolve => setTimeout(resolve, 1000 / 60));
5 |
6 | const getBoundingClientRect = fn().mockImplementation(() => {
7 | return {
8 | width: 0,
9 | top: 0,
10 | left: 0,
11 | bottom: 0,
12 | right: 0,
13 | height: 0
14 | };
15 | });
16 |
17 | const fakeElement = {
18 | getBoundingClientRect
19 | } as unknown as HTMLElement;
20 |
21 | beforeEach(() => {
22 | getBoundingClientRect.mockClear();
23 | });
24 |
25 | class MockResizeObserver {
26 | static handler: ResizeObserverCallback;
27 | static trigger() {
28 | this.handler(null!, null!);
29 | }
30 |
31 | constructor(handler: ResizeObserverCallback) {
32 | MockResizeObserver.handler = handler;
33 | }
34 |
35 | observe() {
36 | return;
37 | }
38 |
39 | disconnect() {
40 | return;
41 | }
42 |
43 | unobserve() {
44 | return;
45 | }
46 | }
47 |
48 | class MockMutationObserver {
49 | static handler: MutationCallback;
50 | static trigger(payload: MutationRecord[]) {
51 | this.handler?.(payload, null!);
52 | }
53 |
54 | constructor(handler: MutationCallback) {
55 | MockMutationObserver.handler = handler;
56 | }
57 |
58 | observe() {
59 | return;
60 | }
61 |
62 | disconnect() {
63 | return;
64 | }
65 |
66 | unobserve() {
67 | return;
68 | }
69 |
70 | takeRecords() {
71 | return null!;
72 | }
73 | }
74 |
75 | vi.stubGlobal("ResizeObserver", MockResizeObserver);
76 | vi.stubGlobal("MutationObserver", MockMutationObserver);
77 |
78 | import { trackBounds } from ".";
79 |
80 | function fakeElementConnectedMutation() {
81 | const addedMutation = {
82 | addedNodes: [fakeElement]
83 | } as unknown as MutationRecord;
84 | MockMutationObserver.trigger([addedMutation]);
85 | }
86 |
87 | describe("trackBounds", () => {
88 | it("it does not do anything untill the element is connected to the DOM", () => {
89 | return createRoot(async dispose => {
90 | const tracker = trackBounds();
91 | tracker.ref(fakeElement);
92 | await nextTick();
93 |
94 | expect(tracker.bounds()).toEqual(null);
95 | expect(fakeElement.getBoundingClientRect).not.toHaveBeenCalled();
96 |
97 | dispose();
98 | });
99 | });
100 |
101 | it("provides the bounds once the element is connected to the DOM", () => {
102 | return createRoot(async dispose => {
103 | const tracker = trackBounds();
104 | tracker.ref(fakeElement);
105 | await nextTick();
106 |
107 | fakeElementConnectedMutation();
108 |
109 | await nextTick();
110 | expect(tracker.bounds()).not.toBeNull();
111 |
112 | dispose();
113 | });
114 | });
115 |
116 | it("does nothing when the enabled prop is false", () => {
117 | return createRoot(async dispose => {
118 | const [enabled, setEnabled] = createSignal(false);
119 |
120 | const tracker = trackBounds({ enabled });
121 | tracker.ref(fakeElement);
122 | await nextTick();
123 |
124 | fakeElementConnectedMutation();
125 |
126 | await nextTick();
127 | expect(tracker.bounds()).toBeNull();
128 |
129 | setEnabled(true);
130 |
131 | await nextTick();
132 | expect(tracker.bounds()).not.toBeNull();
133 |
134 | dispose();
135 | });
136 | });
137 | });
138 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "solid-boundaries",
3 | "description": "A utility to track the bounds of html-elements in solid-js",
4 | "info": "This small library exposes a small reactive primitive which tracks the size and position (bounds) of a specific html-element (subject). This is useful for all kinds of things, like building tooltips, popovers, or other behavior and interactions related to changes regarding size and positions. Bounds update in response to: scrolling (the entire window as well as nested scroll-containers), resizing (the entire window as well as the subject) and mutations in the document.",
5 | "keywords": [
6 | "solidhack",
7 | "best_ecosystem",
8 | "measure",
9 | "solid",
10 | "js",
11 | "solid-js",
12 | "size",
13 | "position",
14 | "resize",
15 | "bounds"
16 | ],
17 | "version": "2.0.0",
18 | "author": "Erik Verweij",
19 | "contributors": [
20 | {
21 | "name": "Erik Verweij",
22 | "email": "info@erikverweij.com",
23 | "url": "http://www.erikverweij.dev"
24 | }
25 | ],
26 | "repository": {
27 | "type": "git",
28 | "url": "https://github.com/everweij/solid-boundaries"
29 | },
30 | "homepage": "https://7j26ix.sse.codesandbox.io/",
31 | "files": [
32 | "dist"
33 | ],
34 | "license": "MIT",
35 | "main": "dist/index.cjs.js",
36 | "typings": "dist/index.d.ts",
37 | "module": "dist/index.es.js",
38 | "sideEffects": false,
39 | "exports": {
40 | "node": {
41 | "import": "./dist/server.es.js",
42 | "require": "./dist/server.cjs.js"
43 | },
44 | "import": "./dist/index.es.js",
45 | "require": "./dist/index.cjs.js"
46 | },
47 | "size-limit": [
48 | {
49 | "path": "dist/solid-boundaries.cjs.js",
50 | "limit": "10 KB"
51 | },
52 | {
53 | "path": "dist/solid-boundaries.es.js",
54 | "limit": "10 KB"
55 | }
56 | ],
57 | "prettier": {
58 | "printWidth": 80,
59 | "semi": true,
60 | "singleQuote": false,
61 | "tabWidth": 2,
62 | "trailingComma": "none",
63 | "arrowParens": "avoid"
64 | },
65 | "scripts": {
66 | "start": "vite",
67 | "prepare": "husky install",
68 | "prepublish": "npm run build",
69 | "lint": "eslint '**/*.{ts,tsx}' -c .eslintrc.js --quiet --fix",
70 | "build": "vite build && tsc -p tsconfig.typings.json",
71 | "typecheck": "tsc --noEmit",
72 | "precommit": "npm run typecheck && npm run lint",
73 | "size": "size-limit",
74 | "test": "vitest",
75 | "test:browser": "cypress open-ct",
76 | "test:browser:ci": "cypress run-ct"
77 | },
78 | "peerDependencies": {
79 | "solid-js": ">=1.0.0"
80 | },
81 | "devDependencies": {
82 | "@cypress/mount-utils": "^1.0.2",
83 | "@cypress/vite-dev-server": "^2.2.2",
84 | "@size-limit/preset-small-lib": "^7.0.8",
85 | "@typescript-eslint/eslint-plugin": "^5.17.0",
86 | "@typescript-eslint/parser": "^5.17.0",
87 | "c8": "^7.11.0",
88 | "cypress": "^9.5.3",
89 | "eslint": "^8.12.0",
90 | "eslint-config-prettier": "^8.5.0",
91 | "eslint-plugin-import": "^2.25.4",
92 | "eslint-plugin-prettier": "^4.0.0",
93 | "husky": "^7.0.4",
94 | "jsdom": "^19.0.0",
95 | "motion": "^10.7.0",
96 | "prettier": "^2.6.1",
97 | "size-limit": "^7.0.8",
98 | "solid-js": "^1.3.13",
99 | "solid-testing-library": "^0.3.0",
100 | "tslib": "^2.3.1",
101 | "typescript": "^4.6.3",
102 | "vite": "^2.9.1",
103 | "vite-plugin-solid": "^2.2.6",
104 | "vitest": "^0.8.4"
105 | }
106 | }
107 |
--------------------------------------------------------------------------------
/example/index.tsx:
--------------------------------------------------------------------------------
1 | import "./index.css";
2 | import { render } from "solid-js/web";
3 | import { trackBounds } from "../src";
4 | import type { Bounds } from "../src";
5 | import { createSignal, onMount, createEffect } from "solid-js";
6 | import { animate } from "motion";
7 |
8 | function BoundInfo(props: { name: string; value: number }) {
9 | let ref!: HTMLSpanElement;
10 |
11 | createEffect(prev => {
12 | if (prev && prev !== props.value) {
13 | animate(
14 | ref,
15 | {
16 | backgroundColor: [null, "var(--primary)", "white"],
17 | color: [null, "white", "black"]
18 | },
19 | { duration: 0.3 }
20 | );
21 | }
22 | return props.value;
23 | });
24 |
25 | return (
26 |
27 | {props.name}: {" "}
28 | {Math.round(props.value)}px
29 |
30 | );
31 | }
32 |
33 | function BoundsInfo(props: { bounds: Bounds }) {
34 | return (
35 |
43 | );
44 | }
45 |
46 | function ButtonWithMenu() {
47 | const [enabled, setEnabled] = createSignal(false);
48 | const [isLarge, setLarge] = createSignal(false);
49 |
50 | const trigger = trackBounds({
51 | enabled
52 | });
53 |
54 | const layer = trackBounds({
55 | enabled,
56 | keys: ["width", "height"]
57 | });
58 |
59 | const layerPosition = () => {
60 | if (!trigger.bounds() || !layer.bounds()) {
61 | return { top: "0px", left: "0px" };
62 | }
63 |
64 | const { left, width, bottom } = trigger.bounds()!;
65 | const { width: layerWidth } = layer.bounds()!;
66 | const pos = {
67 | left: left + width / 2 - layerWidth / 2 + "px",
68 | top: bottom + "px"
69 | };
70 | return { transform: `translate(${pos.left}, ${pos.top})` };
71 | };
72 |
73 | return (
74 | <>
75 | setEnabled(!enabled())}
79 | >
80 | Toggle
81 |
82 | {enabled() && (
83 |
94 | )}
95 | >
96 | );
97 | }
98 |
99 | function Example() {
100 | let scrollBox: HTMLDivElement;
101 |
102 | onMount(() => {
103 | const { width: scrollBoxWidth, height: scrollBoxHeight } =
104 | scrollBox.getBoundingClientRect();
105 | const { width: innerWidh, height: innerHeight } =
106 | scrollBox.children[0].getBoundingClientRect();
107 |
108 | scrollBox.scrollLeft = innerWidh / 2 - scrollBoxWidth / 2;
109 | scrollBox.scrollTop = innerHeight / 2 - scrollBoxHeight / 2;
110 | });
111 |
112 | return (
113 | <>
114 |
115 |
116 |
117 | solid-boundaries
118 |
119 | A utility to track the bounds of html-elements in solid-js
120 |
121 | Scroll arround, resize the window or click on the menu to see the
122 | bounds changing...
123 |
124 |
125 |
126 |
127 |
128 |
129 |
130 |
131 |
132 | >
133 | );
134 | }
135 |
136 | render(() => , document.getElementById("root")!);
137 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | solid-boundaries
6 |
7 |
8 | Helps you to track the size and position of html-elements in solid-js.
9 |
10 |
11 |
12 |
13 | ## What does it do?
14 |
15 | See it in action [here](https://7j26ix.sse.codesandbox.io/), or see it on [CodeSandbox](https://codesandbox.io/s/solid-boundaries-example-7j26ix?file=/src/main.tsx)!
16 |
17 | This small library exposes a small reactive primitive which tracks the **size** and **position** (_bounds_) of a specific html-element (subject). _Bounds_, just like when you call `.getBoundingClientRect()`, have the following structure:
18 |
19 | ```ts
20 | interface Bounds {
21 | top: number;
22 | left: number;
23 | right: number;
24 | bottom: number;
25 | width: number;
26 | height: number;
27 | }
28 | ```
29 |
30 | This is useful for all kinds of things, like building tooltips, popovers, or other behavior and interactions related to changes regarding size and positions.
31 |
32 | Bounds update in response to:
33 |
34 | - scrolling - the entire window as well as (nested-)scroll-containers
35 | - resizing - the entire window as well as the subject
36 | - mutations in the document - to be more specific:
37 | - any changes that may affect styling (style/class attributes)
38 | - adding or removal of other html-elements
39 |
40 | ## Install
41 |
42 | ```bash
43 | npm install solid-boundaries
44 | ```
45 |
46 | ## Usage
47 |
48 | ```tsx
49 | import { trackBounds } from "solid-boundaries";
50 |
51 | function App() {
52 | const { ref, bounds } = trackBounds();
53 |
54 | // Make sure to pass the ref properly to the element you
55 | // want to track, and do something with fun with the bounds!
56 | // Note: the bounds are `null` when the element has not been
57 | // connected to the DOM yet.
58 | return (
59 |
60 | {bounds() && JSON.stringify(bounds())}
61 |
62 | )
63 | }
64 | ```
65 |
66 | ## API
67 |
68 | ```tsx
69 | interface Bounds {
70 | top: number;
71 | left: number;
72 | right: number;
73 | bottom: number;
74 | width: number;
75 | height: number;
76 | }
77 |
78 | interface Config {
79 | /**
80 | * Whether to actively track the element's position.
81 | * @default () => true
82 | */
83 | enabled?: Accessor
;
84 | /**
85 | * Whether to actively track mutations in the DOM.
86 | * @default () => true
87 | */
88 | trackMutations?: boolean;
89 | /**
90 | * Whether to actively track resizes of the element you're
91 | * tracking or of the entire window.
92 | * @default () => true
93 | */
94 | trackResize?: boolean;
95 | /**
96 | * Whether to actively track scrolling.
97 | * @default () => true
98 | */
99 | trackScroll?: boolean;
100 | /**
101 | * Defines specific keys of the boundary to track.
102 | * By default all keys are tracked.
103 | * @default ["top", "right", "bottom", "left", "width", "height"]
104 | */
105 | keys?: BoundsKeys;
106 | /**
107 | * Whether not to show warning messages in the console
108 | */
109 | suppressWarnings?: boolean;
110 | }
111 |
112 | type TrackBoundsProps = {
113 | /**
114 | * Setter which should be passed to the `ref` prop of the
115 | * element you want to track.
116 | */
117 | ref: Setter;
118 | /**
119 | * The bounds of the element you are tracking.
120 | * Note: returns `null` if the element is not connected
121 | * to the DOM.
122 | */
123 | bounds: Accessor;
124 | /**
125 | * Provides a reference to the element.
126 | */
127 | element: Accessor;
128 | };
129 |
130 | function trackBounds(config?: Config): TrackBoundsProps;
131 | ```
132 |
133 | ## Browser compatibility
134 |
135 | This library makes use of `ResizeObserver` and `MutationObserver`. If you need to support older browsers I recommend to use a polyfill, otherwise certain behavior will be skipped.
136 |
137 | ## Contributing
138 |
139 | Want to contribute to solid-boundaries? Your help is very much appreciated!
140 | Please consult the [contribution guide](./CONTRIBUTING.MD) on how to get started.
141 |
142 | ## License
143 |
144 | MIT © [everweij](https://github.com/everweij)
145 |
--------------------------------------------------------------------------------
/browser-tests/main.test.tsx:
--------------------------------------------------------------------------------
1 | import type { PropsWithChildren } from "solid-js";
2 | import { Show, createSignal } from "solid-js";
3 | import { trackBounds } from "../src";
4 | import { storeBounds, checkBounds, render, unmount } from "./helper";
5 |
6 | const Container = (props: PropsWithChildren) => (
7 |
16 | {props.children}
17 |
18 | );
19 |
20 | const Scrollable = (
21 | props: PropsWithChildren<{
22 | id: string;
23 | color: string;
24 | height: number;
25 | width: number;
26 | }>
27 | ) => (
28 |
39 |
42 | {props.children}
43 |
44 |
45 | );
46 |
47 | function Box(props: {
48 | id: string;
49 | color: string;
50 | large?: boolean;
51 | right?: boolean;
52 | }) {
53 | const tracker = trackBounds();
54 |
55 | storeBounds(props.id, tracker.bounds);
56 |
57 | return (
58 |
69 |
{props.id}
70 |
71 | {JSON.stringify(tracker.bounds(), null, 2)}
72 |
73 |
74 | );
75 | }
76 |
77 | function Test() {
78 | const [testMutation, setTestMutation] = createSignal(false);
79 | const [testResize, setTestResize] = createSignal(false);
80 |
81 | return (
82 |
83 | setTestMutation(!testMutation())}
86 | >
87 | toggle-mutation
88 |
89 | setTestResize(!testResize())}>
90 | toggle-resize
91 |
92 |
93 |
94 |
95 |
96 |
97 |
98 |
99 |
100 |
101 |
102 |
103 |
104 | );
105 | }
106 |
107 | beforeEach(() => {
108 | unmount?.();
109 |
110 | cy.scrollTo("topLeft");
111 | cy.get("#scroll-1").scrollTo("topLeft");
112 | cy.get("#scroll-2").scrollTo("topLeft");
113 |
114 | render(() => );
115 | });
116 |
117 | describe("trackBounds", () => {
118 | it("measures the bounds of the boxes correctly after first mount", () => {
119 | checkBounds();
120 | });
121 |
122 | it("measures the bounds of the boxes correctly when a box gets added and removed", () => {
123 | checkBounds("after mount");
124 |
125 | cy.get("#toggle-mutation").click();
126 | checkBounds("after adding box 1");
127 |
128 | cy.get("#toggle-mutation").click();
129 | checkBounds("after removing box 1");
130 | });
131 |
132 | it("measures the bounds of the boxes correctly when a box gets resized", () => {
133 | checkBounds("after mount");
134 |
135 | cy.get("#toggle-resize").click();
136 | checkBounds("after making box 2 larger");
137 |
138 | cy.get("#toggle-resize").click();
139 | checkBounds("after making box 2 small again");
140 | });
141 |
142 | it("measures the bounds of the boxes correctly when a user scrolls", () => {
143 | checkBounds("after mount");
144 |
145 | cy.scrollTo("center");
146 | checkBounds("after scrolling body to center");
147 |
148 | cy.get("#scroll-1").scrollTo("bottom");
149 | checkBounds("after scrolling first scroll-container to center");
150 |
151 | cy.get("#scroll-2").scrollTo("bottom");
152 | checkBounds("after scrolling second scroll-container to center");
153 | });
154 |
155 | it("measures the bounds of the boxes correctly the window gets resized", () => {
156 | checkBounds("after mount");
157 |
158 | cy.viewport(800, 600);
159 | checkBounds("after resizing window to 800x600");
160 | });
161 | });
162 |
--------------------------------------------------------------------------------
/src/index.ts:
--------------------------------------------------------------------------------
1 | import {
2 | createSignal,
3 | createEffect,
4 | onCleanup,
5 | createRenderEffect,
6 | on
7 | } from "solid-js";
8 | import type { Accessor, Setter } from "solid-js";
9 | import type { TrackBoundsConfig, TrackBoundsProps } from "./types";
10 | import type { Bounds, BoundsKeys } from "./bounds";
11 | import { equals, boundsFromElement } from "./bounds";
12 | import { createUpdateThrottler } from "./create-update-throttler";
13 | import { createGlobalObserver } from "./create-global-observer";
14 | import type { UnregisterFn } from "./create-global-observer";
15 | export type { Bounds, TrackBoundsProps, TrackBoundsConfig, BoundsKeys };
16 |
17 | const hasResizeObserver = typeof ResizeObserver !== "undefined";
18 | const hasMutationObserver = typeof MutationObserver !== "undefined";
19 |
20 | const registerToMutationEvents = createGlobalObserver<
21 | MutationRecord[],
22 | MutationObserver
23 | >({
24 | init: callback => new MutationObserver(callback),
25 | connect: subject =>
26 | subject.observe(document.body, {
27 | attributeFilter: ["style", "class"],
28 | subtree: true,
29 | childList: true
30 | }),
31 | disconnect: subject => subject.disconnect()
32 | });
33 |
34 | const registerToScrollEvents = createGlobalObserver({
35 | connect: callback =>
36 | window.addEventListener("scroll", callback, { capture: true }),
37 | disconnect: callback =>
38 | window.removeEventListener("scroll", callback, { capture: true })
39 | });
40 |
41 | const registerToBodyResizeEvents = createGlobalObserver<
42 | ResizeObserverEntry[],
43 | ResizeObserver
44 | >({
45 | init: callback => {
46 | let hasTriggeredResize = false;
47 | return new ResizeObserver(entries => {
48 | if (!hasTriggeredResize) hasTriggeredResize = true;
49 | else callback(entries);
50 | });
51 | },
52 | connect: subject => subject.observe(document.body),
53 | disconnect: subject => subject.disconnect()
54 | });
55 |
56 | const listContainsNode = (list: NodeList, element: HTMLElement | null) => {
57 | for (let i = 0; i < list.length; i++) {
58 | if (list[i] === element || list[i].contains(element)) {
59 | return true;
60 | }
61 | }
62 | return false;
63 | };
64 |
65 | type TrackElementOptions = {
66 | onConnect?: () => void;
67 | onDisconnect?: () => void;
68 | };
69 |
70 | // Utility function which tracks and allows you to respond to when
71 | // an element is connected / disconnected to the DOM.
72 | function trackElementConnected(
73 | element: Accessor,
74 | opts: TrackElementOptions = {}
75 | ) {
76 | const [isConnected, setConnected] = createSignal(false);
77 |
78 | createRenderEffect(() => {
79 | onCleanup(
80 | registerToMutationEvents(mutations => {
81 | for (const mutation of mutations) {
82 | if (listContainsNode(mutation.addedNodes, element())) {
83 | setConnected(true);
84 | opts.onConnect?.();
85 | return;
86 | }
87 | if (listContainsNode(mutation.removedNodes, element())) {
88 | setConnected(false);
89 | opts.onDisconnect?.();
90 | return;
91 | }
92 | }
93 | })
94 | );
95 | });
96 |
97 | return isConnected;
98 | }
99 |
100 | /**
101 | * Reactive primitive which tracks the bounds of a specific html-element
102 | *
103 | * @example
104 | * ```tsx
105 | * function App() {
106 | * const { ref, bounds } = trackBounds();
107 | *
108 | * return (
109 | *
110 | * {bounds() && JSON.stringify(bounds())}
111 | *
112 | * );
113 | * }
114 | * ```
115 | */
116 | export function trackBounds({
117 | enabled = () => true,
118 | keys,
119 | trackMutations = true,
120 | trackResize = true,
121 | trackScroll = true,
122 | suppressWarnings = false
123 | }: TrackBoundsConfig = {}): TrackBoundsProps {
124 | const updater = createUpdateThrottler();
125 | const [element, setElement] = createSignal(null);
126 | const [_bounds, setBounds] = createSignal(null);
127 | const isConnected = trackElementConnected(element, {
128 | onDisconnect: () => setBounds(null)
129 | });
130 |
131 | // Checks whether the bounds have actually changed.
132 | // If so, schedule an update.
133 | function calculateBounds() {
134 | const newBounds = boundsFromElement(element()!);
135 | const currentBounds = _bounds();
136 | if (!equals(newBounds, currentBounds, keys)) {
137 | updater(() => setBounds(newBounds));
138 | }
139 | }
140 |
141 | createEffect(
142 | on([enabled, isConnected], () => {
143 | // If the element is not connected, or the user has
144 | // not enabled tracking, we don't need to do anything.
145 | if (enabled() && isConnected()) {
146 | calculateBounds();
147 |
148 | // resize-observer for the local element
149 | let resizeObserver: ResizeObserver | null = null;
150 | if (trackResize && hasResizeObserver) {
151 | let hasTriggeredResize = false;
152 | resizeObserver = new ResizeObserver(() => {
153 | if (!hasTriggeredResize) hasTriggeredResize = true;
154 | else calculateBounds();
155 | });
156 | resizeObserver.observe(element()!);
157 | }
158 |
159 | // register for events that can occur somewhere in the DOM
160 | const unregisterers = [
161 | hasResizeObserver &&
162 | trackResize &&
163 | registerToBodyResizeEvents(calculateBounds),
164 | hasMutationObserver &&
165 | trackMutations &&
166 | registerToMutationEvents(calculateBounds),
167 | trackScroll &&
168 | registerToScrollEvents(evt => {
169 | if ((evt.target as HTMLElement).contains(element())) {
170 | calculateBounds();
171 | }
172 | })
173 | ].filter(Boolean) as UnregisterFn[];
174 |
175 | onCleanup(() => {
176 | unregisterers.forEach(unregister => unregister());
177 | resizeObserver?.disconnect();
178 | });
179 | }
180 | })
181 | );
182 |
183 | // Warning stuff...
184 | let hasCalledRef = false;
185 | let hasWarned = false;
186 | const bounds = suppressWarnings
187 | ? _bounds
188 | : () => {
189 | if (!hasCalledRef && !hasWarned) {
190 | console.warn(
191 | `trackBounds(): you are trying to read the bounds of an element but it seems that you haven't attached the 'ref' properly yet.`
192 | );
193 | hasWarned = true;
194 | }
195 |
196 | return _bounds();
197 | };
198 |
199 | return {
200 | bounds,
201 | ref: (element => {
202 | hasCalledRef = true;
203 | setElement(element);
204 | }) as Setter,
205 | element
206 | };
207 | }
208 |
--------------------------------------------------------------------------------
/pnpm-lock.yaml:
--------------------------------------------------------------------------------
1 | lockfileVersion: 5.3
2 |
3 | specifiers:
4 | '@cypress/mount-utils': ^1.0.2
5 | '@cypress/vite-dev-server': ^2.2.2
6 | '@size-limit/preset-small-lib': ^7.0.8
7 | '@typescript-eslint/eslint-plugin': ^5.17.0
8 | '@typescript-eslint/parser': ^5.17.0
9 | c8: ^7.11.0
10 | cypress: ^9.5.3
11 | eslint: ^8.12.0
12 | eslint-config-prettier: ^8.5.0
13 | eslint-plugin-import: ^2.25.4
14 | eslint-plugin-prettier: ^4.0.0
15 | husky: ^7.0.4
16 | jsdom: ^19.0.0
17 | motion: ^10.7.0
18 | prettier: ^2.6.1
19 | size-limit: ^7.0.8
20 | solid-js: ^1.3.13
21 | solid-testing-library: ^0.3.0
22 | tslib: ^2.3.1
23 | typescript: ^4.6.3
24 | vite: ^2.9.1
25 | vite-plugin-solid: ^2.2.6
26 | vitest: ^0.8.4
27 |
28 | devDependencies:
29 | '@cypress/mount-utils': 1.0.2
30 | '@cypress/vite-dev-server': 2.2.2_vite@2.9.1
31 | '@size-limit/preset-small-lib': 7.0.8_size-limit@7.0.8
32 | '@typescript-eslint/eslint-plugin': 5.17.0_689ff565753ecf7c3328c07fad067df5
33 | '@typescript-eslint/parser': 5.17.0_eslint@8.12.0+typescript@4.6.3
34 | c8: 7.11.0
35 | cypress: 9.5.3
36 | eslint: 8.12.0
37 | eslint-config-prettier: 8.5.0_eslint@8.12.0
38 | eslint-plugin-import: 2.25.4_eslint@8.12.0
39 | eslint-plugin-prettier: 4.0.0_b253a92c95b42c3296c682f11cccb3bd
40 | husky: 7.0.4
41 | jsdom: 19.0.0
42 | motion: 10.7.0
43 | prettier: 2.6.1
44 | size-limit: 7.0.8
45 | solid-js: 1.3.13
46 | solid-testing-library: 0.3.0_solid-js@1.3.13
47 | tslib: 2.3.1
48 | typescript: 4.6.3
49 | vite: 2.9.1
50 | vite-plugin-solid: 2.2.6
51 | vitest: 0.8.4_c8@7.11.0+jsdom@19.0.0
52 |
53 | packages:
54 |
55 | /@ampproject/remapping/2.1.2:
56 | resolution: {integrity: sha512-hoyByceqwKirw7w3Z7gnIIZC3Wx3J484Y3L/cMpXFbr7d9ZQj2mODrirNzcJa+SM3UlpWXYvKV4RlRpFXlWgXg==}
57 | engines: {node: '>=6.0.0'}
58 | dependencies:
59 | '@jridgewell/trace-mapping': 0.3.4
60 | dev: true
61 |
62 | /@babel/code-frame/7.16.7:
63 | resolution: {integrity: sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==}
64 | engines: {node: '>=6.9.0'}
65 | dependencies:
66 | '@babel/highlight': 7.16.10
67 | dev: true
68 |
69 | /@babel/compat-data/7.17.7:
70 | resolution: {integrity: sha512-p8pdE6j0a29TNGebNm7NzYZWB3xVZJBZ7XGs42uAKzQo8VQ3F0By/cQCtUEABwIqw5zo6WA4NbmxsfzADzMKnQ==}
71 | engines: {node: '>=6.9.0'}
72 | dev: true
73 |
74 | /@babel/core/7.17.8:
75 | resolution: {integrity: sha512-OdQDV/7cRBtJHLSOBqqbYNkOcydOgnX59TZx4puf41fzcVtN3e/4yqY8lMQsK+5X2lJtAdmA+6OHqsj1hBJ4IQ==}
76 | engines: {node: '>=6.9.0'}
77 | dependencies:
78 | '@ampproject/remapping': 2.1.2
79 | '@babel/code-frame': 7.16.7
80 | '@babel/generator': 7.17.7
81 | '@babel/helper-compilation-targets': 7.17.7_@babel+core@7.17.8
82 | '@babel/helper-module-transforms': 7.17.7
83 | '@babel/helpers': 7.17.8
84 | '@babel/parser': 7.17.8
85 | '@babel/template': 7.16.7
86 | '@babel/traverse': 7.17.3
87 | '@babel/types': 7.17.0
88 | convert-source-map: 1.8.0
89 | debug: 4.3.4
90 | gensync: 1.0.0-beta.2
91 | json5: 2.2.1
92 | semver: 6.3.0
93 | transitivePeerDependencies:
94 | - supports-color
95 | dev: true
96 |
97 | /@babel/generator/7.17.7:
98 | resolution: {integrity: sha512-oLcVCTeIFadUoArDTwpluncplrYBmTCCZZgXCbgNGvOBBiSDDK3eWO4b/+eOTli5tKv1lg+a5/NAXg+nTcei1w==}
99 | engines: {node: '>=6.9.0'}
100 | dependencies:
101 | '@babel/types': 7.17.0
102 | jsesc: 2.5.2
103 | source-map: 0.5.7
104 | dev: true
105 |
106 | /@babel/helper-annotate-as-pure/7.16.7:
107 | resolution: {integrity: sha512-s6t2w/IPQVTAET1HitoowRGXooX8mCgtuP5195wD/QJPV6wYjpujCGF7JuMODVX2ZAJOf1GT6DT9MHEZvLOFSw==}
108 | engines: {node: '>=6.9.0'}
109 | dependencies:
110 | '@babel/types': 7.17.0
111 | dev: true
112 |
113 | /@babel/helper-compilation-targets/7.17.7_@babel+core@7.17.8:
114 | resolution: {integrity: sha512-UFzlz2jjd8kroj0hmCFV5zr+tQPi1dpC2cRsDV/3IEW8bJfCPrPpmcSN6ZS8RqIq4LXcmpipCQFPddyFA5Yc7w==}
115 | engines: {node: '>=6.9.0'}
116 | peerDependencies:
117 | '@babel/core': ^7.0.0
118 | dependencies:
119 | '@babel/compat-data': 7.17.7
120 | '@babel/core': 7.17.8
121 | '@babel/helper-validator-option': 7.16.7
122 | browserslist: 4.20.2
123 | semver: 6.3.0
124 | dev: true
125 |
126 | /@babel/helper-create-class-features-plugin/7.17.6_@babel+core@7.17.8:
127 | resolution: {integrity: sha512-SogLLSxXm2OkBbSsHZMM4tUi8fUzjs63AT/d0YQIzr6GSd8Hxsbk2KYDX0k0DweAzGMj/YWeiCsorIdtdcW8Eg==}
128 | engines: {node: '>=6.9.0'}
129 | peerDependencies:
130 | '@babel/core': ^7.0.0
131 | dependencies:
132 | '@babel/core': 7.17.8
133 | '@babel/helper-annotate-as-pure': 7.16.7
134 | '@babel/helper-environment-visitor': 7.16.7
135 | '@babel/helper-function-name': 7.16.7
136 | '@babel/helper-member-expression-to-functions': 7.17.7
137 | '@babel/helper-optimise-call-expression': 7.16.7
138 | '@babel/helper-replace-supers': 7.16.7
139 | '@babel/helper-split-export-declaration': 7.16.7
140 | transitivePeerDependencies:
141 | - supports-color
142 | dev: true
143 |
144 | /@babel/helper-environment-visitor/7.16.7:
145 | resolution: {integrity: sha512-SLLb0AAn6PkUeAfKJCCOl9e1R53pQlGAfc4y4XuMRZfqeMYLE0dM1LMhqbGAlGQY0lfw5/ohoYWAe9V1yibRag==}
146 | engines: {node: '>=6.9.0'}
147 | dependencies:
148 | '@babel/types': 7.17.0
149 | dev: true
150 |
151 | /@babel/helper-function-name/7.16.7:
152 | resolution: {integrity: sha512-QfDfEnIUyyBSR3HtrtGECuZ6DAyCkYFp7GHl75vFtTnn6pjKeK0T1DB5lLkFvBea8MdaiUABx3osbgLyInoejA==}
153 | engines: {node: '>=6.9.0'}
154 | dependencies:
155 | '@babel/helper-get-function-arity': 7.16.7
156 | '@babel/template': 7.16.7
157 | '@babel/types': 7.17.0
158 | dev: true
159 |
160 | /@babel/helper-get-function-arity/7.16.7:
161 | resolution: {integrity: sha512-flc+RLSOBXzNzVhcLu6ujeHUrD6tANAOU5ojrRx/as+tbzf8+stUCj7+IfRRoAbEZqj/ahXEMsjhOhgeZsrnTw==}
162 | engines: {node: '>=6.9.0'}
163 | dependencies:
164 | '@babel/types': 7.17.0
165 | dev: true
166 |
167 | /@babel/helper-hoist-variables/7.16.7:
168 | resolution: {integrity: sha512-m04d/0Op34H5v7pbZw6pSKP7weA6lsMvfiIAMeIvkY/R4xQtBSMFEigu9QTZ2qB/9l22vsxtM8a+Q8CzD255fg==}
169 | engines: {node: '>=6.9.0'}
170 | dependencies:
171 | '@babel/types': 7.17.0
172 | dev: true
173 |
174 | /@babel/helper-member-expression-to-functions/7.17.7:
175 | resolution: {integrity: sha512-thxXgnQ8qQ11W2wVUObIqDL4p148VMxkt5T/qpN5k2fboRyzFGFmKsTGViquyM5QHKUy48OZoca8kw4ajaDPyw==}
176 | engines: {node: '>=6.9.0'}
177 | dependencies:
178 | '@babel/types': 7.17.0
179 | dev: true
180 |
181 | /@babel/helper-module-imports/7.16.0:
182 | resolution: {integrity: sha512-kkH7sWzKPq0xt3H1n+ghb4xEMP8k0U7XV3kkB+ZGy69kDk2ySFW1qPi06sjKzFY3t1j6XbJSqr4mF9L7CYVyhg==}
183 | engines: {node: '>=6.9.0'}
184 | dependencies:
185 | '@babel/types': 7.17.0
186 | dev: true
187 |
188 | /@babel/helper-module-imports/7.16.7:
189 | resolution: {integrity: sha512-LVtS6TqjJHFc+nYeITRo6VLXve70xmq7wPhWTqDJusJEgGmkAACWwMiTNrvfoQo6hEhFwAIixNkvB0jPXDL8Wg==}
190 | engines: {node: '>=6.9.0'}
191 | dependencies:
192 | '@babel/types': 7.17.0
193 | dev: true
194 |
195 | /@babel/helper-module-transforms/7.17.7:
196 | resolution: {integrity: sha512-VmZD99F3gNTYB7fJRDTi+u6l/zxY0BE6OIxPSU7a50s6ZUQkHwSDmV92FfM+oCG0pZRVojGYhkR8I0OGeCVREw==}
197 | engines: {node: '>=6.9.0'}
198 | dependencies:
199 | '@babel/helper-environment-visitor': 7.16.7
200 | '@babel/helper-module-imports': 7.16.7
201 | '@babel/helper-simple-access': 7.17.7
202 | '@babel/helper-split-export-declaration': 7.16.7
203 | '@babel/helper-validator-identifier': 7.16.7
204 | '@babel/template': 7.16.7
205 | '@babel/traverse': 7.17.3
206 | '@babel/types': 7.17.0
207 | transitivePeerDependencies:
208 | - supports-color
209 | dev: true
210 |
211 | /@babel/helper-optimise-call-expression/7.16.7:
212 | resolution: {integrity: sha512-EtgBhg7rd/JcnpZFXpBy0ze1YRfdm7BnBX4uKMBd3ixa3RGAE002JZB66FJyNH7g0F38U05pXmA5P8cBh7z+1w==}
213 | engines: {node: '>=6.9.0'}
214 | dependencies:
215 | '@babel/types': 7.17.0
216 | dev: true
217 |
218 | /@babel/helper-plugin-utils/7.16.7:
219 | resolution: {integrity: sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA==}
220 | engines: {node: '>=6.9.0'}
221 | dev: true
222 |
223 | /@babel/helper-replace-supers/7.16.7:
224 | resolution: {integrity: sha512-y9vsWilTNaVnVh6xiJfABzsNpgDPKev9HnAgz6Gb1p6UUwf9NepdlsV7VXGCftJM+jqD5f7JIEubcpLjZj5dBw==}
225 | engines: {node: '>=6.9.0'}
226 | dependencies:
227 | '@babel/helper-environment-visitor': 7.16.7
228 | '@babel/helper-member-expression-to-functions': 7.17.7
229 | '@babel/helper-optimise-call-expression': 7.16.7
230 | '@babel/traverse': 7.17.3
231 | '@babel/types': 7.17.0
232 | transitivePeerDependencies:
233 | - supports-color
234 | dev: true
235 |
236 | /@babel/helper-simple-access/7.17.7:
237 | resolution: {integrity: sha512-txyMCGroZ96i+Pxr3Je3lzEJjqwaRC9buMUgtomcrLe5Nd0+fk1h0LLA+ixUF5OW7AhHuQ7Es1WcQJZmZsz2XA==}
238 | engines: {node: '>=6.9.0'}
239 | dependencies:
240 | '@babel/types': 7.17.0
241 | dev: true
242 |
243 | /@babel/helper-split-export-declaration/7.16.7:
244 | resolution: {integrity: sha512-xbWoy/PFoxSWazIToT9Sif+jJTlrMcndIsaOKvTA6u7QEo7ilkRZpjew18/W3c7nm8fXdUDXh02VXTbZ0pGDNw==}
245 | engines: {node: '>=6.9.0'}
246 | dependencies:
247 | '@babel/types': 7.17.0
248 | dev: true
249 |
250 | /@babel/helper-validator-identifier/7.16.7:
251 | resolution: {integrity: sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==}
252 | engines: {node: '>=6.9.0'}
253 | dev: true
254 |
255 | /@babel/helper-validator-option/7.16.7:
256 | resolution: {integrity: sha512-TRtenOuRUVo9oIQGPC5G9DgK4743cdxvtOw0weQNpZXaS16SCBi5MNjZF8vba3ETURjZpTbVn7Vvcf2eAwFozQ==}
257 | engines: {node: '>=6.9.0'}
258 | dev: true
259 |
260 | /@babel/helpers/7.17.8:
261 | resolution: {integrity: sha512-QcL86FGxpfSJwGtAvv4iG93UL6bmqBdmoVY0CMCU2g+oD2ezQse3PT5Pa+jiD6LJndBQi0EDlpzOWNlLuhz5gw==}
262 | engines: {node: '>=6.9.0'}
263 | dependencies:
264 | '@babel/template': 7.16.7
265 | '@babel/traverse': 7.17.3
266 | '@babel/types': 7.17.0
267 | transitivePeerDependencies:
268 | - supports-color
269 | dev: true
270 |
271 | /@babel/highlight/7.16.10:
272 | resolution: {integrity: sha512-5FnTQLSLswEj6IkgVw5KusNUUFY9ZGqe/TRFnP/BKYHYgfh7tc+C7mwiy95/yNP7Dh9x580Vv8r7u7ZfTBFxdw==}
273 | engines: {node: '>=6.9.0'}
274 | dependencies:
275 | '@babel/helper-validator-identifier': 7.16.7
276 | chalk: 2.4.2
277 | js-tokens: 4.0.0
278 | dev: true
279 |
280 | /@babel/parser/7.17.8:
281 | resolution: {integrity: sha512-BoHhDJrJXqcg+ZL16Xv39H9n+AqJ4pcDrQBGZN+wHxIysrLZ3/ECwCBUch/1zUNhnsXULcONU3Ei5Hmkfk6kiQ==}
282 | engines: {node: '>=6.0.0'}
283 | hasBin: true
284 | dev: true
285 |
286 | /@babel/plugin-syntax-jsx/7.16.7_@babel+core@7.17.8:
287 | resolution: {integrity: sha512-Esxmk7YjA8QysKeT3VhTXvF6y77f/a91SIs4pWb4H2eWGQkCKFgQaG6hdoEVZtGsrAcb2K5BW66XsOErD4WU3Q==}
288 | engines: {node: '>=6.9.0'}
289 | peerDependencies:
290 | '@babel/core': ^7.0.0-0
291 | dependencies:
292 | '@babel/core': 7.17.8
293 | '@babel/helper-plugin-utils': 7.16.7
294 | dev: true
295 |
296 | /@babel/plugin-syntax-typescript/7.16.7_@babel+core@7.17.8:
297 | resolution: {integrity: sha512-YhUIJHHGkqPgEcMYkPCKTyGUdoGKWtopIycQyjJH8OjvRgOYsXsaKehLVPScKJWAULPxMa4N1vCe6szREFlZ7A==}
298 | engines: {node: '>=6.9.0'}
299 | peerDependencies:
300 | '@babel/core': ^7.0.0-0
301 | dependencies:
302 | '@babel/core': 7.17.8
303 | '@babel/helper-plugin-utils': 7.16.7
304 | dev: true
305 |
306 | /@babel/plugin-transform-typescript/7.16.8_@babel+core@7.17.8:
307 | resolution: {integrity: sha512-bHdQ9k7YpBDO2d0NVfkj51DpQcvwIzIusJ7mEUaMlbZq3Kt/U47j24inXZHQ5MDiYpCs+oZiwnXyKedE8+q7AQ==}
308 | engines: {node: '>=6.9.0'}
309 | peerDependencies:
310 | '@babel/core': ^7.0.0-0
311 | dependencies:
312 | '@babel/core': 7.17.8
313 | '@babel/helper-create-class-features-plugin': 7.17.6_@babel+core@7.17.8
314 | '@babel/helper-plugin-utils': 7.16.7
315 | '@babel/plugin-syntax-typescript': 7.16.7_@babel+core@7.17.8
316 | transitivePeerDependencies:
317 | - supports-color
318 | dev: true
319 |
320 | /@babel/preset-typescript/7.16.7_@babel+core@7.17.8:
321 | resolution: {integrity: sha512-WbVEmgXdIyvzB77AQjGBEyYPZx+8tTsO50XtfozQrkW8QB2rLJpH2lgx0TRw5EJrBxOZQ+wCcyPVQvS8tjEHpQ==}
322 | engines: {node: '>=6.9.0'}
323 | peerDependencies:
324 | '@babel/core': ^7.0.0-0
325 | dependencies:
326 | '@babel/core': 7.17.8
327 | '@babel/helper-plugin-utils': 7.16.7
328 | '@babel/helper-validator-option': 7.16.7
329 | '@babel/plugin-transform-typescript': 7.16.8_@babel+core@7.17.8
330 | transitivePeerDependencies:
331 | - supports-color
332 | dev: true
333 |
334 | /@babel/runtime-corejs3/7.17.8:
335 | resolution: {integrity: sha512-ZbYSUvoSF6dXZmMl/CYTMOvzIFnbGfv4W3SEHYgMvNsFTeLaF2gkGAF4K2ddmtSK4Emej+0aYcnSC6N5dPCXUQ==}
336 | engines: {node: '>=6.9.0'}
337 | dependencies:
338 | core-js-pure: 3.21.1
339 | regenerator-runtime: 0.13.9
340 | dev: true
341 |
342 | /@babel/runtime/7.17.8:
343 | resolution: {integrity: sha512-dQpEpK0O9o6lj6oPu0gRDbbnk+4LeHlNcBpspf6Olzt3GIX4P1lWF1gS+pHLDFlaJvbR6q7jCfQ08zA4QJBnmA==}
344 | engines: {node: '>=6.9.0'}
345 | dependencies:
346 | regenerator-runtime: 0.13.9
347 | dev: true
348 |
349 | /@babel/template/7.16.7:
350 | resolution: {integrity: sha512-I8j/x8kHUrbYRTUxXrrMbfCa7jxkE7tZre39x3kjr9hvI82cK1FfqLygotcWN5kdPGWcLdWMHpSBavse5tWw3w==}
351 | engines: {node: '>=6.9.0'}
352 | dependencies:
353 | '@babel/code-frame': 7.16.7
354 | '@babel/parser': 7.17.8
355 | '@babel/types': 7.17.0
356 | dev: true
357 |
358 | /@babel/traverse/7.17.3:
359 | resolution: {integrity: sha512-5irClVky7TxRWIRtxlh2WPUUOLhcPN06AGgaQSB8AEwuyEBgJVuJ5imdHm5zxk8w0QS5T+tDfnDxAlhWjpb7cw==}
360 | engines: {node: '>=6.9.0'}
361 | dependencies:
362 | '@babel/code-frame': 7.16.7
363 | '@babel/generator': 7.17.7
364 | '@babel/helper-environment-visitor': 7.16.7
365 | '@babel/helper-function-name': 7.16.7
366 | '@babel/helper-hoist-variables': 7.16.7
367 | '@babel/helper-split-export-declaration': 7.16.7
368 | '@babel/parser': 7.17.8
369 | '@babel/types': 7.17.0
370 | debug: 4.3.4
371 | globals: 11.12.0
372 | transitivePeerDependencies:
373 | - supports-color
374 | dev: true
375 |
376 | /@babel/types/7.17.0:
377 | resolution: {integrity: sha512-TmKSNO4D5rzhL5bjWFcVHHLETzfQ/AmbKpKPOSjlP0WoHZ6L911fgoOKY4Alp/emzG4cHJdyN49zpgkbXFEHHw==}
378 | engines: {node: '>=6.9.0'}
379 | dependencies:
380 | '@babel/helper-validator-identifier': 7.16.7
381 | to-fast-properties: 2.0.0
382 | dev: true
383 |
384 | /@bcoe/v8-coverage/0.2.3:
385 | resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==}
386 | dev: true
387 |
388 | /@cypress/mount-utils/1.0.2:
389 | resolution: {integrity: sha512-Fn3fdTiyayHoy8Ol0RSu4MlBH2maQ2ZEXeEVKl/zHHXEQpld5HX3vdNLhK5YLij8cLynA4DxOT/nO9iEnIiOXw==}
390 | dev: true
391 |
392 | /@cypress/request/2.88.10:
393 | resolution: {integrity: sha512-Zp7F+R93N0yZyG34GutyTNr+okam7s/Fzc1+i3kcqOP8vk6OuajuE9qZJ6Rs+10/1JFtXFYMdyarnU1rZuJesg==}
394 | engines: {node: '>= 6'}
395 | dependencies:
396 | aws-sign2: 0.7.0
397 | aws4: 1.11.0
398 | caseless: 0.12.0
399 | combined-stream: 1.0.8
400 | extend: 3.0.2
401 | forever-agent: 0.6.1
402 | form-data: 2.3.3
403 | http-signature: 1.3.6
404 | is-typedarray: 1.0.0
405 | isstream: 0.1.2
406 | json-stringify-safe: 5.0.1
407 | mime-types: 2.1.35
408 | performance-now: 2.1.0
409 | qs: 6.5.3
410 | safe-buffer: 5.1.2
411 | tough-cookie: 2.5.0
412 | tunnel-agent: 0.6.0
413 | uuid: 8.3.2
414 | dev: true
415 |
416 | /@cypress/vite-dev-server/2.2.2_vite@2.9.1:
417 | resolution: {integrity: sha512-02y/Fm0N+CQjKbSjjRtktPgPbp91kOvtc8+WW2l2odIYQkKlG6IOCpmgc898muW0lBAcCszdEIHR/ItdZDiYPw==}
418 | peerDependencies:
419 | vite: '>= 2.1.3'
420 | dependencies:
421 | debug: 4.3.4
422 | get-port: 5.1.1
423 | vite: 2.9.1
424 | transitivePeerDependencies:
425 | - supports-color
426 | dev: true
427 |
428 | /@cypress/xvfb/1.2.4:
429 | resolution: {integrity: sha512-skbBzPggOVYCbnGgV+0dmBdW/s77ZkAOXIC1knS8NagwDjBrNC1LuXtQJeiN6l+m7lzmHtaoUw/ctJKdqkG57Q==}
430 | dependencies:
431 | debug: 3.2.7
432 | lodash.once: 4.1.1
433 | dev: true
434 |
435 | /@eslint/eslintrc/1.2.1:
436 | resolution: {integrity: sha512-bxvbYnBPN1Gibwyp6NrpnFzA3YtRL3BBAyEAFVIpNTm2Rn4Vy87GA5M4aSn3InRrlsbX5N0GW7XIx+U4SAEKdQ==}
437 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
438 | dependencies:
439 | ajv: 6.12.6
440 | debug: 4.3.4
441 | espree: 9.3.1
442 | globals: 13.13.0
443 | ignore: 5.2.0
444 | import-fresh: 3.3.0
445 | js-yaml: 4.1.0
446 | minimatch: 3.1.2
447 | strip-json-comments: 3.1.1
448 | transitivePeerDependencies:
449 | - supports-color
450 | dev: true
451 |
452 | /@humanwhocodes/config-array/0.9.5:
453 | resolution: {integrity: sha512-ObyMyWxZiCu/yTisA7uzx81s40xR2fD5Cg/2Kq7G02ajkNubJf6BopgDTmDyc3U7sXpNKM8cYOw7s7Tyr+DnCw==}
454 | engines: {node: '>=10.10.0'}
455 | dependencies:
456 | '@humanwhocodes/object-schema': 1.2.1
457 | debug: 4.3.4
458 | minimatch: 3.1.2
459 | transitivePeerDependencies:
460 | - supports-color
461 | dev: true
462 |
463 | /@humanwhocodes/object-schema/1.2.1:
464 | resolution: {integrity: sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==}
465 | dev: true
466 |
467 | /@istanbuljs/schema/0.1.3:
468 | resolution: {integrity: sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==}
469 | engines: {node: '>=8'}
470 | dev: true
471 |
472 | /@jest/types/26.6.2:
473 | resolution: {integrity: sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ==}
474 | engines: {node: '>= 10.14.2'}
475 | dependencies:
476 | '@types/istanbul-lib-coverage': 2.0.4
477 | '@types/istanbul-reports': 3.0.1
478 | '@types/node': 17.0.23
479 | '@types/yargs': 15.0.14
480 | chalk: 4.1.2
481 | dev: true
482 |
483 | /@jridgewell/resolve-uri/3.0.5:
484 | resolution: {integrity: sha512-VPeQ7+wH0itvQxnG+lIzWgkysKIr3L9sslimFW55rHMdGu/qCQ5z5h9zq4gI8uBtqkpHhsF4Z/OwExufUCThew==}
485 | engines: {node: '>=6.0.0'}
486 | dev: true
487 |
488 | /@jridgewell/sourcemap-codec/1.4.11:
489 | resolution: {integrity: sha512-Fg32GrJo61m+VqYSdRSjRXMjQ06j8YIYfcTqndLYVAaHmroZHLJZCydsWBOTDqXS2v+mjxohBWEMfg97GXmYQg==}
490 | dev: true
491 |
492 | /@jridgewell/trace-mapping/0.3.4:
493 | resolution: {integrity: sha512-vFv9ttIedivx0ux3QSjhgtCVjPZd5l46ZOMDSCwnH1yUO2e964gO8LZGyv2QkqcgR6TnBU1v+1IFqmeoG+0UJQ==}
494 | dependencies:
495 | '@jridgewell/resolve-uri': 3.0.5
496 | '@jridgewell/sourcemap-codec': 1.4.11
497 | dev: true
498 |
499 | /@motionone/animation/10.7.0:
500 | resolution: {integrity: sha512-TMsa4i5J6Lhl0CzEJM0umzW/ChTY5tIQ0Xcwi/nqw4OAOnpCoKWb4SDqT8Afx7WZ9+rw1/lZyRbB7ND52ibFPg==}
501 | dependencies:
502 | '@motionone/easing': 10.7.0
503 | '@motionone/types': 10.7.0
504 | '@motionone/utils': 10.7.0
505 | tslib: 2.3.1
506 | dev: true
507 |
508 | /@motionone/dom/10.7.0:
509 | resolution: {integrity: sha512-aPXbpFJJtqeJWXolFDG77YZ+FTnQqQzdkaNvzPAi3H3sWeSGttRJWYprKo1EWcYCDKDGmvptftBC2Xt8EvK2bQ==}
510 | dependencies:
511 | '@motionone/animation': 10.7.0
512 | '@motionone/generators': 10.7.0
513 | '@motionone/types': 10.7.0
514 | '@motionone/utils': 10.7.0
515 | hey-listen: 1.0.8
516 | tslib: 2.3.1
517 | dev: true
518 |
519 | /@motionone/easing/10.7.0:
520 | resolution: {integrity: sha512-FqGcVUel8NnYuXygnJ2KfiIfiySmpXhbTH/0icbRwjqPVVBd5k8+PCCrxJtFYD3LFKBUk2tT3fd01Y/j78+OUw==}
521 | dependencies:
522 | '@motionone/utils': 10.7.0
523 | tslib: 2.3.1
524 | dev: true
525 |
526 | /@motionone/generators/10.7.0:
527 | resolution: {integrity: sha512-l+F5bcszVN3YzMYEKyNE2TKilCe7l4B0BgSyjAvHCs37rXeUoJFv0B+UHAE1NL6iHzQ9s8Z5MUAGqyW/D0ymHQ==}
528 | dependencies:
529 | '@motionone/types': 10.7.0
530 | '@motionone/utils': 10.7.0
531 | tslib: 2.3.1
532 | dev: true
533 |
534 | /@motionone/react/10.7.0:
535 | resolution: {integrity: sha512-9R/eqJQxtXZa92PsG/KOGLerJ+LDXCYRH4CigF23G8J5utMXaFthAP1XBnrRClMvA1rupGlnUhTCVFcEvuqntw==}
536 | peerDependencies:
537 | react: ^17.0.2
538 | react-dom: ^17.0.2
539 | peerDependenciesMeta:
540 | react:
541 | optional: true
542 | react-dom:
543 | optional: true
544 | dependencies:
545 | '@motionone/dom': 10.7.0
546 | hey-listen: 1.0.8
547 | tslib: 2.3.1
548 | dev: true
549 |
550 | /@motionone/svelte/10.7.0:
551 | resolution: {integrity: sha512-P8CD03GF0Ce8Xo/MjsmoIoiFHOi7NTUfDYb16s3tIYgzEgT0yxrRdaBh/e5tElMgIZsG5BlSfxCvxo4z3tNJMA==}
552 | dependencies:
553 | '@motionone/dom': 10.7.0
554 | tslib: 2.3.1
555 | dev: true
556 |
557 | /@motionone/types/10.7.0:
558 | resolution: {integrity: sha512-Sb29czMqFj0GckrbfWlrp9/DjaO+mOdORFGqQ7jNCV4pqx/jKHZsRTX7cZrjLPAQJrfEQu02dMcMHZOhsCiBBA==}
559 | dev: true
560 |
561 | /@motionone/utils/10.7.0:
562 | resolution: {integrity: sha512-p8hAaIYE1JmaeduHhunjLUPFFWk+7MskCLcFTuJGTLVKWkWC6lLjswVV/Himkg2IHOqnbSRgqHb8y3jpIoPuMQ==}
563 | dependencies:
564 | '@motionone/types': 10.7.0
565 | hey-listen: 1.0.8
566 | tslib: 2.3.1
567 | dev: true
568 |
569 | /@motionone/vue/10.7.0:
570 | resolution: {integrity: sha512-28Ip/hR8GLBieNiZ4IcmSrBHEPY6UiSp4+iidpOlG5GTLLWXxl7Pzqhbe6i9BTNpEY9yc2AdplQ6LEe/yxaPqQ==}
571 | dependencies:
572 | '@motionone/dom': 10.7.0
573 | tslib: 2.3.1
574 | dev: true
575 |
576 | /@nodelib/fs.scandir/2.1.5:
577 | resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==}
578 | engines: {node: '>= 8'}
579 | dependencies:
580 | '@nodelib/fs.stat': 2.0.5
581 | run-parallel: 1.2.0
582 | dev: true
583 |
584 | /@nodelib/fs.stat/2.0.5:
585 | resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==}
586 | engines: {node: '>= 8'}
587 | dev: true
588 |
589 | /@nodelib/fs.walk/1.2.8:
590 | resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==}
591 | engines: {node: '>= 8'}
592 | dependencies:
593 | '@nodelib/fs.scandir': 2.1.5
594 | fastq: 1.13.0
595 | dev: true
596 |
597 | /@size-limit/esbuild/7.0.8_size-limit@7.0.8:
598 | resolution: {integrity: sha512-AzCrxJJThDvHrBNoolebYVgXu46c6HuS3fOxoXr3V0YWNM0qz81z5F3j7RruzboZnls8ZgME4WrH6GM5rB9gtA==}
599 | engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0}
600 | peerDependencies:
601 | size-limit: 7.0.8
602 | dependencies:
603 | esbuild: 0.14.29
604 | nanoid: 3.3.2
605 | size-limit: 7.0.8
606 | dev: true
607 |
608 | /@size-limit/file/7.0.8_size-limit@7.0.8:
609 | resolution: {integrity: sha512-1KeFQuMXIXAH/iELqIX7x+YNYDFvzIvmxcp9PrdwEoSNL0dXdaDIo9WE/yz8xvOmUcKaLfqbWkL75DM0k91WHQ==}
610 | engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0}
611 | peerDependencies:
612 | size-limit: 7.0.8
613 | dependencies:
614 | semver: 7.3.5
615 | size-limit: 7.0.8
616 | dev: true
617 |
618 | /@size-limit/preset-small-lib/7.0.8_size-limit@7.0.8:
619 | resolution: {integrity: sha512-CT8nIYA/c2CSD+X4rAUgwqYccQMahJ6rBnaZxvi3YKFdkXIbuGNXHNjHsYaFksgwG9P4UjG/unyO5L73f3zQBw==}
620 | peerDependencies:
621 | size-limit: 7.0.8
622 | dependencies:
623 | '@size-limit/esbuild': 7.0.8_size-limit@7.0.8
624 | '@size-limit/file': 7.0.8_size-limit@7.0.8
625 | size-limit: 7.0.8
626 | dev: true
627 |
628 | /@testing-library/dom/7.31.2:
629 | resolution: {integrity: sha512-3UqjCpey6HiTZT92vODYLPxTBWlM8ZOOjr3LX5F37/VRipW2M1kX6I/Cm4VXzteZqfGfagg8yXywpcOgQBlNsQ==}
630 | engines: {node: '>=10'}
631 | dependencies:
632 | '@babel/code-frame': 7.16.7
633 | '@babel/runtime': 7.17.8
634 | '@types/aria-query': 4.2.2
635 | aria-query: 4.2.2
636 | chalk: 4.1.2
637 | dom-accessibility-api: 0.5.13
638 | lz-string: 1.4.4
639 | pretty-format: 26.6.2
640 | dev: true
641 |
642 | /@tootallnate/once/2.0.0:
643 | resolution: {integrity: sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==}
644 | engines: {node: '>= 10'}
645 | dev: true
646 |
647 | /@types/aria-query/4.2.2:
648 | resolution: {integrity: sha512-HnYpAE1Y6kRyKM/XkEuiRQhTHvkzMBurTHnpFLYLBGPIylZNPs9jJcuOOYWxPLJCSEtmZT0Y8rHDokKN7rRTig==}
649 | dev: true
650 |
651 | /@types/chai-subset/1.3.3:
652 | resolution: {integrity: sha512-frBecisrNGz+F4T6bcc+NLeolfiojh5FxW2klu669+8BARtyQv2C/GkNW6FUodVe4BroGMP/wER/YDGc7rEllw==}
653 | dependencies:
654 | '@types/chai': 4.3.0
655 | dev: true
656 |
657 | /@types/chai/4.3.0:
658 | resolution: {integrity: sha512-/ceqdqeRraGolFTcfoXNiqjyQhZzbINDngeoAq9GoHa8PPK1yNzTaxWjA6BFWp5Ua9JpXEMSS4s5i9tS0hOJtw==}
659 | dev: true
660 |
661 | /@types/istanbul-lib-coverage/2.0.4:
662 | resolution: {integrity: sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==}
663 | dev: true
664 |
665 | /@types/istanbul-lib-report/3.0.0:
666 | resolution: {integrity: sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==}
667 | dependencies:
668 | '@types/istanbul-lib-coverage': 2.0.4
669 | dev: true
670 |
671 | /@types/istanbul-reports/3.0.1:
672 | resolution: {integrity: sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==}
673 | dependencies:
674 | '@types/istanbul-lib-report': 3.0.0
675 | dev: true
676 |
677 | /@types/json-schema/7.0.11:
678 | resolution: {integrity: sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==}
679 | dev: true
680 |
681 | /@types/json5/0.0.29:
682 | resolution: {integrity: sha1-7ihweulOEdK4J7y+UnC86n8+ce4=}
683 | dev: true
684 |
685 | /@types/node/14.18.12:
686 | resolution: {integrity: sha512-q4jlIR71hUpWTnGhXWcakgkZeHa3CCjcQcnuzU8M891BAWA2jHiziiWEPEkdS5pFsz7H9HJiy8BrK7tBRNrY7A==}
687 | dev: true
688 |
689 | /@types/node/17.0.23:
690 | resolution: {integrity: sha512-UxDxWn7dl97rKVeVS61vErvw086aCYhDLyvRQZ5Rk65rZKepaFdm53GeqXaKBuOhED4e9uWq34IC3TdSdJJ2Gw==}
691 | dev: true
692 |
693 | /@types/sinonjs__fake-timers/8.1.1:
694 | resolution: {integrity: sha512-0kSuKjAS0TrGLJ0M/+8MaFkGsQhZpB6pxOmvS3K8FYI72K//YmdfoW9X2qPsAKh1mkwxGD5zib9s1FIFed6E8g==}
695 | dev: true
696 |
697 | /@types/sizzle/2.3.3:
698 | resolution: {integrity: sha512-JYM8x9EGF163bEyhdJBpR2QX1R5naCJHC8ucJylJ3w9/CVBaskdQ8WqBf8MmQrd1kRvp/a4TS8HJ+bxzR7ZJYQ==}
699 | dev: true
700 |
701 | /@types/yargs-parser/21.0.0:
702 | resolution: {integrity: sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==}
703 | dev: true
704 |
705 | /@types/yargs/15.0.14:
706 | resolution: {integrity: sha512-yEJzHoxf6SyQGhBhIYGXQDSCkJjB6HohDShto7m8vaKg9Yp0Yn8+71J9eakh2bnPg6BfsH9PRMhiRTZnd4eXGQ==}
707 | dependencies:
708 | '@types/yargs-parser': 21.0.0
709 | dev: true
710 |
711 | /@types/yauzl/2.9.2:
712 | resolution: {integrity: sha512-8uALY5LTvSuHgloDVUvWP3pIauILm+8/0pDMokuDYIoNsOkSwd5AiHBTSEJjKTDcZr5z8UpgOWZkxBF4iJftoA==}
713 | requiresBuild: true
714 | dependencies:
715 | '@types/node': 17.0.23
716 | dev: true
717 | optional: true
718 |
719 | /@typescript-eslint/eslint-plugin/5.17.0_689ff565753ecf7c3328c07fad067df5:
720 | resolution: {integrity: sha512-qVstvQilEd89HJk3qcbKt/zZrfBZ+9h2ynpAGlWjWiizA7m/MtLT9RoX6gjtpE500vfIg8jogAkDzdCxbsFASQ==}
721 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
722 | peerDependencies:
723 | '@typescript-eslint/parser': ^5.0.0
724 | eslint: ^6.0.0 || ^7.0.0 || ^8.0.0
725 | typescript: '*'
726 | peerDependenciesMeta:
727 | typescript:
728 | optional: true
729 | dependencies:
730 | '@typescript-eslint/parser': 5.17.0_eslint@8.12.0+typescript@4.6.3
731 | '@typescript-eslint/scope-manager': 5.17.0
732 | '@typescript-eslint/type-utils': 5.17.0_eslint@8.12.0+typescript@4.6.3
733 | '@typescript-eslint/utils': 5.17.0_eslint@8.12.0+typescript@4.6.3
734 | debug: 4.3.4
735 | eslint: 8.12.0
736 | functional-red-black-tree: 1.0.1
737 | ignore: 5.2.0
738 | regexpp: 3.2.0
739 | semver: 7.3.5
740 | tsutils: 3.21.0_typescript@4.6.3
741 | typescript: 4.6.3
742 | transitivePeerDependencies:
743 | - supports-color
744 | dev: true
745 |
746 | /@typescript-eslint/parser/5.17.0_eslint@8.12.0+typescript@4.6.3:
747 | resolution: {integrity: sha512-aRzW9Jg5Rlj2t2/crzhA2f23SIYFlF9mchGudyP0uiD6SenIxzKoLjwzHbafgHn39dNV/TV7xwQkLfFTZlJ4ig==}
748 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
749 | peerDependencies:
750 | eslint: ^6.0.0 || ^7.0.0 || ^8.0.0
751 | typescript: '*'
752 | peerDependenciesMeta:
753 | typescript:
754 | optional: true
755 | dependencies:
756 | '@typescript-eslint/scope-manager': 5.17.0
757 | '@typescript-eslint/types': 5.17.0
758 | '@typescript-eslint/typescript-estree': 5.17.0_typescript@4.6.3
759 | debug: 4.3.4
760 | eslint: 8.12.0
761 | typescript: 4.6.3
762 | transitivePeerDependencies:
763 | - supports-color
764 | dev: true
765 |
766 | /@typescript-eslint/scope-manager/5.17.0:
767 | resolution: {integrity: sha512-062iCYQF/doQ9T2WWfJohQKKN1zmmXVfAcS3xaiialiw8ZUGy05Em6QVNYJGO34/sU1a7a+90U3dUNfqUDHr3w==}
768 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
769 | dependencies:
770 | '@typescript-eslint/types': 5.17.0
771 | '@typescript-eslint/visitor-keys': 5.17.0
772 | dev: true
773 |
774 | /@typescript-eslint/type-utils/5.17.0_eslint@8.12.0+typescript@4.6.3:
775 | resolution: {integrity: sha512-3hU0RynUIlEuqMJA7dragb0/75gZmwNwFf/QJokWzPehTZousP/MNifVSgjxNcDCkM5HI2K22TjQWUmmHUINSg==}
776 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
777 | peerDependencies:
778 | eslint: '*'
779 | typescript: '*'
780 | peerDependenciesMeta:
781 | typescript:
782 | optional: true
783 | dependencies:
784 | '@typescript-eslint/utils': 5.17.0_eslint@8.12.0+typescript@4.6.3
785 | debug: 4.3.4
786 | eslint: 8.12.0
787 | tsutils: 3.21.0_typescript@4.6.3
788 | typescript: 4.6.3
789 | transitivePeerDependencies:
790 | - supports-color
791 | dev: true
792 |
793 | /@typescript-eslint/types/5.17.0:
794 | resolution: {integrity: sha512-AgQ4rWzmCxOZLioFEjlzOI3Ch8giDWx8aUDxyNw9iOeCvD3GEYAB7dxWGQy4T/rPVe8iPmu73jPHuaSqcjKvxw==}
795 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
796 | dev: true
797 |
798 | /@typescript-eslint/typescript-estree/5.17.0_typescript@4.6.3:
799 | resolution: {integrity: sha512-X1gtjEcmM7Je+qJRhq7ZAAaNXYhTgqMkR10euC4Si6PIjb+kwEQHSxGazXUQXFyqfEXdkGf6JijUu5R0uceQzg==}
800 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
801 | peerDependencies:
802 | typescript: '*'
803 | peerDependenciesMeta:
804 | typescript:
805 | optional: true
806 | dependencies:
807 | '@typescript-eslint/types': 5.17.0
808 | '@typescript-eslint/visitor-keys': 5.17.0
809 | debug: 4.3.4
810 | globby: 11.1.0
811 | is-glob: 4.0.3
812 | semver: 7.3.5
813 | tsutils: 3.21.0_typescript@4.6.3
814 | typescript: 4.6.3
815 | transitivePeerDependencies:
816 | - supports-color
817 | dev: true
818 |
819 | /@typescript-eslint/utils/5.17.0_eslint@8.12.0+typescript@4.6.3:
820 | resolution: {integrity: sha512-DVvndq1QoxQH+hFv+MUQHrrWZ7gQ5KcJzyjhzcqB1Y2Xes1UQQkTRPUfRpqhS8mhTWsSb2+iyvDW1Lef5DD7vA==}
821 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
822 | peerDependencies:
823 | eslint: ^6.0.0 || ^7.0.0 || ^8.0.0
824 | dependencies:
825 | '@types/json-schema': 7.0.11
826 | '@typescript-eslint/scope-manager': 5.17.0
827 | '@typescript-eslint/types': 5.17.0
828 | '@typescript-eslint/typescript-estree': 5.17.0_typescript@4.6.3
829 | eslint: 8.12.0
830 | eslint-scope: 5.1.1
831 | eslint-utils: 3.0.0_eslint@8.12.0
832 | transitivePeerDependencies:
833 | - supports-color
834 | - typescript
835 | dev: true
836 |
837 | /@typescript-eslint/visitor-keys/5.17.0:
838 | resolution: {integrity: sha512-6K/zlc4OfCagUu7Am/BD5k8PSWQOgh34Nrv9Rxe2tBzlJ7uOeJ/h7ugCGDCeEZHT6k2CJBhbk9IsbkPI0uvUkA==}
839 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
840 | dependencies:
841 | '@typescript-eslint/types': 5.17.0
842 | eslint-visitor-keys: 3.3.0
843 | dev: true
844 |
845 | /abab/2.0.5:
846 | resolution: {integrity: sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q==}
847 | dev: true
848 |
849 | /acorn-globals/6.0.0:
850 | resolution: {integrity: sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg==}
851 | dependencies:
852 | acorn: 7.4.1
853 | acorn-walk: 7.2.0
854 | dev: true
855 |
856 | /acorn-jsx/5.3.2_acorn@8.7.0:
857 | resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==}
858 | peerDependencies:
859 | acorn: ^6.0.0 || ^7.0.0 || ^8.0.0
860 | dependencies:
861 | acorn: 8.7.0
862 | dev: true
863 |
864 | /acorn-walk/7.2.0:
865 | resolution: {integrity: sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==}
866 | engines: {node: '>=0.4.0'}
867 | dev: true
868 |
869 | /acorn/7.4.1:
870 | resolution: {integrity: sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==}
871 | engines: {node: '>=0.4.0'}
872 | hasBin: true
873 | dev: true
874 |
875 | /acorn/8.7.0:
876 | resolution: {integrity: sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ==}
877 | engines: {node: '>=0.4.0'}
878 | hasBin: true
879 | dev: true
880 |
881 | /agent-base/6.0.2:
882 | resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==}
883 | engines: {node: '>= 6.0.0'}
884 | dependencies:
885 | debug: 4.3.4
886 | transitivePeerDependencies:
887 | - supports-color
888 | dev: true
889 |
890 | /aggregate-error/3.1.0:
891 | resolution: {integrity: sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==}
892 | engines: {node: '>=8'}
893 | dependencies:
894 | clean-stack: 2.2.0
895 | indent-string: 4.0.0
896 | dev: true
897 |
898 | /ajv/6.12.6:
899 | resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==}
900 | dependencies:
901 | fast-deep-equal: 3.1.3
902 | fast-json-stable-stringify: 2.1.0
903 | json-schema-traverse: 0.4.1
904 | uri-js: 4.4.1
905 | dev: true
906 |
907 | /ansi-colors/4.1.1:
908 | resolution: {integrity: sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==}
909 | engines: {node: '>=6'}
910 | dev: true
911 |
912 | /ansi-escapes/4.3.2:
913 | resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==}
914 | engines: {node: '>=8'}
915 | dependencies:
916 | type-fest: 0.21.3
917 | dev: true
918 |
919 | /ansi-regex/5.0.1:
920 | resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==}
921 | engines: {node: '>=8'}
922 | dev: true
923 |
924 | /ansi-styles/3.2.1:
925 | resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==}
926 | engines: {node: '>=4'}
927 | dependencies:
928 | color-convert: 1.9.3
929 | dev: true
930 |
931 | /ansi-styles/4.3.0:
932 | resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==}
933 | engines: {node: '>=8'}
934 | dependencies:
935 | color-convert: 2.0.1
936 | dev: true
937 |
938 | /anymatch/3.1.2:
939 | resolution: {integrity: sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==}
940 | engines: {node: '>= 8'}
941 | dependencies:
942 | normalize-path: 3.0.0
943 | picomatch: 2.3.1
944 | dev: true
945 |
946 | /arch/2.2.0:
947 | resolution: {integrity: sha512-Of/R0wqp83cgHozfIYLbBMnej79U/SVGOOyuB3VVFv1NRM/PSFMK12x9KVtiYzJqmnU5WR2qp0Z5rHb7sWGnFQ==}
948 | dev: true
949 |
950 | /argparse/2.0.1:
951 | resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==}
952 | dev: true
953 |
954 | /aria-query/4.2.2:
955 | resolution: {integrity: sha512-o/HelwhuKpTj/frsOsbNLNgnNGVIFsVP/SW2BSF14gVl7kAfMOJ6/8wUAUvG1R1NHKrfG+2sHZTu0yauT1qBrA==}
956 | engines: {node: '>=6.0'}
957 | dependencies:
958 | '@babel/runtime': 7.17.8
959 | '@babel/runtime-corejs3': 7.17.8
960 | dev: true
961 |
962 | /array-includes/3.1.4:
963 | resolution: {integrity: sha512-ZTNSQkmWumEbiHO2GF4GmWxYVTiQyJy2XOTa15sdQSrvKn7l+180egQMqlrMOUMCyLMD7pmyQe4mMDUT6Behrw==}
964 | engines: {node: '>= 0.4'}
965 | dependencies:
966 | call-bind: 1.0.2
967 | define-properties: 1.1.3
968 | es-abstract: 1.19.2
969 | get-intrinsic: 1.1.1
970 | is-string: 1.0.7
971 | dev: true
972 |
973 | /array-union/2.1.0:
974 | resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==}
975 | engines: {node: '>=8'}
976 | dev: true
977 |
978 | /array.prototype.flat/1.2.5:
979 | resolution: {integrity: sha512-KaYU+S+ndVqyUnignHftkwc58o3uVU1jzczILJ1tN2YaIZpFIKBiP/x/j97E5MVPsaCloPbqWLB/8qCTVvT2qg==}
980 | engines: {node: '>= 0.4'}
981 | dependencies:
982 | call-bind: 1.0.2
983 | define-properties: 1.1.3
984 | es-abstract: 1.19.2
985 | dev: true
986 |
987 | /asn1/0.2.6:
988 | resolution: {integrity: sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==}
989 | dependencies:
990 | safer-buffer: 2.1.2
991 | dev: true
992 |
993 | /assert-plus/1.0.0:
994 | resolution: {integrity: sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=}
995 | engines: {node: '>=0.8'}
996 | dev: true
997 |
998 | /assertion-error/1.1.0:
999 | resolution: {integrity: sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==}
1000 | dev: true
1001 |
1002 | /astral-regex/2.0.0:
1003 | resolution: {integrity: sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==}
1004 | engines: {node: '>=8'}
1005 | dev: true
1006 |
1007 | /async/3.2.3:
1008 | resolution: {integrity: sha512-spZRyzKL5l5BZQrr/6m/SqFdBN0q3OCI0f9rjfBzCMBIP4p75P620rR3gTmaksNOhmzgdxcaxdNfMy6anrbM0g==}
1009 | dev: true
1010 |
1011 | /asynckit/0.4.0:
1012 | resolution: {integrity: sha1-x57Zf380y48robyXkLzDZkdLS3k=}
1013 | dev: true
1014 |
1015 | /at-least-node/1.0.0:
1016 | resolution: {integrity: sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==}
1017 | engines: {node: '>= 4.0.0'}
1018 | dev: true
1019 |
1020 | /aws-sign2/0.7.0:
1021 | resolution: {integrity: sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=}
1022 | dev: true
1023 |
1024 | /aws4/1.11.0:
1025 | resolution: {integrity: sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==}
1026 | dev: true
1027 |
1028 | /babel-plugin-jsx-dom-expressions/0.32.11_@babel+core@7.17.8:
1029 | resolution: {integrity: sha512-hytqY33SGW6B3obSLt8K5X510UwtNkTktCCWgwba+QOOV0CowDFiqeL+0ru895FLacFaYANHFTu1y76dg3GVtw==}
1030 | dependencies:
1031 | '@babel/helper-module-imports': 7.16.0
1032 | '@babel/plugin-syntax-jsx': 7.16.7_@babel+core@7.17.8
1033 | '@babel/types': 7.17.0
1034 | html-entities: 2.3.2
1035 | transitivePeerDependencies:
1036 | - '@babel/core'
1037 | dev: true
1038 |
1039 | /babel-preset-solid/1.3.13_@babel+core@7.17.8:
1040 | resolution: {integrity: sha512-MZnmsceI9yiHlwwFCSALTJhadk2eea/+2UP4ec4jkPZFR+XRKTLoIwRkrBh7uLtvHF+3lHGyUaXtZukOmmUwhA==}
1041 | dependencies:
1042 | babel-plugin-jsx-dom-expressions: 0.32.11_@babel+core@7.17.8
1043 | transitivePeerDependencies:
1044 | - '@babel/core'
1045 | dev: true
1046 |
1047 | /balanced-match/1.0.2:
1048 | resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==}
1049 | dev: true
1050 |
1051 | /base64-js/1.5.1:
1052 | resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==}
1053 | dev: true
1054 |
1055 | /bcrypt-pbkdf/1.0.2:
1056 | resolution: {integrity: sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=}
1057 | dependencies:
1058 | tweetnacl: 0.14.5
1059 | dev: true
1060 |
1061 | /binary-extensions/2.2.0:
1062 | resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==}
1063 | engines: {node: '>=8'}
1064 | dev: true
1065 |
1066 | /blob-util/2.0.2:
1067 | resolution: {integrity: sha512-T7JQa+zsXXEa6/8ZhHcQEW1UFfVM49Ts65uBkFL6fz2QmrElqmbajIDJvuA0tEhRe5eIjpV9ZF+0RfZR9voJFQ==}
1068 | dev: true
1069 |
1070 | /bluebird/3.7.2:
1071 | resolution: {integrity: sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==}
1072 | dev: true
1073 |
1074 | /brace-expansion/1.1.11:
1075 | resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==}
1076 | dependencies:
1077 | balanced-match: 1.0.2
1078 | concat-map: 0.0.1
1079 | dev: true
1080 |
1081 | /braces/3.0.2:
1082 | resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==}
1083 | engines: {node: '>=8'}
1084 | dependencies:
1085 | fill-range: 7.0.1
1086 | dev: true
1087 |
1088 | /browser-process-hrtime/1.0.0:
1089 | resolution: {integrity: sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==}
1090 | dev: true
1091 |
1092 | /browserslist/4.20.2:
1093 | resolution: {integrity: sha512-CQOBCqp/9pDvDbx3xfMi+86pr4KXIf2FDkTTdeuYw8OxS9t898LA1Khq57gtufFILXpfgsSx5woNgsBgvGjpsA==}
1094 | engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7}
1095 | hasBin: true
1096 | dependencies:
1097 | caniuse-lite: 1.0.30001323
1098 | electron-to-chromium: 1.4.103
1099 | escalade: 3.1.1
1100 | node-releases: 2.0.2
1101 | picocolors: 1.0.0
1102 | dev: true
1103 |
1104 | /buffer-crc32/0.2.13:
1105 | resolution: {integrity: sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=}
1106 | dev: true
1107 |
1108 | /buffer/5.7.1:
1109 | resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==}
1110 | dependencies:
1111 | base64-js: 1.5.1
1112 | ieee754: 1.2.1
1113 | dev: true
1114 |
1115 | /bytes-iec/3.1.1:
1116 | resolution: {integrity: sha512-fey6+4jDK7TFtFg/klGSvNKJctyU7n2aQdnM+CO0ruLPbqqMOM8Tio0Pc+deqUeVKX1tL5DQep1zQ7+37aTAsA==}
1117 | engines: {node: '>= 0.8'}
1118 | dev: true
1119 |
1120 | /c8/7.11.0:
1121 | resolution: {integrity: sha512-XqPyj1uvlHMr+Y1IeRndC2X5P7iJzJlEJwBpCdBbq2JocXOgJfr+JVfJkyNMGROke5LfKrhSFXGFXnwnRJAUJw==}
1122 | engines: {node: '>=10.12.0'}
1123 | hasBin: true
1124 | dependencies:
1125 | '@bcoe/v8-coverage': 0.2.3
1126 | '@istanbuljs/schema': 0.1.3
1127 | find-up: 5.0.0
1128 | foreground-child: 2.0.0
1129 | istanbul-lib-coverage: 3.2.0
1130 | istanbul-lib-report: 3.0.0
1131 | istanbul-reports: 3.1.4
1132 | rimraf: 3.0.2
1133 | test-exclude: 6.0.0
1134 | v8-to-istanbul: 8.1.1
1135 | yargs: 16.2.0
1136 | yargs-parser: 20.2.9
1137 | dev: true
1138 |
1139 | /cachedir/2.3.0:
1140 | resolution: {integrity: sha512-A+Fezp4zxnit6FanDmv9EqXNAi3vt9DWp51/71UEhXukb7QUuvtv9344h91dyAxuTLoSYJFU299qzR3tzwPAhw==}
1141 | engines: {node: '>=6'}
1142 | dev: true
1143 |
1144 | /call-bind/1.0.2:
1145 | resolution: {integrity: sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==}
1146 | dependencies:
1147 | function-bind: 1.1.1
1148 | get-intrinsic: 1.1.1
1149 | dev: true
1150 |
1151 | /callsites/3.1.0:
1152 | resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==}
1153 | engines: {node: '>=6'}
1154 | dev: true
1155 |
1156 | /caniuse-lite/1.0.30001323:
1157 | resolution: {integrity: sha512-e4BF2RlCVELKx8+RmklSEIVub1TWrmdhvA5kEUueummz1XyySW0DVk+3x9HyhU9MuWTa2BhqLgEuEmUwASAdCA==}
1158 | dev: true
1159 |
1160 | /caseless/0.12.0:
1161 | resolution: {integrity: sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=}
1162 | dev: true
1163 |
1164 | /chai/4.3.6:
1165 | resolution: {integrity: sha512-bbcp3YfHCUzMOvKqsztczerVgBKSsEijCySNlHHbX3VG1nskvqjz5Rfso1gGwD6w6oOV3eI60pKuMOV5MV7p3Q==}
1166 | engines: {node: '>=4'}
1167 | dependencies:
1168 | assertion-error: 1.1.0
1169 | check-error: 1.0.2
1170 | deep-eql: 3.0.1
1171 | get-func-name: 2.0.0
1172 | loupe: 2.3.4
1173 | pathval: 1.1.1
1174 | type-detect: 4.0.8
1175 | dev: true
1176 |
1177 | /chalk/2.4.2:
1178 | resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==}
1179 | engines: {node: '>=4'}
1180 | dependencies:
1181 | ansi-styles: 3.2.1
1182 | escape-string-regexp: 1.0.5
1183 | supports-color: 5.5.0
1184 | dev: true
1185 |
1186 | /chalk/4.1.2:
1187 | resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==}
1188 | engines: {node: '>=10'}
1189 | dependencies:
1190 | ansi-styles: 4.3.0
1191 | supports-color: 7.2.0
1192 | dev: true
1193 |
1194 | /check-error/1.0.2:
1195 | resolution: {integrity: sha1-V00xLt2Iu13YkS6Sht1sCu1KrII=}
1196 | dev: true
1197 |
1198 | /check-more-types/2.24.0:
1199 | resolution: {integrity: sha1-FCD/sQ/URNz8ebQ4kbv//TKoRgA=}
1200 | engines: {node: '>= 0.8.0'}
1201 | dev: true
1202 |
1203 | /chokidar/3.5.3:
1204 | resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==}
1205 | engines: {node: '>= 8.10.0'}
1206 | dependencies:
1207 | anymatch: 3.1.2
1208 | braces: 3.0.2
1209 | glob-parent: 5.1.2
1210 | is-binary-path: 2.1.0
1211 | is-glob: 4.0.3
1212 | normalize-path: 3.0.0
1213 | readdirp: 3.6.0
1214 | optionalDependencies:
1215 | fsevents: 2.3.2
1216 | dev: true
1217 |
1218 | /ci-info/3.3.0:
1219 | resolution: {integrity: sha512-riT/3vI5YpVH6/qomlDnJow6TBee2PBKSEpx3O32EGPYbWGIRsIlGRms3Sm74wYE1JMo8RnO04Hb12+v1J5ICw==}
1220 | dev: true
1221 |
1222 | /ci-job-number/1.2.2:
1223 | resolution: {integrity: sha512-CLOGsVDrVamzv8sXJGaILUVI6dsuAkouJP/n6t+OxLPeeA4DDby7zn9SB6EUpa1H7oIKoE+rMmkW80zYsFfUjA==}
1224 | dev: true
1225 |
1226 | /clean-stack/2.2.0:
1227 | resolution: {integrity: sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==}
1228 | engines: {node: '>=6'}
1229 | dev: true
1230 |
1231 | /cli-cursor/3.1.0:
1232 | resolution: {integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==}
1233 | engines: {node: '>=8'}
1234 | dependencies:
1235 | restore-cursor: 3.1.0
1236 | dev: true
1237 |
1238 | /cli-table3/0.6.1:
1239 | resolution: {integrity: sha512-w0q/enDHhPLq44ovMGdQeeDLvwxwavsJX7oQGYt/LrBlYsyaxyDnp6z3QzFut/6kLLKnlcUVJLrpB7KBfgG/RA==}
1240 | engines: {node: 10.* || >= 12.*}
1241 | dependencies:
1242 | string-width: 4.2.3
1243 | optionalDependencies:
1244 | colors: 1.4.0
1245 | dev: true
1246 |
1247 | /cli-truncate/2.1.0:
1248 | resolution: {integrity: sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==}
1249 | engines: {node: '>=8'}
1250 | dependencies:
1251 | slice-ansi: 3.0.0
1252 | string-width: 4.2.3
1253 | dev: true
1254 |
1255 | /cliui/7.0.4:
1256 | resolution: {integrity: sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==}
1257 | dependencies:
1258 | string-width: 4.2.3
1259 | strip-ansi: 6.0.1
1260 | wrap-ansi: 7.0.0
1261 | dev: true
1262 |
1263 | /color-convert/1.9.3:
1264 | resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==}
1265 | dependencies:
1266 | color-name: 1.1.3
1267 | dev: true
1268 |
1269 | /color-convert/2.0.1:
1270 | resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==}
1271 | engines: {node: '>=7.0.0'}
1272 | dependencies:
1273 | color-name: 1.1.4
1274 | dev: true
1275 |
1276 | /color-name/1.1.3:
1277 | resolution: {integrity: sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=}
1278 | dev: true
1279 |
1280 | /color-name/1.1.4:
1281 | resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==}
1282 | dev: true
1283 |
1284 | /colorette/2.0.16:
1285 | resolution: {integrity: sha512-hUewv7oMjCp+wkBv5Rm0v87eJhq4woh5rSR+42YSQJKecCqgIqNkZ6lAlQms/BwHPJA5NKMRlpxPRv0n8HQW6g==}
1286 | dev: true
1287 |
1288 | /colors/1.4.0:
1289 | resolution: {integrity: sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==}
1290 | engines: {node: '>=0.1.90'}
1291 | requiresBuild: true
1292 | dev: true
1293 | optional: true
1294 |
1295 | /combined-stream/1.0.8:
1296 | resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==}
1297 | engines: {node: '>= 0.8'}
1298 | dependencies:
1299 | delayed-stream: 1.0.0
1300 | dev: true
1301 |
1302 | /commander/5.1.0:
1303 | resolution: {integrity: sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==}
1304 | engines: {node: '>= 6'}
1305 | dev: true
1306 |
1307 | /common-tags/1.8.2:
1308 | resolution: {integrity: sha512-gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA==}
1309 | engines: {node: '>=4.0.0'}
1310 | dev: true
1311 |
1312 | /concat-map/0.0.1:
1313 | resolution: {integrity: sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=}
1314 | dev: true
1315 |
1316 | /convert-source-map/1.8.0:
1317 | resolution: {integrity: sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==}
1318 | dependencies:
1319 | safe-buffer: 5.1.2
1320 | dev: true
1321 |
1322 | /core-js-pure/3.21.1:
1323 | resolution: {integrity: sha512-12VZfFIu+wyVbBebyHmRTuEE/tZrB4tJToWcwAMcsp3h4+sHR+fMJWbKpYiCRWlhFBq+KNyO8rIV9rTkeVmznQ==}
1324 | requiresBuild: true
1325 | dev: true
1326 |
1327 | /core-util-is/1.0.2:
1328 | resolution: {integrity: sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=}
1329 | dev: true
1330 |
1331 | /cross-spawn/7.0.3:
1332 | resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==}
1333 | engines: {node: '>= 8'}
1334 | dependencies:
1335 | path-key: 3.1.1
1336 | shebang-command: 2.0.0
1337 | which: 2.0.2
1338 | dev: true
1339 |
1340 | /cssom/0.3.8:
1341 | resolution: {integrity: sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==}
1342 | dev: true
1343 |
1344 | /cssom/0.5.0:
1345 | resolution: {integrity: sha512-iKuQcq+NdHqlAcwUY0o/HL69XQrUaQdMjmStJ8JFmUaiiQErlhrmuigkg/CU4E2J0IyUKUrMAgl36TvN67MqTw==}
1346 | dev: true
1347 |
1348 | /cssstyle/2.3.0:
1349 | resolution: {integrity: sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==}
1350 | engines: {node: '>=8'}
1351 | dependencies:
1352 | cssom: 0.3.8
1353 | dev: true
1354 |
1355 | /cypress/9.5.3:
1356 | resolution: {integrity: sha512-ItelIVmqMTnKYbo1JrErhsGgQGjWOxCpHT1TfMvwnIXKXN/OSlPjEK7rbCLYDZhejQL99PmUqul7XORI24Ik0A==}
1357 | engines: {node: '>=12.0.0'}
1358 | hasBin: true
1359 | requiresBuild: true
1360 | dependencies:
1361 | '@cypress/request': 2.88.10
1362 | '@cypress/xvfb': 1.2.4
1363 | '@types/node': 14.18.12
1364 | '@types/sinonjs__fake-timers': 8.1.1
1365 | '@types/sizzle': 2.3.3
1366 | arch: 2.2.0
1367 | blob-util: 2.0.2
1368 | bluebird: 3.7.2
1369 | buffer: 5.7.1
1370 | cachedir: 2.3.0
1371 | chalk: 4.1.2
1372 | check-more-types: 2.24.0
1373 | cli-cursor: 3.1.0
1374 | cli-table3: 0.6.1
1375 | commander: 5.1.0
1376 | common-tags: 1.8.2
1377 | dayjs: 1.11.0
1378 | debug: 4.3.4_supports-color@8.1.1
1379 | enquirer: 2.3.6
1380 | eventemitter2: 6.4.5
1381 | execa: 4.1.0
1382 | executable: 4.1.1
1383 | extract-zip: 2.0.1_supports-color@8.1.1
1384 | figures: 3.2.0
1385 | fs-extra: 9.1.0
1386 | getos: 3.2.1
1387 | is-ci: 3.0.1
1388 | is-installed-globally: 0.4.0
1389 | lazy-ass: 1.6.0
1390 | listr2: 3.14.0_enquirer@2.3.6
1391 | lodash: 4.17.21
1392 | log-symbols: 4.1.0
1393 | minimist: 1.2.6
1394 | ospath: 1.2.2
1395 | pretty-bytes: 5.6.0
1396 | proxy-from-env: 1.0.0
1397 | request-progress: 3.0.0
1398 | semver: 7.3.5
1399 | supports-color: 8.1.1
1400 | tmp: 0.2.1
1401 | untildify: 4.0.0
1402 | yauzl: 2.10.0
1403 | dev: true
1404 |
1405 | /dashdash/1.14.1:
1406 | resolution: {integrity: sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=}
1407 | engines: {node: '>=0.10'}
1408 | dependencies:
1409 | assert-plus: 1.0.0
1410 | dev: true
1411 |
1412 | /data-urls/3.0.1:
1413 | resolution: {integrity: sha512-Ds554NeT5Gennfoo9KN50Vh6tpgtvYEwraYjejXnyTpu1C7oXKxdFk75REooENHE8ndTVOJuv+BEs4/J/xcozw==}
1414 | engines: {node: '>=12'}
1415 | dependencies:
1416 | abab: 2.0.5
1417 | whatwg-mimetype: 3.0.0
1418 | whatwg-url: 10.0.0
1419 | dev: true
1420 |
1421 | /dayjs/1.11.0:
1422 | resolution: {integrity: sha512-JLC809s6Y948/FuCZPm5IX8rRhQwOiyMb2TfVVQEixG7P8Lm/gt5S7yoQZmC8x1UehI9Pb7sksEt4xx14m+7Ug==}
1423 | dev: true
1424 |
1425 | /debug/2.6.9:
1426 | resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==}
1427 | dependencies:
1428 | ms: 2.0.0
1429 | dev: true
1430 |
1431 | /debug/3.2.7:
1432 | resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==}
1433 | dependencies:
1434 | ms: 2.1.3
1435 | dev: true
1436 |
1437 | /debug/4.3.4:
1438 | resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==}
1439 | engines: {node: '>=6.0'}
1440 | peerDependencies:
1441 | supports-color: '*'
1442 | peerDependenciesMeta:
1443 | supports-color:
1444 | optional: true
1445 | dependencies:
1446 | ms: 2.1.2
1447 | dev: true
1448 |
1449 | /debug/4.3.4_supports-color@8.1.1:
1450 | resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==}
1451 | engines: {node: '>=6.0'}
1452 | peerDependencies:
1453 | supports-color: '*'
1454 | peerDependenciesMeta:
1455 | supports-color:
1456 | optional: true
1457 | dependencies:
1458 | ms: 2.1.2
1459 | supports-color: 8.1.1
1460 | dev: true
1461 |
1462 | /decimal.js/10.3.1:
1463 | resolution: {integrity: sha512-V0pfhfr8suzyPGOx3nmq4aHqabehUZn6Ch9kyFpV79TGDTWFmHqUqXdabR7QHqxzrYolF4+tVmJhUG4OURg5dQ==}
1464 | dev: true
1465 |
1466 | /deep-eql/3.0.1:
1467 | resolution: {integrity: sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==}
1468 | engines: {node: '>=0.12'}
1469 | dependencies:
1470 | type-detect: 4.0.8
1471 | dev: true
1472 |
1473 | /deep-is/0.1.4:
1474 | resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==}
1475 | dev: true
1476 |
1477 | /define-properties/1.1.3:
1478 | resolution: {integrity: sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==}
1479 | engines: {node: '>= 0.4'}
1480 | dependencies:
1481 | object-keys: 1.1.1
1482 | dev: true
1483 |
1484 | /delayed-stream/1.0.0:
1485 | resolution: {integrity: sha1-3zrhmayt+31ECqrgsp4icrJOxhk=}
1486 | engines: {node: '>=0.4.0'}
1487 | dev: true
1488 |
1489 | /dir-glob/3.0.1:
1490 | resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==}
1491 | engines: {node: '>=8'}
1492 | dependencies:
1493 | path-type: 4.0.0
1494 | dev: true
1495 |
1496 | /doctrine/2.1.0:
1497 | resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==}
1498 | engines: {node: '>=0.10.0'}
1499 | dependencies:
1500 | esutils: 2.0.3
1501 | dev: true
1502 |
1503 | /doctrine/3.0.0:
1504 | resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==}
1505 | engines: {node: '>=6.0.0'}
1506 | dependencies:
1507 | esutils: 2.0.3
1508 | dev: true
1509 |
1510 | /dom-accessibility-api/0.5.13:
1511 | resolution: {integrity: sha512-R305kwb5CcMDIpSHUnLyIAp7SrSPBx6F0VfQFB3M75xVMHhXJJIdePYgbPPh1o57vCHNu5QztokWUPsLjWzFqw==}
1512 | dev: true
1513 |
1514 | /domexception/4.0.0:
1515 | resolution: {integrity: sha512-A2is4PLG+eeSfoTMA95/s4pvAoSo2mKtiM5jlHkAVewmiO8ISFTFKZjH7UAM1Atli/OT/7JHOrJRJiMKUZKYBw==}
1516 | engines: {node: '>=12'}
1517 | dependencies:
1518 | webidl-conversions: 7.0.0
1519 | dev: true
1520 |
1521 | /ecc-jsbn/0.1.2:
1522 | resolution: {integrity: sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=}
1523 | dependencies:
1524 | jsbn: 0.1.1
1525 | safer-buffer: 2.1.2
1526 | dev: true
1527 |
1528 | /electron-to-chromium/1.4.103:
1529 | resolution: {integrity: sha512-c/uKWR1Z/W30Wy/sx3dkZoj4BijbXX85QKWu9jJfjho3LBAXNEGAEW3oWiGb+dotA6C6BzCTxL2/aLes7jlUeg==}
1530 | dev: true
1531 |
1532 | /emoji-regex/8.0.0:
1533 | resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==}
1534 | dev: true
1535 |
1536 | /end-of-stream/1.4.4:
1537 | resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==}
1538 | dependencies:
1539 | once: 1.4.0
1540 | dev: true
1541 |
1542 | /enquirer/2.3.6:
1543 | resolution: {integrity: sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==}
1544 | engines: {node: '>=8.6'}
1545 | dependencies:
1546 | ansi-colors: 4.1.1
1547 | dev: true
1548 |
1549 | /es-abstract/1.19.2:
1550 | resolution: {integrity: sha512-gfSBJoZdlL2xRiOCy0g8gLMryhoe1TlimjzU99L/31Z8QEGIhVQI+EWwt5lT+AuU9SnorVupXFqqOGqGfsyO6w==}
1551 | engines: {node: '>= 0.4'}
1552 | dependencies:
1553 | call-bind: 1.0.2
1554 | es-to-primitive: 1.2.1
1555 | function-bind: 1.1.1
1556 | get-intrinsic: 1.1.1
1557 | get-symbol-description: 1.0.0
1558 | has: 1.0.3
1559 | has-symbols: 1.0.3
1560 | internal-slot: 1.0.3
1561 | is-callable: 1.2.4
1562 | is-negative-zero: 2.0.2
1563 | is-regex: 1.1.4
1564 | is-shared-array-buffer: 1.0.1
1565 | is-string: 1.0.7
1566 | is-weakref: 1.0.2
1567 | object-inspect: 1.12.0
1568 | object-keys: 1.1.1
1569 | object.assign: 4.1.2
1570 | string.prototype.trimend: 1.0.4
1571 | string.prototype.trimstart: 1.0.4
1572 | unbox-primitive: 1.0.1
1573 | dev: true
1574 |
1575 | /es-to-primitive/1.2.1:
1576 | resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==}
1577 | engines: {node: '>= 0.4'}
1578 | dependencies:
1579 | is-callable: 1.2.4
1580 | is-date-object: 1.0.5
1581 | is-symbol: 1.0.4
1582 | dev: true
1583 |
1584 | /esbuild-android-64/0.14.29:
1585 | resolution: {integrity: sha512-tJuaN33SVZyiHxRaVTo1pwW+rn3qetJX/SRuc/83rrKYtyZG0XfsQ1ao1nEudIt9w37ZSNXR236xEfm2C43sbw==}
1586 | engines: {node: '>=12'}
1587 | cpu: [x64]
1588 | os: [android]
1589 | requiresBuild: true
1590 | dev: true
1591 | optional: true
1592 |
1593 | /esbuild-android-arm64/0.14.29:
1594 | resolution: {integrity: sha512-D74dCv6yYnMTlofVy1JKiLM5JdVSQd60/rQfJSDP9qvRAI0laPXIG/IXY1RG6jobmFMUfL38PbFnCqyI/6fPXg==}
1595 | engines: {node: '>=12'}
1596 | cpu: [arm64]
1597 | os: [android]
1598 | requiresBuild: true
1599 | dev: true
1600 | optional: true
1601 |
1602 | /esbuild-darwin-64/0.14.29:
1603 | resolution: {integrity: sha512-+CJaRvfTkzs9t+CjGa0Oa28WoXa7EeLutQhxus+fFcu0MHhsBhlmeWHac3Cc/Sf/xPi1b2ccDFfzGYJCfV0RrA==}
1604 | engines: {node: '>=12'}
1605 | cpu: [x64]
1606 | os: [darwin]
1607 | requiresBuild: true
1608 | dev: true
1609 | optional: true
1610 |
1611 | /esbuild-darwin-arm64/0.14.29:
1612 | resolution: {integrity: sha512-5Wgz/+zK+8X2ZW7vIbwoZ613Vfr4A8HmIs1XdzRmdC1kG0n5EG5fvKk/jUxhNlrYPx1gSY7XadQ3l4xAManPSw==}
1613 | engines: {node: '>=12'}
1614 | cpu: [arm64]
1615 | os: [darwin]
1616 | requiresBuild: true
1617 | dev: true
1618 | optional: true
1619 |
1620 | /esbuild-freebsd-64/0.14.29:
1621 | resolution: {integrity: sha512-VTfS7Bm9QA12JK1YXF8+WyYOfvD7WMpbArtDj6bGJ5Sy5xp01c/q70Arkn596aGcGj0TvQRplaaCIrfBG1Wdtg==}
1622 | engines: {node: '>=12'}
1623 | cpu: [x64]
1624 | os: [freebsd]
1625 | requiresBuild: true
1626 | dev: true
1627 | optional: true
1628 |
1629 | /esbuild-freebsd-arm64/0.14.29:
1630 | resolution: {integrity: sha512-WP5L4ejwLWWvd3Fo2J5mlXvG3zQHaw5N1KxFGnUc4+2ZFZknP0ST63i0IQhpJLgEJwnQpXv2uZlU1iWZjFqEIg==}
1631 | engines: {node: '>=12'}
1632 | cpu: [arm64]
1633 | os: [freebsd]
1634 | requiresBuild: true
1635 | dev: true
1636 | optional: true
1637 |
1638 | /esbuild-linux-32/0.14.29:
1639 | resolution: {integrity: sha512-4myeOvFmQBWdI2U1dEBe2DCSpaZyjdQtmjUY11Zu2eQg4ynqLb8Y5mNjNU9UN063aVsCYYfbs8jbken/PjyidA==}
1640 | engines: {node: '>=12'}
1641 | cpu: [ia32]
1642 | os: [linux]
1643 | requiresBuild: true
1644 | dev: true
1645 | optional: true
1646 |
1647 | /esbuild-linux-64/0.14.29:
1648 | resolution: {integrity: sha512-iaEuLhssReAKE7HMwxwFJFn7D/EXEs43fFy5CJeA4DGmU6JHh0qVJD2p/UP46DvUXLRKXsXw0i+kv5TdJ1w5pg==}
1649 | engines: {node: '>=12'}
1650 | cpu: [x64]
1651 | os: [linux]
1652 | requiresBuild: true
1653 | dev: true
1654 | optional: true
1655 |
1656 | /esbuild-linux-arm/0.14.29:
1657 | resolution: {integrity: sha512-OXa9D9QL1hwrAnYYAHt/cXAuSCmoSqYfTW/0CEY0LgJNyTxJKtqc5mlwjAZAvgyjmha0auS/sQ0bXfGf2wAokQ==}
1658 | engines: {node: '>=12'}
1659 | cpu: [arm]
1660 | os: [linux]
1661 | requiresBuild: true
1662 | dev: true
1663 | optional: true
1664 |
1665 | /esbuild-linux-arm64/0.14.29:
1666 | resolution: {integrity: sha512-KYf7s8wDfUy+kjKymW3twyGT14OABjGHRkm9gPJ0z4BuvqljfOOUbq9qT3JYFnZJHOgkr29atT//hcdD0Pi7Mw==}
1667 | engines: {node: '>=12'}
1668 | cpu: [arm64]
1669 | os: [linux]
1670 | requiresBuild: true
1671 | dev: true
1672 | optional: true
1673 |
1674 | /esbuild-linux-mips64le/0.14.29:
1675 | resolution: {integrity: sha512-05jPtWQMsZ1aMGfHOvnR5KrTvigPbU35BtuItSSWLI2sJu5VrM8Pr9Owym4wPvA4153DFcOJ1EPN/2ujcDt54g==}
1676 | engines: {node: '>=12'}
1677 | cpu: [mips64el]
1678 | os: [linux]
1679 | requiresBuild: true
1680 | dev: true
1681 | optional: true
1682 |
1683 | /esbuild-linux-ppc64le/0.14.29:
1684 | resolution: {integrity: sha512-FYhBqn4Ir9xG+f6B5VIQVbRuM4S6qwy29dDNYFPoxLRnwTEKToIYIUESN1qHyUmIbfO0YB4phG2JDV2JDN9Kgw==}
1685 | engines: {node: '>=12'}
1686 | cpu: [ppc64]
1687 | os: [linux]
1688 | requiresBuild: true
1689 | dev: true
1690 | optional: true
1691 |
1692 | /esbuild-linux-riscv64/0.14.29:
1693 | resolution: {integrity: sha512-eqZMqPehkb4nZcffnuOpXJQdGURGd6GXQ4ZsDHSWyIUaA+V4FpMBe+5zMPtXRD2N4BtyzVvnBko6K8IWWr36ew==}
1694 | engines: {node: '>=12'}
1695 | cpu: [riscv64]
1696 | os: [linux]
1697 | requiresBuild: true
1698 | dev: true
1699 | optional: true
1700 |
1701 | /esbuild-linux-s390x/0.14.29:
1702 | resolution: {integrity: sha512-o7EYajF1rC/4ho7kpSG3gENVx0o2SsHm7cJ5fvewWB/TEczWU7teDgusGSujxCYcMottE3zqa423VTglNTYhjg==}
1703 | engines: {node: '>=12'}
1704 | cpu: [s390x]
1705 | os: [linux]
1706 | requiresBuild: true
1707 | dev: true
1708 | optional: true
1709 |
1710 | /esbuild-netbsd-64/0.14.29:
1711 | resolution: {integrity: sha512-/esN6tb6OBSot6+JxgeOZeBk6P8V/WdR3GKBFeFpSqhgw4wx7xWUqPrdx4XNpBVO7X4Ipw9SAqgBrWHlXfddww==}
1712 | engines: {node: '>=12'}
1713 | cpu: [x64]
1714 | os: [netbsd]
1715 | requiresBuild: true
1716 | dev: true
1717 | optional: true
1718 |
1719 | /esbuild-openbsd-64/0.14.29:
1720 | resolution: {integrity: sha512-jUTdDzhEKrD0pLpjmk0UxwlfNJNg/D50vdwhrVcW/D26Vg0hVbthMfb19PJMatzclbK7cmgk1Nu0eNS+abzoHw==}
1721 | engines: {node: '>=12'}
1722 | cpu: [x64]
1723 | os: [openbsd]
1724 | requiresBuild: true
1725 | dev: true
1726 | optional: true
1727 |
1728 | /esbuild-sunos-64/0.14.29:
1729 | resolution: {integrity: sha512-EfhQN/XO+TBHTbkxwsxwA7EfiTHFe+MNDfxcf0nj97moCppD9JHPq48MLtOaDcuvrTYOcrMdJVeqmmeQ7doTcg==}
1730 | engines: {node: '>=12'}
1731 | cpu: [x64]
1732 | os: [sunos]
1733 | requiresBuild: true
1734 | dev: true
1735 | optional: true
1736 |
1737 | /esbuild-windows-32/0.14.29:
1738 | resolution: {integrity: sha512-uoyb0YAJ6uWH4PYuYjfGNjvgLlb5t6b3zIaGmpWPOjgpr1Nb3SJtQiK4YCPGhONgfg2v6DcJgSbOteuKXhwqAw==}
1739 | engines: {node: '>=12'}
1740 | cpu: [ia32]
1741 | os: [win32]
1742 | requiresBuild: true
1743 | dev: true
1744 | optional: true
1745 |
1746 | /esbuild-windows-64/0.14.29:
1747 | resolution: {integrity: sha512-X9cW/Wl95QjsH8WUyr3NqbmfdU72jCp71cH3pwPvI4CgBM2IeOUDdbt6oIGljPu2bf5eGDIo8K3Y3vvXCCTd8A==}
1748 | engines: {node: '>=12'}
1749 | cpu: [x64]
1750 | os: [win32]
1751 | requiresBuild: true
1752 | dev: true
1753 | optional: true
1754 |
1755 | /esbuild-windows-arm64/0.14.29:
1756 | resolution: {integrity: sha512-+O/PI+68fbUZPpl3eXhqGHTGK7DjLcexNnyJqtLZXOFwoAjaXlS5UBCvVcR3o2va+AqZTj8o6URaz8D2K+yfQQ==}
1757 | engines: {node: '>=12'}
1758 | cpu: [arm64]
1759 | os: [win32]
1760 | requiresBuild: true
1761 | dev: true
1762 | optional: true
1763 |
1764 | /esbuild/0.14.29:
1765 | resolution: {integrity: sha512-SQS8cO8xFEqevYlrHt6exIhK853Me4nZ4aMW6ieysInLa0FMAL+AKs87HYNRtR2YWRcEIqoXAHh+Ytt5/66qpg==}
1766 | engines: {node: '>=12'}
1767 | hasBin: true
1768 | requiresBuild: true
1769 | optionalDependencies:
1770 | esbuild-android-64: 0.14.29
1771 | esbuild-android-arm64: 0.14.29
1772 | esbuild-darwin-64: 0.14.29
1773 | esbuild-darwin-arm64: 0.14.29
1774 | esbuild-freebsd-64: 0.14.29
1775 | esbuild-freebsd-arm64: 0.14.29
1776 | esbuild-linux-32: 0.14.29
1777 | esbuild-linux-64: 0.14.29
1778 | esbuild-linux-arm: 0.14.29
1779 | esbuild-linux-arm64: 0.14.29
1780 | esbuild-linux-mips64le: 0.14.29
1781 | esbuild-linux-ppc64le: 0.14.29
1782 | esbuild-linux-riscv64: 0.14.29
1783 | esbuild-linux-s390x: 0.14.29
1784 | esbuild-netbsd-64: 0.14.29
1785 | esbuild-openbsd-64: 0.14.29
1786 | esbuild-sunos-64: 0.14.29
1787 | esbuild-windows-32: 0.14.29
1788 | esbuild-windows-64: 0.14.29
1789 | esbuild-windows-arm64: 0.14.29
1790 | dev: true
1791 |
1792 | /escalade/3.1.1:
1793 | resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==}
1794 | engines: {node: '>=6'}
1795 | dev: true
1796 |
1797 | /escape-string-regexp/1.0.5:
1798 | resolution: {integrity: sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=}
1799 | engines: {node: '>=0.8.0'}
1800 | dev: true
1801 |
1802 | /escape-string-regexp/4.0.0:
1803 | resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==}
1804 | engines: {node: '>=10'}
1805 | dev: true
1806 |
1807 | /escodegen/2.0.0:
1808 | resolution: {integrity: sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw==}
1809 | engines: {node: '>=6.0'}
1810 | hasBin: true
1811 | dependencies:
1812 | esprima: 4.0.1
1813 | estraverse: 5.3.0
1814 | esutils: 2.0.3
1815 | optionator: 0.8.3
1816 | optionalDependencies:
1817 | source-map: 0.6.1
1818 | dev: true
1819 |
1820 | /eslint-config-prettier/8.5.0_eslint@8.12.0:
1821 | resolution: {integrity: sha512-obmWKLUNCnhtQRKc+tmnYuQl0pFU1ibYJQ5BGhTVB08bHe9wC8qUeG7c08dj9XX+AuPj1YSGSQIHl1pnDHZR0Q==}
1822 | hasBin: true
1823 | peerDependencies:
1824 | eslint: '>=7.0.0'
1825 | dependencies:
1826 | eslint: 8.12.0
1827 | dev: true
1828 |
1829 | /eslint-import-resolver-node/0.3.6:
1830 | resolution: {integrity: sha512-0En0w03NRVMn9Uiyn8YRPDKvWjxCWkslUEhGNTdGx15RvPJYQ+lbOlqrlNI2vEAs4pDYK4f/HN2TbDmk5TP0iw==}
1831 | dependencies:
1832 | debug: 3.2.7
1833 | resolve: 1.22.0
1834 | dev: true
1835 |
1836 | /eslint-module-utils/2.7.3:
1837 | resolution: {integrity: sha512-088JEC7O3lDZM9xGe0RerkOMd0EjFl+Yvd1jPWIkMT5u3H9+HC34mWWPnqPrN13gieT9pBOO+Qt07Nb/6TresQ==}
1838 | engines: {node: '>=4'}
1839 | dependencies:
1840 | debug: 3.2.7
1841 | find-up: 2.1.0
1842 | dev: true
1843 |
1844 | /eslint-plugin-import/2.25.4_eslint@8.12.0:
1845 | resolution: {integrity: sha512-/KJBASVFxpu0xg1kIBn9AUa8hQVnszpwgE7Ld0lKAlx7Ie87yzEzCgSkekt+le/YVhiaosO4Y14GDAOc41nfxA==}
1846 | engines: {node: '>=4'}
1847 | peerDependencies:
1848 | eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8
1849 | dependencies:
1850 | array-includes: 3.1.4
1851 | array.prototype.flat: 1.2.5
1852 | debug: 2.6.9
1853 | doctrine: 2.1.0
1854 | eslint: 8.12.0
1855 | eslint-import-resolver-node: 0.3.6
1856 | eslint-module-utils: 2.7.3
1857 | has: 1.0.3
1858 | is-core-module: 2.8.1
1859 | is-glob: 4.0.3
1860 | minimatch: 3.1.2
1861 | object.values: 1.1.5
1862 | resolve: 1.22.0
1863 | tsconfig-paths: 3.14.1
1864 | dev: true
1865 |
1866 | /eslint-plugin-prettier/4.0.0_b253a92c95b42c3296c682f11cccb3bd:
1867 | resolution: {integrity: sha512-98MqmCJ7vJodoQK359bqQWaxOE0CS8paAz/GgjaZLyex4TTk3g9HugoO89EqWCrFiOqn9EVvcoo7gZzONCWVwQ==}
1868 | engines: {node: '>=6.0.0'}
1869 | peerDependencies:
1870 | eslint: '>=7.28.0'
1871 | eslint-config-prettier: '*'
1872 | prettier: '>=2.0.0'
1873 | peerDependenciesMeta:
1874 | eslint-config-prettier:
1875 | optional: true
1876 | dependencies:
1877 | eslint: 8.12.0
1878 | eslint-config-prettier: 8.5.0_eslint@8.12.0
1879 | prettier: 2.6.1
1880 | prettier-linter-helpers: 1.0.0
1881 | dev: true
1882 |
1883 | /eslint-scope/5.1.1:
1884 | resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==}
1885 | engines: {node: '>=8.0.0'}
1886 | dependencies:
1887 | esrecurse: 4.3.0
1888 | estraverse: 4.3.0
1889 | dev: true
1890 |
1891 | /eslint-scope/7.1.1:
1892 | resolution: {integrity: sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==}
1893 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
1894 | dependencies:
1895 | esrecurse: 4.3.0
1896 | estraverse: 5.3.0
1897 | dev: true
1898 |
1899 | /eslint-utils/3.0.0_eslint@8.12.0:
1900 | resolution: {integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==}
1901 | engines: {node: ^10.0.0 || ^12.0.0 || >= 14.0.0}
1902 | peerDependencies:
1903 | eslint: '>=5'
1904 | dependencies:
1905 | eslint: 8.12.0
1906 | eslint-visitor-keys: 2.1.0
1907 | dev: true
1908 |
1909 | /eslint-visitor-keys/2.1.0:
1910 | resolution: {integrity: sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==}
1911 | engines: {node: '>=10'}
1912 | dev: true
1913 |
1914 | /eslint-visitor-keys/3.3.0:
1915 | resolution: {integrity: sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==}
1916 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
1917 | dev: true
1918 |
1919 | /eslint/8.12.0:
1920 | resolution: {integrity: sha512-it1oBL9alZg1S8UycLm5YDMAkIhtH6FtAzuZs6YvoGVldWjbS08BkAdb/ymP9LlAyq8koANu32U7Ib/w+UNh8Q==}
1921 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
1922 | hasBin: true
1923 | dependencies:
1924 | '@eslint/eslintrc': 1.2.1
1925 | '@humanwhocodes/config-array': 0.9.5
1926 | ajv: 6.12.6
1927 | chalk: 4.1.2
1928 | cross-spawn: 7.0.3
1929 | debug: 4.3.4
1930 | doctrine: 3.0.0
1931 | escape-string-regexp: 4.0.0
1932 | eslint-scope: 7.1.1
1933 | eslint-utils: 3.0.0_eslint@8.12.0
1934 | eslint-visitor-keys: 3.3.0
1935 | espree: 9.3.1
1936 | esquery: 1.4.0
1937 | esutils: 2.0.3
1938 | fast-deep-equal: 3.1.3
1939 | file-entry-cache: 6.0.1
1940 | functional-red-black-tree: 1.0.1
1941 | glob-parent: 6.0.2
1942 | globals: 13.13.0
1943 | ignore: 5.2.0
1944 | import-fresh: 3.3.0
1945 | imurmurhash: 0.1.4
1946 | is-glob: 4.0.3
1947 | js-yaml: 4.1.0
1948 | json-stable-stringify-without-jsonify: 1.0.1
1949 | levn: 0.4.1
1950 | lodash.merge: 4.6.2
1951 | minimatch: 3.1.2
1952 | natural-compare: 1.4.0
1953 | optionator: 0.9.1
1954 | regexpp: 3.2.0
1955 | strip-ansi: 6.0.1
1956 | strip-json-comments: 3.1.1
1957 | text-table: 0.2.0
1958 | v8-compile-cache: 2.3.0
1959 | transitivePeerDependencies:
1960 | - supports-color
1961 | dev: true
1962 |
1963 | /espree/9.3.1:
1964 | resolution: {integrity: sha512-bvdyLmJMfwkV3NCRl5ZhJf22zBFo1y8bYh3VYb+bfzqNB4Je68P2sSuXyuFquzWLebHpNd2/d5uv7yoP9ISnGQ==}
1965 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
1966 | dependencies:
1967 | acorn: 8.7.0
1968 | acorn-jsx: 5.3.2_acorn@8.7.0
1969 | eslint-visitor-keys: 3.3.0
1970 | dev: true
1971 |
1972 | /esprima/4.0.1:
1973 | resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==}
1974 | engines: {node: '>=4'}
1975 | hasBin: true
1976 | dev: true
1977 |
1978 | /esquery/1.4.0:
1979 | resolution: {integrity: sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==}
1980 | engines: {node: '>=0.10'}
1981 | dependencies:
1982 | estraverse: 5.3.0
1983 | dev: true
1984 |
1985 | /esrecurse/4.3.0:
1986 | resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==}
1987 | engines: {node: '>=4.0'}
1988 | dependencies:
1989 | estraverse: 5.3.0
1990 | dev: true
1991 |
1992 | /estraverse/4.3.0:
1993 | resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==}
1994 | engines: {node: '>=4.0'}
1995 | dev: true
1996 |
1997 | /estraverse/5.3.0:
1998 | resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==}
1999 | engines: {node: '>=4.0'}
2000 | dev: true
2001 |
2002 | /esutils/2.0.3:
2003 | resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==}
2004 | engines: {node: '>=0.10.0'}
2005 | dev: true
2006 |
2007 | /eventemitter2/6.4.5:
2008 | resolution: {integrity: sha512-bXE7Dyc1i6oQElDG0jMRZJrRAn9QR2xyyFGmBdZleNmyQX0FqGYmhZIrIrpPfm/w//LTo4tVQGOGQcGCb5q9uw==}
2009 | dev: true
2010 |
2011 | /execa/4.1.0:
2012 | resolution: {integrity: sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==}
2013 | engines: {node: '>=10'}
2014 | dependencies:
2015 | cross-spawn: 7.0.3
2016 | get-stream: 5.2.0
2017 | human-signals: 1.1.1
2018 | is-stream: 2.0.1
2019 | merge-stream: 2.0.0
2020 | npm-run-path: 4.0.1
2021 | onetime: 5.1.2
2022 | signal-exit: 3.0.7
2023 | strip-final-newline: 2.0.0
2024 | dev: true
2025 |
2026 | /executable/4.1.1:
2027 | resolution: {integrity: sha512-8iA79xD3uAch729dUG8xaaBBFGaEa0wdD2VkYLFHwlqosEj/jT66AzcreRDSgV7ehnNLBW2WR5jIXwGKjVdTLg==}
2028 | engines: {node: '>=4'}
2029 | dependencies:
2030 | pify: 2.3.0
2031 | dev: true
2032 |
2033 | /extend/3.0.2:
2034 | resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==}
2035 | dev: true
2036 |
2037 | /extract-zip/2.0.1_supports-color@8.1.1:
2038 | resolution: {integrity: sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==}
2039 | engines: {node: '>= 10.17.0'}
2040 | hasBin: true
2041 | dependencies:
2042 | debug: 4.3.4_supports-color@8.1.1
2043 | get-stream: 5.2.0
2044 | yauzl: 2.10.0
2045 | optionalDependencies:
2046 | '@types/yauzl': 2.9.2
2047 | transitivePeerDependencies:
2048 | - supports-color
2049 | dev: true
2050 |
2051 | /extsprintf/1.3.0:
2052 | resolution: {integrity: sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=}
2053 | engines: {'0': node >=0.6.0}
2054 | dev: true
2055 |
2056 | /fast-deep-equal/3.1.3:
2057 | resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==}
2058 | dev: true
2059 |
2060 | /fast-diff/1.2.0:
2061 | resolution: {integrity: sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==}
2062 | dev: true
2063 |
2064 | /fast-glob/3.2.11:
2065 | resolution: {integrity: sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==}
2066 | engines: {node: '>=8.6.0'}
2067 | dependencies:
2068 | '@nodelib/fs.stat': 2.0.5
2069 | '@nodelib/fs.walk': 1.2.8
2070 | glob-parent: 5.1.2
2071 | merge2: 1.4.1
2072 | micromatch: 4.0.5
2073 | dev: true
2074 |
2075 | /fast-json-stable-stringify/2.1.0:
2076 | resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==}
2077 | dev: true
2078 |
2079 | /fast-levenshtein/2.0.6:
2080 | resolution: {integrity: sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=}
2081 | dev: true
2082 |
2083 | /fastq/1.13.0:
2084 | resolution: {integrity: sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==}
2085 | dependencies:
2086 | reusify: 1.0.4
2087 | dev: true
2088 |
2089 | /fd-slicer/1.1.0:
2090 | resolution: {integrity: sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4=}
2091 | dependencies:
2092 | pend: 1.2.0
2093 | dev: true
2094 |
2095 | /figures/3.2.0:
2096 | resolution: {integrity: sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==}
2097 | engines: {node: '>=8'}
2098 | dependencies:
2099 | escape-string-regexp: 1.0.5
2100 | dev: true
2101 |
2102 | /file-entry-cache/6.0.1:
2103 | resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==}
2104 | engines: {node: ^10.12.0 || >=12.0.0}
2105 | dependencies:
2106 | flat-cache: 3.0.4
2107 | dev: true
2108 |
2109 | /fill-range/7.0.1:
2110 | resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==}
2111 | engines: {node: '>=8'}
2112 | dependencies:
2113 | to-regex-range: 5.0.1
2114 | dev: true
2115 |
2116 | /find-up/2.1.0:
2117 | resolution: {integrity: sha1-RdG35QbHF93UgndaK3eSCjwMV6c=}
2118 | engines: {node: '>=4'}
2119 | dependencies:
2120 | locate-path: 2.0.0
2121 | dev: true
2122 |
2123 | /find-up/5.0.0:
2124 | resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==}
2125 | engines: {node: '>=10'}
2126 | dependencies:
2127 | locate-path: 6.0.0
2128 | path-exists: 4.0.0
2129 | dev: true
2130 |
2131 | /flat-cache/3.0.4:
2132 | resolution: {integrity: sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==}
2133 | engines: {node: ^10.12.0 || >=12.0.0}
2134 | dependencies:
2135 | flatted: 3.2.5
2136 | rimraf: 3.0.2
2137 | dev: true
2138 |
2139 | /flatted/3.2.5:
2140 | resolution: {integrity: sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg==}
2141 | dev: true
2142 |
2143 | /foreground-child/2.0.0:
2144 | resolution: {integrity: sha512-dCIq9FpEcyQyXKCkyzmlPTFNgrCzPudOe+mhvJU5zAtlBnGVy2yKxtfsxK2tQBThwq225jcvBjpw1Gr40uzZCA==}
2145 | engines: {node: '>=8.0.0'}
2146 | dependencies:
2147 | cross-spawn: 7.0.3
2148 | signal-exit: 3.0.7
2149 | dev: true
2150 |
2151 | /forever-agent/0.6.1:
2152 | resolution: {integrity: sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=}
2153 | dev: true
2154 |
2155 | /form-data/2.3.3:
2156 | resolution: {integrity: sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==}
2157 | engines: {node: '>= 0.12'}
2158 | dependencies:
2159 | asynckit: 0.4.0
2160 | combined-stream: 1.0.8
2161 | mime-types: 2.1.35
2162 | dev: true
2163 |
2164 | /form-data/4.0.0:
2165 | resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==}
2166 | engines: {node: '>= 6'}
2167 | dependencies:
2168 | asynckit: 0.4.0
2169 | combined-stream: 1.0.8
2170 | mime-types: 2.1.35
2171 | dev: true
2172 |
2173 | /fs-extra/9.1.0:
2174 | resolution: {integrity: sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==}
2175 | engines: {node: '>=10'}
2176 | dependencies:
2177 | at-least-node: 1.0.0
2178 | graceful-fs: 4.2.9
2179 | jsonfile: 6.1.0
2180 | universalify: 2.0.0
2181 | dev: true
2182 |
2183 | /fs.realpath/1.0.0:
2184 | resolution: {integrity: sha1-FQStJSMVjKpA20onh8sBQRmU6k8=}
2185 | dev: true
2186 |
2187 | /fsevents/2.3.2:
2188 | resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==}
2189 | engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0}
2190 | os: [darwin]
2191 | requiresBuild: true
2192 | dev: true
2193 | optional: true
2194 |
2195 | /function-bind/1.1.1:
2196 | resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==}
2197 | dev: true
2198 |
2199 | /functional-red-black-tree/1.0.1:
2200 | resolution: {integrity: sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=}
2201 | dev: true
2202 |
2203 | /gensync/1.0.0-beta.2:
2204 | resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==}
2205 | engines: {node: '>=6.9.0'}
2206 | dev: true
2207 |
2208 | /get-caller-file/2.0.5:
2209 | resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==}
2210 | engines: {node: 6.* || 8.* || >= 10.*}
2211 | dev: true
2212 |
2213 | /get-func-name/2.0.0:
2214 | resolution: {integrity: sha1-6td0q+5y4gQJQzoGY2YCPdaIekE=}
2215 | dev: true
2216 |
2217 | /get-intrinsic/1.1.1:
2218 | resolution: {integrity: sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==}
2219 | dependencies:
2220 | function-bind: 1.1.1
2221 | has: 1.0.3
2222 | has-symbols: 1.0.3
2223 | dev: true
2224 |
2225 | /get-port/5.1.1:
2226 | resolution: {integrity: sha512-g/Q1aTSDOxFpchXC4i8ZWvxA1lnPqx/JHqcpIw0/LX9T8x/GBbi6YnlN5nhaKIFkT8oFsscUKgDJYxfwfS6QsQ==}
2227 | engines: {node: '>=8'}
2228 | dev: true
2229 |
2230 | /get-stream/5.2.0:
2231 | resolution: {integrity: sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==}
2232 | engines: {node: '>=8'}
2233 | dependencies:
2234 | pump: 3.0.0
2235 | dev: true
2236 |
2237 | /get-symbol-description/1.0.0:
2238 | resolution: {integrity: sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==}
2239 | engines: {node: '>= 0.4'}
2240 | dependencies:
2241 | call-bind: 1.0.2
2242 | get-intrinsic: 1.1.1
2243 | dev: true
2244 |
2245 | /getos/3.2.1:
2246 | resolution: {integrity: sha512-U56CfOK17OKgTVqozZjUKNdkfEv6jk5WISBJ8SHoagjE6L69zOwl3Z+O8myjY9MEW3i2HPWQBt/LTbCgcC973Q==}
2247 | dependencies:
2248 | async: 3.2.3
2249 | dev: true
2250 |
2251 | /getpass/0.1.7:
2252 | resolution: {integrity: sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=}
2253 | dependencies:
2254 | assert-plus: 1.0.0
2255 | dev: true
2256 |
2257 | /glob-parent/5.1.2:
2258 | resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==}
2259 | engines: {node: '>= 6'}
2260 | dependencies:
2261 | is-glob: 4.0.3
2262 | dev: true
2263 |
2264 | /glob-parent/6.0.2:
2265 | resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==}
2266 | engines: {node: '>=10.13.0'}
2267 | dependencies:
2268 | is-glob: 4.0.3
2269 | dev: true
2270 |
2271 | /glob/7.2.0:
2272 | resolution: {integrity: sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==}
2273 | dependencies:
2274 | fs.realpath: 1.0.0
2275 | inflight: 1.0.6
2276 | inherits: 2.0.4
2277 | minimatch: 3.1.2
2278 | once: 1.4.0
2279 | path-is-absolute: 1.0.1
2280 | dev: true
2281 |
2282 | /global-dirs/3.0.0:
2283 | resolution: {integrity: sha512-v8ho2DS5RiCjftj1nD9NmnfaOzTdud7RRnVd9kFNOjqZbISlx5DQ+OrTkywgd0dIt7oFCvKetZSHoHcP3sDdiA==}
2284 | engines: {node: '>=10'}
2285 | dependencies:
2286 | ini: 2.0.0
2287 | dev: true
2288 |
2289 | /globals/11.12.0:
2290 | resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==}
2291 | engines: {node: '>=4'}
2292 | dev: true
2293 |
2294 | /globals/13.13.0:
2295 | resolution: {integrity: sha512-EQ7Q18AJlPwp3vUDL4mKA0KXrXyNIQyWon6T6XQiBQF0XHvRsiCSrWmmeATpUzdJN2HhWZU6Pdl0a9zdep5p6A==}
2296 | engines: {node: '>=8'}
2297 | dependencies:
2298 | type-fest: 0.20.2
2299 | dev: true
2300 |
2301 | /globby/11.1.0:
2302 | resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==}
2303 | engines: {node: '>=10'}
2304 | dependencies:
2305 | array-union: 2.1.0
2306 | dir-glob: 3.0.1
2307 | fast-glob: 3.2.11
2308 | ignore: 5.2.0
2309 | merge2: 1.4.1
2310 | slash: 3.0.0
2311 | dev: true
2312 |
2313 | /graceful-fs/4.2.9:
2314 | resolution: {integrity: sha512-NtNxqUcXgpW2iMrfqSfR73Glt39K+BLwWsPs94yR63v45T0Wbej7eRmL5cWfwEgqXnmjQp3zaJTshdRW/qC2ZQ==}
2315 | dev: true
2316 |
2317 | /has-bigints/1.0.1:
2318 | resolution: {integrity: sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==}
2319 | dev: true
2320 |
2321 | /has-flag/3.0.0:
2322 | resolution: {integrity: sha1-tdRU3CGZriJWmfNGfloH87lVuv0=}
2323 | engines: {node: '>=4'}
2324 | dev: true
2325 |
2326 | /has-flag/4.0.0:
2327 | resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==}
2328 | engines: {node: '>=8'}
2329 | dev: true
2330 |
2331 | /has-symbols/1.0.3:
2332 | resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==}
2333 | engines: {node: '>= 0.4'}
2334 | dev: true
2335 |
2336 | /has-tostringtag/1.0.0:
2337 | resolution: {integrity: sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==}
2338 | engines: {node: '>= 0.4'}
2339 | dependencies:
2340 | has-symbols: 1.0.3
2341 | dev: true
2342 |
2343 | /has/1.0.3:
2344 | resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==}
2345 | engines: {node: '>= 0.4.0'}
2346 | dependencies:
2347 | function-bind: 1.1.1
2348 | dev: true
2349 |
2350 | /hey-listen/1.0.8:
2351 | resolution: {integrity: sha512-COpmrF2NOg4TBWUJ5UVyaCU2A88wEMkUPK4hNqyCkqHbxT92BbvfjoSozkAIIm6XhicGlJHhFdullInrdhwU8Q==}
2352 | dev: true
2353 |
2354 | /html-encoding-sniffer/3.0.0:
2355 | resolution: {integrity: sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==}
2356 | engines: {node: '>=12'}
2357 | dependencies:
2358 | whatwg-encoding: 2.0.0
2359 | dev: true
2360 |
2361 | /html-entities/2.3.2:
2362 | resolution: {integrity: sha512-c3Ab/url5ksaT0WyleslpBEthOzWhrjQbg75y7XUsfSzi3Dgzt0l8w5e7DylRn15MTlMMD58dTfzddNS2kcAjQ==}
2363 | dev: true
2364 |
2365 | /html-escaper/2.0.2:
2366 | resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==}
2367 | dev: true
2368 |
2369 | /http-proxy-agent/5.0.0:
2370 | resolution: {integrity: sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==}
2371 | engines: {node: '>= 6'}
2372 | dependencies:
2373 | '@tootallnate/once': 2.0.0
2374 | agent-base: 6.0.2
2375 | debug: 4.3.4
2376 | transitivePeerDependencies:
2377 | - supports-color
2378 | dev: true
2379 |
2380 | /http-signature/1.3.6:
2381 | resolution: {integrity: sha512-3adrsD6zqo4GsTqtO7FyrejHNv+NgiIfAfv68+jVlFmSr9OGy7zrxONceFRLKvnnZA5jbxQBX1u9PpB6Wi32Gw==}
2382 | engines: {node: '>=0.10'}
2383 | dependencies:
2384 | assert-plus: 1.0.0
2385 | jsprim: 2.0.2
2386 | sshpk: 1.17.0
2387 | dev: true
2388 |
2389 | /https-proxy-agent/5.0.0:
2390 | resolution: {integrity: sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==}
2391 | engines: {node: '>= 6'}
2392 | dependencies:
2393 | agent-base: 6.0.2
2394 | debug: 4.3.4
2395 | transitivePeerDependencies:
2396 | - supports-color
2397 | dev: true
2398 |
2399 | /human-signals/1.1.1:
2400 | resolution: {integrity: sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==}
2401 | engines: {node: '>=8.12.0'}
2402 | dev: true
2403 |
2404 | /husky/7.0.4:
2405 | resolution: {integrity: sha512-vbaCKN2QLtP/vD4yvs6iz6hBEo6wkSzs8HpRah1Z6aGmF2KW5PdYuAd7uX5a+OyBZHBhd+TFLqgjUgytQr4RvQ==}
2406 | engines: {node: '>=12'}
2407 | hasBin: true
2408 | dev: true
2409 |
2410 | /iconv-lite/0.6.3:
2411 | resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==}
2412 | engines: {node: '>=0.10.0'}
2413 | dependencies:
2414 | safer-buffer: 2.1.2
2415 | dev: true
2416 |
2417 | /ieee754/1.2.1:
2418 | resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==}
2419 | dev: true
2420 |
2421 | /ignore/5.2.0:
2422 | resolution: {integrity: sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==}
2423 | engines: {node: '>= 4'}
2424 | dev: true
2425 |
2426 | /import-fresh/3.3.0:
2427 | resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==}
2428 | engines: {node: '>=6'}
2429 | dependencies:
2430 | parent-module: 1.0.1
2431 | resolve-from: 4.0.0
2432 | dev: true
2433 |
2434 | /imurmurhash/0.1.4:
2435 | resolution: {integrity: sha1-khi5srkoojixPcT7a21XbyMUU+o=}
2436 | engines: {node: '>=0.8.19'}
2437 | dev: true
2438 |
2439 | /indent-string/4.0.0:
2440 | resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==}
2441 | engines: {node: '>=8'}
2442 | dev: true
2443 |
2444 | /inflight/1.0.6:
2445 | resolution: {integrity: sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=}
2446 | dependencies:
2447 | once: 1.4.0
2448 | wrappy: 1.0.2
2449 | dev: true
2450 |
2451 | /inherits/2.0.4:
2452 | resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==}
2453 | dev: true
2454 |
2455 | /ini/2.0.0:
2456 | resolution: {integrity: sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==}
2457 | engines: {node: '>=10'}
2458 | dev: true
2459 |
2460 | /internal-slot/1.0.3:
2461 | resolution: {integrity: sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==}
2462 | engines: {node: '>= 0.4'}
2463 | dependencies:
2464 | get-intrinsic: 1.1.1
2465 | has: 1.0.3
2466 | side-channel: 1.0.4
2467 | dev: true
2468 |
2469 | /is-bigint/1.0.4:
2470 | resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==}
2471 | dependencies:
2472 | has-bigints: 1.0.1
2473 | dev: true
2474 |
2475 | /is-binary-path/2.1.0:
2476 | resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==}
2477 | engines: {node: '>=8'}
2478 | dependencies:
2479 | binary-extensions: 2.2.0
2480 | dev: true
2481 |
2482 | /is-boolean-object/1.1.2:
2483 | resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==}
2484 | engines: {node: '>= 0.4'}
2485 | dependencies:
2486 | call-bind: 1.0.2
2487 | has-tostringtag: 1.0.0
2488 | dev: true
2489 |
2490 | /is-callable/1.2.4:
2491 | resolution: {integrity: sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==}
2492 | engines: {node: '>= 0.4'}
2493 | dev: true
2494 |
2495 | /is-ci/3.0.1:
2496 | resolution: {integrity: sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==}
2497 | hasBin: true
2498 | dependencies:
2499 | ci-info: 3.3.0
2500 | dev: true
2501 |
2502 | /is-core-module/2.8.1:
2503 | resolution: {integrity: sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA==}
2504 | dependencies:
2505 | has: 1.0.3
2506 | dev: true
2507 |
2508 | /is-date-object/1.0.5:
2509 | resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==}
2510 | engines: {node: '>= 0.4'}
2511 | dependencies:
2512 | has-tostringtag: 1.0.0
2513 | dev: true
2514 |
2515 | /is-extglob/2.1.1:
2516 | resolution: {integrity: sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=}
2517 | engines: {node: '>=0.10.0'}
2518 | dev: true
2519 |
2520 | /is-fullwidth-code-point/3.0.0:
2521 | resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==}
2522 | engines: {node: '>=8'}
2523 | dev: true
2524 |
2525 | /is-glob/4.0.3:
2526 | resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==}
2527 | engines: {node: '>=0.10.0'}
2528 | dependencies:
2529 | is-extglob: 2.1.1
2530 | dev: true
2531 |
2532 | /is-installed-globally/0.4.0:
2533 | resolution: {integrity: sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==}
2534 | engines: {node: '>=10'}
2535 | dependencies:
2536 | global-dirs: 3.0.0
2537 | is-path-inside: 3.0.3
2538 | dev: true
2539 |
2540 | /is-negative-zero/2.0.2:
2541 | resolution: {integrity: sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==}
2542 | engines: {node: '>= 0.4'}
2543 | dev: true
2544 |
2545 | /is-number-object/1.0.6:
2546 | resolution: {integrity: sha512-bEVOqiRcvo3zO1+G2lVMy+gkkEm9Yh7cDMRusKKu5ZJKPUYSJwICTKZrNKHA2EbSP0Tu0+6B/emsYNHZyn6K8g==}
2547 | engines: {node: '>= 0.4'}
2548 | dependencies:
2549 | has-tostringtag: 1.0.0
2550 | dev: true
2551 |
2552 | /is-number/7.0.0:
2553 | resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==}
2554 | engines: {node: '>=0.12.0'}
2555 | dev: true
2556 |
2557 | /is-path-inside/3.0.3:
2558 | resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==}
2559 | engines: {node: '>=8'}
2560 | dev: true
2561 |
2562 | /is-potential-custom-element-name/1.0.1:
2563 | resolution: {integrity: sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==}
2564 | dev: true
2565 |
2566 | /is-regex/1.1.4:
2567 | resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==}
2568 | engines: {node: '>= 0.4'}
2569 | dependencies:
2570 | call-bind: 1.0.2
2571 | has-tostringtag: 1.0.0
2572 | dev: true
2573 |
2574 | /is-shared-array-buffer/1.0.1:
2575 | resolution: {integrity: sha512-IU0NmyknYZN0rChcKhRO1X8LYz5Isj/Fsqh8NJOSf+N/hCOTwy29F32Ik7a+QszE63IdvmwdTPDd6cZ5pg4cwA==}
2576 | dev: true
2577 |
2578 | /is-stream/2.0.1:
2579 | resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==}
2580 | engines: {node: '>=8'}
2581 | dev: true
2582 |
2583 | /is-string/1.0.7:
2584 | resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==}
2585 | engines: {node: '>= 0.4'}
2586 | dependencies:
2587 | has-tostringtag: 1.0.0
2588 | dev: true
2589 |
2590 | /is-symbol/1.0.4:
2591 | resolution: {integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==}
2592 | engines: {node: '>= 0.4'}
2593 | dependencies:
2594 | has-symbols: 1.0.3
2595 | dev: true
2596 |
2597 | /is-typedarray/1.0.0:
2598 | resolution: {integrity: sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=}
2599 | dev: true
2600 |
2601 | /is-unicode-supported/0.1.0:
2602 | resolution: {integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==}
2603 | engines: {node: '>=10'}
2604 | dev: true
2605 |
2606 | /is-weakref/1.0.2:
2607 | resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==}
2608 | dependencies:
2609 | call-bind: 1.0.2
2610 | dev: true
2611 |
2612 | /is-what/4.1.7:
2613 | resolution: {integrity: sha512-DBVOQNiPKnGMxRMLIYSwERAS5MVY1B7xYiGnpgctsOFvVDz9f9PFXXxMcTOHuoqYp4NK9qFYQaIC1NRRxLMpBQ==}
2614 | engines: {node: '>=12.13'}
2615 | dev: true
2616 |
2617 | /isexe/2.0.0:
2618 | resolution: {integrity: sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=}
2619 | dev: true
2620 |
2621 | /isstream/0.1.2:
2622 | resolution: {integrity: sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=}
2623 | dev: true
2624 |
2625 | /istanbul-lib-coverage/3.2.0:
2626 | resolution: {integrity: sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==}
2627 | engines: {node: '>=8'}
2628 | dev: true
2629 |
2630 | /istanbul-lib-report/3.0.0:
2631 | resolution: {integrity: sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==}
2632 | engines: {node: '>=8'}
2633 | dependencies:
2634 | istanbul-lib-coverage: 3.2.0
2635 | make-dir: 3.1.0
2636 | supports-color: 7.2.0
2637 | dev: true
2638 |
2639 | /istanbul-reports/3.1.4:
2640 | resolution: {integrity: sha512-r1/DshN4KSE7xWEknZLLLLDn5CJybV3nw01VTkp6D5jzLuELlcbudfj/eSQFvrKsJuTVCGnePO7ho82Nw9zzfw==}
2641 | engines: {node: '>=8'}
2642 | dependencies:
2643 | html-escaper: 2.0.2
2644 | istanbul-lib-report: 3.0.0
2645 | dev: true
2646 |
2647 | /js-tokens/4.0.0:
2648 | resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==}
2649 | dev: true
2650 |
2651 | /js-yaml/4.1.0:
2652 | resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==}
2653 | hasBin: true
2654 | dependencies:
2655 | argparse: 2.0.1
2656 | dev: true
2657 |
2658 | /jsbn/0.1.1:
2659 | resolution: {integrity: sha1-peZUwuWi3rXyAdls77yoDA7y9RM=}
2660 | dev: true
2661 |
2662 | /jsdom/19.0.0:
2663 | resolution: {integrity: sha512-RYAyjCbxy/vri/CfnjUWJQQtZ3LKlLnDqj+9XLNnJPgEGeirZs3hllKR20re8LUZ6o1b1X4Jat+Qd26zmP41+A==}
2664 | engines: {node: '>=12'}
2665 | peerDependencies:
2666 | canvas: ^2.5.0
2667 | peerDependenciesMeta:
2668 | canvas:
2669 | optional: true
2670 | dependencies:
2671 | abab: 2.0.5
2672 | acorn: 8.7.0
2673 | acorn-globals: 6.0.0
2674 | cssom: 0.5.0
2675 | cssstyle: 2.3.0
2676 | data-urls: 3.0.1
2677 | decimal.js: 10.3.1
2678 | domexception: 4.0.0
2679 | escodegen: 2.0.0
2680 | form-data: 4.0.0
2681 | html-encoding-sniffer: 3.0.0
2682 | http-proxy-agent: 5.0.0
2683 | https-proxy-agent: 5.0.0
2684 | is-potential-custom-element-name: 1.0.1
2685 | nwsapi: 2.2.0
2686 | parse5: 6.0.1
2687 | saxes: 5.0.1
2688 | symbol-tree: 3.2.4
2689 | tough-cookie: 4.0.0
2690 | w3c-hr-time: 1.0.2
2691 | w3c-xmlserializer: 3.0.0
2692 | webidl-conversions: 7.0.0
2693 | whatwg-encoding: 2.0.0
2694 | whatwg-mimetype: 3.0.0
2695 | whatwg-url: 10.0.0
2696 | ws: 8.5.0
2697 | xml-name-validator: 4.0.0
2698 | transitivePeerDependencies:
2699 | - bufferutil
2700 | - supports-color
2701 | - utf-8-validate
2702 | dev: true
2703 |
2704 | /jsesc/2.5.2:
2705 | resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==}
2706 | engines: {node: '>=4'}
2707 | hasBin: true
2708 | dev: true
2709 |
2710 | /json-schema-traverse/0.4.1:
2711 | resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==}
2712 | dev: true
2713 |
2714 | /json-schema/0.4.0:
2715 | resolution: {integrity: sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==}
2716 | dev: true
2717 |
2718 | /json-stable-stringify-without-jsonify/1.0.1:
2719 | resolution: {integrity: sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=}
2720 | dev: true
2721 |
2722 | /json-stringify-safe/5.0.1:
2723 | resolution: {integrity: sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=}
2724 | dev: true
2725 |
2726 | /json5/1.0.1:
2727 | resolution: {integrity: sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==}
2728 | hasBin: true
2729 | dependencies:
2730 | minimist: 1.2.6
2731 | dev: true
2732 |
2733 | /json5/2.2.1:
2734 | resolution: {integrity: sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==}
2735 | engines: {node: '>=6'}
2736 | hasBin: true
2737 | dev: true
2738 |
2739 | /jsonfile/6.1.0:
2740 | resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==}
2741 | dependencies:
2742 | universalify: 2.0.0
2743 | optionalDependencies:
2744 | graceful-fs: 4.2.9
2745 | dev: true
2746 |
2747 | /jsprim/2.0.2:
2748 | resolution: {integrity: sha512-gqXddjPqQ6G40VdnI6T6yObEC+pDNvyP95wdQhkWkg7crHH3km5qP1FsOXEkzEQwnz6gz5qGTn1c2Y52wP3OyQ==}
2749 | engines: {'0': node >=0.6.0}
2750 | dependencies:
2751 | assert-plus: 1.0.0
2752 | extsprintf: 1.3.0
2753 | json-schema: 0.4.0
2754 | verror: 1.10.0
2755 | dev: true
2756 |
2757 | /lazy-ass/1.6.0:
2758 | resolution: {integrity: sha1-eZllXoZGwX8In90YfRUNMyTVRRM=}
2759 | engines: {node: '> 0.8'}
2760 | dev: true
2761 |
2762 | /levn/0.3.0:
2763 | resolution: {integrity: sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=}
2764 | engines: {node: '>= 0.8.0'}
2765 | dependencies:
2766 | prelude-ls: 1.1.2
2767 | type-check: 0.3.2
2768 | dev: true
2769 |
2770 | /levn/0.4.1:
2771 | resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==}
2772 | engines: {node: '>= 0.8.0'}
2773 | dependencies:
2774 | prelude-ls: 1.2.1
2775 | type-check: 0.4.0
2776 | dev: true
2777 |
2778 | /lilconfig/2.0.5:
2779 | resolution: {integrity: sha512-xaYmXZtTHPAw5m+xLN8ab9C+3a8YmV3asNSPOATITbtwrfbwaLJj8h66H1WMIpALCkqsIzK3h7oQ+PdX+LQ9Eg==}
2780 | engines: {node: '>=10'}
2781 | dev: true
2782 |
2783 | /listr2/3.14.0_enquirer@2.3.6:
2784 | resolution: {integrity: sha512-TyWI8G99GX9GjE54cJ+RrNMcIFBfwMPxc3XTFiAYGN4s10hWROGtOg7+O6u6LE3mNkyld7RSLE6nrKBvTfcs3g==}
2785 | engines: {node: '>=10.0.0'}
2786 | peerDependencies:
2787 | enquirer: '>= 2.3.0 < 3'
2788 | peerDependenciesMeta:
2789 | enquirer:
2790 | optional: true
2791 | dependencies:
2792 | cli-truncate: 2.1.0
2793 | colorette: 2.0.16
2794 | enquirer: 2.3.6
2795 | log-update: 4.0.0
2796 | p-map: 4.0.0
2797 | rfdc: 1.3.0
2798 | rxjs: 7.5.5
2799 | through: 2.3.8
2800 | wrap-ansi: 7.0.0
2801 | dev: true
2802 |
2803 | /local-pkg/0.4.1:
2804 | resolution: {integrity: sha512-lL87ytIGP2FU5PWwNDo0w3WhIo2gopIAxPg9RxDYF7m4rr5ahuZxP22xnJHIvaLTe4Z9P6uKKY2UHiwyB4pcrw==}
2805 | engines: {node: '>=14'}
2806 | dev: true
2807 |
2808 | /locate-path/2.0.0:
2809 | resolution: {integrity: sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=}
2810 | engines: {node: '>=4'}
2811 | dependencies:
2812 | p-locate: 2.0.0
2813 | path-exists: 3.0.0
2814 | dev: true
2815 |
2816 | /locate-path/6.0.0:
2817 | resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==}
2818 | engines: {node: '>=10'}
2819 | dependencies:
2820 | p-locate: 5.0.0
2821 | dev: true
2822 |
2823 | /lodash.merge/4.6.2:
2824 | resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==}
2825 | dev: true
2826 |
2827 | /lodash.once/4.1.1:
2828 | resolution: {integrity: sha1-DdOXEhPHxW34gJd9UEyI+0cal6w=}
2829 | dev: true
2830 |
2831 | /lodash/4.17.21:
2832 | resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==}
2833 | dev: true
2834 |
2835 | /log-symbols/4.1.0:
2836 | resolution: {integrity: sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==}
2837 | engines: {node: '>=10'}
2838 | dependencies:
2839 | chalk: 4.1.2
2840 | is-unicode-supported: 0.1.0
2841 | dev: true
2842 |
2843 | /log-update/4.0.0:
2844 | resolution: {integrity: sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg==}
2845 | engines: {node: '>=10'}
2846 | dependencies:
2847 | ansi-escapes: 4.3.2
2848 | cli-cursor: 3.1.0
2849 | slice-ansi: 4.0.0
2850 | wrap-ansi: 6.2.0
2851 | dev: true
2852 |
2853 | /loupe/2.3.4:
2854 | resolution: {integrity: sha512-OvKfgCC2Ndby6aSTREl5aCCPTNIzlDfQZvZxNUrBrihDhL3xcrYegTblhmEiCrg2kKQz4XsFIaemE5BF4ybSaQ==}
2855 | dependencies:
2856 | get-func-name: 2.0.0
2857 | dev: true
2858 |
2859 | /lru-cache/6.0.0:
2860 | resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==}
2861 | engines: {node: '>=10'}
2862 | dependencies:
2863 | yallist: 4.0.0
2864 | dev: true
2865 |
2866 | /lz-string/1.4.4:
2867 | resolution: {integrity: sha1-wNjq82BZ9wV5bh40SBHPTEmNOiY=}
2868 | hasBin: true
2869 | dev: true
2870 |
2871 | /make-dir/3.1.0:
2872 | resolution: {integrity: sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==}
2873 | engines: {node: '>=8'}
2874 | dependencies:
2875 | semver: 6.3.0
2876 | dev: true
2877 |
2878 | /merge-anything/5.0.2:
2879 | resolution: {integrity: sha512-POPQBWkBC0vxdgzRJ2Mkj4+2NTKbvkHo93ih+jGDhNMLzIw+rYKjO7949hOQM2X7DxMHH1uoUkwWFLIzImw7gA==}
2880 | engines: {node: '>=12.13'}
2881 | dependencies:
2882 | is-what: 4.1.7
2883 | ts-toolbelt: 9.6.0
2884 | dev: true
2885 |
2886 | /merge-stream/2.0.0:
2887 | resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==}
2888 | dev: true
2889 |
2890 | /merge2/1.4.1:
2891 | resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==}
2892 | engines: {node: '>= 8'}
2893 | dev: true
2894 |
2895 | /micromatch/4.0.5:
2896 | resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==}
2897 | engines: {node: '>=8.6'}
2898 | dependencies:
2899 | braces: 3.0.2
2900 | picomatch: 2.3.1
2901 | dev: true
2902 |
2903 | /mime-db/1.52.0:
2904 | resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==}
2905 | engines: {node: '>= 0.6'}
2906 | dev: true
2907 |
2908 | /mime-types/2.1.35:
2909 | resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==}
2910 | engines: {node: '>= 0.6'}
2911 | dependencies:
2912 | mime-db: 1.52.0
2913 | dev: true
2914 |
2915 | /mimic-fn/2.1.0:
2916 | resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==}
2917 | engines: {node: '>=6'}
2918 | dev: true
2919 |
2920 | /minimatch/3.1.2:
2921 | resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==}
2922 | dependencies:
2923 | brace-expansion: 1.1.11
2924 | dev: true
2925 |
2926 | /minimist/1.2.6:
2927 | resolution: {integrity: sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==}
2928 | dev: true
2929 |
2930 | /mkdirp/1.0.4:
2931 | resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==}
2932 | engines: {node: '>=10'}
2933 | hasBin: true
2934 | dev: true
2935 |
2936 | /motion/10.7.0:
2937 | resolution: {integrity: sha512-O6eMDzspPnTcU3IfmwZl8uY5t6DndbJEEnWBw+OqZSCLeSaDs4+gB0JnvqFkyrGl8vpE9H3UrRD5RDy1Z3TZmw==}
2938 | dependencies:
2939 | '@motionone/animation': 10.7.0
2940 | '@motionone/dom': 10.7.0
2941 | '@motionone/react': 10.7.0
2942 | '@motionone/svelte': 10.7.0
2943 | '@motionone/vue': 10.7.0
2944 | transitivePeerDependencies:
2945 | - react
2946 | - react-dom
2947 | dev: true
2948 |
2949 | /ms/2.0.0:
2950 | resolution: {integrity: sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=}
2951 | dev: true
2952 |
2953 | /ms/2.1.2:
2954 | resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==}
2955 | dev: true
2956 |
2957 | /ms/2.1.3:
2958 | resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==}
2959 | dev: true
2960 |
2961 | /nanoid/3.3.2:
2962 | resolution: {integrity: sha512-CuHBogktKwpm5g2sRgv83jEy2ijFzBwMoYA60orPDR7ynsLijJDqgsi4RDGj3OJpy3Ieb+LYwiRmIOGyytgITA==}
2963 | engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
2964 | hasBin: true
2965 | dev: true
2966 |
2967 | /nanospinner/1.0.0:
2968 | resolution: {integrity: sha512-14c2r2QQ9xfTmdbqdF51FKCNvww+0ZON9GeEHur+pBdOufoFvxD4CZQRaYWmFrGH3Nuv7PZ/9Q+wsV+hFSp32g==}
2969 | dependencies:
2970 | picocolors: 1.0.0
2971 | dev: true
2972 |
2973 | /natural-compare/1.4.0:
2974 | resolution: {integrity: sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=}
2975 | dev: true
2976 |
2977 | /node-releases/2.0.2:
2978 | resolution: {integrity: sha512-XxYDdcQ6eKqp/YjI+tb2C5WM2LgjnZrfYg4vgQt49EK268b6gYCHsBLrK2qvJo4FmCtqmKezb0WZFK4fkrZNsg==}
2979 | dev: true
2980 |
2981 | /normalize-path/3.0.0:
2982 | resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==}
2983 | engines: {node: '>=0.10.0'}
2984 | dev: true
2985 |
2986 | /npm-run-path/4.0.1:
2987 | resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==}
2988 | engines: {node: '>=8'}
2989 | dependencies:
2990 | path-key: 3.1.1
2991 | dev: true
2992 |
2993 | /nwsapi/2.2.0:
2994 | resolution: {integrity: sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ==}
2995 | dev: true
2996 |
2997 | /object-inspect/1.12.0:
2998 | resolution: {integrity: sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g==}
2999 | dev: true
3000 |
3001 | /object-keys/1.1.1:
3002 | resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==}
3003 | engines: {node: '>= 0.4'}
3004 | dev: true
3005 |
3006 | /object.assign/4.1.2:
3007 | resolution: {integrity: sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==}
3008 | engines: {node: '>= 0.4'}
3009 | dependencies:
3010 | call-bind: 1.0.2
3011 | define-properties: 1.1.3
3012 | has-symbols: 1.0.3
3013 | object-keys: 1.1.1
3014 | dev: true
3015 |
3016 | /object.values/1.1.5:
3017 | resolution: {integrity: sha512-QUZRW0ilQ3PnPpbNtgdNV1PDbEqLIiSFB3l+EnGtBQ/8SUTLj1PZwtQHABZtLgwpJZTSZhuGLOGk57Drx2IvYg==}
3018 | engines: {node: '>= 0.4'}
3019 | dependencies:
3020 | call-bind: 1.0.2
3021 | define-properties: 1.1.3
3022 | es-abstract: 1.19.2
3023 | dev: true
3024 |
3025 | /once/1.4.0:
3026 | resolution: {integrity: sha1-WDsap3WWHUsROsF9nFC6753Xa9E=}
3027 | dependencies:
3028 | wrappy: 1.0.2
3029 | dev: true
3030 |
3031 | /onetime/5.1.2:
3032 | resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==}
3033 | engines: {node: '>=6'}
3034 | dependencies:
3035 | mimic-fn: 2.1.0
3036 | dev: true
3037 |
3038 | /optionator/0.8.3:
3039 | resolution: {integrity: sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==}
3040 | engines: {node: '>= 0.8.0'}
3041 | dependencies:
3042 | deep-is: 0.1.4
3043 | fast-levenshtein: 2.0.6
3044 | levn: 0.3.0
3045 | prelude-ls: 1.1.2
3046 | type-check: 0.3.2
3047 | word-wrap: 1.2.3
3048 | dev: true
3049 |
3050 | /optionator/0.9.1:
3051 | resolution: {integrity: sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==}
3052 | engines: {node: '>= 0.8.0'}
3053 | dependencies:
3054 | deep-is: 0.1.4
3055 | fast-levenshtein: 2.0.6
3056 | levn: 0.4.1
3057 | prelude-ls: 1.2.1
3058 | type-check: 0.4.0
3059 | word-wrap: 1.2.3
3060 | dev: true
3061 |
3062 | /ospath/1.2.2:
3063 | resolution: {integrity: sha1-EnZjl3Sj+O8lcvf+QoDg6kVQwHs=}
3064 | dev: true
3065 |
3066 | /p-limit/1.3.0:
3067 | resolution: {integrity: sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==}
3068 | engines: {node: '>=4'}
3069 | dependencies:
3070 | p-try: 1.0.0
3071 | dev: true
3072 |
3073 | /p-limit/3.1.0:
3074 | resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==}
3075 | engines: {node: '>=10'}
3076 | dependencies:
3077 | yocto-queue: 0.1.0
3078 | dev: true
3079 |
3080 | /p-locate/2.0.0:
3081 | resolution: {integrity: sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=}
3082 | engines: {node: '>=4'}
3083 | dependencies:
3084 | p-limit: 1.3.0
3085 | dev: true
3086 |
3087 | /p-locate/5.0.0:
3088 | resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==}
3089 | engines: {node: '>=10'}
3090 | dependencies:
3091 | p-limit: 3.1.0
3092 | dev: true
3093 |
3094 | /p-map/4.0.0:
3095 | resolution: {integrity: sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==}
3096 | engines: {node: '>=10'}
3097 | dependencies:
3098 | aggregate-error: 3.1.0
3099 | dev: true
3100 |
3101 | /p-try/1.0.0:
3102 | resolution: {integrity: sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=}
3103 | engines: {node: '>=4'}
3104 | dev: true
3105 |
3106 | /parent-module/1.0.1:
3107 | resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==}
3108 | engines: {node: '>=6'}
3109 | dependencies:
3110 | callsites: 3.1.0
3111 | dev: true
3112 |
3113 | /parse5/6.0.1:
3114 | resolution: {integrity: sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==}
3115 | dev: true
3116 |
3117 | /path-exists/3.0.0:
3118 | resolution: {integrity: sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=}
3119 | engines: {node: '>=4'}
3120 | dev: true
3121 |
3122 | /path-exists/4.0.0:
3123 | resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==}
3124 | engines: {node: '>=8'}
3125 | dev: true
3126 |
3127 | /path-is-absolute/1.0.1:
3128 | resolution: {integrity: sha1-F0uSaHNVNP+8es5r9TpanhtcX18=}
3129 | engines: {node: '>=0.10.0'}
3130 | dev: true
3131 |
3132 | /path-key/3.1.1:
3133 | resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==}
3134 | engines: {node: '>=8'}
3135 | dev: true
3136 |
3137 | /path-parse/1.0.7:
3138 | resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==}
3139 | dev: true
3140 |
3141 | /path-type/4.0.0:
3142 | resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==}
3143 | engines: {node: '>=8'}
3144 | dev: true
3145 |
3146 | /pathval/1.1.1:
3147 | resolution: {integrity: sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==}
3148 | dev: true
3149 |
3150 | /pend/1.2.0:
3151 | resolution: {integrity: sha1-elfrVQpng/kRUzH89GY9XI4AelA=}
3152 | dev: true
3153 |
3154 | /performance-now/2.1.0:
3155 | resolution: {integrity: sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=}
3156 | dev: true
3157 |
3158 | /picocolors/1.0.0:
3159 | resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==}
3160 | dev: true
3161 |
3162 | /picomatch/2.3.1:
3163 | resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==}
3164 | engines: {node: '>=8.6'}
3165 | dev: true
3166 |
3167 | /pify/2.3.0:
3168 | resolution: {integrity: sha1-7RQaasBDqEnqWISY59yosVMw6Qw=}
3169 | engines: {node: '>=0.10.0'}
3170 | dev: true
3171 |
3172 | /postcss/8.4.12:
3173 | resolution: {integrity: sha512-lg6eITwYe9v6Hr5CncVbK70SoioNQIq81nsaG86ev5hAidQvmOeETBqs7jm43K2F5/Ley3ytDtriImV6TpNiSg==}
3174 | engines: {node: ^10 || ^12 || >=14}
3175 | dependencies:
3176 | nanoid: 3.3.2
3177 | picocolors: 1.0.0
3178 | source-map-js: 1.0.2
3179 | dev: true
3180 |
3181 | /prelude-ls/1.1.2:
3182 | resolution: {integrity: sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=}
3183 | engines: {node: '>= 0.8.0'}
3184 | dev: true
3185 |
3186 | /prelude-ls/1.2.1:
3187 | resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==}
3188 | engines: {node: '>= 0.8.0'}
3189 | dev: true
3190 |
3191 | /prettier-linter-helpers/1.0.0:
3192 | resolution: {integrity: sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==}
3193 | engines: {node: '>=6.0.0'}
3194 | dependencies:
3195 | fast-diff: 1.2.0
3196 | dev: true
3197 |
3198 | /prettier/2.6.1:
3199 | resolution: {integrity: sha512-8UVbTBYGwN37Bs9LERmxCPjdvPxlEowx2urIL6urHzdb3SDq4B/Z6xLFCblrSnE4iKWcS6ziJ3aOYrc1kz/E2A==}
3200 | engines: {node: '>=10.13.0'}
3201 | hasBin: true
3202 | dev: true
3203 |
3204 | /pretty-bytes/5.6.0:
3205 | resolution: {integrity: sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==}
3206 | engines: {node: '>=6'}
3207 | dev: true
3208 |
3209 | /pretty-format/26.6.2:
3210 | resolution: {integrity: sha512-7AeGuCYNGmycyQbCqd/3PWH4eOoX/OiCa0uphp57NVTeAGdJGaAliecxwBDHYQCIvrW7aDBZCYeNTP/WX69mkg==}
3211 | engines: {node: '>= 10'}
3212 | dependencies:
3213 | '@jest/types': 26.6.2
3214 | ansi-regex: 5.0.1
3215 | ansi-styles: 4.3.0
3216 | react-is: 17.0.2
3217 | dev: true
3218 |
3219 | /proxy-from-env/1.0.0:
3220 | resolution: {integrity: sha1-M8UDmPcOp+uW0h97gXYwpVeRx+4=}
3221 | dev: true
3222 |
3223 | /psl/1.8.0:
3224 | resolution: {integrity: sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==}
3225 | dev: true
3226 |
3227 | /pump/3.0.0:
3228 | resolution: {integrity: sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==}
3229 | dependencies:
3230 | end-of-stream: 1.4.4
3231 | once: 1.4.0
3232 | dev: true
3233 |
3234 | /punycode/2.1.1:
3235 | resolution: {integrity: sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==}
3236 | engines: {node: '>=6'}
3237 | dev: true
3238 |
3239 | /qs/6.5.3:
3240 | resolution: {integrity: sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==}
3241 | engines: {node: '>=0.6'}
3242 | dev: true
3243 |
3244 | /queue-microtask/1.2.3:
3245 | resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==}
3246 | dev: true
3247 |
3248 | /react-is/17.0.2:
3249 | resolution: {integrity: sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==}
3250 | dev: true
3251 |
3252 | /readdirp/3.6.0:
3253 | resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==}
3254 | engines: {node: '>=8.10.0'}
3255 | dependencies:
3256 | picomatch: 2.3.1
3257 | dev: true
3258 |
3259 | /regenerator-runtime/0.13.9:
3260 | resolution: {integrity: sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==}
3261 | dev: true
3262 |
3263 | /regexpp/3.2.0:
3264 | resolution: {integrity: sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==}
3265 | engines: {node: '>=8'}
3266 | dev: true
3267 |
3268 | /request-progress/3.0.0:
3269 | resolution: {integrity: sha1-TKdUCBx/7GP1BeT6qCWqBs1mnb4=}
3270 | dependencies:
3271 | throttleit: 1.0.0
3272 | dev: true
3273 |
3274 | /require-directory/2.1.1:
3275 | resolution: {integrity: sha1-jGStX9MNqxyXbiNE/+f3kqam30I=}
3276 | engines: {node: '>=0.10.0'}
3277 | dev: true
3278 |
3279 | /resolve-from/4.0.0:
3280 | resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==}
3281 | engines: {node: '>=4'}
3282 | dev: true
3283 |
3284 | /resolve/1.22.0:
3285 | resolution: {integrity: sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==}
3286 | hasBin: true
3287 | dependencies:
3288 | is-core-module: 2.8.1
3289 | path-parse: 1.0.7
3290 | supports-preserve-symlinks-flag: 1.0.0
3291 | dev: true
3292 |
3293 | /restore-cursor/3.1.0:
3294 | resolution: {integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==}
3295 | engines: {node: '>=8'}
3296 | dependencies:
3297 | onetime: 5.1.2
3298 | signal-exit: 3.0.7
3299 | dev: true
3300 |
3301 | /reusify/1.0.4:
3302 | resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==}
3303 | engines: {iojs: '>=1.0.0', node: '>=0.10.0'}
3304 | dev: true
3305 |
3306 | /rfdc/1.3.0:
3307 | resolution: {integrity: sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==}
3308 | dev: true
3309 |
3310 | /rimraf/3.0.2:
3311 | resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==}
3312 | hasBin: true
3313 | dependencies:
3314 | glob: 7.2.0
3315 | dev: true
3316 |
3317 | /rollup/2.70.1:
3318 | resolution: {integrity: sha512-CRYsI5EuzLbXdxC6RnYhOuRdtz4bhejPMSWjsFLfVM/7w/85n2szZv6yExqUXsBdz5KT8eoubeyDUDjhLHEslA==}
3319 | engines: {node: '>=10.0.0'}
3320 | hasBin: true
3321 | optionalDependencies:
3322 | fsevents: 2.3.2
3323 | dev: true
3324 |
3325 | /run-parallel/1.2.0:
3326 | resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==}
3327 | dependencies:
3328 | queue-microtask: 1.2.3
3329 | dev: true
3330 |
3331 | /rxjs/7.5.5:
3332 | resolution: {integrity: sha512-sy+H0pQofO95VDmFLzyaw9xNJU4KTRSwQIGM6+iG3SypAtCiLDzpeG8sJrNCWn2Up9km+KhkvTdbkrdy+yzZdw==}
3333 | dependencies:
3334 | tslib: 2.3.1
3335 | dev: true
3336 |
3337 | /safe-buffer/5.1.2:
3338 | resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==}
3339 | dev: true
3340 |
3341 | /safer-buffer/2.1.2:
3342 | resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==}
3343 | dev: true
3344 |
3345 | /saxes/5.0.1:
3346 | resolution: {integrity: sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==}
3347 | engines: {node: '>=10'}
3348 | dependencies:
3349 | xmlchars: 2.2.0
3350 | dev: true
3351 |
3352 | /semver/6.3.0:
3353 | resolution: {integrity: sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==}
3354 | hasBin: true
3355 | dev: true
3356 |
3357 | /semver/7.3.5:
3358 | resolution: {integrity: sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==}
3359 | engines: {node: '>=10'}
3360 | hasBin: true
3361 | dependencies:
3362 | lru-cache: 6.0.0
3363 | dev: true
3364 |
3365 | /shebang-command/2.0.0:
3366 | resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==}
3367 | engines: {node: '>=8'}
3368 | dependencies:
3369 | shebang-regex: 3.0.0
3370 | dev: true
3371 |
3372 | /shebang-regex/3.0.0:
3373 | resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==}
3374 | engines: {node: '>=8'}
3375 | dev: true
3376 |
3377 | /side-channel/1.0.4:
3378 | resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==}
3379 | dependencies:
3380 | call-bind: 1.0.2
3381 | get-intrinsic: 1.1.1
3382 | object-inspect: 1.12.0
3383 | dev: true
3384 |
3385 | /signal-exit/3.0.7:
3386 | resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==}
3387 | dev: true
3388 |
3389 | /size-limit/7.0.8:
3390 | resolution: {integrity: sha512-3h76c9E0e/nNhYLSR7IBI/bSoXICeo7EYkYjlyVqNIsu7KvN/PQmMbIXeyd2QKIF8iZKhaiZQoXLkGWbyPDtvQ==}
3391 | engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0}
3392 | hasBin: true
3393 | dependencies:
3394 | bytes-iec: 3.1.1
3395 | chokidar: 3.5.3
3396 | ci-job-number: 1.2.2
3397 | globby: 11.1.0
3398 | lilconfig: 2.0.5
3399 | mkdirp: 1.0.4
3400 | nanospinner: 1.0.0
3401 | picocolors: 1.0.0
3402 | dev: true
3403 |
3404 | /slash/3.0.0:
3405 | resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==}
3406 | engines: {node: '>=8'}
3407 | dev: true
3408 |
3409 | /slice-ansi/3.0.0:
3410 | resolution: {integrity: sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==}
3411 | engines: {node: '>=8'}
3412 | dependencies:
3413 | ansi-styles: 4.3.0
3414 | astral-regex: 2.0.0
3415 | is-fullwidth-code-point: 3.0.0
3416 | dev: true
3417 |
3418 | /slice-ansi/4.0.0:
3419 | resolution: {integrity: sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==}
3420 | engines: {node: '>=10'}
3421 | dependencies:
3422 | ansi-styles: 4.3.0
3423 | astral-regex: 2.0.0
3424 | is-fullwidth-code-point: 3.0.0
3425 | dev: true
3426 |
3427 | /solid-js/1.3.13:
3428 | resolution: {integrity: sha512-1EBEIW9u2yqT5QNjFdvz/tMAoKsDdaRA2Jbgykd2Dt13Ia0D4mV+BFvPkOaseSyu7DsMKS23+ZZofV8BVKmpuQ==}
3429 | dev: true
3430 |
3431 | /solid-refresh/0.4.0_solid-js@1.3.13:
3432 | resolution: {integrity: sha512-5XCUz845n/sHPzKK2i2G2EeV61tAmzv6SqzqhXcPaYhrgzVy7nKTQaBpKK8InKrriq9Z2JFF/mguIU00t/73xw==}
3433 | peerDependencies:
3434 | solid-js: ^1.3.0
3435 | dependencies:
3436 | '@babel/generator': 7.17.7
3437 | '@babel/helper-module-imports': 7.16.7
3438 | '@babel/types': 7.17.0
3439 | solid-js: 1.3.13
3440 | dev: true
3441 |
3442 | /solid-testing-library/0.3.0_solid-js@1.3.13:
3443 | resolution: {integrity: sha512-6NWVbySNVzyReBm2N6p3eF8bzxRZXHZTAmPix4vFWYol16QWVjNQsEUxvr+ZOutb0yuMZmNuGx3b6WIJYmjwMQ==}
3444 | engines: {node: '>= 14'}
3445 | peerDependencies:
3446 | solid-js: '>=1.0.0'
3447 | dependencies:
3448 | '@testing-library/dom': 7.31.2
3449 | solid-js: 1.3.13
3450 | dev: true
3451 |
3452 | /source-map-js/1.0.2:
3453 | resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==}
3454 | engines: {node: '>=0.10.0'}
3455 | dev: true
3456 |
3457 | /source-map/0.5.7:
3458 | resolution: {integrity: sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=}
3459 | engines: {node: '>=0.10.0'}
3460 | dev: true
3461 |
3462 | /source-map/0.6.1:
3463 | resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==}
3464 | engines: {node: '>=0.10.0'}
3465 | dev: true
3466 | optional: true
3467 |
3468 | /source-map/0.7.3:
3469 | resolution: {integrity: sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==}
3470 | engines: {node: '>= 8'}
3471 | dev: true
3472 |
3473 | /sshpk/1.17.0:
3474 | resolution: {integrity: sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ==}
3475 | engines: {node: '>=0.10.0'}
3476 | hasBin: true
3477 | dependencies:
3478 | asn1: 0.2.6
3479 | assert-plus: 1.0.0
3480 | bcrypt-pbkdf: 1.0.2
3481 | dashdash: 1.14.1
3482 | ecc-jsbn: 0.1.2
3483 | getpass: 0.1.7
3484 | jsbn: 0.1.1
3485 | safer-buffer: 2.1.2
3486 | tweetnacl: 0.14.5
3487 | dev: true
3488 |
3489 | /string-width/4.2.3:
3490 | resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==}
3491 | engines: {node: '>=8'}
3492 | dependencies:
3493 | emoji-regex: 8.0.0
3494 | is-fullwidth-code-point: 3.0.0
3495 | strip-ansi: 6.0.1
3496 | dev: true
3497 |
3498 | /string.prototype.trimend/1.0.4:
3499 | resolution: {integrity: sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==}
3500 | dependencies:
3501 | call-bind: 1.0.2
3502 | define-properties: 1.1.3
3503 | dev: true
3504 |
3505 | /string.prototype.trimstart/1.0.4:
3506 | resolution: {integrity: sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==}
3507 | dependencies:
3508 | call-bind: 1.0.2
3509 | define-properties: 1.1.3
3510 | dev: true
3511 |
3512 | /strip-ansi/6.0.1:
3513 | resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==}
3514 | engines: {node: '>=8'}
3515 | dependencies:
3516 | ansi-regex: 5.0.1
3517 | dev: true
3518 |
3519 | /strip-bom/3.0.0:
3520 | resolution: {integrity: sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=}
3521 | engines: {node: '>=4'}
3522 | dev: true
3523 |
3524 | /strip-final-newline/2.0.0:
3525 | resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==}
3526 | engines: {node: '>=6'}
3527 | dev: true
3528 |
3529 | /strip-json-comments/3.1.1:
3530 | resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==}
3531 | engines: {node: '>=8'}
3532 | dev: true
3533 |
3534 | /supports-color/5.5.0:
3535 | resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==}
3536 | engines: {node: '>=4'}
3537 | dependencies:
3538 | has-flag: 3.0.0
3539 | dev: true
3540 |
3541 | /supports-color/7.2.0:
3542 | resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==}
3543 | engines: {node: '>=8'}
3544 | dependencies:
3545 | has-flag: 4.0.0
3546 | dev: true
3547 |
3548 | /supports-color/8.1.1:
3549 | resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==}
3550 | engines: {node: '>=10'}
3551 | dependencies:
3552 | has-flag: 4.0.0
3553 | dev: true
3554 |
3555 | /supports-preserve-symlinks-flag/1.0.0:
3556 | resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==}
3557 | engines: {node: '>= 0.4'}
3558 | dev: true
3559 |
3560 | /symbol-tree/3.2.4:
3561 | resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==}
3562 | dev: true
3563 |
3564 | /test-exclude/6.0.0:
3565 | resolution: {integrity: sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==}
3566 | engines: {node: '>=8'}
3567 | dependencies:
3568 | '@istanbuljs/schema': 0.1.3
3569 | glob: 7.2.0
3570 | minimatch: 3.1.2
3571 | dev: true
3572 |
3573 | /text-table/0.2.0:
3574 | resolution: {integrity: sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=}
3575 | dev: true
3576 |
3577 | /throttleit/1.0.0:
3578 | resolution: {integrity: sha1-nnhYNtr0Z0MUWlmEtiaNgoUorGw=}
3579 | dev: true
3580 |
3581 | /through/2.3.8:
3582 | resolution: {integrity: sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=}
3583 | dev: true
3584 |
3585 | /tinypool/0.1.2:
3586 | resolution: {integrity: sha512-fvtYGXoui2RpeMILfkvGIgOVkzJEGediv8UJt7TxdAOY8pnvUkFg/fkvqTfXG9Acc9S17Cnn1S4osDc2164guA==}
3587 | engines: {node: '>=14.0.0'}
3588 | dev: true
3589 |
3590 | /tinyspy/0.3.0:
3591 | resolution: {integrity: sha512-c5uFHqtUp74R2DJE3/Efg0mH5xicmgziaQXMm/LvuuZn3RdpADH32aEGDRyCzObXT1DNfwDMqRQ/Drh1MlO12g==}
3592 | engines: {node: '>=14.0.0'}
3593 | dev: true
3594 |
3595 | /tmp/0.2.1:
3596 | resolution: {integrity: sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==}
3597 | engines: {node: '>=8.17.0'}
3598 | dependencies:
3599 | rimraf: 3.0.2
3600 | dev: true
3601 |
3602 | /to-fast-properties/2.0.0:
3603 | resolution: {integrity: sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=}
3604 | engines: {node: '>=4'}
3605 | dev: true
3606 |
3607 | /to-regex-range/5.0.1:
3608 | resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==}
3609 | engines: {node: '>=8.0'}
3610 | dependencies:
3611 | is-number: 7.0.0
3612 | dev: true
3613 |
3614 | /tough-cookie/2.5.0:
3615 | resolution: {integrity: sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==}
3616 | engines: {node: '>=0.8'}
3617 | dependencies:
3618 | psl: 1.8.0
3619 | punycode: 2.1.1
3620 | dev: true
3621 |
3622 | /tough-cookie/4.0.0:
3623 | resolution: {integrity: sha512-tHdtEpQCMrc1YLrMaqXXcj6AxhYi/xgit6mZu1+EDWUn+qhUf8wMQoFIy9NXuq23zAwtcB0t/MjACGR18pcRbg==}
3624 | engines: {node: '>=6'}
3625 | dependencies:
3626 | psl: 1.8.0
3627 | punycode: 2.1.1
3628 | universalify: 0.1.2
3629 | dev: true
3630 |
3631 | /tr46/3.0.0:
3632 | resolution: {integrity: sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==}
3633 | engines: {node: '>=12'}
3634 | dependencies:
3635 | punycode: 2.1.1
3636 | dev: true
3637 |
3638 | /ts-toolbelt/9.6.0:
3639 | resolution: {integrity: sha512-nsZd8ZeNUzukXPlJmTBwUAuABDe/9qtVDelJeT/qW0ow3ZS3BsQJtNkan1802aM9Uf68/Y8ljw86Hu0h5IUW3w==}
3640 | dev: true
3641 |
3642 | /tsconfig-paths/3.14.1:
3643 | resolution: {integrity: sha512-fxDhWnFSLt3VuTwtvJt5fpwxBHg5AdKWMsgcPOOIilyjymcYVZoCQF8fvFRezCNfblEXmi+PcM1eYHeOAgXCOQ==}
3644 | dependencies:
3645 | '@types/json5': 0.0.29
3646 | json5: 1.0.1
3647 | minimist: 1.2.6
3648 | strip-bom: 3.0.0
3649 | dev: true
3650 |
3651 | /tslib/1.14.1:
3652 | resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==}
3653 | dev: true
3654 |
3655 | /tslib/2.3.1:
3656 | resolution: {integrity: sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==}
3657 | dev: true
3658 |
3659 | /tsutils/3.21.0_typescript@4.6.3:
3660 | resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==}
3661 | engines: {node: '>= 6'}
3662 | peerDependencies:
3663 | 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'
3664 | dependencies:
3665 | tslib: 1.14.1
3666 | typescript: 4.6.3
3667 | dev: true
3668 |
3669 | /tunnel-agent/0.6.0:
3670 | resolution: {integrity: sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=}
3671 | dependencies:
3672 | safe-buffer: 5.1.2
3673 | dev: true
3674 |
3675 | /tweetnacl/0.14.5:
3676 | resolution: {integrity: sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=}
3677 | dev: true
3678 |
3679 | /type-check/0.3.2:
3680 | resolution: {integrity: sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=}
3681 | engines: {node: '>= 0.8.0'}
3682 | dependencies:
3683 | prelude-ls: 1.1.2
3684 | dev: true
3685 |
3686 | /type-check/0.4.0:
3687 | resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==}
3688 | engines: {node: '>= 0.8.0'}
3689 | dependencies:
3690 | prelude-ls: 1.2.1
3691 | dev: true
3692 |
3693 | /type-detect/4.0.8:
3694 | resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==}
3695 | engines: {node: '>=4'}
3696 | dev: true
3697 |
3698 | /type-fest/0.20.2:
3699 | resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==}
3700 | engines: {node: '>=10'}
3701 | dev: true
3702 |
3703 | /type-fest/0.21.3:
3704 | resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==}
3705 | engines: {node: '>=10'}
3706 | dev: true
3707 |
3708 | /typescript/4.6.3:
3709 | resolution: {integrity: sha512-yNIatDa5iaofVozS/uQJEl3JRWLKKGJKh6Yaiv0GLGSuhpFJe7P3SbHZ8/yjAHRQwKRoA6YZqlfjXWmVzoVSMw==}
3710 | engines: {node: '>=4.2.0'}
3711 | hasBin: true
3712 | dev: true
3713 |
3714 | /unbox-primitive/1.0.1:
3715 | resolution: {integrity: sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==}
3716 | dependencies:
3717 | function-bind: 1.1.1
3718 | has-bigints: 1.0.1
3719 | has-symbols: 1.0.3
3720 | which-boxed-primitive: 1.0.2
3721 | dev: true
3722 |
3723 | /universalify/0.1.2:
3724 | resolution: {integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==}
3725 | engines: {node: '>= 4.0.0'}
3726 | dev: true
3727 |
3728 | /universalify/2.0.0:
3729 | resolution: {integrity: sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==}
3730 | engines: {node: '>= 10.0.0'}
3731 | dev: true
3732 |
3733 | /untildify/4.0.0:
3734 | resolution: {integrity: sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==}
3735 | engines: {node: '>=8'}
3736 | dev: true
3737 |
3738 | /uri-js/4.4.1:
3739 | resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==}
3740 | dependencies:
3741 | punycode: 2.1.1
3742 | dev: true
3743 |
3744 | /uuid/8.3.2:
3745 | resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==}
3746 | hasBin: true
3747 | dev: true
3748 |
3749 | /v8-compile-cache/2.3.0:
3750 | resolution: {integrity: sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==}
3751 | dev: true
3752 |
3753 | /v8-to-istanbul/8.1.1:
3754 | resolution: {integrity: sha512-FGtKtv3xIpR6BYhvgH8MI/y78oT7d8Au3ww4QIxymrCtZEh5b8gCw2siywE+puhEmuWKDtmfrvF5UlB298ut3w==}
3755 | engines: {node: '>=10.12.0'}
3756 | dependencies:
3757 | '@types/istanbul-lib-coverage': 2.0.4
3758 | convert-source-map: 1.8.0
3759 | source-map: 0.7.3
3760 | dev: true
3761 |
3762 | /verror/1.10.0:
3763 | resolution: {integrity: sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=}
3764 | engines: {'0': node >=0.6.0}
3765 | dependencies:
3766 | assert-plus: 1.0.0
3767 | core-util-is: 1.0.2
3768 | extsprintf: 1.3.0
3769 | dev: true
3770 |
3771 | /vite-plugin-solid/2.2.6:
3772 | resolution: {integrity: sha512-J1RnmqkZZJSNYDW7vZj0giKKHLWGr9tS/gxR70WDSTYfhyXrgukbZdIfSEFbtrsg8ZiQ2t2zXcvkWoeefenqKw==}
3773 | dependencies:
3774 | '@babel/core': 7.17.8
3775 | '@babel/preset-typescript': 7.16.7_@babel+core@7.17.8
3776 | babel-preset-solid: 1.3.13_@babel+core@7.17.8
3777 | merge-anything: 5.0.2
3778 | solid-js: 1.3.13
3779 | solid-refresh: 0.4.0_solid-js@1.3.13
3780 | vite: 2.9.1
3781 | transitivePeerDependencies:
3782 | - less
3783 | - sass
3784 | - stylus
3785 | - supports-color
3786 | dev: true
3787 |
3788 | /vite/2.9.1:
3789 | resolution: {integrity: sha512-vSlsSdOYGcYEJfkQ/NeLXgnRv5zZfpAsdztkIrs7AZHV8RCMZQkwjo4DS5BnrYTqoWqLoUe1Cah4aVO4oNNqCQ==}
3790 | engines: {node: '>=12.2.0'}
3791 | hasBin: true
3792 | peerDependencies:
3793 | less: '*'
3794 | sass: '*'
3795 | stylus: '*'
3796 | peerDependenciesMeta:
3797 | less:
3798 | optional: true
3799 | sass:
3800 | optional: true
3801 | stylus:
3802 | optional: true
3803 | dependencies:
3804 | esbuild: 0.14.29
3805 | postcss: 8.4.12
3806 | resolve: 1.22.0
3807 | rollup: 2.70.1
3808 | optionalDependencies:
3809 | fsevents: 2.3.2
3810 | dev: true
3811 |
3812 | /vitest/0.8.4_c8@7.11.0+jsdom@19.0.0:
3813 | resolution: {integrity: sha512-1OoAG1+VYkzp4WLCVQFRJX/OKk70rsMIM5H23crfc1wSEnJvHlxgQBS1HPpV/VYmjC8bIInKWhnB4Gaw32MnyQ==}
3814 | engines: {node: '>=v14.16.0'}
3815 | hasBin: true
3816 | peerDependencies:
3817 | '@vitest/ui': '*'
3818 | c8: '*'
3819 | happy-dom: '*'
3820 | jsdom: '*'
3821 | peerDependenciesMeta:
3822 | '@vitest/ui':
3823 | optional: true
3824 | c8:
3825 | optional: true
3826 | happy-dom:
3827 | optional: true
3828 | jsdom:
3829 | optional: true
3830 | dependencies:
3831 | '@types/chai': 4.3.0
3832 | '@types/chai-subset': 1.3.3
3833 | c8: 7.11.0
3834 | chai: 4.3.6
3835 | jsdom: 19.0.0
3836 | local-pkg: 0.4.1
3837 | tinypool: 0.1.2
3838 | tinyspy: 0.3.0
3839 | vite: 2.9.1
3840 | transitivePeerDependencies:
3841 | - less
3842 | - sass
3843 | - stylus
3844 | dev: true
3845 |
3846 | /w3c-hr-time/1.0.2:
3847 | resolution: {integrity: sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==}
3848 | dependencies:
3849 | browser-process-hrtime: 1.0.0
3850 | dev: true
3851 |
3852 | /w3c-xmlserializer/3.0.0:
3853 | resolution: {integrity: sha512-3WFqGEgSXIyGhOmAFtlicJNMjEps8b1MG31NCA0/vOF9+nKMUW1ckhi9cnNHmf88Rzw5V+dwIwsm2C7X8k9aQg==}
3854 | engines: {node: '>=12'}
3855 | dependencies:
3856 | xml-name-validator: 4.0.0
3857 | dev: true
3858 |
3859 | /webidl-conversions/7.0.0:
3860 | resolution: {integrity: sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==}
3861 | engines: {node: '>=12'}
3862 | dev: true
3863 |
3864 | /whatwg-encoding/2.0.0:
3865 | resolution: {integrity: sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==}
3866 | engines: {node: '>=12'}
3867 | dependencies:
3868 | iconv-lite: 0.6.3
3869 | dev: true
3870 |
3871 | /whatwg-mimetype/3.0.0:
3872 | resolution: {integrity: sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==}
3873 | engines: {node: '>=12'}
3874 | dev: true
3875 |
3876 | /whatwg-url/10.0.0:
3877 | resolution: {integrity: sha512-CLxxCmdUby142H5FZzn4D8ikO1cmypvXVQktsgosNy4a4BHrDHeciBBGZhb0bNoR5/MltoCatso+vFjjGx8t0w==}
3878 | engines: {node: '>=12'}
3879 | dependencies:
3880 | tr46: 3.0.0
3881 | webidl-conversions: 7.0.0
3882 | dev: true
3883 |
3884 | /which-boxed-primitive/1.0.2:
3885 | resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==}
3886 | dependencies:
3887 | is-bigint: 1.0.4
3888 | is-boolean-object: 1.1.2
3889 | is-number-object: 1.0.6
3890 | is-string: 1.0.7
3891 | is-symbol: 1.0.4
3892 | dev: true
3893 |
3894 | /which/2.0.2:
3895 | resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==}
3896 | engines: {node: '>= 8'}
3897 | hasBin: true
3898 | dependencies:
3899 | isexe: 2.0.0
3900 | dev: true
3901 |
3902 | /word-wrap/1.2.3:
3903 | resolution: {integrity: sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==}
3904 | engines: {node: '>=0.10.0'}
3905 | dev: true
3906 |
3907 | /wrap-ansi/6.2.0:
3908 | resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==}
3909 | engines: {node: '>=8'}
3910 | dependencies:
3911 | ansi-styles: 4.3.0
3912 | string-width: 4.2.3
3913 | strip-ansi: 6.0.1
3914 | dev: true
3915 |
3916 | /wrap-ansi/7.0.0:
3917 | resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==}
3918 | engines: {node: '>=10'}
3919 | dependencies:
3920 | ansi-styles: 4.3.0
3921 | string-width: 4.2.3
3922 | strip-ansi: 6.0.1
3923 | dev: true
3924 |
3925 | /wrappy/1.0.2:
3926 | resolution: {integrity: sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=}
3927 | dev: true
3928 |
3929 | /ws/8.5.0:
3930 | resolution: {integrity: sha512-BWX0SWVgLPzYwF8lTzEy1egjhS4S4OEAHfsO8o65WOVsrnSRGaSiUaa9e0ggGlkMTtBlmOpEXiie9RUcBO86qg==}
3931 | engines: {node: '>=10.0.0'}
3932 | peerDependencies:
3933 | bufferutil: ^4.0.1
3934 | utf-8-validate: ^5.0.2
3935 | peerDependenciesMeta:
3936 | bufferutil:
3937 | optional: true
3938 | utf-8-validate:
3939 | optional: true
3940 | dev: true
3941 |
3942 | /xml-name-validator/4.0.0:
3943 | resolution: {integrity: sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==}
3944 | engines: {node: '>=12'}
3945 | dev: true
3946 |
3947 | /xmlchars/2.2.0:
3948 | resolution: {integrity: sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==}
3949 | dev: true
3950 |
3951 | /y18n/5.0.8:
3952 | resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==}
3953 | engines: {node: '>=10'}
3954 | dev: true
3955 |
3956 | /yallist/4.0.0:
3957 | resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==}
3958 | dev: true
3959 |
3960 | /yargs-parser/20.2.9:
3961 | resolution: {integrity: sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==}
3962 | engines: {node: '>=10'}
3963 | dev: true
3964 |
3965 | /yargs/16.2.0:
3966 | resolution: {integrity: sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==}
3967 | engines: {node: '>=10'}
3968 | dependencies:
3969 | cliui: 7.0.4
3970 | escalade: 3.1.1
3971 | get-caller-file: 2.0.5
3972 | require-directory: 2.1.1
3973 | string-width: 4.2.3
3974 | y18n: 5.0.8
3975 | yargs-parser: 20.2.9
3976 | dev: true
3977 |
3978 | /yauzl/2.10.0:
3979 | resolution: {integrity: sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=}
3980 | dependencies:
3981 | buffer-crc32: 0.2.13
3982 | fd-slicer: 1.1.0
3983 | dev: true
3984 |
3985 | /yocto-queue/0.1.0:
3986 | resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==}
3987 | engines: {node: '>=10'}
3988 | dev: true
3989 |
--------------------------------------------------------------------------------