├── assets
└── hero.jpg
├── eslint.config.js
├── figma-test-files
├── Simple scroll.fig
├── Four empty frames.fig
├── Simple frame navigation.fig
├── Click and drag frame navigation.fig
└── Touch up with delay frame navigation.fig
├── .gitignore
├── manifest.json
├── .github
├── ISSUE_TEMPLATE
│ ├── generic-issue.md
│ └── bug_report.md
└── workflows
│ └── test.yml
├── tsconfig.json
├── package.json
├── src
├── main.ts
├── ui.tsx
├── traverse.ts
├── types.ts
├── utils.ts
├── generators.ts
└── generators.test.ts
├── .vscode
└── settings.json
├── CONTRIBUTING.md
├── README.md
└── pnpm-lock.yaml
/assets/hero.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NoriSte/figma-to-xstate/HEAD/assets/hero.jpg
--------------------------------------------------------------------------------
/eslint.config.js:
--------------------------------------------------------------------------------
1 | import antfu from '@antfu/eslint-config'
2 |
3 | export default antfu({ rules: { 'no-console': 0 } })
4 |
--------------------------------------------------------------------------------
/figma-test-files/Simple scroll.fig:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NoriSte/figma-to-xstate/HEAD/figma-test-files/Simple scroll.fig
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # Node
2 | *.log
3 | *.log.*
4 | node_modules
5 |
6 | out/
7 | dist/
8 | build/
9 | code.js
10 |
11 | .DS_Store
12 |
--------------------------------------------------------------------------------
/figma-test-files/Four empty frames.fig:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NoriSte/figma-to-xstate/HEAD/figma-test-files/Four empty frames.fig
--------------------------------------------------------------------------------
/figma-test-files/Simple frame navigation.fig:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NoriSte/figma-to-xstate/HEAD/figma-test-files/Simple frame navigation.fig
--------------------------------------------------------------------------------
/figma-test-files/Click and drag frame navigation.fig:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NoriSte/figma-to-xstate/HEAD/figma-test-files/Click and drag frame navigation.fig
--------------------------------------------------------------------------------
/figma-test-files/Touch up with delay frame navigation.fig:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NoriSte/figma-to-xstate/HEAD/figma-test-files/Touch up with delay frame navigation.fig
--------------------------------------------------------------------------------
/manifest.json:
--------------------------------------------------------------------------------
1 | { "api": "1.0.0", "editorType": ["figma"], "id": "1333069526938083033", "name": "Figma to XState", "main": "build/main.js", "ui": "build/ui.js", "networkAccess": { "allowedDomains": ["none"] } }
2 |
--------------------------------------------------------------------------------
/.github/ISSUE_TEMPLATE/generic-issue.md:
--------------------------------------------------------------------------------
1 | ---
2 | name: Generic issue
3 | about: Whatever that does not fall under the above cases.
4 | title: ''
5 | labels: ''
6 | assignees: ''
7 |
8 | ---
9 |
10 |
11 |
--------------------------------------------------------------------------------
/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "@create-figma-plugin/tsconfig",
3 | "compilerOptions": {
4 | // These are the default Figma plugin settings that, for instance, forbid accessing `navigator`
5 | // (while create-figma-plugin does not forbid it)
6 | "target": "es6",
7 | "jsx": "react-jsx",
8 | "jsxFactory": "",
9 | "jsxFragmentFactory": "",
10 | "jsxImportSource": "preact",
11 | "lib": ["es6"],
12 | "typeRoots": ["./node_modules/@types", "./node_modules/@figma"],
13 | "strict": true,
14 | "noUncheckedIndexedAccess": true,
15 | "skipLibCheck": true
16 | },
17 | "include": ["src/**/*.ts", "src/**/*.tsx"],
18 | "exclude": [
19 | "src/**/*.test.ts"
20 | ]
21 | }
22 |
--------------------------------------------------------------------------------
/.github/ISSUE_TEMPLATE/bug_report.md:
--------------------------------------------------------------------------------
1 | ---
2 | name: Bug report
3 | about: Create a report to help us improve
4 | title: ''
5 | labels: ''
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 | 1. Include the Figma file that contains a minimal reproduction example
15 | 2. Report the type of XState machine you exported
16 | 2. (is the plugin does not break) Include the exported code
17 |
18 | **Expected behavior**
19 | A clear and concise description of what you expected to happen.
20 |
21 | **Screenshots**
22 | If applicable, add screenshots to help explain your problem.
23 |
24 | **Context**
25 | - OS: [e.g. MacOS/Windows]
26 | - Figma Desktop version [e.g. 116.10.9]
27 |
--------------------------------------------------------------------------------
/.github/workflows/test.yml:
--------------------------------------------------------------------------------
1 | name: Test
2 | on: [push, pull_request]
3 |
4 | jobs:
5 | short:
6 | runs-on: ubuntu-latest
7 |
8 | name: Node.js Quick
9 | steps:
10 | - uses: actions/checkout@v3
11 |
12 | - name: Install pnpm
13 | uses: pnpm/action-setup@v2
14 |
15 | - name: Use Node.js
16 | uses: actions/setup-node@v3
17 | with:
18 | node-version: '20'
19 | cache: pnpm
20 |
21 | - name: Install dependencies
22 | run: pnpm ci:install
23 |
24 | - name: Lint
25 | run: pnpm lint
26 |
27 | - name: Typecheck
28 | run: pnpm typecheck
29 |
30 | - name: Test Build
31 | run: pnpm build
32 |
33 | - name: Run tests
34 | run: pnpm test
35 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "type": "module",
3 | "packageManager": "pnpm@8.4.0",
4 | "engines": {
5 | "node": "^18.0.0 || >=20.0.0"
6 | },
7 | "scripts": {
8 | "ci:install": "pnpm install --frozen-lockfile",
9 | "build": "build-figma-plugin --typecheck --minify",
10 | "watch": "build-figma-plugin --typecheck --watch",
11 | "test": "npm run test:unit",
12 | "typecheck": "tsc --noEmit",
13 | "lint": "eslint .",
14 | "lint:fix": "eslint . --fix",
15 | "test:unit": "vitest"
16 | },
17 | "dependencies": {
18 | "@create-figma-plugin/utilities": "2.6.1",
19 | "code-block-writer": "12.0.0",
20 | "figx": "0.1.3"
21 | },
22 | "devDependencies": {
23 | "@antfu/eslint-config": "1.1.0",
24 | "@create-figma-plugin/build": "3.0.2",
25 | "@create-figma-plugin/tsconfig": "3.0.2",
26 | "@create-figma-plugin/ui": "3.0.2",
27 | "@figma/plugin-typings": "1.79.0",
28 | "eslint": "^8.55.0",
29 | "preact": "10.18.1",
30 | "simple-git-hooks": "^2.9.0",
31 | "typescript": "5.2.2",
32 | "vitest": "1.0.4",
33 | "xstateV4": "npm:xstate@4"
34 | },
35 | "figma-plugin": {
36 | "editorType": [
37 | "figma"
38 | ],
39 | "id": "1333069526938083033",
40 | "name": "Figma to XState",
41 | "ui": "src/ui.tsx",
42 | "main": "src/main.ts",
43 | "networkAccess": { "allowedDomains": ["none"] }
44 | },
45 | "simple-git-hooks": {
46 | "pre-commit": "pnpm typecheck && pnpm lint:fix"
47 | }
48 | }
49 |
--------------------------------------------------------------------------------
/src/main.ts:
--------------------------------------------------------------------------------
1 | import { on, showUI } from '@create-figma-plugin/utilities'
2 | import type { FigmaAgnosticDescriptor } from './types'
3 | import { type GeneratorOptions, generateXStateV4Machine } from './generators'
4 | import { traversePage } from './traverse'
5 | import { generateNewWriter } from './utils'
6 |
7 | const uiOptions = { width: 480, height: 240 } as const
8 |
9 | function run() {
10 | // --------------------------------------------------
11 | // TRAVERSE
12 | const { simplifiedFrames } = traversePage()
13 |
14 | // --------------------------------------------------
15 |
16 | const figmaAgnosticDescriptor: FigmaAgnosticDescriptor = {
17 | pageName: figma.currentPage.name,
18 | simplifiedFrames,
19 |
20 | }
21 |
22 | const writer = generateNewWriter()
23 |
24 | const generatorOptions: GeneratorOptions = {
25 | writer,
26 | figmaAgnosticDescriptor,
27 | }
28 |
29 | console.log('generatorOptions', JSON.stringify(figmaAgnosticDescriptor), null, 2)
30 |
31 | // return
32 |
33 | // --------------------------------------------------
34 | // GENERATE
35 | generateXStateV4Machine(generatorOptions)
36 | // --------------------------------------------------
37 |
38 | return writer.toString()
39 | }
40 |
41 | function runAndShowResult() {
42 | showUI(uiOptions, { generatedXStateConfig: run() })
43 | }
44 |
45 | export default function main() {
46 | runAndShowResult()
47 |
48 | // UI EVENTS
49 | on('REGENERATE', runAndShowResult)
50 | }
51 |
--------------------------------------------------------------------------------
/src/ui.tsx:
--------------------------------------------------------------------------------
1 | import { useEffect } from 'preact/hooks'
2 | import { copyToClipboard } from 'figx'
3 |
4 | import {
5 | Banner,
6 | Button,
7 | Code,
8 | Container,
9 | IconWarning32,
10 | Stack,
11 | Text,
12 | render,
13 | } from '@create-figma-plugin/ui'
14 | import { emit } from '@create-figma-plugin/utilities'
15 |
16 | function SomethingWentWrong({ reason }: { reason: string }) {
17 | return (
18 | } variant="warning">
19 | Something went wrong (
20 | {reason}
21 | )
22 |
23 | )
24 | }
25 |
26 | function PrintXStateV4Config({ generatedXStateConfig }: { generatedXStateConfig: string }) {
27 | useEffect(() => {
28 | copyToClipboard(generatedXStateConfig)
29 | }, [generatedXStateConfig])
30 |
31 | return (
32 |
33 | The XState V4 config has been copied to clipboard.
34 |
35 | {generatedXStateConfig}
36 |
37 |
38 |
39 | )
40 | }
41 |
42 | function RegenerateButton({ handleClick }: { handleClick: () => void }) {
43 | return (
44 |
45 |
48 |
49 | )
50 | }
51 |
52 | /**
53 | * The UI entry point rendered by create-figma-plugin
54 | */
55 | function UI({ generatedXStateConfig }: { generatedXStateConfig: unknown }) {
56 | if (typeof generatedXStateConfig !== 'string') {
57 | console.log({ generatedXStateConfig })
58 | return
59 | }
60 |
61 | return (
62 |
63 |
64 |
65 | {
66 | emit('REGENERATE')
67 | }}
68 | />
69 |
70 |
71 | )
72 | }
73 |
74 | export default render(UI)
75 |
--------------------------------------------------------------------------------
/.vscode/settings.json:
--------------------------------------------------------------------------------
1 | {
2 | // --------------------------------------------------
3 | // ANTFU ESLINT CONFIG START
4 | // --------------------------------------------------
5 | // Enable the ESlint flat config support
6 | "eslint.experimental.useFlatConfig": true,
7 |
8 | // Disable the default formatter, use eslint instead
9 | "prettier.enable": false,
10 | "editor.formatOnSave": false,
11 |
12 | // Auto fix
13 | "editor.codeActionsOnSave": {
14 | "source.fixAll.eslint": "explicit",
15 | "source.organizeImports": "never"
16 | },
17 |
18 | // Silent the stylistic rules in you IDE, but still auto fix them
19 | "eslint.rules.customizations": [
20 | { "rule": "style/*", "severity": "off" },
21 | { "rule": "*-indent", "severity": "off" },
22 | { "rule": "*-spacing", "severity": "off" },
23 | { "rule": "*-spaces", "severity": "off" },
24 | { "rule": "*-order", "severity": "off" },
25 | { "rule": "*-dangle", "severity": "off" },
26 | { "rule": "*-newline", "severity": "off" },
27 | { "rule": "*quotes", "severity": "off" },
28 | { "rule": "*semi", "severity": "off" }
29 | ],
30 |
31 | // Enable eslint for all supported languages
32 | "eslint.validate": [
33 | "javascript",
34 | "javascriptreact",
35 | "typescript",
36 | "typescriptreact",
37 | "vue",
38 | "html",
39 | "markdown",
40 | "json",
41 | "jsonc",
42 | "yaml"
43 | ],
44 | // --------------------------------------------------
45 | // ANTFU ESLINT CONFIG END
46 | // --------------------------------------------------
47 |
48 | // --------------------------------------------------
49 | // CREATE FIGMA PLUGIN START
50 | // --------------------------------------------------
51 | "json.schemas": [
52 | {
53 | "fileMatch": ["package.json"],
54 | "url": "https://yuanqing.github.io/create-figma-plugin/figma-plugin.json"
55 | }
56 | ]
57 | // --------------------------------------------------
58 | // CREATE FIGMA PLUGIN END
59 | // --------------------------------------------------
60 | }
61 |
--------------------------------------------------------------------------------
/src/traverse.ts:
--------------------------------------------------------------------------------
1 | import { isFrame } from './types'
2 | import type { SimplifiedFrame, SimplifiedFrames } from './types'
3 | import {
4 | assertIsDefined,
5 | findParentRootFrame,
6 | getOnClickReactionData,
7 | getOnDragReactionData,
8 | getOnMouseEventReactionData,
9 | isRootFrame,
10 | } from './utils'
11 |
12 | export function traversePage() {
13 | const simplifiedFrames: SimplifiedFrames = []
14 | const simplifiedFramesById: Record = {}
15 |
16 | const { skipInvisibleInstanceChildren: skipInvisibleInstanceChildrenBackup } = figma
17 |
18 | // Skip over invisible nodes and their descendants inside instances for faster performance.
19 | figma.skipInvisibleInstanceChildren = true
20 |
21 | // Loop optimized to traverse the full document only once
22 | figma.currentPage.findAll((node) => {
23 | if (isFrame(node) && isRootFrame(node)) {
24 | simplifiedFramesById[node.id] ??= { id: node.id, name: node.name, reactionsData: [] }
25 | const simplifiedFrame = simplifiedFramesById[node.id]
26 | assertIsDefined(simplifiedFrame, `Unexisting frame (node id ${node.id})`)
27 |
28 | simplifiedFrames.push(simplifiedFrame)
29 | }
30 |
31 | const onDragReactionData = getOnDragReactionData({ node })
32 | const onClickReactionData = getOnClickReactionData({ node })
33 | const onMouseEventReactionData = getOnMouseEventReactionData({ node })
34 |
35 | if (
36 | onDragReactionData.length
37 | || onClickReactionData.length
38 | || onMouseEventReactionData.length
39 |
40 | ) {
41 | const rootFrameId = findParentRootFrame(node).id
42 |
43 | const rootFrame = simplifiedFramesById[rootFrameId]
44 | assertIsDefined(rootFrame, `Root Frame not found (node id ${rootFrameId})`)
45 |
46 | const reactionsData = [
47 | ...onDragReactionData,
48 | ...onClickReactionData,
49 | ...onMouseEventReactionData,
50 | ]
51 |
52 | rootFrame.reactionsData.push(...reactionsData)
53 | }
54 |
55 | // Ensure the loop traverses the full document
56 | return false
57 | })
58 |
59 | // Restore the original value
60 | figma.skipInvisibleInstanceChildren = skipInvisibleInstanceChildrenBackup
61 |
62 | return { simplifiedFrames }
63 | }
64 |
--------------------------------------------------------------------------------
/src/types.ts:
--------------------------------------------------------------------------------
1 | // --------------------------------------------------
2 | // TYPES
3 | // --------------------------------------------------
4 |
5 | /**
6 | * Contain all the Figma prototype-related but agnostic data useful to generate the state machine.
7 | * The object is a proxy between the traversed Figma document and the state machine generators.
8 | */
9 | export interface FigmaAgnosticDescriptor {
10 | readonly pageName: string
11 | /**
12 | * A tree that reflects the Figma document structure, which contains only the frames and the
13 | * interactive nodes that belong to the frames. Compared to a standard tree, there are multiple
14 | * root frames.
15 | */
16 | readonly simplifiedFrames: SimplifiedFrames
17 |
18 | }
19 |
20 | export type SimplifiedFrames = SimplifiedFrame[]
21 |
22 | export type SimplifiedFrame = Pick & {
23 | reactionsData: ReactionData[]
24 | }
25 |
26 | export type ReactionData = ReactionDataCommonProperties & ReactionDataTriggerProperties & ReactionDataNavigationProperties
27 |
28 | export interface ReactionDataCommonProperties {
29 | // The node name or the name of the first text element found inside
30 | generatedName: string
31 | }
32 |
33 | export type ReactionDataTriggerProperties = {
34 | triggerType: 'ON_CLICK' | 'ON_DRAG'
35 | }
36 | | {
37 | triggerType: 'MOUSE_ENTER' | 'MOUSE_LEAVE' | 'MOUSE_UP' | 'MOUSE_DOWN'
38 |
39 | // In the Figma UI, the delay can be set only if the device is mobile and the events are
40 | // MOUSE_LEAVE, MOUSE_ENTER, TOUCH_DOWN, TOUCH_UP even if the TOUCH events are typed as mouse
41 | // ones. It's better to specify this detail in the docs. If the delay is 0, the property is not defined
42 | delay?: MillisecondsGreaterThanZero
43 | }
44 |
45 | type ReactionDataNavigationProperties = {
46 | navigationType: 'NAVIGATE'
47 | destinationFrameId: string
48 | destinationFrameName: string
49 | } | {
50 | navigationType: 'SCROLL_TO'
51 | destinationNodeId: string
52 | destinationNodeName: string
53 | }
54 |
55 | type MillisecondsGreaterThanZero = number
56 |
57 | // --------------------------------------------------
58 | // GUARDS
59 | // --------------------------------------------------
60 |
61 | export function isFrame(node: SceneNode): node is FrameNode {
62 | return node.type === 'FRAME'
63 | }
64 |
65 | export function isGroup(node: BaseNode): node is GroupNode {
66 | return node.type === 'GROUP'
67 | }
68 |
--------------------------------------------------------------------------------
/CONTRIBUTING.md:
--------------------------------------------------------------------------------
1 | # Contributing
2 |
3 |
4 |
5 | ## Issues
6 |
7 | If you want to raise an issue:
8 | 1. Please check the [README's roadmap](./README.md#roadmap) in advance, chances are we already
9 | planned to work on what you need
10 | 1. Please check the [README's FAQ](./README.md#faq) in advance, chances are we are aware of your
11 | needs but we chose not to work on them
12 |
13 | ## Features
14 |
15 | First of all, open an issue to describe the feature you would like to build. This helps to avoid you
16 | wasting your time in case something is not needed or we have a different vision about the topic 😊
17 |
18 | ## Development
19 |
20 | ### How the plugin works
21 |
22 | If you start from [src/types.ts](./src/types.ts), and [src/main.ts](./src/main.ts) files, you can
23 | see the plugin is split in two big steps:
24 |
25 | 1. A **traverser**: it goes through the content of the Figma document looking for all the useful
26 | elements which influence the generated state machine (for instance: fragments, buttons, etc.). The
27 | goal is to generate a **Figma-agnostic object descriptor** used later on to generate the state
28 | machine. The object created by the traverser is logged in the console's devtools.
29 |
30 | 1. Some **generators**: they generate the state machine's code out of the Figma-agnostic object
31 | descriptor. The generate machine is a string to be then copy-pasted in your own project, or in the
32 | XState visualizer. In the future, more generators will be added.
33 |
34 | ### Tests
35 |
36 | At the moment:
37 | 1. The traverser is not tested
38 | 2. The generators are unit tested
39 | 1. Anyway, only the generated string is checked. At the moment, the string is not used to create
40 | a real XState state machine
41 |
42 |
43 | ### To do list
44 |
45 | Here is an non-exhausting list of things to do on the project, prioritize by importance.
46 |
47 | 1. Cover more Figma's features (see the main [README](./README.md))
48 | 2. Set up automatic releases
49 | 3. Add documentation for how the supported Figma entities and interactions are then converted to the
50 | state machine
51 |
52 |
53 | ## Development guide
54 |
55 | *This plugin is built with [Create Figma Plugin](https://yuanqing.github.io/create-figma-plugin/).*
56 |
57 | ### Pre-requisites
58 |
59 | - [Pnpm](https://pnpm.io/) – v8.4.0
60 | - [Node.js](https://nodejs.org) – v18
61 | - [Figma desktop app](https://figma.com/downloads/)
62 | - The dependencies installed through
63 | ```
64 | $ pnpm install
65 | ```
66 |
67 | ### Build the plugin
68 |
69 | To build the plugin:
70 |
71 | ```
72 | $ pnpm build
73 | ```
74 |
75 | This will generate a [`manifest.json`](https://figma.com/plugin-docs/manifest/) file and a `build/`
76 | directory containing the JavaScript bundle(s) for the plugin.
77 |
78 |
79 | ### Development
80 |
81 | 1. Download [Figma Desktop](https://www.figma.com/downloads/)
82 | 2. In Figma, enable HMR through `Plugins (in the menu bar) -> Development -> Hot reload plugin`
83 | 3. Watch for code changes and rebuild the plugin automatically
84 | ```
85 | $ pnpm watch
86 | ```
87 | 4. Keep the unit tests running
88 | ```
89 | $ pnpm test
90 | ```
91 | 5. Open the developer console, search for and run `Show/Hide console` via the Quick Actions search bar.
92 |
93 | You can use one of the available [Figma files](./src/figma-files/) to play with the plugin.
94 |
95 |
96 | ## See also
97 |
98 | - [Create Figma Plugin docs](https://yuanqing.github.io/create-figma-plugin/)
99 | - [`yuanqing/figma-plugins`](https://github.com/yuanqing/figma-plugins#readme)
100 |
101 | Official docs and code samples from Figma:
102 |
103 | - [Plugin API docs](https://figma.com/plugin-docs/)
104 | - [`figma/plugin-samples`](https://github.com/figma/plugin-samples#readme)
105 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | > [!NOTE]
2 | > I stopped working on this project!
3 | >
4 | > - I didn't find complex-enough and valid use cases in my day-to-day working life.
5 | > - Apart from genuine curiosity, I didn't find much interest from the community.
6 | > - At the same time, the Figma prototype -> XState conversion is trickier than expected, due to the nested Figma prototype logic. See [discussions/10](https://github.com/NoriSte/figma-to-xstate/discussions/10) as an example.
7 | > - I achieved the personal goal of learning about [the Figma plu-gin API](https://www.figma.com/plugin-docs/).
8 | > - Which resulted in me implementing a Figma plugin, [Select and Inspect](https://www.figma.com/community/plugin/1348339696557868933/select-and-inspect), as a side effect.
9 | > - Which allowed me to implement a Figma plugin to check if Preply's Figma files correctly use the tokens or not (it's feasible but quite complex, and it turned out that even more staffed Design System teams avoid doing it due to the maintenance load)
10 | > - Which got us (Preply's Design System team) decide to keep the Design System visual coverage on the engineering side. You can read more about it the dedicated article: Visual coverage: [Why and How Preply Measures the Impact of the Design System](https://medium.com/preply-engineering/visual-coverage-why-and-how-preply-measures-the-impact-of-the-design-system-1057115f4aff).
11 |
12 | ---
13 |
14 |
15 | # 🚧 Figma to XState
16 |
17 | A Figma plugin to convert a Figma prototype to an XState machine (work in progress).
18 |
19 | 
20 |
21 | ## Why?
22 |
23 | I trust XState not only as a powerful development tool, but also for enabling pair programming
24 | among engineers and Product stakeholders.
25 |
26 | Product teams do not miss much edge cases when they design
27 | features through flowcharts and also ease a flowchart-to-XState machine conversion process. At the
28 | same time, I think a Figma prototype to XState machine convert tool can speed up the initial
29 | conversion process, allowing later engineering rework the state machine with or without the designers.
30 |
31 |
32 | ## Roadmap
33 |
34 | - [x] Export Figma's frames as XState's states
35 | - [ ] Export Figma's interactions as XState's events
36 | - [x] Click
37 | - [x] Drag
38 | - [ ] Key
39 | - [x] Mouse enter/leave
40 | - [x] Mouse down/up (touch down/touch up)
41 | - [x] Delay for all the mouse events
42 | - [ ] Delays that override each other
43 | - [ ] Set variable
44 | - [ ] Support for variable collections
45 | - [ ] Export Figma's actions actions as XState's events
46 | - [x] Navigate
47 | - [ ] Change to
48 | - [ ] Back
49 | - [ ] Set variable
50 | - [ ] Conditional
51 | - [x] Scroll to
52 | - [ ] Open link
53 | - [ ] Open overlay
54 | - [ ] Swap overlay
55 | - [ ] Close overlay
56 | - [ ] Support for multiple prototypes in the same page
57 | - [ ] Support for custom prototype starting points (frames or elements)
58 | - [ ] Support for frames and elements with the same name
59 | - [ ] Export XState V5 machine
60 |
61 |
62 |
63 |
64 | ## FAQ
65 |
66 | *Is an XState machine to Figma prototype conversion in the roadmap?*?
67 |
68 | No, Figma's prototypes lacks most of the XState's functionalities.
69 |
70 | *Is a two-way sync in the roadmap after the first export?*?
71 |
72 | No, I think tracking what happened to the XState machine after it has been exported is too hard and
73 | Figma's prototypes lacks most of the XState's functionalities.
74 |
75 |
76 | ### Install the plugin
77 |
78 | 1. In the Figma desktop app, open a Figma document.
79 | 2. Search for and run `Import plugin from manifest…` via the Quick Actions search bar.
80 | 3. Select the `manifest.json` file that was generated by the `build` script.
81 |
--------------------------------------------------------------------------------
/src/utils.ts:
--------------------------------------------------------------------------------
1 | import CodeBlockWriter from 'code-block-writer'
2 | import { isGroup } from './types'
3 | import type { ReactionData, ReactionDataCommonProperties, ReactionDataTriggerProperties } from './types'
4 |
5 | export function generateNewWriter() {
6 | return new CodeBlockWriter({
7 | useTabs: false,
8 | useSingleQuote: true,
9 | indentNumberOfSpaces: 2,
10 | })
11 | }
12 |
13 | export function generateNodeName(node: BaseNode) {
14 | return isGroup(node) ? generateGroupName(node) : node.name
15 | }
16 |
17 | function generateGroupName(node: GroupNode) {
18 | const groupHasGenericName = /^Group\s\d+$/.test(node.name)
19 | if (!groupHasGenericName)
20 | return node.name
21 |
22 | let childName = ''
23 |
24 | node.findAll((child) => {
25 | if (childName)
26 | return false
27 | if (child.type === 'TEXT')
28 | childName = child.name
29 |
30 | return false
31 | })
32 |
33 | return childName || node.name
34 | }
35 |
36 | export function normalizeString(str: string) {
37 | return str.trim().replace(/[^a-zA-Z0-9]/g, '_')
38 | }
39 |
40 | export function getOnClickReactionData(params: {
41 |
42 | node: SceneNode
43 |
44 | }): ReactionData[] {
45 | const { node } = params
46 |
47 | if (!('reactions' in node))
48 | return []
49 |
50 | const result: ReactionData[] = []
51 |
52 | for (const reaction of node.reactions) {
53 | if (!reaction.trigger)
54 | continue
55 | if (reaction.trigger.type !== 'ON_CLICK')
56 | continue
57 | if (!reaction.action)
58 | continue
59 | if (reaction.action.type !== 'NODE')
60 | continue
61 | if (!reaction.action.destinationId)
62 | continue
63 |
64 | if (reaction.action.navigation === 'NAVIGATE') {
65 | result.push({
66 | triggerType: reaction.trigger.type,
67 | navigationType: reaction.action.navigation,
68 | destinationFrameId: reaction.action.destinationId,
69 | destinationFrameName: generateNodeName(figma.getNodeById(reaction.action.destinationId)!),
70 | generatedName: generateNodeName(node),
71 | })
72 | }
73 | if (reaction.action.navigation === 'SCROLL_TO') {
74 | result.push({
75 | triggerType: reaction.trigger.type,
76 | navigationType: reaction.action.navigation,
77 | destinationNodeId: reaction.action.destinationId,
78 | destinationNodeName: generateNodeName(figma.getNodeById(reaction.action.destinationId)!),
79 | generatedName: generateNodeName(node),
80 | })
81 | }
82 | }
83 | return result
84 | }
85 |
86 | export function getOnDragReactionData(params: {
87 | node: SceneNode
88 |
89 | }): ReactionData[] {
90 | const { node } = params
91 |
92 | if (!('reactions' in node))
93 | return []
94 |
95 | const result: ReactionData[] = []
96 |
97 | for (const reaction of node.reactions) {
98 | if (!reaction.trigger)
99 | continue
100 | if (reaction.trigger.type !== 'ON_DRAG')
101 | continue
102 | if (!reaction.action)
103 | continue
104 | if (reaction.action.type !== 'NODE')
105 | continue
106 | if (!reaction.action.destinationId)
107 | continue
108 |
109 | if (reaction.action.navigation === 'NAVIGATE') {
110 | result.push({
111 | triggerType: reaction.trigger.type,
112 | navigationType: reaction.action.navigation,
113 | destinationFrameId: reaction.action.destinationId,
114 | destinationFrameName: generateNodeName(figma.getNodeById(reaction.action.destinationId)!),
115 | generatedName: generateNodeName(node),
116 | })
117 | }
118 | if (reaction.action.navigation === 'SCROLL_TO') {
119 | result.push({
120 | triggerType: reaction.trigger.type,
121 | navigationType: reaction.action.navigation,
122 | destinationNodeId: reaction.action.destinationId,
123 | destinationNodeName: generateNodeName(figma.getNodeById(reaction.action.destinationId)!),
124 | generatedName: generateNodeName(node),
125 | })
126 | }
127 | }
128 |
129 | return result
130 | }
131 |
132 | export function getOnMouseEventReactionData(params: {
133 | node: SceneNode
134 |
135 | }): ReactionData[] {
136 | const { node } = params
137 |
138 | if (!('reactions' in node))
139 | return []
140 |
141 | const result: ReactionData[] = []
142 |
143 | for (const reaction of node.reactions) {
144 | if (!reaction.trigger)
145 | continue
146 |
147 | if (
148 | reaction.trigger.type !== 'MOUSE_ENTER'
149 | && reaction.trigger.type !== 'MOUSE_LEAVE'
150 | && reaction.trigger.type !== 'MOUSE_UP'
151 | && reaction.trigger.type !== 'MOUSE_DOWN'
152 | )
153 | continue
154 |
155 | if (!reaction.action)
156 | continue
157 | if (reaction.action.type !== 'NODE')
158 | continue
159 | if (!reaction.action.destinationId)
160 | continue
161 |
162 | const navigationNodeCommonProperties: ReactionDataCommonProperties & ReactionDataTriggerProperties = {
163 | triggerType: reaction.trigger.type,
164 | generatedName: generateNodeName(node),
165 | }
166 |
167 | // TODO: tell the user in case the delay is set to 0
168 | if (reaction.trigger.delay > 0) {
169 | // In the Figma UI, the delay can be set only if the device is mobile and the events are
170 | // MOUSE_LEAVE, MOUSE_ENTER, TOUCH_DOWN, TOUCH_UP even if the TOUCH events are typed as mouse
171 | // ones. It's better to specify this detail in the docs
172 | navigationNodeCommonProperties.delay = reaction.trigger.delay * 1000
173 | }
174 |
175 | if (reaction.action.navigation === 'NAVIGATE') {
176 | result.push({
177 | ...navigationNodeCommonProperties,
178 | navigationType: reaction.action.navigation,
179 | destinationFrameId: reaction.action.destinationId,
180 | destinationFrameName: generateNodeName(figma.getNodeById(reaction.action.destinationId)!),
181 | })
182 | // Can't break because the same node can have multiple mouse reactions
183 | }
184 | if (reaction.action.navigation === 'SCROLL_TO') {
185 | result.push({
186 | ...navigationNodeCommonProperties,
187 | navigationType: reaction.action.navigation,
188 | destinationNodeId: reaction.action.destinationId,
189 | destinationNodeName: generateNodeName(figma.getNodeById(reaction.action.destinationId)!),
190 |
191 | })
192 | // Can't break because the same node can have multiple mouse reactions
193 | }
194 | }
195 |
196 | return result
197 | }
198 |
199 | export function findParentRootFrame(node: BaseNode) {
200 | const parent = node.parent
201 |
202 | assertIsDefined(parent, `Parentless nodes are not expected (node id: ${node.id})`)
203 |
204 | if (parent.type === 'FRAME' && isRootFrame(parent))
205 | return parent
206 |
207 | return findParentRootFrame(parent)
208 | }
209 |
210 | export function isRootFrame(node: FrameNode) {
211 | if (node.parent?.type === 'FRAME')
212 | return false
213 |
214 | return true
215 | }
216 |
217 | export function assertIsDefined(value: T, errorMessage: string): asserts value is NonNullable {
218 | if (value === undefined || value === null)
219 | throw new Error(`${value} is not defined (${errorMessage})`)
220 | }
221 |
--------------------------------------------------------------------------------
/src/generators.ts:
--------------------------------------------------------------------------------
1 | import type CodeBlockWriter from 'code-block-writer'
2 |
3 | import { normalizeString } from './utils'
4 | import type { FigmaAgnosticDescriptor } from './types'
5 |
6 | export interface GeneratorOptions {
7 | readonly writer: CodeBlockWriter
8 | readonly figmaAgnosticDescriptor: FigmaAgnosticDescriptor
9 | }
10 |
11 | function createWriterUtils(writer: CodeBlockWriter) {
12 | return {
13 | /**
14 | * Generic wrapper for the top-level object of the state machine.
15 | * @example `{
16 | * // code added by `callback` goes here
17 | * }`
18 | */
19 | stateMachineConfig(callback: () => void) { writer.block(callback) },
20 |
21 | /**
22 | * Add an empty idle state that can ba used as the default state of a state node. The parent state node is responsible to define the events to exit the idle state, if any.
23 | * @example `idle: {},`
24 | */
25 | idleState() { writer.write('idle:').write('{},').newLine() },
26 |
27 | /**
28 | * Mark a state as final. The state machine will stop when it reaches a final state.
29 | * @example `type: 'final',`
30 | * @see https://xstate.js.org/docs/guides/final.html#final-states
31 | */
32 | finalType() { writer.write('type:').quote().write('final').quote().write(',') },
33 |
34 | /**
35 | * Add an id to a state node to be easily referenced across the state machine.
36 | * @example `id: '',`
37 | * @see https://xstate.js.org/docs/guides/ids.html#custom-ids
38 | */
39 | stateId(id: string) { writer.write('id:').quote().write(id).quote().write(',').newLine() },
40 |
41 | /**
42 | * Set the initial state of a state node.
43 | * @example `initial: '',`
44 | * @see https://xstate.js.org/docs/guides/hierarchical.html#initial-states
45 | */
46 | initialState(name: string) { writer.write('initial:').quote().write(normalizeString(name)).quote().write(',').newLine() },
47 |
48 | /**
49 | * Create a block that contains all the states.
50 | * @example `states: {
51 | * // code added by `callback` goes here
52 | * },`
53 | * @see https://xstate.js.org/docs/guides/states.html#states
54 | */
55 | statesBlock(callback: () => void) { writer.write('states:').inlineBlock(callback).write(',').newLine() },
56 |
57 | /**
58 | * Create a new state node block.
59 | * @example `: {
60 | * // code added by `callback` goes here
61 | * },`
62 | */
63 | stateBlock(stateName: string, callback: () => void) { writer.write(stateName).write(':').inlineBlock(callback).write(',').newLine() },
64 |
65 | /**
66 | * Create a new events block to list all the events of a state node.
67 | * @example `on: {
68 | * // code added by `callback` goes here
69 | * },`
70 | */
71 | eventsBlock(callback: () => void) { writer.write('on:').inlineBlock(callback).write(',').newLine() },
72 |
73 | /**
74 | * Create a `event: destination` pair.
75 | * @example `: '',`
76 | */
77 | eventGoTo(eventName: string, destinationState: string) { writer.write(eventName).write(':').quote().write(destinationState).quote().write(',').newLine() },
78 |
79 | /**
80 | * Create a `after` block that hosts delayed events.
81 | * @example `after: {
82 | * : '<(destinationState>,
83 | * },
84 | * @see https://xstate.js.org/docs/guides/delays.html#delayed-events
85 | * @todo Support multiple delayed events
86 | */
87 | eventAfterDelay(destinationState: string, delay: number) {
88 | writer.write('after:').inlineBlock(() => {
89 | writer.write(delay.toString()).write(':').quote()
90 | writer.write(destinationState).quote().write(',').newLine()
91 | }).write(',')
92 | },
93 | }
94 | }
95 |
96 | export function generateXStateV4StateMachineOptions(params: GeneratorOptions) {
97 | const {
98 | writer,
99 | figmaAgnosticDescriptor: { simplifiedFrames, pageName },
100 | } = params
101 |
102 | const w = createWriterUtils(writer)
103 |
104 | const firstFrame = simplifiedFrames[0]
105 | if (!firstFrame)
106 | throw new Error('The document contains no frames.')
107 |
108 | const machineId = normalizeString(pageName)
109 |
110 | w.stateMachineConfig(() => {
111 | w.stateId(machineId)
112 | w.initialState(firstFrame.name)
113 | w.statesBlock(() => {
114 | for (const simplifiedFrame of simplifiedFrames) {
115 | // TODO: Support frames with same name
116 | const frameStateId = normalizeString(simplifiedFrame.name)
117 |
118 | // ex. Frame_1
119 | w.stateBlock(frameStateId, () => {
120 | // State body
121 | const containStateEvents = simplifiedFrame.reactionsData.length > 0
122 | if (!containStateEvents) {
123 | // --> type: 'final'
124 | w.finalType()
125 | return
126 | }
127 |
128 | const containDelayedReactions = simplifiedFrame.reactionsData.some(reactionData => 'delay' in reactionData)
129 | const containOnScrollReactions = simplifiedFrame.reactionsData.some(reactionData => reactionData.navigationType === 'SCROLL_TO')
130 | const requireSubStates = containDelayedReactions || containOnScrollReactions
131 |
132 | if (requireSubStates) {
133 | // TODO: make sure the id is unique
134 | w.stateId(frameStateId)
135 |
136 | w.initialState('idle')
137 | w.statesBlock(() => {
138 | // Idle state
139 | // --> idle:{},
140 | w.idleState()
141 |
142 | // Delayed navigation states
143 | for (const reactionData of simplifiedFrame.reactionsData) {
144 | const isDelayedReaction = ('delay' in reactionData) && reactionData.navigationType === 'NAVIGATE'
145 | if (!isDelayedReaction)
146 | continue
147 |
148 | // Filter out reactions with delay = 0
149 | if (typeof reactionData.delay === 'undefined')
150 | continue
151 |
152 | const {
153 | delay,
154 | triggerType,
155 | generatedName,
156 | destinationFrameName,
157 | } = reactionData
158 |
159 | // ex. MOUSE_UP__AFTER_
160 | const stateName = `${normalizeString(`${triggerType}_${generatedName.toUpperCase()}`)}_AFTER_${delay}`
161 | // ex. #Page_1.
162 | const destinationPath = `#${machineId}.${normalizeString(destinationFrameName)}`
163 |
164 | w.stateBlock(stateName, () => w.eventAfterDelay(destinationPath, delay))
165 | }
166 |
167 | // Scrollable states
168 | for (const reactionData of simplifiedFrame.reactionsData) {
169 | if (reactionData.navigationType !== 'SCROLL_TO')
170 | continue
171 |
172 | w.stateBlock(normalizeString(reactionData.destinationNodeName), () => {})
173 | }
174 | })
175 | }
176 |
177 | w.eventsBlock(() => {
178 | // State events (without delay)
179 | for (const reactionData of simplifiedFrame.reactionsData) {
180 | if (reactionData.navigationType !== 'NAVIGATE')
181 | continue
182 | if (('delay' in reactionData && typeof reactionData.delay !== 'undefined'))
183 | continue
184 |
185 | // ex. ON_CLICK_NAVIGATE_TO_FRAME_3
186 | const eventName = normalizeString(`${reactionData.triggerType}_${reactionData.generatedName.toUpperCase()}`)
187 |
188 | w.eventGoTo(eventName, normalizeString(reactionData.destinationFrameName))
189 | }
190 |
191 | // State events (with delay)
192 | for (const reactionData of simplifiedFrame.reactionsData) {
193 | if (!('delay' in reactionData))
194 | continue
195 |
196 | // ex. MOUSE_UP_NAVIGATE_TO_FRAME_2
197 | const eventName = normalizeString(`${reactionData.triggerType}_${reactionData.generatedName.toUpperCase()}`)
198 | // ex. MOUSE_UP_NAVIGATE_TO_FRAME_2_AFTER_2000
199 | const destinationStateName = `${eventName}_AFTER_${reactionData.delay}`
200 |
201 | // ex. #Frame_1.MOUSE_UP_NAVIGATE_TO_FRAME_2_AFTER_2000
202 | const fullDestination = `#${frameStateId}.${destinationStateName}`
203 |
204 | // --> MOUSE_UP_NAVIGATE_TO_FRAME_2: '#Frame_1.MOUSE_UP_NAVIGATE_TO_FRAME_2_AFTER_2000',
205 | w.eventGoTo(eventName, fullDestination)
206 | }
207 |
208 | // Scrollable states
209 | for (const reactionData of simplifiedFrame.reactionsData) {
210 | if (reactionData.navigationType !== 'SCROLL_TO')
211 | continue
212 |
213 | // ex. ???????
214 | const eventName = normalizeString(`${reactionData.triggerType}_${reactionData.generatedName.toUpperCase()}_${reactionData.navigationType}`)
215 |
216 | // TODO: convert statesPath back to pageId
217 | // TODO: support destinations with same name
218 | const statePath = `#${machineId}.${frameStateId}.${normalizeString(reactionData.destinationNodeName)}`
219 |
220 | w.eventGoTo(eventName, statePath)
221 | }
222 | })
223 | })
224 | }
225 | })
226 | })
227 |
228 | return writer
229 | }
230 |
231 | export function generateXStateV4Machine(params: GeneratorOptions) {
232 | generateXStateV4StateMachineOptions(params)
233 | }
234 |
--------------------------------------------------------------------------------
/src/generators.test.ts:
--------------------------------------------------------------------------------
1 | import { describe, expect, it, vi } from 'vitest'
2 | import { createMachine, interpret } from 'xstateV4'
3 | import { type GeneratorOptions, generateXStateV4StateMachineOptions } from './generators'
4 | import { generateNewWriter } from './utils'
5 |
6 | describe('generateXStateV4StateMachineOptions', () => {
7 | it('when passed with an empty list of frames, then throws an error', () => {
8 | // Arrange
9 | const writer = generateNewWriter()
10 |
11 | const generatorOptions: GeneratorOptions = {
12 | writer,
13 | figmaAgnosticDescriptor: {
14 | pageName: 'unitTestPage',
15 | simplifiedFrames: [],
16 |
17 | },
18 | }
19 |
20 | // Assert
21 | expect(() => generateXStateV4StateMachineOptions(generatorOptions)).toThrowError(
22 | 'The document contains no frames.',
23 | )
24 | })
25 |
26 | it('when passed with the options generated from the "Four empty frames" Figma file, then use the writer to compose a the corresponding state machine', () => {
27 | // Arrange
28 | const writer = generateNewWriter()
29 |
30 | const generatorOptions: GeneratorOptions = {
31 | writer,
32 | figmaAgnosticDescriptor:
33 | {
34 | pageName: 'Page 1',
35 | simplifiedFrames: [
36 | { id: '1:2', name: 'Frame 1', reactionsData: [] },
37 | { id: '1:3', name: 'Frame 2', reactionsData: [] },
38 | { id: '1:4', name: 'Frame 3', reactionsData: [] },
39 | { id: '1:5', name: 'Frame 4', reactionsData: [] },
40 | ],
41 | },
42 | }
43 |
44 | // Act
45 | generateXStateV4StateMachineOptions(generatorOptions)
46 |
47 | // Assert
48 | expect(writer.toString()).toMatchInlineSnapshot(`
49 | "{
50 | id:'Page_1',
51 | initial:'Frame_1',
52 | states:{
53 | Frame_1:{
54 | type:'final',
55 | },
56 | Frame_2:{
57 | type:'final',
58 | },
59 | Frame_3:{
60 | type:'final',
61 | },
62 | Frame_4:{
63 | type:'final',
64 | },
65 | },
66 | }"
67 | `)
68 |
69 | // Real XState machine conversion
70 | // eslint-disable-next-line no-eval
71 | const machine = createMachine(eval(`(${writer.toString()})`))
72 | const service = interpret(machine).start()
73 | expect(service.getSnapshot().value).toEqual('Frame_1')
74 | expect(service.getSnapshot().done).toEqual(true)
75 | })
76 |
77 | it('when passed with the options generated from the "Simple frame navigation" Figma file, then use the writer to compose a the corresponding state machine', () => {
78 | const writer = generateNewWriter()
79 |
80 | const generatorOptions: GeneratorOptions = {
81 | writer,
82 | figmaAgnosticDescriptor: {
83 | pageName: 'Page 1',
84 | simplifiedFrames: [{
85 | id: '1:2',
86 | name: 'Frame 1',
87 | reactionsData: [{
88 | triggerType: 'ON_CLICK',
89 | navigationType: 'NAVIGATE',
90 | destinationFrameId: '1:3',
91 | destinationFrameName: 'Frame 2',
92 | generatedName: 'Navigate to Frame 2',
93 | }],
94 |
95 | }, {
96 | id: '1:3',
97 | name: 'Frame 2',
98 | reactionsData: [],
99 |
100 | }],
101 | },
102 | }
103 |
104 | // Act
105 | generateXStateV4StateMachineOptions(generatorOptions)
106 |
107 | // Assert
108 | expect(writer.toString()).toMatchInlineSnapshot(
109 | `
110 | "{
111 | id:'Page_1',
112 | initial:'Frame_1',
113 | states:{
114 | Frame_1:{
115 | on:{
116 | ON_CLICK_NAVIGATE_TO_FRAME_2:'Frame_2',
117 | },
118 | },
119 | Frame_2:{
120 | type:'final',
121 | },
122 | },
123 | }"
124 | `,
125 | )
126 |
127 | // Real XState machine conversion
128 | // eslint-disable-next-line no-eval
129 | const machine = createMachine(eval(`(${writer.toString()})`))
130 | const service = interpret(machine).start()
131 | expect(service.getSnapshot().value).toEqual('Frame_1')
132 | service.send('ON_CLICK_NAVIGATE_TO_FRAME_2')
133 | expect(service.getSnapshot().value).toEqual('Frame_2')
134 | expect(service.getSnapshot().done).toEqual(true)
135 | })
136 |
137 | it('when passed with the options generated from the "Click and drag frame navigation" Figma file, then use the writer to compose a the corresponding state machine', () => {
138 | const writer = generateNewWriter()
139 |
140 | const generatorOptions: GeneratorOptions = {
141 | writer,
142 | figmaAgnosticDescriptor: {
143 | pageName: 'Page 1',
144 | simplifiedFrames: [{
145 | id: '1:2',
146 | name: 'Frame 1',
147 | reactionsData: [{
148 | triggerType: 'ON_CLICK',
149 | navigationType: 'NAVIGATE',
150 | destinationFrameId: '1:3',
151 | destinationFrameName: 'Frame 2',
152 | generatedName: 'Click to navigate to Frame 2',
153 | }],
154 |
155 | }, {
156 | id: '1:3',
157 | name: 'Frame 2',
158 | reactionsData: [{
159 | triggerType: 'ON_DRAG',
160 | navigationType: 'NAVIGATE',
161 | destinationFrameId: '1:2',
162 | destinationFrameName: 'Frame 1',
163 | generatedName: 'Drag to navigate to Frame 1',
164 | }],
165 |
166 | }],
167 | },
168 | }
169 |
170 | // Act
171 | generateXStateV4StateMachineOptions(generatorOptions)
172 |
173 | // Assert
174 | expect(writer.toString()).toMatchInlineSnapshot(
175 | `
176 | "{
177 | id:'Page_1',
178 | initial:'Frame_1',
179 | states:{
180 | Frame_1:{
181 | on:{
182 | ON_CLICK_CLICK_TO_NAVIGATE_TO_FRAME_2:'Frame_2',
183 | },
184 | },
185 | Frame_2:{
186 | on:{
187 | ON_DRAG_DRAG_TO_NAVIGATE_TO_FRAME_1:'Frame_1',
188 | },
189 | },
190 | },
191 | }"
192 | `,
193 | )
194 |
195 | // Real XState machine conversion
196 | // eslint-disable-next-line no-eval
197 | const machine = createMachine(eval(`(${writer.toString()})`))
198 | const service = interpret(machine).start()
199 | expect(service.getSnapshot().value).toEqual('Frame_1')
200 | service.send('ON_CLICK_CLICK_TO_NAVIGATE_TO_FRAME_2')
201 | expect(service.getSnapshot().value).toEqual('Frame_2')
202 | service.send('ON_DRAG_DRAG_TO_NAVIGATE_TO_FRAME_1')
203 | expect(service.getSnapshot().value).toEqual('Frame_1')
204 | })
205 |
206 | it.todo('mouseEvent reactions: these reactions work the same as Drag event, no need to test them')
207 |
208 | it('when passed with the options generated from the "Touch up with delay frame navigation" Figma file, then use the writer to compose a the corresponding state machine', async () => {
209 | const writer = generateNewWriter()
210 |
211 | const generatorOptions: GeneratorOptions = {
212 | writer,
213 | figmaAgnosticDescriptor: {
214 | pageName: 'Page 1',
215 | simplifiedFrames: [{
216 | id: '1:2',
217 | name: 'Frame 1',
218 | reactionsData: [{
219 | triggerType: 'MOUSE_UP',
220 | generatedName: 'Navigate to Frame 2 with delay',
221 | delay: 50,
222 | navigationType: 'NAVIGATE',
223 | destinationFrameId: '1:3',
224 | destinationFrameName: 'Frame 2',
225 | }, {
226 | triggerType: 'ON_CLICK',
227 | navigationType: 'NAVIGATE',
228 | destinationFrameId: '207:8',
229 | destinationFrameName: 'Frame 3',
230 | generatedName: 'Navigate to Frame 3',
231 | }],
232 |
233 | }, {
234 | id: '1:3',
235 | name: 'Frame 2',
236 | reactionsData: [],
237 |
238 | }, {
239 | id: '207:8',
240 | name: 'Frame 3',
241 | reactionsData: [],
242 |
243 | }],
244 | },
245 | }
246 |
247 | // Act
248 | generateXStateV4StateMachineOptions(generatorOptions)
249 |
250 | // Assert
251 | expect(writer.toString()).toMatchInlineSnapshot(
252 | `
253 | "{
254 | id:'Page_1',
255 | initial:'Frame_1',
256 | states:{
257 | Frame_1:{
258 | id:'Frame_1',
259 | initial:'idle',
260 | states:{
261 | idle:{},
262 | MOUSE_UP_NAVIGATE_TO_FRAME_2_WITH_DELAY_AFTER_50:{
263 | after:{
264 | 50:'#Page_1.Frame_2',
265 | },
266 | },
267 | },
268 | on:{
269 | ON_CLICK_NAVIGATE_TO_FRAME_3:'Frame_3',
270 | MOUSE_UP_NAVIGATE_TO_FRAME_2_WITH_DELAY:'#Frame_1.MOUSE_UP_NAVIGATE_TO_FRAME_2_WITH_DELAY_AFTER_50',
271 | },
272 | },
273 | Frame_2:{
274 | type:'final',
275 | },
276 | Frame_3:{
277 | type:'final',
278 | },
279 | },
280 | }"
281 | `,
282 | )
283 |
284 | // Real XState machine conversion
285 | // eslint-disable-next-line no-eval
286 | const machine = createMachine(eval(`(${writer.toString()})`))
287 |
288 | // Simple transition
289 | let service = interpret(machine).start()
290 | expect(service.getSnapshot().value).toEqual({ Frame_1: 'idle' })
291 | service.send('ON_CLICK_NAVIGATE_TO_FRAME_3')
292 | expect(service.getSnapshot().value).toEqual('Frame_3')
293 | expect(service.getSnapshot().done).toEqual(true)
294 |
295 | // Delayed transition
296 | service = interpret(machine).start()
297 | expect(service.getSnapshot().value).toEqual({ Frame_1: 'idle' })
298 | service.send('MOUSE_UP_NAVIGATE_TO_FRAME_2_WITH_DELAY')
299 | expect(service.getSnapshot().value).toEqual({ Frame_1: 'MOUSE_UP_NAVIGATE_TO_FRAME_2_WITH_DELAY_AFTER_50' })
300 |
301 | await vi.waitFor(
302 | () => expect(service.getSnapshot().value).toEqual('Frame_2'),
303 | { timeout: 1000, interval: 20 },
304 | )
305 | expect(service.getSnapshot().done).toEqual(true)
306 |
307 | // Non-delayed transition that stops the delayed one
308 | service = interpret(machine).start()
309 | expect(service.getSnapshot().value).toEqual({ Frame_1: 'idle' })
310 | service.send('MOUSE_UP_NAVIGATE_TO_FRAME_2_WITH_DELAY')
311 | expect(service.getSnapshot().value).toEqual({ Frame_1: 'MOUSE_UP_NAVIGATE_TO_FRAME_2_WITH_DELAY_AFTER_50' })
312 | service.send('ON_CLICK_NAVIGATE_TO_FRAME_3')
313 | expect(service.getSnapshot().value).toEqual('Frame_3')
314 | expect(service.getSnapshot().done).toEqual(true)
315 | })
316 |
317 | it('when passed with the options generated from the "Simple scroll" Figma file, then use the writer to compose a the corresponding state machine', () => {
318 | const writer = generateNewWriter()
319 |
320 | const generatorOptions: GeneratorOptions = {
321 | writer,
322 | figmaAgnosticDescriptor: {
323 | pageName: 'Page 1',
324 | simplifiedFrames: [
325 | {
326 | id: '1:2',
327 | name: 'Frame 1',
328 | reactionsData: [
329 | {
330 | triggerType: 'ON_CLICK',
331 | navigationType: 'SCROLL_TO',
332 | destinationNodeId: '17:31',
333 | destinationNodeName: 'Anchor 2',
334 | generatedName: 'scroll to anchor 2',
335 | },
336 | {
337 | triggerType: 'ON_CLICK',
338 | navigationType: 'SCROLL_TO',
339 | destinationNodeId: '17:13',
340 | destinationNodeName: 'Anchor 1',
341 | generatedName: 'scroll to anchor 1',
342 | },
343 | {
344 | triggerType: 'ON_CLICK',
345 | navigationType: 'SCROLL_TO',
346 | destinationNodeId: '17:55',
347 | destinationNodeName: 'Anchor 3',
348 | generatedName: 'scroll to anchor 3',
349 | },
350 | ],
351 |
352 | },
353 | ],
354 | }
355 | ,
356 | }
357 |
358 | // Act
359 | generateXStateV4StateMachineOptions(generatorOptions)
360 |
361 | // Assert
362 | expect(writer.toString()).toMatchInlineSnapshot(`
363 | "{
364 | id:'Page_1',
365 | initial:'Frame_1',
366 | states:{
367 | Frame_1:{
368 | id:'Frame_1',
369 | initial:'idle',
370 | states:{
371 | idle:{},
372 | Anchor_2:{
373 | },
374 | Anchor_1:{
375 | },
376 | Anchor_3:{
377 | },
378 | },
379 | on:{
380 | ON_CLICK_SCROLL_TO_ANCHOR_2_SCROLL_TO:'#Page_1.Frame_1.Anchor_2',
381 | ON_CLICK_SCROLL_TO_ANCHOR_1_SCROLL_TO:'#Page_1.Frame_1.Anchor_1',
382 | ON_CLICK_SCROLL_TO_ANCHOR_3_SCROLL_TO:'#Page_1.Frame_1.Anchor_3',
383 | },
384 | },
385 | },
386 | }"
387 | `)
388 |
389 | // Real XState machine conversion
390 | // eslint-disable-next-line no-eval
391 | const machine = createMachine(eval(`(${writer.toString()})`))
392 | const service = interpret(machine).start()
393 | expect(service.getSnapshot().value).toEqual({ Frame_1: 'idle' })
394 | service.send('ON_CLICK_SCROLL_TO_ANCHOR_1_SCROLL_TO')
395 | expect(service.getSnapshot().value).toEqual({ Frame_1: 'Anchor_1' })
396 | })
397 | // TODO: test scroll to deeply nested anchors
398 | // TODO: test click and delay to deeply nested anchors mixed with scroll (ahd with meaningful names in figma)
399 | })
400 |
--------------------------------------------------------------------------------
/pnpm-lock.yaml:
--------------------------------------------------------------------------------
1 | lockfileVersion: '6.0'
2 |
3 | settings:
4 | autoInstallPeers: true
5 | excludeLinksFromLockfile: false
6 |
7 | dependencies:
8 | '@create-figma-plugin/utilities':
9 | specifier: 2.6.1
10 | version: 2.6.1
11 | code-block-writer:
12 | specifier: 12.0.0
13 | version: 12.0.0
14 | figx:
15 | specifier: 0.1.3
16 | version: 0.1.3
17 |
18 | devDependencies:
19 | '@antfu/eslint-config':
20 | specifier: 1.1.0
21 | version: 1.1.0(eslint@8.55.0)(typescript@5.2.2)(vitest@1.0.4)
22 | '@create-figma-plugin/build':
23 | specifier: 3.0.2
24 | version: 3.0.2(@figma/plugin-typings@1.79.0)(typescript@5.2.2)
25 | '@create-figma-plugin/tsconfig':
26 | specifier: 3.0.2
27 | version: 3.0.2
28 | '@create-figma-plugin/ui':
29 | specifier: 3.0.2
30 | version: 3.0.2(preact@10.18.1)
31 | '@figma/plugin-typings':
32 | specifier: 1.79.0
33 | version: 1.79.0
34 | eslint:
35 | specifier: ^8.55.0
36 | version: 8.55.0
37 | preact:
38 | specifier: 10.18.1
39 | version: 10.18.1
40 | simple-git-hooks:
41 | specifier: ^2.9.0
42 | version: 2.9.0
43 | typescript:
44 | specifier: 5.2.2
45 | version: 5.2.2
46 | vitest:
47 | specifier: 1.0.4
48 | version: 1.0.4
49 | xstateV4:
50 | specifier: npm:xstate@4
51 | version: /xstate@4.38.3
52 |
53 | packages:
54 |
55 | /@aashutoshrathi/word-wrap@1.2.6:
56 | resolution: {integrity: sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==}
57 | engines: {node: '>=0.10.0'}
58 | dev: true
59 |
60 | /@antfu/eslint-config@1.1.0(eslint@8.55.0)(typescript@5.2.2)(vitest@1.0.4):
61 | resolution: {integrity: sha512-r39rNfNNB4j2MlJ9lLBA2vpsWQZePZ1EHbkztq/hIe3EOqfLjve/H2OYP4q+6L/X70UKYc1/Q9pFj85Ph4CyRg==}
62 | peerDependencies:
63 | eslint: '>=8.0.0'
64 | dependencies:
65 | '@antfu/eslint-define-config': 1.23.0-2
66 | '@stylistic/eslint-plugin': 1.0.0(eslint@8.55.0)(typescript@5.2.2)
67 | '@typescript-eslint/eslint-plugin': 6.9.1(@typescript-eslint/parser@6.9.1)(eslint@8.55.0)(typescript@5.2.2)
68 | '@typescript-eslint/parser': 6.9.1(eslint@8.55.0)(typescript@5.2.2)
69 | eslint: 8.55.0
70 | eslint-config-flat-gitignore: 0.1.1
71 | eslint-plugin-antfu: 1.0.2(eslint@8.55.0)
72 | eslint-plugin-eslint-comments: 3.2.0(eslint@8.55.0)
73 | eslint-plugin-i: 2.29.0(@typescript-eslint/parser@6.9.1)(eslint@8.55.0)
74 | eslint-plugin-jsdoc: 46.8.2(eslint@8.55.0)
75 | eslint-plugin-jsonc: 2.10.0(eslint@8.55.0)
76 | eslint-plugin-markdown: 3.0.1(eslint@8.55.0)
77 | eslint-plugin-n: 16.2.0(eslint@8.55.0)
78 | eslint-plugin-no-only-tests: 3.1.0
79 | eslint-plugin-perfectionist: 2.2.0(eslint@8.55.0)(typescript@5.2.2)(vue-eslint-parser@9.3.2)
80 | eslint-plugin-unicorn: 49.0.0(eslint@8.55.0)
81 | eslint-plugin-unused-imports: 3.0.0(@typescript-eslint/eslint-plugin@6.9.1)(eslint@8.55.0)
82 | eslint-plugin-vitest: 0.3.9(@typescript-eslint/eslint-plugin@6.9.1)(eslint@8.55.0)(typescript@5.2.2)(vitest@1.0.4)
83 | eslint-plugin-vue: 9.18.1(eslint@8.55.0)
84 | eslint-plugin-yml: 1.10.0(eslint@8.55.0)
85 | globals: 13.23.0
86 | jsonc-eslint-parser: 2.4.0
87 | local-pkg: 0.5.0
88 | vue-eslint-parser: 9.3.2(eslint@8.55.0)
89 | yaml-eslint-parser: 1.2.2
90 | transitivePeerDependencies:
91 | - astro-eslint-parser
92 | - eslint-import-resolver-typescript
93 | - eslint-import-resolver-webpack
94 | - supports-color
95 | - svelte
96 | - svelte-eslint-parser
97 | - typescript
98 | - vitest
99 | dev: true
100 |
101 | /@antfu/eslint-define-config@1.23.0-2:
102 | resolution: {integrity: sha512-LvxY21+ZhpuBf/aHeBUtGQhSEfad4PkNKXKvDOSvukaM3XVTfBhwmHX2EKwAsdq5DlfjbT3qqYyMiueBIO5iDQ==}
103 | engines: {node: '>=18.0.0', npm: '>=9.0.0', pnpm: '>= 8.6.0'}
104 | dev: true
105 |
106 | /@babel/code-frame@7.22.13:
107 | resolution: {integrity: sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w==}
108 | engines: {node: '>=6.9.0'}
109 | dependencies:
110 | '@babel/highlight': 7.22.20
111 | chalk: 2.4.2
112 | dev: true
113 |
114 | /@babel/helper-validator-identifier@7.22.20:
115 | resolution: {integrity: sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==}
116 | engines: {node: '>=6.9.0'}
117 | dev: true
118 |
119 | /@babel/highlight@7.22.20:
120 | resolution: {integrity: sha512-dkdMCN3py0+ksCgYmGG8jKeGA/8Tk+gJwSYYlFGxG5lmhfKNoAy004YpLxpS1W2J8m/EK2Ew+yOs9pVRwO89mg==}
121 | engines: {node: '>=6.9.0'}
122 | dependencies:
123 | '@babel/helper-validator-identifier': 7.22.20
124 | chalk: 2.4.2
125 | js-tokens: 4.0.0
126 | dev: true
127 |
128 | /@create-figma-plugin/build@3.0.2(@figma/plugin-typings@1.79.0)(typescript@5.2.2):
129 | resolution: {integrity: sha512-TO8JxjuiG9mrR6fSsycAYDIEQIPk8fv2y6R1C6PmS9EB5/GzwHeS7y+pWkvf9zm7lIn5A+fY6znq2Ty5ANzM8w==}
130 | engines: {node: '>=18'}
131 | hasBin: true
132 | peerDependencies:
133 | '@figma/plugin-typings': '>=1'
134 | typescript: '>=4'
135 | dependencies:
136 | '@create-figma-plugin/common': 3.0.2
137 | '@figma/plugin-typings': 1.79.0
138 | chokidar: 3.5.3
139 | cssnano: 6.0.1(postcss@8.4.31)
140 | esbuild: 0.19.5
141 | find-up: 6.3.0
142 | globby: 13.2.2
143 | indent-string: 5.0.0
144 | kleur: 4.1.5
145 | path-exists: 5.0.0
146 | postcss: 8.4.31
147 | postcss-modules: 6.0.0(postcss@8.4.31)
148 | rev-hash: 4.0.0
149 | sade: 1.8.1
150 | temp-write: 5.0.0
151 | tempy: 3.1.0
152 | typed-css-modules: 0.8.0
153 | typescript: 5.2.2
154 | dev: true
155 |
156 | /@create-figma-plugin/common@3.0.2:
157 | resolution: {integrity: sha512-RKyNa+d01eVm9oih3Pq4Og9VsiPk812Ie4Dun/4NN048wxf6sQQ0e8Yi4OBTduwOmH25auWmPLo2ZZBgckDXkg==}
158 | engines: {node: '>=18'}
159 | dependencies:
160 | '@sindresorhus/slugify': 2.2.1
161 | kleur: 4.1.5
162 | path-exists: 5.0.0
163 | dev: true
164 |
165 | /@create-figma-plugin/tsconfig@3.0.2:
166 | resolution: {integrity: sha512-cjKW1HCki57wi/a4kaW3NcY15tQy0EVcqETvp37fTBQMHmQJ7f0tV4+wNYJP/eH+B93EK/ULtDIRtK+SdybAmQ==}
167 | dev: true
168 |
169 | /@create-figma-plugin/ui@3.0.2(preact@10.18.1):
170 | resolution: {integrity: sha512-vuDP9EiLT2sf4PBx3cn36IibEAAH06cLWNq/bEWRGBUOgto6VOPSmdL13uOSgJEJaD2O1QiE4jpuZab6acUmIQ==}
171 | engines: {node: '>=18'}
172 | peerDependencies:
173 | preact: '>=10'
174 | dependencies:
175 | '@create-figma-plugin/utilities': 3.0.2
176 | preact: 10.18.1
177 | dev: true
178 |
179 | /@create-figma-plugin/utilities@2.6.1:
180 | resolution: {integrity: sha512-Zd4sxIogl2IVLmOIWdcyAav3SwzTzAAMNkWY9DuSkder6kq5M79+AdSJ9q1ETCsCiBysakJ5BPaiVOBRAjfuFQ==}
181 | engines: {node: '>=18'}
182 | dependencies:
183 | hex-rgb: 5.0.0
184 | natural-compare-lite: 1.4.0
185 | rgb-hex: 4.1.0
186 | dev: false
187 |
188 | /@create-figma-plugin/utilities@3.0.2:
189 | resolution: {integrity: sha512-6pFmhNHBBoHMT9J8L7f1+CbXK4S0iWPtDObamJv5j+r+0z5NmFUSS/cWkkZ25tsNaLuHHnVEkuwkNOAfoj/5qA==}
190 | engines: {node: '>=18'}
191 | dependencies:
192 | hex-rgb: 5.0.0
193 | natural-compare-lite: 1.4.0
194 | rgb-hex: 4.1.0
195 | dev: true
196 |
197 | /@es-joy/jsdoccomment@0.40.1:
198 | resolution: {integrity: sha512-YORCdZSusAlBrFpZ77pJjc5r1bQs5caPWtAu+WWmiSo+8XaUzseapVrfAtiRFbQWnrBxxLLEwF6f6ZG/UgCQCg==}
199 | engines: {node: '>=16'}
200 | dependencies:
201 | comment-parser: 1.4.0
202 | esquery: 1.5.0
203 | jsdoc-type-pratt-parser: 4.0.0
204 | dev: true
205 |
206 | /@esbuild/android-arm64@0.19.5:
207 | resolution: {integrity: sha512-5d1OkoJxnYQfmC+Zd8NBFjkhyCNYwM4n9ODrycTFY6Jk1IGiZ+tjVJDDSwDt77nK+tfpGP4T50iMtVi4dEGzhQ==}
208 | engines: {node: '>=12'}
209 | cpu: [arm64]
210 | os: [android]
211 | requiresBuild: true
212 | dev: true
213 | optional: true
214 |
215 | /@esbuild/android-arm@0.19.5:
216 | resolution: {integrity: sha512-bhvbzWFF3CwMs5tbjf3ObfGqbl/17ict2/uwOSfr3wmxDE6VdS2GqY/FuzIPe0q0bdhj65zQsvqfArI9MY6+AA==}
217 | engines: {node: '>=12'}
218 | cpu: [arm]
219 | os: [android]
220 | requiresBuild: true
221 | dev: true
222 | optional: true
223 |
224 | /@esbuild/android-x64@0.19.5:
225 | resolution: {integrity: sha512-9t+28jHGL7uBdkBjL90QFxe7DVA+KGqWlHCF8ChTKyaKO//VLuoBricQCgwhOjA1/qOczsw843Fy4cbs4H3DVA==}
226 | engines: {node: '>=12'}
227 | cpu: [x64]
228 | os: [android]
229 | requiresBuild: true
230 | dev: true
231 | optional: true
232 |
233 | /@esbuild/darwin-arm64@0.19.5:
234 | resolution: {integrity: sha512-mvXGcKqqIqyKoxq26qEDPHJuBYUA5KizJncKOAf9eJQez+L9O+KfvNFu6nl7SCZ/gFb2QPaRqqmG0doSWlgkqw==}
235 | engines: {node: '>=12'}
236 | cpu: [arm64]
237 | os: [darwin]
238 | requiresBuild: true
239 | dev: true
240 | optional: true
241 |
242 | /@esbuild/darwin-x64@0.19.5:
243 | resolution: {integrity: sha512-Ly8cn6fGLNet19s0X4unjcniX24I0RqjPv+kurpXabZYSXGM4Pwpmf85WHJN3lAgB8GSth7s5A0r856S+4DyiA==}
244 | engines: {node: '>=12'}
245 | cpu: [x64]
246 | os: [darwin]
247 | requiresBuild: true
248 | dev: true
249 | optional: true
250 |
251 | /@esbuild/freebsd-arm64@0.19.5:
252 | resolution: {integrity: sha512-GGDNnPWTmWE+DMchq1W8Sd0mUkL+APvJg3b11klSGUDvRXh70JqLAO56tubmq1s2cgpVCSKYywEiKBfju8JztQ==}
253 | engines: {node: '>=12'}
254 | cpu: [arm64]
255 | os: [freebsd]
256 | requiresBuild: true
257 | dev: true
258 | optional: true
259 |
260 | /@esbuild/freebsd-x64@0.19.5:
261 | resolution: {integrity: sha512-1CCwDHnSSoA0HNwdfoNY0jLfJpd7ygaLAp5EHFos3VWJCRX9DMwWODf96s9TSse39Br7oOTLryRVmBoFwXbuuQ==}
262 | engines: {node: '>=12'}
263 | cpu: [x64]
264 | os: [freebsd]
265 | requiresBuild: true
266 | dev: true
267 | optional: true
268 |
269 | /@esbuild/linux-arm64@0.19.5:
270 | resolution: {integrity: sha512-o3vYippBmSrjjQUCEEiTZ2l+4yC0pVJD/Dl57WfPwwlvFkrxoSO7rmBZFii6kQB3Wrn/6GwJUPLU5t52eq2meA==}
271 | engines: {node: '>=12'}
272 | cpu: [arm64]
273 | os: [linux]
274 | requiresBuild: true
275 | dev: true
276 | optional: true
277 |
278 | /@esbuild/linux-arm@0.19.5:
279 | resolution: {integrity: sha512-lrWXLY/vJBzCPC51QN0HM71uWgIEpGSjSZZADQhq7DKhPcI6NH1IdzjfHkDQws2oNpJKpR13kv7/pFHBbDQDwQ==}
280 | engines: {node: '>=12'}
281 | cpu: [arm]
282 | os: [linux]
283 | requiresBuild: true
284 | dev: true
285 | optional: true
286 |
287 | /@esbuild/linux-ia32@0.19.5:
288 | resolution: {integrity: sha512-MkjHXS03AXAkNp1KKkhSKPOCYztRtK+KXDNkBa6P78F8Bw0ynknCSClO/ztGszILZtyO/lVKpa7MolbBZ6oJtQ==}
289 | engines: {node: '>=12'}
290 | cpu: [ia32]
291 | os: [linux]
292 | requiresBuild: true
293 | dev: true
294 | optional: true
295 |
296 | /@esbuild/linux-loong64@0.19.5:
297 | resolution: {integrity: sha512-42GwZMm5oYOD/JHqHska3Jg0r+XFb/fdZRX+WjADm3nLWLcIsN27YKtqxzQmGNJgu0AyXg4HtcSK9HuOk3v1Dw==}
298 | engines: {node: '>=12'}
299 | cpu: [loong64]
300 | os: [linux]
301 | requiresBuild: true
302 | dev: true
303 | optional: true
304 |
305 | /@esbuild/linux-mips64el@0.19.5:
306 | resolution: {integrity: sha512-kcjndCSMitUuPJobWCnwQ9lLjiLZUR3QLQmlgaBfMX23UEa7ZOrtufnRds+6WZtIS9HdTXqND4yH8NLoVVIkcg==}
307 | engines: {node: '>=12'}
308 | cpu: [mips64el]
309 | os: [linux]
310 | requiresBuild: true
311 | dev: true
312 | optional: true
313 |
314 | /@esbuild/linux-ppc64@0.19.5:
315 | resolution: {integrity: sha512-yJAxJfHVm0ZbsiljbtFFP1BQKLc8kUF6+17tjQ78QjqjAQDnhULWiTA6u0FCDmYT1oOKS9PzZ2z0aBI+Mcyj7Q==}
316 | engines: {node: '>=12'}
317 | cpu: [ppc64]
318 | os: [linux]
319 | requiresBuild: true
320 | dev: true
321 | optional: true
322 |
323 | /@esbuild/linux-riscv64@0.19.5:
324 | resolution: {integrity: sha512-5u8cIR/t3gaD6ad3wNt1MNRstAZO+aNyBxu2We8X31bA8XUNyamTVQwLDA1SLoPCUehNCymhBhK3Qim1433Zag==}
325 | engines: {node: '>=12'}
326 | cpu: [riscv64]
327 | os: [linux]
328 | requiresBuild: true
329 | dev: true
330 | optional: true
331 |
332 | /@esbuild/linux-s390x@0.19.5:
333 | resolution: {integrity: sha512-Z6JrMyEw/EmZBD/OFEFpb+gao9xJ59ATsoTNlj39jVBbXqoZm4Xntu6wVmGPB/OATi1uk/DB+yeDPv2E8PqZGw==}
334 | engines: {node: '>=12'}
335 | cpu: [s390x]
336 | os: [linux]
337 | requiresBuild: true
338 | dev: true
339 | optional: true
340 |
341 | /@esbuild/linux-x64@0.19.5:
342 | resolution: {integrity: sha512-psagl+2RlK1z8zWZOmVdImisMtrUxvwereIdyJTmtmHahJTKb64pAcqoPlx6CewPdvGvUKe2Jw+0Z/0qhSbG1A==}
343 | engines: {node: '>=12'}
344 | cpu: [x64]
345 | os: [linux]
346 | requiresBuild: true
347 | dev: true
348 | optional: true
349 |
350 | /@esbuild/netbsd-x64@0.19.5:
351 | resolution: {integrity: sha512-kL2l+xScnAy/E/3119OggX8SrWyBEcqAh8aOY1gr4gPvw76la2GlD4Ymf832UCVbmuWeTf2adkZDK+h0Z/fB4g==}
352 | engines: {node: '>=12'}
353 | cpu: [x64]
354 | os: [netbsd]
355 | requiresBuild: true
356 | dev: true
357 | optional: true
358 |
359 | /@esbuild/openbsd-x64@0.19.5:
360 | resolution: {integrity: sha512-sPOfhtzFufQfTBgRnE1DIJjzsXukKSvZxloZbkJDG383q0awVAq600pc1nfqBcl0ice/WN9p4qLc39WhBShRTA==}
361 | engines: {node: '>=12'}
362 | cpu: [x64]
363 | os: [openbsd]
364 | requiresBuild: true
365 | dev: true
366 | optional: true
367 |
368 | /@esbuild/sunos-x64@0.19.5:
369 | resolution: {integrity: sha512-dGZkBXaafuKLpDSjKcB0ax0FL36YXCvJNnztjKV+6CO82tTYVDSH2lifitJ29jxRMoUhgkg9a+VA/B03WK5lcg==}
370 | engines: {node: '>=12'}
371 | cpu: [x64]
372 | os: [sunos]
373 | requiresBuild: true
374 | dev: true
375 | optional: true
376 |
377 | /@esbuild/win32-arm64@0.19.5:
378 | resolution: {integrity: sha512-dWVjD9y03ilhdRQ6Xig1NWNgfLtf2o/STKTS+eZuF90fI2BhbwD6WlaiCGKptlqXlURVB5AUOxUj09LuwKGDTg==}
379 | engines: {node: '>=12'}
380 | cpu: [arm64]
381 | os: [win32]
382 | requiresBuild: true
383 | dev: true
384 | optional: true
385 |
386 | /@esbuild/win32-ia32@0.19.5:
387 | resolution: {integrity: sha512-4liggWIA4oDgUxqpZwrDhmEfAH4d0iljanDOK7AnVU89T6CzHon/ony8C5LeOdfgx60x5cnQJFZwEydVlYx4iw==}
388 | engines: {node: '>=12'}
389 | cpu: [ia32]
390 | os: [win32]
391 | requiresBuild: true
392 | dev: true
393 | optional: true
394 |
395 | /@esbuild/win32-x64@0.19.5:
396 | resolution: {integrity: sha512-czTrygUsB/jlM8qEW5MD8bgYU2Xg14lo6kBDXW6HdxKjh8M5PzETGiSHaz9MtbXBYDloHNUAUW2tMiKW4KM9Mw==}
397 | engines: {node: '>=12'}
398 | cpu: [x64]
399 | os: [win32]
400 | requiresBuild: true
401 | dev: true
402 | optional: true
403 |
404 | /@eslint-community/eslint-utils@4.4.0(eslint@8.55.0):
405 | resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==}
406 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
407 | peerDependencies:
408 | eslint: ^6.0.0 || ^7.0.0 || >=8.0.0
409 | dependencies:
410 | eslint: 8.55.0
411 | eslint-visitor-keys: 3.4.3
412 | dev: true
413 |
414 | /@eslint-community/regexpp@4.10.0:
415 | resolution: {integrity: sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==}
416 | engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0}
417 | dev: true
418 |
419 | /@eslint/eslintrc@2.1.4:
420 | resolution: {integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==}
421 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
422 | dependencies:
423 | ajv: 6.12.6
424 | debug: 4.3.4
425 | espree: 9.6.1
426 | globals: 13.23.0
427 | ignore: 5.2.4
428 | import-fresh: 3.3.0
429 | js-yaml: 4.1.0
430 | minimatch: 3.1.2
431 | strip-json-comments: 3.1.1
432 | transitivePeerDependencies:
433 | - supports-color
434 | dev: true
435 |
436 | /@eslint/js@8.55.0:
437 | resolution: {integrity: sha512-qQfo2mxH5yVom1kacMtZZJFVdW+E70mqHMJvVg6WTLo+VBuQJ4TojZlfWBjK0ve5BdEeNAVxOsl/nvNMpJOaJA==}
438 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
439 | dev: true
440 |
441 | /@figma/plugin-typings@1.79.0:
442 | resolution: {integrity: sha512-Nzi+ShWOs/0IHWQqUwBS4xydglgcgqNEKPSUhTXM+io4o4vSspwpKWy7XBrl5azqqoCozzBa10aPhwXsA+tJfg==}
443 | dev: true
444 |
445 | /@humanwhocodes/config-array@0.11.13:
446 | resolution: {integrity: sha512-JSBDMiDKSzQVngfRjOdFXgFfklaXI4K9nLF49Auh21lmBWRLIK3+xTErTWD4KU54pb6coM6ESE7Awz/FNU3zgQ==}
447 | engines: {node: '>=10.10.0'}
448 | dependencies:
449 | '@humanwhocodes/object-schema': 2.0.1
450 | debug: 4.3.4
451 | minimatch: 3.1.2
452 | transitivePeerDependencies:
453 | - supports-color
454 | dev: true
455 |
456 | /@humanwhocodes/module-importer@1.0.1:
457 | resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==}
458 | engines: {node: '>=12.22'}
459 | dev: true
460 |
461 | /@humanwhocodes/object-schema@2.0.1:
462 | resolution: {integrity: sha512-dvuCeX5fC9dXgJn9t+X5atfmgQAzUOWqS1254Gh0m6i8wKd10ebXkfNKiRK+1GWi/yTvvLDHpoxLr0xxxeslWw==}
463 | dev: true
464 |
465 | /@isaacs/cliui@8.0.2:
466 | resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==}
467 | engines: {node: '>=12'}
468 | dependencies:
469 | string-width: 5.1.2
470 | string-width-cjs: /string-width@4.2.3
471 | strip-ansi: 7.1.0
472 | strip-ansi-cjs: /strip-ansi@6.0.1
473 | wrap-ansi: 8.1.0
474 | wrap-ansi-cjs: /wrap-ansi@7.0.0
475 | dev: true
476 |
477 | /@jest/schemas@29.6.3:
478 | resolution: {integrity: sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==}
479 | engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
480 | dependencies:
481 | '@sinclair/typebox': 0.27.8
482 | dev: true
483 |
484 | /@jridgewell/sourcemap-codec@1.4.15:
485 | resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==}
486 | dev: true
487 |
488 | /@nodelib/fs.scandir@2.1.5:
489 | resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==}
490 | engines: {node: '>= 8'}
491 | dependencies:
492 | '@nodelib/fs.stat': 2.0.5
493 | run-parallel: 1.2.0
494 | dev: true
495 |
496 | /@nodelib/fs.stat@2.0.5:
497 | resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==}
498 | engines: {node: '>= 8'}
499 | dev: true
500 |
501 | /@nodelib/fs.walk@1.2.8:
502 | resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==}
503 | engines: {node: '>= 8'}
504 | dependencies:
505 | '@nodelib/fs.scandir': 2.1.5
506 | fastq: 1.15.0
507 | dev: true
508 |
509 | /@pkgjs/parseargs@0.11.0:
510 | resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==}
511 | engines: {node: '>=14'}
512 | requiresBuild: true
513 | dev: true
514 | optional: true
515 |
516 | /@rollup/rollup-android-arm-eabi@4.8.0:
517 | resolution: {integrity: sha512-zdTObFRoNENrdPpnTNnhOljYIcOX7aI7+7wyrSpPFFIOf/nRdedE6IYsjaBE7tjukphh1tMTojgJ7p3lKY8x6Q==}
518 | cpu: [arm]
519 | os: [android]
520 | requiresBuild: true
521 | dev: true
522 | optional: true
523 |
524 | /@rollup/rollup-android-arm64@4.8.0:
525 | resolution: {integrity: sha512-aiItwP48BiGpMFS9Znjo/xCNQVwTQVcRKkFKsO81m8exrGjHkCBDvm9PHay2kpa8RPnZzzKcD1iQ9KaLY4fPQQ==}
526 | cpu: [arm64]
527 | os: [android]
528 | requiresBuild: true
529 | dev: true
530 | optional: true
531 |
532 | /@rollup/rollup-darwin-arm64@4.8.0:
533 | resolution: {integrity: sha512-zhNIS+L4ZYkYQUjIQUR6Zl0RXhbbA0huvNIWjmPc2SL0cB1h5Djkcy+RZ3/Bwszfb6vgwUvcVJYD6e6Zkpsi8g==}
534 | cpu: [arm64]
535 | os: [darwin]
536 | requiresBuild: true
537 | dev: true
538 | optional: true
539 |
540 | /@rollup/rollup-darwin-x64@4.8.0:
541 | resolution: {integrity: sha512-A/FAHFRNQYrELrb/JHncRWzTTXB2ticiRFztP4ggIUAfa9Up1qfW8aG2w/mN9jNiZ+HB0t0u0jpJgFXG6BfRTA==}
542 | cpu: [x64]
543 | os: [darwin]
544 | requiresBuild: true
545 | dev: true
546 | optional: true
547 |
548 | /@rollup/rollup-linux-arm-gnueabihf@4.8.0:
549 | resolution: {integrity: sha512-JsidBnh3p2IJJA4/2xOF2puAYqbaczB3elZDT0qHxn362EIoIkq7hrR43Xa8RisgI6/WPfvb2umbGsuvf7E37A==}
550 | cpu: [arm]
551 | os: [linux]
552 | requiresBuild: true
553 | dev: true
554 | optional: true
555 |
556 | /@rollup/rollup-linux-arm64-gnu@4.8.0:
557 | resolution: {integrity: sha512-hBNCnqw3EVCkaPB0Oqd24bv8SklETptQWcJz06kb9OtiShn9jK1VuTgi7o4zPSt6rNGWQOTDEAccbk0OqJmS+g==}
558 | cpu: [arm64]
559 | os: [linux]
560 | requiresBuild: true
561 | dev: true
562 | optional: true
563 |
564 | /@rollup/rollup-linux-arm64-musl@4.8.0:
565 | resolution: {integrity: sha512-Fw9ChYfJPdltvi9ALJ9wzdCdxGw4wtq4t1qY028b2O7GwB5qLNSGtqMsAel1lfWTZvf4b6/+4HKp0GlSYg0ahA==}
566 | cpu: [arm64]
567 | os: [linux]
568 | requiresBuild: true
569 | dev: true
570 | optional: true
571 |
572 | /@rollup/rollup-linux-riscv64-gnu@4.8.0:
573 | resolution: {integrity: sha512-BH5xIh7tOzS9yBi8dFrCTG8Z6iNIGWGltd3IpTSKp6+pNWWO6qy8eKoRxOtwFbMrid5NZaidLYN6rHh9aB8bEw==}
574 | cpu: [riscv64]
575 | os: [linux]
576 | requiresBuild: true
577 | dev: true
578 | optional: true
579 |
580 | /@rollup/rollup-linux-x64-gnu@4.8.0:
581 | resolution: {integrity: sha512-PmvAj8k6EuWiyLbkNpd6BLv5XeYFpqWuRvRNRl80xVfpGXK/z6KYXmAgbI4ogz7uFiJxCnYcqyvZVD0dgFog7Q==}
582 | cpu: [x64]
583 | os: [linux]
584 | requiresBuild: true
585 | dev: true
586 | optional: true
587 |
588 | /@rollup/rollup-linux-x64-musl@4.8.0:
589 | resolution: {integrity: sha512-mdxnlW2QUzXwY+95TuxZ+CurrhgrPAMveDWI97EQlA9bfhR8tw3Pt7SUlc/eSlCNxlWktpmT//EAA8UfCHOyXg==}
590 | cpu: [x64]
591 | os: [linux]
592 | requiresBuild: true
593 | dev: true
594 | optional: true
595 |
596 | /@rollup/rollup-win32-arm64-msvc@4.8.0:
597 | resolution: {integrity: sha512-ge7saUz38aesM4MA7Cad8CHo0Fyd1+qTaqoIo+Jtk+ipBi4ATSrHWov9/S4u5pbEQmLjgUjB7BJt+MiKG2kzmA==}
598 | cpu: [arm64]
599 | os: [win32]
600 | requiresBuild: true
601 | dev: true
602 | optional: true
603 |
604 | /@rollup/rollup-win32-ia32-msvc@4.8.0:
605 | resolution: {integrity: sha512-p9E3PZlzurhlsN5h9g7zIP1DnqKXJe8ZUkFwAazqSvHuWfihlIISPxG9hCHCoA+dOOspL/c7ty1eeEVFTE0UTw==}
606 | cpu: [ia32]
607 | os: [win32]
608 | requiresBuild: true
609 | dev: true
610 | optional: true
611 |
612 | /@rollup/rollup-win32-x64-msvc@4.8.0:
613 | resolution: {integrity: sha512-kb4/auKXkYKqlUYTE8s40FcJIj5soOyRLHKd4ugR0dCq0G2EfcF54eYcfQiGkHzjidZ40daB4ulsFdtqNKZtBg==}
614 | cpu: [x64]
615 | os: [win32]
616 | requiresBuild: true
617 | dev: true
618 | optional: true
619 |
620 | /@sinclair/typebox@0.27.8:
621 | resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==}
622 | dev: true
623 |
624 | /@sindresorhus/slugify@2.2.1:
625 | resolution: {integrity: sha512-MkngSCRZ8JdSOCHRaYd+D01XhvU3Hjy6MGl06zhOk614hp9EOAp5gIkBeQg7wtmxpitU6eAL4kdiRMcJa2dlrw==}
626 | engines: {node: '>=12'}
627 | dependencies:
628 | '@sindresorhus/transliterate': 1.6.0
629 | escape-string-regexp: 5.0.0
630 | dev: true
631 |
632 | /@sindresorhus/transliterate@1.6.0:
633 | resolution: {integrity: sha512-doH1gimEu3A46VX6aVxpHTeHrytJAG6HgdxntYnCFiIFHEM/ZGpG8KiZGBChchjQmG0XFIBL552kBTjVcMZXwQ==}
634 | engines: {node: '>=12'}
635 | dependencies:
636 | escape-string-regexp: 5.0.0
637 | dev: true
638 |
639 | /@stylistic/eslint-plugin-js@1.0.0(eslint@8.55.0):
640 | resolution: {integrity: sha512-xxvjyYnUEgjBTnXKYMk6JbU0LHkf269d6y4IgW69bK/VwHrqLfdgE6mYvft42U7KVpp6Tbf6Z64tLRYD/rYd/A==}
641 | dependencies:
642 | '@eslint-community/eslint-utils': 4.4.0(eslint@8.55.0)
643 | acorn: 8.11.2
644 | escape-string-regexp: 4.0.0
645 | eslint-visitor-keys: 3.4.3
646 | espree: 9.6.1
647 | esutils: 2.0.3
648 | graphemer: 1.4.0
649 | transitivePeerDependencies:
650 | - eslint
651 | dev: true
652 |
653 | /@stylistic/eslint-plugin-jsx@1.0.0(eslint@8.55.0):
654 | resolution: {integrity: sha512-waUm7dcTFAI4d/3luf06RRNt89gSGaofHJ4BiuqKnpyu3yxn1lKbholjGQrw0xPjAciUe+ZSF6BKlBA9P2aV4Q==}
655 | dependencies:
656 | '@stylistic/eslint-plugin-js': 1.0.0(eslint@8.55.0)
657 | estraverse: 5.3.0
658 | jsx-ast-utils: 3.3.5
659 | transitivePeerDependencies:
660 | - eslint
661 | dev: true
662 |
663 | /@stylistic/eslint-plugin-ts@1.0.0(eslint@8.55.0)(typescript@5.2.2):
664 | resolution: {integrity: sha512-qQKXYWJzovSNsPq1954t6DNbDA7+1c4ximVH4CuubPV+3I8qCeO33vF6wSpyP27LgxXAx0mHIDw/YaaoM7dQoQ==}
665 | peerDependencies:
666 | eslint: '*'
667 | dependencies:
668 | '@stylistic/eslint-plugin-js': 1.0.0(eslint@8.55.0)
669 | '@typescript-eslint/scope-manager': 6.9.1
670 | '@typescript-eslint/type-utils': 6.9.1(eslint@8.55.0)(typescript@5.2.2)
671 | '@typescript-eslint/utils': 6.9.1(eslint@8.55.0)(typescript@5.2.2)
672 | eslint: 8.55.0
673 | graphemer: 1.4.0
674 | transitivePeerDependencies:
675 | - supports-color
676 | - typescript
677 | dev: true
678 |
679 | /@stylistic/eslint-plugin@1.0.0(eslint@8.55.0)(typescript@5.2.2):
680 | resolution: {integrity: sha512-kh4q2O2r55uKTXIQlVxnr9Pkjaemv/pn0lQ6bVRBD/ETq0hwhIvXR/54NRs3X8bS4IGIO2SGjFxnjySfUYJ3tQ==}
681 | peerDependencies:
682 | eslint: '*'
683 | dependencies:
684 | '@stylistic/eslint-plugin-js': 1.0.0(eslint@8.55.0)
685 | '@stylistic/eslint-plugin-jsx': 1.0.0(eslint@8.55.0)
686 | '@stylistic/eslint-plugin-ts': 1.0.0(eslint@8.55.0)(typescript@5.2.2)
687 | eslint: 8.55.0
688 | transitivePeerDependencies:
689 | - supports-color
690 | - typescript
691 | dev: true
692 |
693 | /@trysound/sax@0.2.0:
694 | resolution: {integrity: sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==}
695 | engines: {node: '>=10.13.0'}
696 | dev: true
697 |
698 | /@types/json-schema@7.0.14:
699 | resolution: {integrity: sha512-U3PUjAudAdJBeC2pgN8uTIKgxrb4nlDF3SF0++EldXQvQBGkpFZMSnwQiIoDU77tv45VgNkl/L4ouD+rEomujw==}
700 | dev: true
701 |
702 | /@types/mdast@3.0.14:
703 | resolution: {integrity: sha512-gVZ04PGgw1qLZKsnWnyFv4ORnaJ+DXLdHTVSFbU8yX6xZ34Bjg4Q32yPkmveUP1yItXReKfB0Aknlh/3zxTKAw==}
704 | dependencies:
705 | '@types/unist': 2.0.9
706 | dev: true
707 |
708 | /@types/normalize-package-data@2.4.3:
709 | resolution: {integrity: sha512-ehPtgRgaULsFG8x0NeYJvmyH1hmlfsNLujHe9dQEia/7MAJYdzMSi19JtchUHjmBA6XC/75dK55mzZH+RyieSg==}
710 | dev: true
711 |
712 | /@types/semver@7.5.4:
713 | resolution: {integrity: sha512-MMzuxN3GdFwskAnb6fz0orFvhfqi752yjaXylr0Rp4oDg5H0Zn1IuyRhDVvYOwAXoJirx2xuS16I3WjxnAIHiQ==}
714 | dev: true
715 |
716 | /@types/unist@2.0.9:
717 | resolution: {integrity: sha512-zC0iXxAv1C1ERURduJueYzkzZ2zaGyc+P2c95hgkikHPr3z8EdUZOlgEQ5X0DRmwDZn+hekycQnoeiiRVrmilQ==}
718 | dev: true
719 |
720 | /@typescript-eslint/eslint-plugin@6.9.1(@typescript-eslint/parser@6.9.1)(eslint@8.55.0)(typescript@5.2.2):
721 | resolution: {integrity: sha512-w0tiiRc9I4S5XSXXrMHOWgHgxbrBn1Ro+PmiYhSg2ZVdxrAJtQgzU5o2m1BfP6UOn7Vxcc6152vFjQfmZR4xEg==}
722 | engines: {node: ^16.0.0 || >=18.0.0}
723 | peerDependencies:
724 | '@typescript-eslint/parser': ^6.0.0 || ^6.0.0-alpha
725 | eslint: ^7.0.0 || ^8.0.0
726 | typescript: '*'
727 | peerDependenciesMeta:
728 | typescript:
729 | optional: true
730 | dependencies:
731 | '@eslint-community/regexpp': 4.10.0
732 | '@typescript-eslint/parser': 6.9.1(eslint@8.55.0)(typescript@5.2.2)
733 | '@typescript-eslint/scope-manager': 6.9.1
734 | '@typescript-eslint/type-utils': 6.9.1(eslint@8.55.0)(typescript@5.2.2)
735 | '@typescript-eslint/utils': 6.9.1(eslint@8.55.0)(typescript@5.2.2)
736 | '@typescript-eslint/visitor-keys': 6.9.1
737 | debug: 4.3.4
738 | eslint: 8.55.0
739 | graphemer: 1.4.0
740 | ignore: 5.2.4
741 | natural-compare: 1.4.0
742 | semver: 7.5.4
743 | ts-api-utils: 1.0.3(typescript@5.2.2)
744 | typescript: 5.2.2
745 | transitivePeerDependencies:
746 | - supports-color
747 | dev: true
748 |
749 | /@typescript-eslint/parser@6.9.1(eslint@8.55.0)(typescript@5.2.2):
750 | resolution: {integrity: sha512-C7AK2wn43GSaCUZ9do6Ksgi2g3mwFkMO3Cis96kzmgudoVaKyt62yNzJOktP0HDLb/iO2O0n2lBOzJgr6Q/cyg==}
751 | engines: {node: ^16.0.0 || >=18.0.0}
752 | peerDependencies:
753 | eslint: ^7.0.0 || ^8.0.0
754 | typescript: '*'
755 | peerDependenciesMeta:
756 | typescript:
757 | optional: true
758 | dependencies:
759 | '@typescript-eslint/scope-manager': 6.9.1
760 | '@typescript-eslint/types': 6.9.1
761 | '@typescript-eslint/typescript-estree': 6.9.1(typescript@5.2.2)
762 | '@typescript-eslint/visitor-keys': 6.9.1
763 | debug: 4.3.4
764 | eslint: 8.55.0
765 | typescript: 5.2.2
766 | transitivePeerDependencies:
767 | - supports-color
768 | dev: true
769 |
770 | /@typescript-eslint/scope-manager@6.9.1:
771 | resolution: {integrity: sha512-38IxvKB6NAne3g/+MyXMs2Cda/Sz+CEpmm+KLGEM8hx/CvnSRuw51i8ukfwB/B/sESdeTGet1NH1Wj7I0YXswg==}
772 | engines: {node: ^16.0.0 || >=18.0.0}
773 | dependencies:
774 | '@typescript-eslint/types': 6.9.1
775 | '@typescript-eslint/visitor-keys': 6.9.1
776 | dev: true
777 |
778 | /@typescript-eslint/type-utils@6.9.1(eslint@8.55.0)(typescript@5.2.2):
779 | resolution: {integrity: sha512-eh2oHaUKCK58qIeYp19F5V5TbpM52680sB4zNSz29VBQPTWIlE/hCj5P5B1AChxECe/fmZlspAWFuRniep1Skg==}
780 | engines: {node: ^16.0.0 || >=18.0.0}
781 | peerDependencies:
782 | eslint: ^7.0.0 || ^8.0.0
783 | typescript: '*'
784 | peerDependenciesMeta:
785 | typescript:
786 | optional: true
787 | dependencies:
788 | '@typescript-eslint/typescript-estree': 6.9.1(typescript@5.2.2)
789 | '@typescript-eslint/utils': 6.9.1(eslint@8.55.0)(typescript@5.2.2)
790 | debug: 4.3.4
791 | eslint: 8.55.0
792 | ts-api-utils: 1.0.3(typescript@5.2.2)
793 | typescript: 5.2.2
794 | transitivePeerDependencies:
795 | - supports-color
796 | dev: true
797 |
798 | /@typescript-eslint/types@6.9.1:
799 | resolution: {integrity: sha512-BUGslGOb14zUHOUmDB2FfT6SI1CcZEJYfF3qFwBeUrU6srJfzANonwRYHDpLBuzbq3HaoF2XL2hcr01c8f8OaQ==}
800 | engines: {node: ^16.0.0 || >=18.0.0}
801 | dev: true
802 |
803 | /@typescript-eslint/typescript-estree@6.9.1(typescript@5.2.2):
804 | resolution: {integrity: sha512-U+mUylTHfcqeO7mLWVQ5W/tMLXqVpRv61wm9ZtfE5egz7gtnmqVIw9ryh0mgIlkKk9rZLY3UHygsBSdB9/ftyw==}
805 | engines: {node: ^16.0.0 || >=18.0.0}
806 | peerDependencies:
807 | typescript: '*'
808 | peerDependenciesMeta:
809 | typescript:
810 | optional: true
811 | dependencies:
812 | '@typescript-eslint/types': 6.9.1
813 | '@typescript-eslint/visitor-keys': 6.9.1
814 | debug: 4.3.4
815 | globby: 11.1.0
816 | is-glob: 4.0.3
817 | semver: 7.5.4
818 | ts-api-utils: 1.0.3(typescript@5.2.2)
819 | typescript: 5.2.2
820 | transitivePeerDependencies:
821 | - supports-color
822 | dev: true
823 |
824 | /@typescript-eslint/utils@6.9.1(eslint@8.55.0)(typescript@5.2.2):
825 | resolution: {integrity: sha512-L1T0A5nFdQrMVunpZgzqPL6y2wVreSyHhKGZryS6jrEN7bD9NplVAyMryUhXsQ4TWLnZmxc2ekar/lSGIlprCA==}
826 | engines: {node: ^16.0.0 || >=18.0.0}
827 | peerDependencies:
828 | eslint: ^7.0.0 || ^8.0.0
829 | dependencies:
830 | '@eslint-community/eslint-utils': 4.4.0(eslint@8.55.0)
831 | '@types/json-schema': 7.0.14
832 | '@types/semver': 7.5.4
833 | '@typescript-eslint/scope-manager': 6.9.1
834 | '@typescript-eslint/types': 6.9.1
835 | '@typescript-eslint/typescript-estree': 6.9.1(typescript@5.2.2)
836 | eslint: 8.55.0
837 | semver: 7.5.4
838 | transitivePeerDependencies:
839 | - supports-color
840 | - typescript
841 | dev: true
842 |
843 | /@typescript-eslint/visitor-keys@6.9.1:
844 | resolution: {integrity: sha512-MUaPUe/QRLEffARsmNfmpghuQkW436DvESW+h+M52w0coICHRfD6Np9/K6PdACwnrq1HmuLl+cSPZaJmeVPkSw==}
845 | engines: {node: ^16.0.0 || >=18.0.0}
846 | dependencies:
847 | '@typescript-eslint/types': 6.9.1
848 | eslint-visitor-keys: 3.4.3
849 | dev: true
850 |
851 | /@ungap/structured-clone@1.2.0:
852 | resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==}
853 | dev: true
854 |
855 | /@vitest/expect@1.0.4:
856 | resolution: {integrity: sha512-/NRN9N88qjg3dkhmFcCBwhn/Ie4h064pY3iv7WLRsDJW7dXnEgeoa8W9zy7gIPluhz6CkgqiB3HmpIXgmEY5dQ==}
857 | dependencies:
858 | '@vitest/spy': 1.0.4
859 | '@vitest/utils': 1.0.4
860 | chai: 4.3.10
861 | dev: true
862 |
863 | /@vitest/runner@1.0.4:
864 | resolution: {integrity: sha512-rhOQ9FZTEkV41JWXozFM8YgOqaG9zA7QXbhg5gy6mFOVqh4PcupirIJ+wN7QjeJt8S8nJRYuZH1OjJjsbxAXTQ==}
865 | dependencies:
866 | '@vitest/utils': 1.0.4
867 | p-limit: 5.0.0
868 | pathe: 1.1.1
869 | dev: true
870 |
871 | /@vitest/snapshot@1.0.4:
872 | resolution: {integrity: sha512-vkfXUrNyNRA/Gzsp2lpyJxh94vU2OHT1amoD6WuvUAA12n32xeVZQ0KjjQIf8F6u7bcq2A2k969fMVxEsxeKYA==}
873 | dependencies:
874 | magic-string: 0.30.5
875 | pathe: 1.1.1
876 | pretty-format: 29.7.0
877 | dev: true
878 |
879 | /@vitest/spy@1.0.4:
880 | resolution: {integrity: sha512-9ojTFRL1AJVh0hvfzAQpm0QS6xIS+1HFIw94kl/1ucTfGCaj1LV/iuJU4Y6cdR03EzPDygxTHwE1JOm+5RCcvA==}
881 | dependencies:
882 | tinyspy: 2.2.0
883 | dev: true
884 |
885 | /@vitest/utils@1.0.4:
886 | resolution: {integrity: sha512-gsswWDXxtt0QvtK/y/LWukN7sGMYmnCcv1qv05CsY6cU/Y1zpGX1QuvLs+GO1inczpE6Owixeel3ShkjhYtGfA==}
887 | dependencies:
888 | diff-sequences: 29.6.3
889 | loupe: 2.3.7
890 | pretty-format: 29.7.0
891 | dev: true
892 |
893 | /acorn-jsx@5.3.2(acorn@8.11.2):
894 | resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==}
895 | peerDependencies:
896 | acorn: ^6.0.0 || ^7.0.0 || ^8.0.0
897 | dependencies:
898 | acorn: 8.11.2
899 | dev: true
900 |
901 | /acorn-walk@8.3.0:
902 | resolution: {integrity: sha512-FS7hV565M5l1R08MXqo8odwMTB02C2UqzB17RVgu9EyuYFBqJZ3/ZY97sQD5FewVu1UyDFc1yztUDrAwT0EypA==}
903 | engines: {node: '>=0.4.0'}
904 | dev: true
905 |
906 | /acorn@8.11.2:
907 | resolution: {integrity: sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w==}
908 | engines: {node: '>=0.4.0'}
909 | hasBin: true
910 | dev: true
911 |
912 | /ajv@6.12.6:
913 | resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==}
914 | dependencies:
915 | fast-deep-equal: 3.1.3
916 | fast-json-stable-stringify: 2.1.0
917 | json-schema-traverse: 0.4.1
918 | uri-js: 4.4.1
919 | dev: true
920 |
921 | /ansi-regex@5.0.1:
922 | resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==}
923 | engines: {node: '>=8'}
924 | dev: true
925 |
926 | /ansi-regex@6.0.1:
927 | resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==}
928 | engines: {node: '>=12'}
929 | dev: true
930 |
931 | /ansi-styles@3.2.1:
932 | resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==}
933 | engines: {node: '>=4'}
934 | dependencies:
935 | color-convert: 1.9.3
936 | dev: true
937 |
938 | /ansi-styles@4.3.0:
939 | resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==}
940 | engines: {node: '>=8'}
941 | dependencies:
942 | color-convert: 2.0.1
943 | dev: true
944 |
945 | /ansi-styles@5.2.0:
946 | resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==}
947 | engines: {node: '>=10'}
948 | dev: true
949 |
950 | /ansi-styles@6.2.1:
951 | resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==}
952 | engines: {node: '>=12'}
953 | dev: true
954 |
955 | /anymatch@3.1.3:
956 | resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==}
957 | engines: {node: '>= 8'}
958 | dependencies:
959 | normalize-path: 3.0.0
960 | picomatch: 2.3.1
961 | dev: true
962 |
963 | /are-docs-informative@0.0.2:
964 | resolution: {integrity: sha512-ixiS0nLNNG5jNQzgZJNoUpBKdo9yTYZMGJ+QgT2jmjR7G7+QHRCc4v6LQ3NgE7EBJq+o0ams3waJwkrlBom8Ig==}
965 | engines: {node: '>=14'}
966 | dev: true
967 |
968 | /argparse@2.0.1:
969 | resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==}
970 | dev: true
971 |
972 | /array-buffer-byte-length@1.0.0:
973 | resolution: {integrity: sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==}
974 | dependencies:
975 | call-bind: 1.0.5
976 | is-array-buffer: 3.0.2
977 | dev: true
978 |
979 | /array-includes@3.1.7:
980 | resolution: {integrity: sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ==}
981 | engines: {node: '>= 0.4'}
982 | dependencies:
983 | call-bind: 1.0.5
984 | define-properties: 1.2.1
985 | es-abstract: 1.22.3
986 | get-intrinsic: 1.2.2
987 | is-string: 1.0.7
988 | dev: true
989 |
990 | /array-union@2.1.0:
991 | resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==}
992 | engines: {node: '>=8'}
993 | dev: true
994 |
995 | /array.prototype.flat@1.3.2:
996 | resolution: {integrity: sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==}
997 | engines: {node: '>= 0.4'}
998 | dependencies:
999 | call-bind: 1.0.5
1000 | define-properties: 1.2.1
1001 | es-abstract: 1.22.3
1002 | es-shim-unscopables: 1.0.2
1003 | dev: true
1004 |
1005 | /arraybuffer.prototype.slice@1.0.2:
1006 | resolution: {integrity: sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw==}
1007 | engines: {node: '>= 0.4'}
1008 | dependencies:
1009 | array-buffer-byte-length: 1.0.0
1010 | call-bind: 1.0.5
1011 | define-properties: 1.2.1
1012 | es-abstract: 1.22.3
1013 | get-intrinsic: 1.2.2
1014 | is-array-buffer: 3.0.2
1015 | is-shared-array-buffer: 1.0.2
1016 | dev: true
1017 |
1018 | /assertion-error@1.1.0:
1019 | resolution: {integrity: sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==}
1020 | dev: true
1021 |
1022 | /available-typed-arrays@1.0.5:
1023 | resolution: {integrity: sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==}
1024 | engines: {node: '>= 0.4'}
1025 | dev: true
1026 |
1027 | /balanced-match@1.0.2:
1028 | resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==}
1029 | dev: true
1030 |
1031 | /binary-extensions@2.2.0:
1032 | resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==}
1033 | engines: {node: '>=8'}
1034 | dev: true
1035 |
1036 | /boolbase@1.0.0:
1037 | resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==}
1038 | dev: true
1039 |
1040 | /brace-expansion@1.1.11:
1041 | resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==}
1042 | dependencies:
1043 | balanced-match: 1.0.2
1044 | concat-map: 0.0.1
1045 | dev: true
1046 |
1047 | /brace-expansion@2.0.1:
1048 | resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==}
1049 | dependencies:
1050 | balanced-match: 1.0.2
1051 | dev: true
1052 |
1053 | /braces@3.0.2:
1054 | resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==}
1055 | engines: {node: '>=8'}
1056 | dependencies:
1057 | fill-range: 7.0.1
1058 | dev: true
1059 |
1060 | /browserslist@4.22.1:
1061 | resolution: {integrity: sha512-FEVc202+2iuClEhZhrWy6ZiAcRLvNMyYcxZ8raemul1DYVOVdFsbqckWLdsixQZCpJlwe77Z3UTalE7jsjnKfQ==}
1062 | engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7}
1063 | hasBin: true
1064 | dependencies:
1065 | caniuse-lite: 1.0.30001555
1066 | electron-to-chromium: 1.4.569
1067 | node-releases: 2.0.13
1068 | update-browserslist-db: 1.0.13(browserslist@4.22.1)
1069 | dev: true
1070 |
1071 | /builtin-modules@3.3.0:
1072 | resolution: {integrity: sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==}
1073 | engines: {node: '>=6'}
1074 | dev: true
1075 |
1076 | /builtins@5.0.1:
1077 | resolution: {integrity: sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ==}
1078 | dependencies:
1079 | semver: 7.5.4
1080 | dev: true
1081 |
1082 | /cac@6.7.14:
1083 | resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==}
1084 | engines: {node: '>=8'}
1085 | dev: true
1086 |
1087 | /call-bind@1.0.5:
1088 | resolution: {integrity: sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==}
1089 | dependencies:
1090 | function-bind: 1.1.2
1091 | get-intrinsic: 1.2.2
1092 | set-function-length: 1.1.1
1093 | dev: true
1094 |
1095 | /callsites@3.1.0:
1096 | resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==}
1097 | engines: {node: '>=6'}
1098 | dev: true
1099 |
1100 | /camelcase@6.3.0:
1101 | resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==}
1102 | engines: {node: '>=10'}
1103 | dev: true
1104 |
1105 | /caniuse-api@3.0.0:
1106 | resolution: {integrity: sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==}
1107 | dependencies:
1108 | browserslist: 4.22.1
1109 | caniuse-lite: 1.0.30001555
1110 | lodash.memoize: 4.1.2
1111 | lodash.uniq: 4.5.0
1112 | dev: true
1113 |
1114 | /caniuse-lite@1.0.30001555:
1115 | resolution: {integrity: sha512-NzbUFKUnJ3DTcq6YyZB6+qqhfD112uR3uoEnkmfzm2wVzUNsFkU7AwBjKQ654Sp5cau0JxhFyRSn/tQZ+XfygA==}
1116 | dev: true
1117 |
1118 | /chai@4.3.10:
1119 | resolution: {integrity: sha512-0UXG04VuVbruMUYbJ6JctvH0YnC/4q3/AkT18q4NaITo91CUm0liMS9VqzT9vZhVQ/1eqPanMWjBM+Juhfb/9g==}
1120 | engines: {node: '>=4'}
1121 | dependencies:
1122 | assertion-error: 1.1.0
1123 | check-error: 1.0.3
1124 | deep-eql: 4.1.3
1125 | get-func-name: 2.0.2
1126 | loupe: 2.3.7
1127 | pathval: 1.1.1
1128 | type-detect: 4.0.8
1129 | dev: true
1130 |
1131 | /chalk@2.4.2:
1132 | resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==}
1133 | engines: {node: '>=4'}
1134 | dependencies:
1135 | ansi-styles: 3.2.1
1136 | escape-string-regexp: 1.0.5
1137 | supports-color: 5.5.0
1138 | dev: true
1139 |
1140 | /chalk@4.1.2:
1141 | resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==}
1142 | engines: {node: '>=10'}
1143 | dependencies:
1144 | ansi-styles: 4.3.0
1145 | supports-color: 7.2.0
1146 | dev: true
1147 |
1148 | /character-entities-legacy@1.1.4:
1149 | resolution: {integrity: sha512-3Xnr+7ZFS1uxeiUDvV02wQ+QDbc55o97tIV5zHScSPJpcLm/r0DFPcoY3tYRp+VZukxuMeKgXYmsXQHO05zQeA==}
1150 | dev: true
1151 |
1152 | /character-entities@1.2.4:
1153 | resolution: {integrity: sha512-iBMyeEHxfVnIakwOuDXpVkc54HijNgCyQB2w0VfGQThle6NXn50zU6V/u+LDhxHcDUPojn6Kpga3PTAD8W1bQw==}
1154 | dev: true
1155 |
1156 | /character-reference-invalid@1.1.4:
1157 | resolution: {integrity: sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg==}
1158 | dev: true
1159 |
1160 | /check-error@1.0.3:
1161 | resolution: {integrity: sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==}
1162 | dependencies:
1163 | get-func-name: 2.0.2
1164 | dev: true
1165 |
1166 | /chokidar@3.5.3:
1167 | resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==}
1168 | engines: {node: '>= 8.10.0'}
1169 | dependencies:
1170 | anymatch: 3.1.3
1171 | braces: 3.0.2
1172 | glob-parent: 5.1.2
1173 | is-binary-path: 2.1.0
1174 | is-glob: 4.0.3
1175 | normalize-path: 3.0.0
1176 | readdirp: 3.6.0
1177 | optionalDependencies:
1178 | fsevents: 2.3.3
1179 | dev: true
1180 |
1181 | /ci-info@3.9.0:
1182 | resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==}
1183 | engines: {node: '>=8'}
1184 | dev: true
1185 |
1186 | /clean-regexp@1.0.0:
1187 | resolution: {integrity: sha512-GfisEZEJvzKrmGWkvfhgzcz/BllN1USeqD2V6tg14OAOgaCD2Z/PUEuxnAZ/nPvmaHRG7a8y77p1T/IRQ4D1Hw==}
1188 | engines: {node: '>=4'}
1189 | dependencies:
1190 | escape-string-regexp: 1.0.5
1191 | dev: true
1192 |
1193 | /cliui@8.0.1:
1194 | resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==}
1195 | engines: {node: '>=12'}
1196 | dependencies:
1197 | string-width: 4.2.3
1198 | strip-ansi: 6.0.1
1199 | wrap-ansi: 7.0.0
1200 | dev: true
1201 |
1202 | /code-block-writer@12.0.0:
1203 | resolution: {integrity: sha512-q4dMFMlXtKR3XNBHyMHt/3pwYNA69EDk00lloMOaaUMKPUXBw6lpXtbu3MMVG6/uOihGnRDOlkyqsONEUj60+w==}
1204 | dev: false
1205 |
1206 | /color-convert@1.9.3:
1207 | resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==}
1208 | dependencies:
1209 | color-name: 1.1.3
1210 |
1211 | /color-convert@2.0.1:
1212 | resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==}
1213 | engines: {node: '>=7.0.0'}
1214 | dependencies:
1215 | color-name: 1.1.4
1216 | dev: true
1217 |
1218 | /color-name@1.1.3:
1219 | resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==}
1220 |
1221 | /color-name@1.1.4:
1222 | resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==}
1223 |
1224 | /color-string@1.9.1:
1225 | resolution: {integrity: sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==}
1226 | dependencies:
1227 | color-name: 1.1.4
1228 | simple-swizzle: 0.2.2
1229 | dev: false
1230 |
1231 | /color@3.2.1:
1232 | resolution: {integrity: sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA==}
1233 | dependencies:
1234 | color-convert: 1.9.3
1235 | color-string: 1.9.1
1236 | dev: false
1237 |
1238 | /colord@2.9.3:
1239 | resolution: {integrity: sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==}
1240 | dev: true
1241 |
1242 | /commander@7.2.0:
1243 | resolution: {integrity: sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==}
1244 | engines: {node: '>= 10'}
1245 | dev: true
1246 |
1247 | /comment-parser@1.4.0:
1248 | resolution: {integrity: sha512-QLyTNiZ2KDOibvFPlZ6ZngVsZ/0gYnE6uTXi5aoDg8ed3AkJAz4sEje3Y8a29hQ1s6A99MZXe47fLAXQ1rTqaw==}
1249 | engines: {node: '>= 12.0.0'}
1250 | dev: true
1251 |
1252 | /concat-map@0.0.1:
1253 | resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==}
1254 | dev: true
1255 |
1256 | /cross-spawn@7.0.3:
1257 | resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==}
1258 | engines: {node: '>= 8'}
1259 | dependencies:
1260 | path-key: 3.1.1
1261 | shebang-command: 2.0.0
1262 | which: 2.0.2
1263 | dev: true
1264 |
1265 | /crypto-random-string@4.0.0:
1266 | resolution: {integrity: sha512-x8dy3RnvYdlUcPOjkEHqozhiwzKNSq7GcPuXFbnyMOCHxX8V3OgIg/pYuabl2sbUPfIJaeAQB7PMOK8DFIdoRA==}
1267 | engines: {node: '>=12'}
1268 | dependencies:
1269 | type-fest: 1.4.0
1270 | dev: true
1271 |
1272 | /css-declaration-sorter@6.4.1(postcss@8.4.31):
1273 | resolution: {integrity: sha512-rtdthzxKuyq6IzqX6jEcIzQF/YqccluefyCYheovBOLhFT/drQA9zj/UbRAa9J7C0o6EG6u3E6g+vKkay7/k3g==}
1274 | engines: {node: ^10 || ^12 || >=14}
1275 | peerDependencies:
1276 | postcss: ^8.0.9
1277 | dependencies:
1278 | postcss: 8.4.31
1279 | dev: true
1280 |
1281 | /css-select@5.1.0:
1282 | resolution: {integrity: sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==}
1283 | dependencies:
1284 | boolbase: 1.0.0
1285 | css-what: 6.1.0
1286 | domhandler: 5.0.3
1287 | domutils: 3.1.0
1288 | nth-check: 2.1.1
1289 | dev: true
1290 |
1291 | /css-tree@2.2.1:
1292 | resolution: {integrity: sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==}
1293 | engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0'}
1294 | dependencies:
1295 | mdn-data: 2.0.28
1296 | source-map-js: 1.0.2
1297 | dev: true
1298 |
1299 | /css-tree@2.3.1:
1300 | resolution: {integrity: sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==}
1301 | engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0}
1302 | dependencies:
1303 | mdn-data: 2.0.30
1304 | source-map-js: 1.0.2
1305 | dev: true
1306 |
1307 | /css-what@6.1.0:
1308 | resolution: {integrity: sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==}
1309 | engines: {node: '>= 6'}
1310 | dev: true
1311 |
1312 | /cssesc@3.0.0:
1313 | resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==}
1314 | engines: {node: '>=4'}
1315 | hasBin: true
1316 | dev: true
1317 |
1318 | /cssnano-preset-default@6.0.1(postcss@8.4.31):
1319 | resolution: {integrity: sha512-7VzyFZ5zEB1+l1nToKyrRkuaJIx0zi/1npjvZfbBwbtNTzhLtlvYraK/7/uqmX2Wb2aQtd983uuGw79jAjLSuQ==}
1320 | engines: {node: ^14 || ^16 || >=18.0}
1321 | peerDependencies:
1322 | postcss: ^8.2.15
1323 | dependencies:
1324 | css-declaration-sorter: 6.4.1(postcss@8.4.31)
1325 | cssnano-utils: 4.0.0(postcss@8.4.31)
1326 | postcss: 8.4.31
1327 | postcss-calc: 9.0.1(postcss@8.4.31)
1328 | postcss-colormin: 6.0.0(postcss@8.4.31)
1329 | postcss-convert-values: 6.0.0(postcss@8.4.31)
1330 | postcss-discard-comments: 6.0.0(postcss@8.4.31)
1331 | postcss-discard-duplicates: 6.0.0(postcss@8.4.31)
1332 | postcss-discard-empty: 6.0.0(postcss@8.4.31)
1333 | postcss-discard-overridden: 6.0.0(postcss@8.4.31)
1334 | postcss-merge-longhand: 6.0.0(postcss@8.4.31)
1335 | postcss-merge-rules: 6.0.1(postcss@8.4.31)
1336 | postcss-minify-font-values: 6.0.0(postcss@8.4.31)
1337 | postcss-minify-gradients: 6.0.0(postcss@8.4.31)
1338 | postcss-minify-params: 6.0.0(postcss@8.4.31)
1339 | postcss-minify-selectors: 6.0.0(postcss@8.4.31)
1340 | postcss-normalize-charset: 6.0.0(postcss@8.4.31)
1341 | postcss-normalize-display-values: 6.0.0(postcss@8.4.31)
1342 | postcss-normalize-positions: 6.0.0(postcss@8.4.31)
1343 | postcss-normalize-repeat-style: 6.0.0(postcss@8.4.31)
1344 | postcss-normalize-string: 6.0.0(postcss@8.4.31)
1345 | postcss-normalize-timing-functions: 6.0.0(postcss@8.4.31)
1346 | postcss-normalize-unicode: 6.0.0(postcss@8.4.31)
1347 | postcss-normalize-url: 6.0.0(postcss@8.4.31)
1348 | postcss-normalize-whitespace: 6.0.0(postcss@8.4.31)
1349 | postcss-ordered-values: 6.0.0(postcss@8.4.31)
1350 | postcss-reduce-initial: 6.0.0(postcss@8.4.31)
1351 | postcss-reduce-transforms: 6.0.0(postcss@8.4.31)
1352 | postcss-svgo: 6.0.0(postcss@8.4.31)
1353 | postcss-unique-selectors: 6.0.0(postcss@8.4.31)
1354 | dev: true
1355 |
1356 | /cssnano-utils@4.0.0(postcss@8.4.31):
1357 | resolution: {integrity: sha512-Z39TLP+1E0KUcd7LGyF4qMfu8ZufI0rDzhdyAMsa/8UyNUU8wpS0fhdBxbQbv32r64ea00h4878gommRVg2BHw==}
1358 | engines: {node: ^14 || ^16 || >=18.0}
1359 | peerDependencies:
1360 | postcss: ^8.2.15
1361 | dependencies:
1362 | postcss: 8.4.31
1363 | dev: true
1364 |
1365 | /cssnano@6.0.1(postcss@8.4.31):
1366 | resolution: {integrity: sha512-fVO1JdJ0LSdIGJq68eIxOqFpIJrZqXUsBt8fkrBcztCQqAjQD51OhZp7tc0ImcbwXD4k7ny84QTV90nZhmqbkg==}
1367 | engines: {node: ^14 || ^16 || >=18.0}
1368 | peerDependencies:
1369 | postcss: ^8.2.15
1370 | dependencies:
1371 | cssnano-preset-default: 6.0.1(postcss@8.4.31)
1372 | lilconfig: 2.1.0
1373 | postcss: 8.4.31
1374 | dev: true
1375 |
1376 | /csso@5.0.5:
1377 | resolution: {integrity: sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==}
1378 | engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0'}
1379 | dependencies:
1380 | css-tree: 2.2.1
1381 | dev: true
1382 |
1383 | /debug@3.2.7:
1384 | resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==}
1385 | peerDependencies:
1386 | supports-color: '*'
1387 | peerDependenciesMeta:
1388 | supports-color:
1389 | optional: true
1390 | dependencies:
1391 | ms: 2.1.2
1392 | dev: true
1393 |
1394 | /debug@4.3.4:
1395 | resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==}
1396 | engines: {node: '>=6.0'}
1397 | peerDependencies:
1398 | supports-color: '*'
1399 | peerDependenciesMeta:
1400 | supports-color:
1401 | optional: true
1402 | dependencies:
1403 | ms: 2.1.2
1404 | dev: true
1405 |
1406 | /deep-eql@4.1.3:
1407 | resolution: {integrity: sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==}
1408 | engines: {node: '>=6'}
1409 | dependencies:
1410 | type-detect: 4.0.8
1411 | dev: true
1412 |
1413 | /deep-is@0.1.4:
1414 | resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==}
1415 | dev: true
1416 |
1417 | /define-data-property@1.1.1:
1418 | resolution: {integrity: sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==}
1419 | engines: {node: '>= 0.4'}
1420 | dependencies:
1421 | get-intrinsic: 1.2.2
1422 | gopd: 1.0.1
1423 | has-property-descriptors: 1.0.1
1424 | dev: true
1425 |
1426 | /define-properties@1.2.1:
1427 | resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==}
1428 | engines: {node: '>= 0.4'}
1429 | dependencies:
1430 | define-data-property: 1.1.1
1431 | has-property-descriptors: 1.0.1
1432 | object-keys: 1.1.1
1433 | dev: true
1434 |
1435 | /diff-sequences@29.6.3:
1436 | resolution: {integrity: sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==}
1437 | engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
1438 | dev: true
1439 |
1440 | /dir-glob@3.0.1:
1441 | resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==}
1442 | engines: {node: '>=8'}
1443 | dependencies:
1444 | path-type: 4.0.0
1445 | dev: true
1446 |
1447 | /doctrine@2.1.0:
1448 | resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==}
1449 | engines: {node: '>=0.10.0'}
1450 | dependencies:
1451 | esutils: 2.0.3
1452 | dev: true
1453 |
1454 | /doctrine@3.0.0:
1455 | resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==}
1456 | engines: {node: '>=6.0.0'}
1457 | dependencies:
1458 | esutils: 2.0.3
1459 | dev: true
1460 |
1461 | /dom-serializer@2.0.0:
1462 | resolution: {integrity: sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==}
1463 | dependencies:
1464 | domelementtype: 2.3.0
1465 | domhandler: 5.0.3
1466 | entities: 4.5.0
1467 | dev: true
1468 |
1469 | /domelementtype@2.3.0:
1470 | resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==}
1471 | dev: true
1472 |
1473 | /domhandler@5.0.3:
1474 | resolution: {integrity: sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==}
1475 | engines: {node: '>= 4'}
1476 | dependencies:
1477 | domelementtype: 2.3.0
1478 | dev: true
1479 |
1480 | /domutils@3.1.0:
1481 | resolution: {integrity: sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==}
1482 | dependencies:
1483 | dom-serializer: 2.0.0
1484 | domelementtype: 2.3.0
1485 | domhandler: 5.0.3
1486 | dev: true
1487 |
1488 | /eastasianwidth@0.2.0:
1489 | resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==}
1490 | dev: true
1491 |
1492 | /electron-to-chromium@1.4.569:
1493 | resolution: {integrity: sha512-LsrJjZ0IbVy12ApW3gpYpcmHS3iRxH4bkKOW98y1/D+3cvDUWGcbzbsFinfUS8knpcZk/PG/2p/RnkMCYN7PVg==}
1494 | dev: true
1495 |
1496 | /emoji-regex@8.0.0:
1497 | resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==}
1498 | dev: true
1499 |
1500 | /emoji-regex@9.2.2:
1501 | resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==}
1502 | dev: true
1503 |
1504 | /entities@4.5.0:
1505 | resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==}
1506 | engines: {node: '>=0.12'}
1507 | dev: true
1508 |
1509 | /error-ex@1.3.2:
1510 | resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==}
1511 | dependencies:
1512 | is-arrayish: 0.2.1
1513 | dev: true
1514 |
1515 | /es-abstract@1.22.3:
1516 | resolution: {integrity: sha512-eiiY8HQeYfYH2Con2berK+To6GrK2RxbPawDkGq4UiCQQfZHb6wX9qQqkbpPqaxQFcl8d9QzZqo0tGE0VcrdwA==}
1517 | engines: {node: '>= 0.4'}
1518 | dependencies:
1519 | array-buffer-byte-length: 1.0.0
1520 | arraybuffer.prototype.slice: 1.0.2
1521 | available-typed-arrays: 1.0.5
1522 | call-bind: 1.0.5
1523 | es-set-tostringtag: 2.0.2
1524 | es-to-primitive: 1.2.1
1525 | function.prototype.name: 1.1.6
1526 | get-intrinsic: 1.2.2
1527 | get-symbol-description: 1.0.0
1528 | globalthis: 1.0.3
1529 | gopd: 1.0.1
1530 | has-property-descriptors: 1.0.1
1531 | has-proto: 1.0.1
1532 | has-symbols: 1.0.3
1533 | hasown: 2.0.0
1534 | internal-slot: 1.0.6
1535 | is-array-buffer: 3.0.2
1536 | is-callable: 1.2.7
1537 | is-negative-zero: 2.0.2
1538 | is-regex: 1.1.4
1539 | is-shared-array-buffer: 1.0.2
1540 | is-string: 1.0.7
1541 | is-typed-array: 1.1.12
1542 | is-weakref: 1.0.2
1543 | object-inspect: 1.13.1
1544 | object-keys: 1.1.1
1545 | object.assign: 4.1.4
1546 | regexp.prototype.flags: 1.5.1
1547 | safe-array-concat: 1.0.1
1548 | safe-regex-test: 1.0.0
1549 | string.prototype.trim: 1.2.8
1550 | string.prototype.trimend: 1.0.7
1551 | string.prototype.trimstart: 1.0.7
1552 | typed-array-buffer: 1.0.0
1553 | typed-array-byte-length: 1.0.0
1554 | typed-array-byte-offset: 1.0.0
1555 | typed-array-length: 1.0.4
1556 | unbox-primitive: 1.0.2
1557 | which-typed-array: 1.1.13
1558 | dev: true
1559 |
1560 | /es-set-tostringtag@2.0.2:
1561 | resolution: {integrity: sha512-BuDyupZt65P9D2D2vA/zqcI3G5xRsklm5N3xCwuiy+/vKy8i0ifdsQP1sLgO4tZDSCaQUSnmC48khknGMV3D2Q==}
1562 | engines: {node: '>= 0.4'}
1563 | dependencies:
1564 | get-intrinsic: 1.2.2
1565 | has-tostringtag: 1.0.0
1566 | hasown: 2.0.0
1567 | dev: true
1568 |
1569 | /es-shim-unscopables@1.0.2:
1570 | resolution: {integrity: sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==}
1571 | dependencies:
1572 | hasown: 2.0.0
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.7
1580 | is-date-object: 1.0.5
1581 | is-symbol: 1.0.4
1582 | dev: true
1583 |
1584 | /esbuild@0.19.5:
1585 | resolution: {integrity: sha512-bUxalY7b1g8vNhQKdB24QDmHeY4V4tw/s6Ak5z+jJX9laP5MoQseTOMemAr0gxssjNcH0MCViG8ONI2kksvfFQ==}
1586 | engines: {node: '>=12'}
1587 | hasBin: true
1588 | requiresBuild: true
1589 | optionalDependencies:
1590 | '@esbuild/android-arm': 0.19.5
1591 | '@esbuild/android-arm64': 0.19.5
1592 | '@esbuild/android-x64': 0.19.5
1593 | '@esbuild/darwin-arm64': 0.19.5
1594 | '@esbuild/darwin-x64': 0.19.5
1595 | '@esbuild/freebsd-arm64': 0.19.5
1596 | '@esbuild/freebsd-x64': 0.19.5
1597 | '@esbuild/linux-arm': 0.19.5
1598 | '@esbuild/linux-arm64': 0.19.5
1599 | '@esbuild/linux-ia32': 0.19.5
1600 | '@esbuild/linux-loong64': 0.19.5
1601 | '@esbuild/linux-mips64el': 0.19.5
1602 | '@esbuild/linux-ppc64': 0.19.5
1603 | '@esbuild/linux-riscv64': 0.19.5
1604 | '@esbuild/linux-s390x': 0.19.5
1605 | '@esbuild/linux-x64': 0.19.5
1606 | '@esbuild/netbsd-x64': 0.19.5
1607 | '@esbuild/openbsd-x64': 0.19.5
1608 | '@esbuild/sunos-x64': 0.19.5
1609 | '@esbuild/win32-arm64': 0.19.5
1610 | '@esbuild/win32-ia32': 0.19.5
1611 | '@esbuild/win32-x64': 0.19.5
1612 | dev: true
1613 |
1614 | /escalade@3.1.1:
1615 | resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==}
1616 | engines: {node: '>=6'}
1617 | dev: true
1618 |
1619 | /escape-string-regexp@1.0.5:
1620 | resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==}
1621 | engines: {node: '>=0.8.0'}
1622 | dev: true
1623 |
1624 | /escape-string-regexp@4.0.0:
1625 | resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==}
1626 | engines: {node: '>=10'}
1627 | dev: true
1628 |
1629 | /escape-string-regexp@5.0.0:
1630 | resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==}
1631 | engines: {node: '>=12'}
1632 | dev: true
1633 |
1634 | /eslint-compat-utils@0.1.2(eslint@8.55.0):
1635 | resolution: {integrity: sha512-Jia4JDldWnFNIru1Ehx1H5s9/yxiRHY/TimCuUc0jNexew3cF1gI6CYZil1ociakfWO3rRqFjl1mskBblB3RYg==}
1636 | engines: {node: '>=12'}
1637 | peerDependencies:
1638 | eslint: '>=6.0.0'
1639 | dependencies:
1640 | eslint: 8.55.0
1641 | dev: true
1642 |
1643 | /eslint-config-flat-gitignore@0.1.1:
1644 | resolution: {integrity: sha512-ysq0QpN63+uaxE67U0g0HeCweIpv8Ztp7yvm0nYiM2TBalRIG6KQLO5J6lAz2gkA8KVis/QsJppe+BR5VigtWQ==}
1645 | dependencies:
1646 | parse-gitignore: 2.0.0
1647 | dev: true
1648 |
1649 | /eslint-import-resolver-node@0.3.9:
1650 | resolution: {integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==}
1651 | dependencies:
1652 | debug: 3.2.7
1653 | is-core-module: 2.13.1
1654 | resolve: 1.22.8
1655 | transitivePeerDependencies:
1656 | - supports-color
1657 | dev: true
1658 |
1659 | /eslint-module-utils@2.8.0(@typescript-eslint/parser@6.9.1)(eslint-import-resolver-node@0.3.9)(eslint@8.55.0):
1660 | resolution: {integrity: sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==}
1661 | engines: {node: '>=4'}
1662 | peerDependencies:
1663 | '@typescript-eslint/parser': '*'
1664 | eslint: '*'
1665 | eslint-import-resolver-node: '*'
1666 | eslint-import-resolver-typescript: '*'
1667 | eslint-import-resolver-webpack: '*'
1668 | peerDependenciesMeta:
1669 | '@typescript-eslint/parser':
1670 | optional: true
1671 | eslint:
1672 | optional: true
1673 | eslint-import-resolver-node:
1674 | optional: true
1675 | eslint-import-resolver-typescript:
1676 | optional: true
1677 | eslint-import-resolver-webpack:
1678 | optional: true
1679 | dependencies:
1680 | '@typescript-eslint/parser': 6.9.1(eslint@8.55.0)(typescript@5.2.2)
1681 | debug: 3.2.7
1682 | eslint: 8.55.0
1683 | eslint-import-resolver-node: 0.3.9
1684 | transitivePeerDependencies:
1685 | - supports-color
1686 | dev: true
1687 |
1688 | /eslint-plugin-antfu@1.0.2(eslint@8.55.0):
1689 | resolution: {integrity: sha512-elv/LVq+4h9oi7xza9EK93akujmTAGnL3e7aMVVWELjvIJuHcKj0GT6HjdgPDtuBdMnyyKN7fVKIpSNSqZnaIA==}
1690 | peerDependencies:
1691 | eslint: '*'
1692 | dependencies:
1693 | eslint: 8.55.0
1694 | dev: true
1695 |
1696 | /eslint-plugin-es-x@7.3.0(eslint@8.55.0):
1697 | resolution: {integrity: sha512-W9zIs+k00I/I13+Bdkl/zG1MEO07G97XjUSQuH117w620SJ6bHtLUmoMvkGA2oYnI/gNdr+G7BONLyYnFaLLEQ==}
1698 | engines: {node: ^14.18.0 || >=16.0.0}
1699 | peerDependencies:
1700 | eslint: '>=8'
1701 | dependencies:
1702 | '@eslint-community/eslint-utils': 4.4.0(eslint@8.55.0)
1703 | '@eslint-community/regexpp': 4.10.0
1704 | eslint: 8.55.0
1705 | dev: true
1706 |
1707 | /eslint-plugin-eslint-comments@3.2.0(eslint@8.55.0):
1708 | resolution: {integrity: sha512-0jkOl0hfojIHHmEHgmNdqv4fmh7300NdpA9FFpF7zaoLvB/QeXOGNLIo86oAveJFrfB1p05kC8hpEMHM8DwWVQ==}
1709 | engines: {node: '>=6.5.0'}
1710 | peerDependencies:
1711 | eslint: '>=4.19.1'
1712 | dependencies:
1713 | escape-string-regexp: 1.0.5
1714 | eslint: 8.55.0
1715 | ignore: 5.2.4
1716 | dev: true
1717 |
1718 | /eslint-plugin-i@2.29.0(@typescript-eslint/parser@6.9.1)(eslint@8.55.0):
1719 | resolution: {integrity: sha512-slGeTS3GQzx9267wLJnNYNO8X9EHGsc75AKIAFvnvMYEcTJKotPKL1Ru5PIGVHIVet+2DsugePWp8Oxpx8G22w==}
1720 | engines: {node: '>=12'}
1721 | peerDependencies:
1722 | eslint: ^7.2.0 || ^8
1723 | dependencies:
1724 | debug: 3.2.7
1725 | doctrine: 2.1.0
1726 | eslint: 8.55.0
1727 | eslint-import-resolver-node: 0.3.9
1728 | eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.9.1)(eslint-import-resolver-node@0.3.9)(eslint@8.55.0)
1729 | get-tsconfig: 4.7.2
1730 | is-glob: 4.0.3
1731 | minimatch: 3.1.2
1732 | resolve: 1.22.8
1733 | semver: 7.5.4
1734 | transitivePeerDependencies:
1735 | - '@typescript-eslint/parser'
1736 | - eslint-import-resolver-typescript
1737 | - eslint-import-resolver-webpack
1738 | - supports-color
1739 | dev: true
1740 |
1741 | /eslint-plugin-jsdoc@46.8.2(eslint@8.55.0):
1742 | resolution: {integrity: sha512-5TSnD018f3tUJNne4s4gDWQflbsgOycIKEUBoCLn6XtBMgNHxQFmV8vVxUtiPxAQq8lrX85OaSG/2gnctxw9uQ==}
1743 | engines: {node: '>=16'}
1744 | peerDependencies:
1745 | eslint: ^7.0.0 || ^8.0.0
1746 | dependencies:
1747 | '@es-joy/jsdoccomment': 0.40.1
1748 | are-docs-informative: 0.0.2
1749 | comment-parser: 1.4.0
1750 | debug: 4.3.4
1751 | escape-string-regexp: 4.0.0
1752 | eslint: 8.55.0
1753 | esquery: 1.5.0
1754 | is-builtin-module: 3.2.1
1755 | semver: 7.5.4
1756 | spdx-expression-parse: 3.0.1
1757 | transitivePeerDependencies:
1758 | - supports-color
1759 | dev: true
1760 |
1761 | /eslint-plugin-jsonc@2.10.0(eslint@8.55.0):
1762 | resolution: {integrity: sha512-9d//o6Jyh4s1RxC9fNSt1+MMaFN2ruFdXPG9XZcb/mR2KkfjADYiNL/hbU6W0Cyxfg3tS/XSFuhl5LgtMD8hmw==}
1763 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
1764 | peerDependencies:
1765 | eslint: '>=6.0.0'
1766 | dependencies:
1767 | '@eslint-community/eslint-utils': 4.4.0(eslint@8.55.0)
1768 | eslint: 8.55.0
1769 | eslint-compat-utils: 0.1.2(eslint@8.55.0)
1770 | jsonc-eslint-parser: 2.4.0
1771 | natural-compare: 1.4.0
1772 | dev: true
1773 |
1774 | /eslint-plugin-markdown@3.0.1(eslint@8.55.0):
1775 | resolution: {integrity: sha512-8rqoc148DWdGdmYF6WSQFT3uQ6PO7zXYgeBpHAOAakX/zpq+NvFYbDA/H7PYzHajwtmaOzAwfxyl++x0g1/N9A==}
1776 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
1777 | peerDependencies:
1778 | eslint: ^6.0.0 || ^7.0.0 || ^8.0.0
1779 | dependencies:
1780 | eslint: 8.55.0
1781 | mdast-util-from-markdown: 0.8.5
1782 | transitivePeerDependencies:
1783 | - supports-color
1784 | dev: true
1785 |
1786 | /eslint-plugin-n@16.2.0(eslint@8.55.0):
1787 | resolution: {integrity: sha512-AQER2jEyQOt1LG6JkGJCCIFotzmlcCZFur2wdKrp1JX2cNotC7Ae0BcD/4lLv3lUAArM9uNS8z/fsvXTd0L71g==}
1788 | engines: {node: '>=16.0.0'}
1789 | peerDependencies:
1790 | eslint: '>=7.0.0'
1791 | dependencies:
1792 | '@eslint-community/eslint-utils': 4.4.0(eslint@8.55.0)
1793 | builtins: 5.0.1
1794 | eslint: 8.55.0
1795 | eslint-plugin-es-x: 7.3.0(eslint@8.55.0)
1796 | get-tsconfig: 4.7.2
1797 | ignore: 5.2.4
1798 | is-core-module: 2.13.1
1799 | minimatch: 3.1.2
1800 | resolve: 1.22.8
1801 | semver: 7.5.4
1802 | dev: true
1803 |
1804 | /eslint-plugin-no-only-tests@3.1.0:
1805 | resolution: {integrity: sha512-Lf4YW/bL6Un1R6A76pRZyE1dl1vr31G/ev8UzIc/geCgFWyrKil8hVjYqWVKGB/UIGmb6Slzs9T0wNezdSVegw==}
1806 | engines: {node: '>=5.0.0'}
1807 | dev: true
1808 |
1809 | /eslint-plugin-perfectionist@2.2.0(eslint@8.55.0)(typescript@5.2.2)(vue-eslint-parser@9.3.2):
1810 | resolution: {integrity: sha512-/nG2Uurd6AY7CI6zlgjHPOoiPY8B7EYMUWdNb5w+EzyauYiQjjD5lQwAI1FlkBbCCFFZw/CdZIPQhXumYoiyaw==}
1811 | peerDependencies:
1812 | astro-eslint-parser: ^0.16.0
1813 | eslint: '>=8.0.0'
1814 | svelte: '>=3.0.0'
1815 | svelte-eslint-parser: ^0.33.0
1816 | vue-eslint-parser: '>=9.0.0'
1817 | peerDependenciesMeta:
1818 | astro-eslint-parser:
1819 | optional: true
1820 | svelte:
1821 | optional: true
1822 | svelte-eslint-parser:
1823 | optional: true
1824 | vue-eslint-parser:
1825 | optional: true
1826 | dependencies:
1827 | '@typescript-eslint/utils': 6.9.1(eslint@8.55.0)(typescript@5.2.2)
1828 | eslint: 8.55.0
1829 | minimatch: 9.0.3
1830 | natural-compare-lite: 1.4.0
1831 | vue-eslint-parser: 9.3.2(eslint@8.55.0)
1832 | transitivePeerDependencies:
1833 | - supports-color
1834 | - typescript
1835 | dev: true
1836 |
1837 | /eslint-plugin-unicorn@49.0.0(eslint@8.55.0):
1838 | resolution: {integrity: sha512-0fHEa/8Pih5cmzFW5L7xMEfUTvI9WKeQtjmKpTUmY+BiFCDxkxrTdnURJOHKykhtwIeyYsxnecbGvDCml++z4Q==}
1839 | engines: {node: '>=16'}
1840 | peerDependencies:
1841 | eslint: '>=8.52.0'
1842 | dependencies:
1843 | '@babel/helper-validator-identifier': 7.22.20
1844 | '@eslint-community/eslint-utils': 4.4.0(eslint@8.55.0)
1845 | ci-info: 3.9.0
1846 | clean-regexp: 1.0.0
1847 | eslint: 8.55.0
1848 | esquery: 1.5.0
1849 | indent-string: 4.0.0
1850 | is-builtin-module: 3.2.1
1851 | jsesc: 3.0.2
1852 | pluralize: 8.0.0
1853 | read-pkg-up: 7.0.1
1854 | regexp-tree: 0.1.27
1855 | regjsparser: 0.10.0
1856 | semver: 7.5.4
1857 | strip-indent: 3.0.0
1858 | dev: true
1859 |
1860 | /eslint-plugin-unused-imports@3.0.0(@typescript-eslint/eslint-plugin@6.9.1)(eslint@8.55.0):
1861 | resolution: {integrity: sha512-sduiswLJfZHeeBJ+MQaG+xYzSWdRXoSw61DpU13mzWumCkR0ufD0HmO4kdNokjrkluMHpj/7PJeN35pgbhW3kw==}
1862 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
1863 | peerDependencies:
1864 | '@typescript-eslint/eslint-plugin': ^6.0.0
1865 | eslint: ^8.0.0
1866 | peerDependenciesMeta:
1867 | '@typescript-eslint/eslint-plugin':
1868 | optional: true
1869 | dependencies:
1870 | '@typescript-eslint/eslint-plugin': 6.9.1(@typescript-eslint/parser@6.9.1)(eslint@8.55.0)(typescript@5.2.2)
1871 | eslint: 8.55.0
1872 | eslint-rule-composer: 0.3.0
1873 | dev: true
1874 |
1875 | /eslint-plugin-vitest@0.3.9(@typescript-eslint/eslint-plugin@6.9.1)(eslint@8.55.0)(typescript@5.2.2)(vitest@1.0.4):
1876 | resolution: {integrity: sha512-ZGrz8dWFlotM5dwrsMLP4VcY5MizwKNV4JTnY0VKdnuCZ+qeEUMHf1qd8kRGQA3tqLvXcV929wt2ANkduq2Pgw==}
1877 | engines: {node: 14.x || >= 16}
1878 | peerDependencies:
1879 | '@typescript-eslint/eslint-plugin': '*'
1880 | eslint: '>=8.0.0'
1881 | vitest: '*'
1882 | peerDependenciesMeta:
1883 | '@typescript-eslint/eslint-plugin':
1884 | optional: true
1885 | vitest:
1886 | optional: true
1887 | dependencies:
1888 | '@typescript-eslint/eslint-plugin': 6.9.1(@typescript-eslint/parser@6.9.1)(eslint@8.55.0)(typescript@5.2.2)
1889 | '@typescript-eslint/utils': 6.9.1(eslint@8.55.0)(typescript@5.2.2)
1890 | eslint: 8.55.0
1891 | vitest: 1.0.4
1892 | transitivePeerDependencies:
1893 | - supports-color
1894 | - typescript
1895 | dev: true
1896 |
1897 | /eslint-plugin-vue@9.18.1(eslint@8.55.0):
1898 | resolution: {integrity: sha512-7hZFlrEgg9NIzuVik2I9xSnJA5RsmOfueYgsUGUokEDLJ1LHtxO0Pl4duje1BriZ/jDWb+44tcIlC3yi0tdlZg==}
1899 | engines: {node: ^14.17.0 || >=16.0.0}
1900 | peerDependencies:
1901 | eslint: ^6.2.0 || ^7.0.0 || ^8.0.0
1902 | dependencies:
1903 | '@eslint-community/eslint-utils': 4.4.0(eslint@8.55.0)
1904 | eslint: 8.55.0
1905 | natural-compare: 1.4.0
1906 | nth-check: 2.1.1
1907 | postcss-selector-parser: 6.0.13
1908 | semver: 7.5.4
1909 | vue-eslint-parser: 9.3.2(eslint@8.55.0)
1910 | xml-name-validator: 4.0.0
1911 | transitivePeerDependencies:
1912 | - supports-color
1913 | dev: true
1914 |
1915 | /eslint-plugin-yml@1.10.0(eslint@8.55.0):
1916 | resolution: {integrity: sha512-53SUwuNDna97lVk38hL/5++WXDuugPM9SUQ1T645R0EHMRCdBIIxGye/oOX2qO3FQ7aImxaUZJU/ju+NMUBrLQ==}
1917 | engines: {node: ^14.17.0 || >=16.0.0}
1918 | peerDependencies:
1919 | eslint: '>=6.0.0'
1920 | dependencies:
1921 | debug: 4.3.4
1922 | eslint: 8.55.0
1923 | eslint-compat-utils: 0.1.2(eslint@8.55.0)
1924 | lodash: 4.17.21
1925 | natural-compare: 1.4.0
1926 | yaml-eslint-parser: 1.2.2
1927 | transitivePeerDependencies:
1928 | - supports-color
1929 | dev: true
1930 |
1931 | /eslint-rule-composer@0.3.0:
1932 | resolution: {integrity: sha512-bt+Sh8CtDmn2OajxvNO+BX7Wn4CIWMpTRm3MaiKPCQcnnlm0CS2mhui6QaoeQugs+3Kj2ESKEEGJUdVafwhiCg==}
1933 | engines: {node: '>=4.0.0'}
1934 | dev: true
1935 |
1936 | /eslint-scope@7.2.2:
1937 | resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==}
1938 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
1939 | dependencies:
1940 | esrecurse: 4.3.0
1941 | estraverse: 5.3.0
1942 | dev: true
1943 |
1944 | /eslint-visitor-keys@3.4.3:
1945 | resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==}
1946 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
1947 | dev: true
1948 |
1949 | /eslint@8.55.0:
1950 | resolution: {integrity: sha512-iyUUAM0PCKj5QpwGfmCAG9XXbZCWsqP/eWAWrG/W0umvjuLRBECwSFdt+rCntju0xEH7teIABPwXpahftIaTdA==}
1951 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
1952 | hasBin: true
1953 | dependencies:
1954 | '@eslint-community/eslint-utils': 4.4.0(eslint@8.55.0)
1955 | '@eslint-community/regexpp': 4.10.0
1956 | '@eslint/eslintrc': 2.1.4
1957 | '@eslint/js': 8.55.0
1958 | '@humanwhocodes/config-array': 0.11.13
1959 | '@humanwhocodes/module-importer': 1.0.1
1960 | '@nodelib/fs.walk': 1.2.8
1961 | '@ungap/structured-clone': 1.2.0
1962 | ajv: 6.12.6
1963 | chalk: 4.1.2
1964 | cross-spawn: 7.0.3
1965 | debug: 4.3.4
1966 | doctrine: 3.0.0
1967 | escape-string-regexp: 4.0.0
1968 | eslint-scope: 7.2.2
1969 | eslint-visitor-keys: 3.4.3
1970 | espree: 9.6.1
1971 | esquery: 1.5.0
1972 | esutils: 2.0.3
1973 | fast-deep-equal: 3.1.3
1974 | file-entry-cache: 6.0.1
1975 | find-up: 5.0.0
1976 | glob-parent: 6.0.2
1977 | globals: 13.23.0
1978 | graphemer: 1.4.0
1979 | ignore: 5.2.4
1980 | imurmurhash: 0.1.4
1981 | is-glob: 4.0.3
1982 | is-path-inside: 3.0.3
1983 | js-yaml: 4.1.0
1984 | json-stable-stringify-without-jsonify: 1.0.1
1985 | levn: 0.4.1
1986 | lodash.merge: 4.6.2
1987 | minimatch: 3.1.2
1988 | natural-compare: 1.4.0
1989 | optionator: 0.9.3
1990 | strip-ansi: 6.0.1
1991 | text-table: 0.2.0
1992 | transitivePeerDependencies:
1993 | - supports-color
1994 | dev: true
1995 |
1996 | /espree@9.6.1:
1997 | resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==}
1998 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
1999 | dependencies:
2000 | acorn: 8.11.2
2001 | acorn-jsx: 5.3.2(acorn@8.11.2)
2002 | eslint-visitor-keys: 3.4.3
2003 | dev: true
2004 |
2005 | /esquery@1.5.0:
2006 | resolution: {integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==}
2007 | engines: {node: '>=0.10'}
2008 | dependencies:
2009 | estraverse: 5.3.0
2010 | dev: true
2011 |
2012 | /esrecurse@4.3.0:
2013 | resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==}
2014 | engines: {node: '>=4.0'}
2015 | dependencies:
2016 | estraverse: 5.3.0
2017 | dev: true
2018 |
2019 | /estraverse@5.3.0:
2020 | resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==}
2021 | engines: {node: '>=4.0'}
2022 | dev: true
2023 |
2024 | /esutils@2.0.3:
2025 | resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==}
2026 | engines: {node: '>=0.10.0'}
2027 | dev: true
2028 |
2029 | /execa@8.0.1:
2030 | resolution: {integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==}
2031 | engines: {node: '>=16.17'}
2032 | dependencies:
2033 | cross-spawn: 7.0.3
2034 | get-stream: 8.0.1
2035 | human-signals: 5.0.0
2036 | is-stream: 3.0.0
2037 | merge-stream: 2.0.0
2038 | npm-run-path: 5.1.0
2039 | onetime: 6.0.0
2040 | signal-exit: 4.1.0
2041 | strip-final-newline: 3.0.0
2042 | dev: true
2043 |
2044 | /fast-deep-equal@3.1.3:
2045 | resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==}
2046 | dev: true
2047 |
2048 | /fast-glob@3.3.1:
2049 | resolution: {integrity: sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==}
2050 | engines: {node: '>=8.6.0'}
2051 | dependencies:
2052 | '@nodelib/fs.stat': 2.0.5
2053 | '@nodelib/fs.walk': 1.2.8
2054 | glob-parent: 5.1.2
2055 | merge2: 1.4.1
2056 | micromatch: 4.0.5
2057 | dev: true
2058 |
2059 | /fast-json-stable-stringify@2.1.0:
2060 | resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==}
2061 | dev: true
2062 |
2063 | /fast-levenshtein@2.0.6:
2064 | resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==}
2065 | dev: true
2066 |
2067 | /fastq@1.15.0:
2068 | resolution: {integrity: sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==}
2069 | dependencies:
2070 | reusify: 1.0.4
2071 | dev: true
2072 |
2073 | /figx@0.1.3:
2074 | resolution: {integrity: sha512-SB0I6W9GcZcd8qI+NaSGPLefcGWrinWndygl8cPbmBy0nmM0hUrjI/644QnlAxLunW8zQv9/l2BQ/Mz2P+LCRg==}
2075 | dependencies:
2076 | color: 3.2.1
2077 | dev: false
2078 |
2079 | /file-entry-cache@6.0.1:
2080 | resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==}
2081 | engines: {node: ^10.12.0 || >=12.0.0}
2082 | dependencies:
2083 | flat-cache: 3.1.1
2084 | dev: true
2085 |
2086 | /fill-range@7.0.1:
2087 | resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==}
2088 | engines: {node: '>=8'}
2089 | dependencies:
2090 | to-regex-range: 5.0.1
2091 | dev: true
2092 |
2093 | /find-up@4.1.0:
2094 | resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==}
2095 | engines: {node: '>=8'}
2096 | dependencies:
2097 | locate-path: 5.0.0
2098 | path-exists: 4.0.0
2099 | dev: true
2100 |
2101 | /find-up@5.0.0:
2102 | resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==}
2103 | engines: {node: '>=10'}
2104 | dependencies:
2105 | locate-path: 6.0.0
2106 | path-exists: 4.0.0
2107 | dev: true
2108 |
2109 | /find-up@6.3.0:
2110 | resolution: {integrity: sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==}
2111 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
2112 | dependencies:
2113 | locate-path: 7.2.0
2114 | path-exists: 5.0.0
2115 | dev: true
2116 |
2117 | /flat-cache@3.1.1:
2118 | resolution: {integrity: sha512-/qM2b3LUIaIgviBQovTLvijfyOQXPtSRnRK26ksj2J7rzPIecePUIpJsZ4T02Qg+xiAEKIs5K8dsHEd+VaKa/Q==}
2119 | engines: {node: '>=12.0.0'}
2120 | dependencies:
2121 | flatted: 3.2.9
2122 | keyv: 4.5.4
2123 | rimraf: 3.0.2
2124 | dev: true
2125 |
2126 | /flatted@3.2.9:
2127 | resolution: {integrity: sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==}
2128 | dev: true
2129 |
2130 | /for-each@0.3.3:
2131 | resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==}
2132 | dependencies:
2133 | is-callable: 1.2.7
2134 | dev: true
2135 |
2136 | /foreground-child@3.1.1:
2137 | resolution: {integrity: sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==}
2138 | engines: {node: '>=14'}
2139 | dependencies:
2140 | cross-spawn: 7.0.3
2141 | signal-exit: 4.1.0
2142 | dev: true
2143 |
2144 | /fs.realpath@1.0.0:
2145 | resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==}
2146 | dev: true
2147 |
2148 | /fsevents@2.3.3:
2149 | resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==}
2150 | engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0}
2151 | os: [darwin]
2152 | requiresBuild: true
2153 | dev: true
2154 | optional: true
2155 |
2156 | /function-bind@1.1.2:
2157 | resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==}
2158 | dev: true
2159 |
2160 | /function.prototype.name@1.1.6:
2161 | resolution: {integrity: sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==}
2162 | engines: {node: '>= 0.4'}
2163 | dependencies:
2164 | call-bind: 1.0.5
2165 | define-properties: 1.2.1
2166 | es-abstract: 1.22.3
2167 | functions-have-names: 1.2.3
2168 | dev: true
2169 |
2170 | /functions-have-names@1.2.3:
2171 | resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==}
2172 | dev: true
2173 |
2174 | /generic-names@4.0.0:
2175 | resolution: {integrity: sha512-ySFolZQfw9FoDb3ed9d80Cm9f0+r7qj+HJkWjeD9RBfpxEVTlVhol+gvaQB/78WbwYfbnNh8nWHHBSlg072y6A==}
2176 | dependencies:
2177 | loader-utils: 3.2.1
2178 | dev: true
2179 |
2180 | /get-caller-file@2.0.5:
2181 | resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==}
2182 | engines: {node: 6.* || 8.* || >= 10.*}
2183 | dev: true
2184 |
2185 | /get-func-name@2.0.2:
2186 | resolution: {integrity: sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==}
2187 | dev: true
2188 |
2189 | /get-intrinsic@1.2.2:
2190 | resolution: {integrity: sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==}
2191 | dependencies:
2192 | function-bind: 1.1.2
2193 | has-proto: 1.0.1
2194 | has-symbols: 1.0.3
2195 | hasown: 2.0.0
2196 | dev: true
2197 |
2198 | /get-stream@8.0.1:
2199 | resolution: {integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==}
2200 | engines: {node: '>=16'}
2201 | dev: true
2202 |
2203 | /get-symbol-description@1.0.0:
2204 | resolution: {integrity: sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==}
2205 | engines: {node: '>= 0.4'}
2206 | dependencies:
2207 | call-bind: 1.0.5
2208 | get-intrinsic: 1.2.2
2209 | dev: true
2210 |
2211 | /get-tsconfig@4.7.2:
2212 | resolution: {integrity: sha512-wuMsz4leaj5hbGgg4IvDU0bqJagpftG5l5cXIAvo8uZrqn0NJqwtfupTN00VnkQJPcIRrxYrm1Ue24btpCha2A==}
2213 | dependencies:
2214 | resolve-pkg-maps: 1.0.0
2215 | dev: true
2216 |
2217 | /glob-parent@5.1.2:
2218 | resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==}
2219 | engines: {node: '>= 6'}
2220 | dependencies:
2221 | is-glob: 4.0.3
2222 | dev: true
2223 |
2224 | /glob-parent@6.0.2:
2225 | resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==}
2226 | engines: {node: '>=10.13.0'}
2227 | dependencies:
2228 | is-glob: 4.0.3
2229 | dev: true
2230 |
2231 | /glob@10.3.10:
2232 | resolution: {integrity: sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==}
2233 | engines: {node: '>=16 || 14 >=14.17'}
2234 | hasBin: true
2235 | dependencies:
2236 | foreground-child: 3.1.1
2237 | jackspeak: 2.3.6
2238 | minimatch: 9.0.3
2239 | minipass: 7.0.4
2240 | path-scurry: 1.10.1
2241 | dev: true
2242 |
2243 | /glob@7.2.3:
2244 | resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==}
2245 | dependencies:
2246 | fs.realpath: 1.0.0
2247 | inflight: 1.0.6
2248 | inherits: 2.0.4
2249 | minimatch: 3.1.2
2250 | once: 1.4.0
2251 | path-is-absolute: 1.0.1
2252 | dev: true
2253 |
2254 | /globals@13.23.0:
2255 | resolution: {integrity: sha512-XAmF0RjlrjY23MA51q3HltdlGxUpXPvg0GioKiD9X6HD28iMjo2dKC8Vqwm7lne4GNr78+RHTfliktR6ZH09wA==}
2256 | engines: {node: '>=8'}
2257 | dependencies:
2258 | type-fest: 0.20.2
2259 | dev: true
2260 |
2261 | /globalthis@1.0.3:
2262 | resolution: {integrity: sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==}
2263 | engines: {node: '>= 0.4'}
2264 | dependencies:
2265 | define-properties: 1.2.1
2266 | dev: true
2267 |
2268 | /globby@11.1.0:
2269 | resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==}
2270 | engines: {node: '>=10'}
2271 | dependencies:
2272 | array-union: 2.1.0
2273 | dir-glob: 3.0.1
2274 | fast-glob: 3.3.1
2275 | ignore: 5.2.4
2276 | merge2: 1.4.1
2277 | slash: 3.0.0
2278 | dev: true
2279 |
2280 | /globby@13.2.2:
2281 | resolution: {integrity: sha512-Y1zNGV+pzQdh7H39l9zgB4PJqjRNqydvdYCDG4HFXM4XuvSaQQlEc91IU1yALL8gUTDomgBAfz3XJdmUS+oo0w==}
2282 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
2283 | dependencies:
2284 | dir-glob: 3.0.1
2285 | fast-glob: 3.3.1
2286 | ignore: 5.2.4
2287 | merge2: 1.4.1
2288 | slash: 4.0.0
2289 | dev: true
2290 |
2291 | /gopd@1.0.1:
2292 | resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==}
2293 | dependencies:
2294 | get-intrinsic: 1.2.2
2295 | dev: true
2296 |
2297 | /graceful-fs@4.2.11:
2298 | resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==}
2299 | dev: true
2300 |
2301 | /graphemer@1.4.0:
2302 | resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==}
2303 | dev: true
2304 |
2305 | /has-bigints@1.0.2:
2306 | resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==}
2307 | dev: true
2308 |
2309 | /has-flag@3.0.0:
2310 | resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==}
2311 | engines: {node: '>=4'}
2312 | dev: true
2313 |
2314 | /has-flag@4.0.0:
2315 | resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==}
2316 | engines: {node: '>=8'}
2317 | dev: true
2318 |
2319 | /has-property-descriptors@1.0.1:
2320 | resolution: {integrity: sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg==}
2321 | dependencies:
2322 | get-intrinsic: 1.2.2
2323 | dev: true
2324 |
2325 | /has-proto@1.0.1:
2326 | resolution: {integrity: sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==}
2327 | engines: {node: '>= 0.4'}
2328 | dev: true
2329 |
2330 | /has-symbols@1.0.3:
2331 | resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==}
2332 | engines: {node: '>= 0.4'}
2333 | dev: true
2334 |
2335 | /has-tostringtag@1.0.0:
2336 | resolution: {integrity: sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==}
2337 | engines: {node: '>= 0.4'}
2338 | dependencies:
2339 | has-symbols: 1.0.3
2340 | dev: true
2341 |
2342 | /hasown@2.0.0:
2343 | resolution: {integrity: sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==}
2344 | engines: {node: '>= 0.4'}
2345 | dependencies:
2346 | function-bind: 1.1.2
2347 | dev: true
2348 |
2349 | /hex-rgb@5.0.0:
2350 | resolution: {integrity: sha512-NQO+lgVUCtHxZ792FodgW0zflK+ozS9X9dwGp9XvvmPlH7pyxd588cn24TD3rmPm/N0AIRXF10Otah8yKqGw4w==}
2351 | engines: {node: '>=12'}
2352 |
2353 | /hosted-git-info@2.8.9:
2354 | resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==}
2355 | dev: true
2356 |
2357 | /human-signals@5.0.0:
2358 | resolution: {integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==}
2359 | engines: {node: '>=16.17.0'}
2360 | dev: true
2361 |
2362 | /icss-replace-symbols@1.1.0:
2363 | resolution: {integrity: sha512-chIaY3Vh2mh2Q3RGXttaDIzeiPvaVXJ+C4DAh/w3c37SKZ/U6PGMmuicR2EQQp9bKG8zLMCl7I+PtIoOOPp8Gg==}
2364 | dev: true
2365 |
2366 | /icss-utils@5.1.0(postcss@8.4.31):
2367 | resolution: {integrity: sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==}
2368 | engines: {node: ^10 || ^12 || >= 14}
2369 | peerDependencies:
2370 | postcss: ^8.1.0
2371 | dependencies:
2372 | postcss: 8.4.31
2373 | dev: true
2374 |
2375 | /ignore@5.2.4:
2376 | resolution: {integrity: sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==}
2377 | engines: {node: '>= 4'}
2378 | dev: true
2379 |
2380 | /import-fresh@3.3.0:
2381 | resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==}
2382 | engines: {node: '>=6'}
2383 | dependencies:
2384 | parent-module: 1.0.1
2385 | resolve-from: 4.0.0
2386 | dev: true
2387 |
2388 | /imurmurhash@0.1.4:
2389 | resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==}
2390 | engines: {node: '>=0.8.19'}
2391 | dev: true
2392 |
2393 | /indent-string@4.0.0:
2394 | resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==}
2395 | engines: {node: '>=8'}
2396 | dev: true
2397 |
2398 | /indent-string@5.0.0:
2399 | resolution: {integrity: sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==}
2400 | engines: {node: '>=12'}
2401 | dev: true
2402 |
2403 | /inflight@1.0.6:
2404 | resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==}
2405 | dependencies:
2406 | once: 1.4.0
2407 | wrappy: 1.0.2
2408 | dev: true
2409 |
2410 | /inherits@2.0.4:
2411 | resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==}
2412 | dev: true
2413 |
2414 | /internal-slot@1.0.6:
2415 | resolution: {integrity: sha512-Xj6dv+PsbtwyPpEflsejS+oIZxmMlV44zAhG479uYu89MsjcYOhCFnNyKrkJrihbsiasQyY0afoCl/9BLR65bg==}
2416 | engines: {node: '>= 0.4'}
2417 | dependencies:
2418 | get-intrinsic: 1.2.2
2419 | hasown: 2.0.0
2420 | side-channel: 1.0.4
2421 | dev: true
2422 |
2423 | /is-alphabetical@1.0.4:
2424 | resolution: {integrity: sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg==}
2425 | dev: true
2426 |
2427 | /is-alphanumerical@1.0.4:
2428 | resolution: {integrity: sha512-UzoZUr+XfVz3t3v4KyGEniVL9BDRoQtY7tOyrRybkVNjDFWyo1yhXNGrrBTQxp3ib9BLAWs7k2YKBQsFRkZG9A==}
2429 | dependencies:
2430 | is-alphabetical: 1.0.4
2431 | is-decimal: 1.0.4
2432 | dev: true
2433 |
2434 | /is-array-buffer@3.0.2:
2435 | resolution: {integrity: sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==}
2436 | dependencies:
2437 | call-bind: 1.0.5
2438 | get-intrinsic: 1.2.2
2439 | is-typed-array: 1.1.12
2440 | dev: true
2441 |
2442 | /is-arrayish@0.2.1:
2443 | resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==}
2444 | dev: true
2445 |
2446 | /is-arrayish@0.3.2:
2447 | resolution: {integrity: sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==}
2448 | dev: false
2449 |
2450 | /is-bigint@1.0.4:
2451 | resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==}
2452 | dependencies:
2453 | has-bigints: 1.0.2
2454 | dev: true
2455 |
2456 | /is-binary-path@2.1.0:
2457 | resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==}
2458 | engines: {node: '>=8'}
2459 | dependencies:
2460 | binary-extensions: 2.2.0
2461 | dev: true
2462 |
2463 | /is-boolean-object@1.1.2:
2464 | resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==}
2465 | engines: {node: '>= 0.4'}
2466 | dependencies:
2467 | call-bind: 1.0.5
2468 | has-tostringtag: 1.0.0
2469 | dev: true
2470 |
2471 | /is-builtin-module@3.2.1:
2472 | resolution: {integrity: sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A==}
2473 | engines: {node: '>=6'}
2474 | dependencies:
2475 | builtin-modules: 3.3.0
2476 | dev: true
2477 |
2478 | /is-callable@1.2.7:
2479 | resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==}
2480 | engines: {node: '>= 0.4'}
2481 | dev: true
2482 |
2483 | /is-core-module@2.13.1:
2484 | resolution: {integrity: sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==}
2485 | dependencies:
2486 | hasown: 2.0.0
2487 | dev: true
2488 |
2489 | /is-date-object@1.0.5:
2490 | resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==}
2491 | engines: {node: '>= 0.4'}
2492 | dependencies:
2493 | has-tostringtag: 1.0.0
2494 | dev: true
2495 |
2496 | /is-decimal@1.0.4:
2497 | resolution: {integrity: sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw==}
2498 | dev: true
2499 |
2500 | /is-extglob@2.1.1:
2501 | resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==}
2502 | engines: {node: '>=0.10.0'}
2503 | dev: true
2504 |
2505 | /is-fullwidth-code-point@3.0.0:
2506 | resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==}
2507 | engines: {node: '>=8'}
2508 | dev: true
2509 |
2510 | /is-glob@4.0.3:
2511 | resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==}
2512 | engines: {node: '>=0.10.0'}
2513 | dependencies:
2514 | is-extglob: 2.1.1
2515 | dev: true
2516 |
2517 | /is-hexadecimal@1.0.4:
2518 | resolution: {integrity: sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw==}
2519 | dev: true
2520 |
2521 | /is-negative-zero@2.0.2:
2522 | resolution: {integrity: sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==}
2523 | engines: {node: '>= 0.4'}
2524 | dev: true
2525 |
2526 | /is-number-object@1.0.7:
2527 | resolution: {integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==}
2528 | engines: {node: '>= 0.4'}
2529 | dependencies:
2530 | has-tostringtag: 1.0.0
2531 | dev: true
2532 |
2533 | /is-number@7.0.0:
2534 | resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==}
2535 | engines: {node: '>=0.12.0'}
2536 | dev: true
2537 |
2538 | /is-path-inside@3.0.3:
2539 | resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==}
2540 | engines: {node: '>=8'}
2541 | dev: true
2542 |
2543 | /is-regex@1.1.4:
2544 | resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==}
2545 | engines: {node: '>= 0.4'}
2546 | dependencies:
2547 | call-bind: 1.0.5
2548 | has-tostringtag: 1.0.0
2549 | dev: true
2550 |
2551 | /is-shared-array-buffer@1.0.2:
2552 | resolution: {integrity: sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==}
2553 | dependencies:
2554 | call-bind: 1.0.5
2555 | dev: true
2556 |
2557 | /is-stream@2.0.1:
2558 | resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==}
2559 | engines: {node: '>=8'}
2560 | dev: true
2561 |
2562 | /is-stream@3.0.0:
2563 | resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==}
2564 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
2565 | dev: true
2566 |
2567 | /is-string@1.0.7:
2568 | resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==}
2569 | engines: {node: '>= 0.4'}
2570 | dependencies:
2571 | has-tostringtag: 1.0.0
2572 | dev: true
2573 |
2574 | /is-symbol@1.0.4:
2575 | resolution: {integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==}
2576 | engines: {node: '>= 0.4'}
2577 | dependencies:
2578 | has-symbols: 1.0.3
2579 | dev: true
2580 |
2581 | /is-there@4.5.1:
2582 | resolution: {integrity: sha512-vIZ7HTXAoRoIwYSsTnxb0sg9L6rth+JOulNcavsbskQkCIWoSM2cjFOWZs4wGziGZER+Xgs/HXiCQZgiL8ppxQ==}
2583 | dev: true
2584 |
2585 | /is-typed-array@1.1.12:
2586 | resolution: {integrity: sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==}
2587 | engines: {node: '>= 0.4'}
2588 | dependencies:
2589 | which-typed-array: 1.1.13
2590 | dev: true
2591 |
2592 | /is-weakref@1.0.2:
2593 | resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==}
2594 | dependencies:
2595 | call-bind: 1.0.5
2596 | dev: true
2597 |
2598 | /isarray@2.0.5:
2599 | resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==}
2600 | dev: true
2601 |
2602 | /isexe@2.0.0:
2603 | resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==}
2604 | dev: true
2605 |
2606 | /jackspeak@2.3.6:
2607 | resolution: {integrity: sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==}
2608 | engines: {node: '>=14'}
2609 | dependencies:
2610 | '@isaacs/cliui': 8.0.2
2611 | optionalDependencies:
2612 | '@pkgjs/parseargs': 0.11.0
2613 | dev: true
2614 |
2615 | /js-tokens@4.0.0:
2616 | resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==}
2617 | dev: true
2618 |
2619 | /js-yaml@4.1.0:
2620 | resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==}
2621 | hasBin: true
2622 | dependencies:
2623 | argparse: 2.0.1
2624 | dev: true
2625 |
2626 | /jsdoc-type-pratt-parser@4.0.0:
2627 | resolution: {integrity: sha512-YtOli5Cmzy3q4dP26GraSOeAhqecewG04hoO8DY56CH4KJ9Fvv5qKWUCCo3HZob7esJQHCv6/+bnTy72xZZaVQ==}
2628 | engines: {node: '>=12.0.0'}
2629 | dev: true
2630 |
2631 | /jsesc@0.5.0:
2632 | resolution: {integrity: sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==}
2633 | hasBin: true
2634 | dev: true
2635 |
2636 | /jsesc@3.0.2:
2637 | resolution: {integrity: sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==}
2638 | engines: {node: '>=6'}
2639 | hasBin: true
2640 | dev: true
2641 |
2642 | /json-buffer@3.0.1:
2643 | resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==}
2644 | dev: true
2645 |
2646 | /json-parse-even-better-errors@2.3.1:
2647 | resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==}
2648 | dev: true
2649 |
2650 | /json-schema-traverse@0.4.1:
2651 | resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==}
2652 | dev: true
2653 |
2654 | /json-stable-stringify-without-jsonify@1.0.1:
2655 | resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==}
2656 | dev: true
2657 |
2658 | /jsonc-eslint-parser@2.4.0:
2659 | resolution: {integrity: sha512-WYDyuc/uFcGp6YtM2H0uKmUwieOuzeE/5YocFJLnLfclZ4inf3mRn8ZVy1s7Hxji7Jxm6Ss8gqpexD/GlKoGgg==}
2660 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
2661 | dependencies:
2662 | acorn: 8.11.2
2663 | eslint-visitor-keys: 3.4.3
2664 | espree: 9.6.1
2665 | semver: 7.5.4
2666 | dev: true
2667 |
2668 | /jsonc-parser@3.2.0:
2669 | resolution: {integrity: sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==}
2670 | dev: true
2671 |
2672 | /jsx-ast-utils@3.3.5:
2673 | resolution: {integrity: sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==}
2674 | engines: {node: '>=4.0'}
2675 | dependencies:
2676 | array-includes: 3.1.7
2677 | array.prototype.flat: 1.3.2
2678 | object.assign: 4.1.4
2679 | object.values: 1.1.7
2680 | dev: true
2681 |
2682 | /keyv@4.5.4:
2683 | resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==}
2684 | dependencies:
2685 | json-buffer: 3.0.1
2686 | dev: true
2687 |
2688 | /kleur@4.1.5:
2689 | resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==}
2690 | engines: {node: '>=6'}
2691 | dev: true
2692 |
2693 | /levn@0.4.1:
2694 | resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==}
2695 | engines: {node: '>= 0.8.0'}
2696 | dependencies:
2697 | prelude-ls: 1.2.1
2698 | type-check: 0.4.0
2699 | dev: true
2700 |
2701 | /lilconfig@2.1.0:
2702 | resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==}
2703 | engines: {node: '>=10'}
2704 | dev: true
2705 |
2706 | /lines-and-columns@1.2.4:
2707 | resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==}
2708 | dev: true
2709 |
2710 | /loader-utils@3.2.1:
2711 | resolution: {integrity: sha512-ZvFw1KWS3GVyYBYb7qkmRM/WwL2TQQBxgCK62rlvm4WpVQ23Nb4tYjApUlfjrEGvOs7KHEsmyUn75OHZrJMWPw==}
2712 | engines: {node: '>= 12.13.0'}
2713 | dev: true
2714 |
2715 | /local-pkg@0.5.0:
2716 | resolution: {integrity: sha512-ok6z3qlYyCDS4ZEU27HaU6x/xZa9Whf8jD4ptH5UZTQYZVYeb9bnZ3ojVhiJNLiXK1Hfc0GNbLXcmZ5plLDDBg==}
2717 | engines: {node: '>=14'}
2718 | dependencies:
2719 | mlly: 1.4.2
2720 | pkg-types: 1.0.3
2721 | dev: true
2722 |
2723 | /locate-path@5.0.0:
2724 | resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==}
2725 | engines: {node: '>=8'}
2726 | dependencies:
2727 | p-locate: 4.1.0
2728 | dev: true
2729 |
2730 | /locate-path@6.0.0:
2731 | resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==}
2732 | engines: {node: '>=10'}
2733 | dependencies:
2734 | p-locate: 5.0.0
2735 | dev: true
2736 |
2737 | /locate-path@7.2.0:
2738 | resolution: {integrity: sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==}
2739 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
2740 | dependencies:
2741 | p-locate: 6.0.0
2742 | dev: true
2743 |
2744 | /lodash.camelcase@4.3.0:
2745 | resolution: {integrity: sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==}
2746 | dev: true
2747 |
2748 | /lodash.memoize@4.1.2:
2749 | resolution: {integrity: sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==}
2750 | dev: true
2751 |
2752 | /lodash.merge@4.6.2:
2753 | resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==}
2754 | dev: true
2755 |
2756 | /lodash.uniq@4.5.0:
2757 | resolution: {integrity: sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==}
2758 | dev: true
2759 |
2760 | /lodash@4.17.21:
2761 | resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==}
2762 | dev: true
2763 |
2764 | /loupe@2.3.7:
2765 | resolution: {integrity: sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==}
2766 | dependencies:
2767 | get-func-name: 2.0.2
2768 | dev: true
2769 |
2770 | /lru-cache@10.0.1:
2771 | resolution: {integrity: sha512-IJ4uwUTi2qCccrioU6g9g/5rvvVl13bsdczUUcqbciD9iLr095yj8DQKdObriEvuNSx325N1rV1O0sJFszx75g==}
2772 | engines: {node: 14 || >=16.14}
2773 | dev: true
2774 |
2775 | /lru-cache@6.0.0:
2776 | resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==}
2777 | engines: {node: '>=10'}
2778 | dependencies:
2779 | yallist: 4.0.0
2780 | dev: true
2781 |
2782 | /magic-string@0.30.5:
2783 | resolution: {integrity: sha512-7xlpfBaQaP/T6Vh8MO/EqXSW5En6INHEvEXQiuff7Gku0PWjU3uf6w/j9o7O+SpB5fOAkrI5HeoNgwjEO0pFsA==}
2784 | engines: {node: '>=12'}
2785 | dependencies:
2786 | '@jridgewell/sourcemap-codec': 1.4.15
2787 | dev: true
2788 |
2789 | /mdast-util-from-markdown@0.8.5:
2790 | resolution: {integrity: sha512-2hkTXtYYnr+NubD/g6KGBS/0mFmBcifAsI0yIWRiRo0PjVs6SSOSOdtzbp6kSGnShDN6G5aWZpKQ2lWRy27mWQ==}
2791 | dependencies:
2792 | '@types/mdast': 3.0.14
2793 | mdast-util-to-string: 2.0.0
2794 | micromark: 2.11.4
2795 | parse-entities: 2.0.0
2796 | unist-util-stringify-position: 2.0.3
2797 | transitivePeerDependencies:
2798 | - supports-color
2799 | dev: true
2800 |
2801 | /mdast-util-to-string@2.0.0:
2802 | resolution: {integrity: sha512-AW4DRS3QbBayY/jJmD8437V1Gombjf8RSOUCMFBuo5iHi58AGEgVCKQ+ezHkZZDpAQS75hcBMpLqjpJTjtUL7w==}
2803 | dev: true
2804 |
2805 | /mdn-data@2.0.28:
2806 | resolution: {integrity: sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==}
2807 | dev: true
2808 |
2809 | /mdn-data@2.0.30:
2810 | resolution: {integrity: sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==}
2811 | dev: true
2812 |
2813 | /merge-stream@2.0.0:
2814 | resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==}
2815 | dev: true
2816 |
2817 | /merge2@1.4.1:
2818 | resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==}
2819 | engines: {node: '>= 8'}
2820 | dev: true
2821 |
2822 | /micromark@2.11.4:
2823 | resolution: {integrity: sha512-+WoovN/ppKolQOFIAajxi7Lu9kInbPxFuTBVEavFcL8eAfVstoc5MocPmqBeAdBOJV00uaVjegzH4+MA0DN/uA==}
2824 | dependencies:
2825 | debug: 4.3.4
2826 | parse-entities: 2.0.0
2827 | transitivePeerDependencies:
2828 | - supports-color
2829 | dev: true
2830 |
2831 | /micromatch@4.0.5:
2832 | resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==}
2833 | engines: {node: '>=8.6'}
2834 | dependencies:
2835 | braces: 3.0.2
2836 | picomatch: 2.3.1
2837 | dev: true
2838 |
2839 | /mimic-fn@4.0.0:
2840 | resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==}
2841 | engines: {node: '>=12'}
2842 | dev: true
2843 |
2844 | /min-indent@1.0.1:
2845 | resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==}
2846 | engines: {node: '>=4'}
2847 | dev: true
2848 |
2849 | /minimatch@3.1.2:
2850 | resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==}
2851 | dependencies:
2852 | brace-expansion: 1.1.11
2853 | dev: true
2854 |
2855 | /minimatch@9.0.3:
2856 | resolution: {integrity: sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==}
2857 | engines: {node: '>=16 || 14 >=14.17'}
2858 | dependencies:
2859 | brace-expansion: 2.0.1
2860 | dev: true
2861 |
2862 | /minipass@7.0.4:
2863 | resolution: {integrity: sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==}
2864 | engines: {node: '>=16 || 14 >=14.17'}
2865 | dev: true
2866 |
2867 | /mkdirp@3.0.1:
2868 | resolution: {integrity: sha512-+NsyUUAZDmo6YVHzL/stxSu3t9YS1iljliy3BSDrXJ/dkn1KYdmtZODGGjLcc9XLgVVpH4KshHB8XmZgMhaBXg==}
2869 | engines: {node: '>=10'}
2870 | hasBin: true
2871 | dev: true
2872 |
2873 | /mlly@1.4.2:
2874 | resolution: {integrity: sha512-i/Ykufi2t1EZ6NaPLdfnZk2AX8cs0d+mTzVKuPfqPKPatxLApaBoxJQ9x1/uckXtrS/U5oisPMDkNs0yQTaBRg==}
2875 | dependencies:
2876 | acorn: 8.11.2
2877 | pathe: 1.1.1
2878 | pkg-types: 1.0.3
2879 | ufo: 1.3.1
2880 | dev: true
2881 |
2882 | /mri@1.2.0:
2883 | resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==}
2884 | engines: {node: '>=4'}
2885 | dev: true
2886 |
2887 | /ms@2.1.2:
2888 | resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==}
2889 | dev: true
2890 |
2891 | /nanoid@3.3.6:
2892 | resolution: {integrity: sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==}
2893 | engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
2894 | hasBin: true
2895 | dev: true
2896 |
2897 | /nanoid@3.3.7:
2898 | resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==}
2899 | engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
2900 | hasBin: true
2901 | dev: true
2902 |
2903 | /natural-compare-lite@1.4.0:
2904 | resolution: {integrity: sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==}
2905 |
2906 | /natural-compare@1.4.0:
2907 | resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==}
2908 | dev: true
2909 |
2910 | /node-releases@2.0.13:
2911 | resolution: {integrity: sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==}
2912 | dev: true
2913 |
2914 | /normalize-package-data@2.5.0:
2915 | resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==}
2916 | dependencies:
2917 | hosted-git-info: 2.8.9
2918 | resolve: 1.22.8
2919 | semver: 5.7.2
2920 | validate-npm-package-license: 3.0.4
2921 | dev: true
2922 |
2923 | /normalize-path@3.0.0:
2924 | resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==}
2925 | engines: {node: '>=0.10.0'}
2926 | dev: true
2927 |
2928 | /npm-run-path@5.1.0:
2929 | resolution: {integrity: sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==}
2930 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
2931 | dependencies:
2932 | path-key: 4.0.0
2933 | dev: true
2934 |
2935 | /nth-check@2.1.1:
2936 | resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==}
2937 | dependencies:
2938 | boolbase: 1.0.0
2939 | dev: true
2940 |
2941 | /object-inspect@1.13.1:
2942 | resolution: {integrity: sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==}
2943 | dev: true
2944 |
2945 | /object-keys@1.1.1:
2946 | resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==}
2947 | engines: {node: '>= 0.4'}
2948 | dev: true
2949 |
2950 | /object.assign@4.1.4:
2951 | resolution: {integrity: sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==}
2952 | engines: {node: '>= 0.4'}
2953 | dependencies:
2954 | call-bind: 1.0.5
2955 | define-properties: 1.2.1
2956 | has-symbols: 1.0.3
2957 | object-keys: 1.1.1
2958 | dev: true
2959 |
2960 | /object.values@1.1.7:
2961 | resolution: {integrity: sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng==}
2962 | engines: {node: '>= 0.4'}
2963 | dependencies:
2964 | call-bind: 1.0.5
2965 | define-properties: 1.2.1
2966 | es-abstract: 1.22.3
2967 | dev: true
2968 |
2969 | /once@1.4.0:
2970 | resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==}
2971 | dependencies:
2972 | wrappy: 1.0.2
2973 | dev: true
2974 |
2975 | /onetime@6.0.0:
2976 | resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==}
2977 | engines: {node: '>=12'}
2978 | dependencies:
2979 | mimic-fn: 4.0.0
2980 | dev: true
2981 |
2982 | /optionator@0.9.3:
2983 | resolution: {integrity: sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==}
2984 | engines: {node: '>= 0.8.0'}
2985 | dependencies:
2986 | '@aashutoshrathi/word-wrap': 1.2.6
2987 | deep-is: 0.1.4
2988 | fast-levenshtein: 2.0.6
2989 | levn: 0.4.1
2990 | prelude-ls: 1.2.1
2991 | type-check: 0.4.0
2992 | dev: true
2993 |
2994 | /p-limit@2.3.0:
2995 | resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==}
2996 | engines: {node: '>=6'}
2997 | dependencies:
2998 | p-try: 2.2.0
2999 | dev: true
3000 |
3001 | /p-limit@3.1.0:
3002 | resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==}
3003 | engines: {node: '>=10'}
3004 | dependencies:
3005 | yocto-queue: 0.1.0
3006 | dev: true
3007 |
3008 | /p-limit@4.0.0:
3009 | resolution: {integrity: sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==}
3010 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
3011 | dependencies:
3012 | yocto-queue: 1.0.0
3013 | dev: true
3014 |
3015 | /p-limit@5.0.0:
3016 | resolution: {integrity: sha512-/Eaoq+QyLSiXQ4lyYV23f14mZRQcXnxfHrN0vCai+ak9G0pp9iEQukIIZq5NccEvwRB8PUnZT0KsOoDCINS1qQ==}
3017 | engines: {node: '>=18'}
3018 | dependencies:
3019 | yocto-queue: 1.0.0
3020 | dev: true
3021 |
3022 | /p-locate@4.1.0:
3023 | resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==}
3024 | engines: {node: '>=8'}
3025 | dependencies:
3026 | p-limit: 2.3.0
3027 | dev: true
3028 |
3029 | /p-locate@5.0.0:
3030 | resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==}
3031 | engines: {node: '>=10'}
3032 | dependencies:
3033 | p-limit: 3.1.0
3034 | dev: true
3035 |
3036 | /p-locate@6.0.0:
3037 | resolution: {integrity: sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==}
3038 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
3039 | dependencies:
3040 | p-limit: 4.0.0
3041 | dev: true
3042 |
3043 | /p-try@2.2.0:
3044 | resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==}
3045 | engines: {node: '>=6'}
3046 | dev: true
3047 |
3048 | /parent-module@1.0.1:
3049 | resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==}
3050 | engines: {node: '>=6'}
3051 | dependencies:
3052 | callsites: 3.1.0
3053 | dev: true
3054 |
3055 | /parse-entities@2.0.0:
3056 | resolution: {integrity: sha512-kkywGpCcRYhqQIchaWqZ875wzpS/bMKhz5HnN3p7wveJTkTtyAB/AlnS0f8DFSqYW1T82t6yEAkEcB+A1I3MbQ==}
3057 | dependencies:
3058 | character-entities: 1.2.4
3059 | character-entities-legacy: 1.1.4
3060 | character-reference-invalid: 1.1.4
3061 | is-alphanumerical: 1.0.4
3062 | is-decimal: 1.0.4
3063 | is-hexadecimal: 1.0.4
3064 | dev: true
3065 |
3066 | /parse-gitignore@2.0.0:
3067 | resolution: {integrity: sha512-RmVuCHWsfu0QPNW+mraxh/xjQVw/lhUCUru8Zni3Ctq3AoMhpDTq0OVdKS6iesd6Kqb7viCV3isAL43dciOSog==}
3068 | engines: {node: '>=14'}
3069 | dev: true
3070 |
3071 | /parse-json@5.2.0:
3072 | resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==}
3073 | engines: {node: '>=8'}
3074 | dependencies:
3075 | '@babel/code-frame': 7.22.13
3076 | error-ex: 1.3.2
3077 | json-parse-even-better-errors: 2.3.1
3078 | lines-and-columns: 1.2.4
3079 | dev: true
3080 |
3081 | /path-exists@4.0.0:
3082 | resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==}
3083 | engines: {node: '>=8'}
3084 | dev: true
3085 |
3086 | /path-exists@5.0.0:
3087 | resolution: {integrity: sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==}
3088 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
3089 | dev: true
3090 |
3091 | /path-is-absolute@1.0.1:
3092 | resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==}
3093 | engines: {node: '>=0.10.0'}
3094 | dev: true
3095 |
3096 | /path-key@3.1.1:
3097 | resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==}
3098 | engines: {node: '>=8'}
3099 | dev: true
3100 |
3101 | /path-key@4.0.0:
3102 | resolution: {integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==}
3103 | engines: {node: '>=12'}
3104 | dev: true
3105 |
3106 | /path-parse@1.0.7:
3107 | resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==}
3108 | dev: true
3109 |
3110 | /path-scurry@1.10.1:
3111 | resolution: {integrity: sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==}
3112 | engines: {node: '>=16 || 14 >=14.17'}
3113 | dependencies:
3114 | lru-cache: 10.0.1
3115 | minipass: 7.0.4
3116 | dev: true
3117 |
3118 | /path-type@4.0.0:
3119 | resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==}
3120 | engines: {node: '>=8'}
3121 | dev: true
3122 |
3123 | /pathe@1.1.1:
3124 | resolution: {integrity: sha512-d+RQGp0MAYTIaDBIMmOfMwz3E+LOZnxx1HZd5R18mmCZY0QBlK0LDZfPc8FW8Ed2DlvsuE6PRjroDY+wg4+j/Q==}
3125 | dev: true
3126 |
3127 | /pathval@1.1.1:
3128 | resolution: {integrity: sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==}
3129 | dev: true
3130 |
3131 | /picocolors@1.0.0:
3132 | resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==}
3133 | dev: true
3134 |
3135 | /picomatch@2.3.1:
3136 | resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==}
3137 | engines: {node: '>=8.6'}
3138 | dev: true
3139 |
3140 | /pkg-types@1.0.3:
3141 | resolution: {integrity: sha512-nN7pYi0AQqJnoLPC9eHFQ8AcyaixBUOwvqc5TDnIKCMEE6I0y8P7OKA7fPexsXGCGxQDl/cmrLAp26LhcwxZ4A==}
3142 | dependencies:
3143 | jsonc-parser: 3.2.0
3144 | mlly: 1.4.2
3145 | pathe: 1.1.1
3146 | dev: true
3147 |
3148 | /pluralize@8.0.0:
3149 | resolution: {integrity: sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==}
3150 | engines: {node: '>=4'}
3151 | dev: true
3152 |
3153 | /postcss-calc@9.0.1(postcss@8.4.31):
3154 | resolution: {integrity: sha512-TipgjGyzP5QzEhsOZUaIkeO5mKeMFpebWzRogWG/ysonUlnHcq5aJe0jOjpfzUU8PeSaBQnrE8ehR0QA5vs8PQ==}
3155 | engines: {node: ^14 || ^16 || >=18.0}
3156 | peerDependencies:
3157 | postcss: ^8.2.2
3158 | dependencies:
3159 | postcss: 8.4.31
3160 | postcss-selector-parser: 6.0.13
3161 | postcss-value-parser: 4.2.0
3162 | dev: true
3163 |
3164 | /postcss-colormin@6.0.0(postcss@8.4.31):
3165 | resolution: {integrity: sha512-EuO+bAUmutWoZYgHn2T1dG1pPqHU6L4TjzPlu4t1wZGXQ/fxV16xg2EJmYi0z+6r+MGV1yvpx1BHkUaRrPa2bw==}
3166 | engines: {node: ^14 || ^16 || >=18.0}
3167 | peerDependencies:
3168 | postcss: ^8.2.15
3169 | dependencies:
3170 | browserslist: 4.22.1
3171 | caniuse-api: 3.0.0
3172 | colord: 2.9.3
3173 | postcss: 8.4.31
3174 | postcss-value-parser: 4.2.0
3175 | dev: true
3176 |
3177 | /postcss-convert-values@6.0.0(postcss@8.4.31):
3178 | resolution: {integrity: sha512-U5D8QhVwqT++ecmy8rnTb+RL9n/B806UVaS3m60lqle4YDFcpbS3ae5bTQIh3wOGUSDHSEtMYLs/38dNG7EYFw==}
3179 | engines: {node: ^14 || ^16 || >=18.0}
3180 | peerDependencies:
3181 | postcss: ^8.2.15
3182 | dependencies:
3183 | browserslist: 4.22.1
3184 | postcss: 8.4.31
3185 | postcss-value-parser: 4.2.0
3186 | dev: true
3187 |
3188 | /postcss-discard-comments@6.0.0(postcss@8.4.31):
3189 | resolution: {integrity: sha512-p2skSGqzPMZkEQvJsgnkBhCn8gI7NzRH2683EEjrIkoMiwRELx68yoUJ3q3DGSGuQ8Ug9Gsn+OuDr46yfO+eFw==}
3190 | engines: {node: ^14 || ^16 || >=18.0}
3191 | peerDependencies:
3192 | postcss: ^8.2.15
3193 | dependencies:
3194 | postcss: 8.4.31
3195 | dev: true
3196 |
3197 | /postcss-discard-duplicates@6.0.0(postcss@8.4.31):
3198 | resolution: {integrity: sha512-bU1SXIizMLtDW4oSsi5C/xHKbhLlhek/0/yCnoMQany9k3nPBq+Ctsv/9oMmyqbR96HYHxZcHyK2HR5P/mqoGA==}
3199 | engines: {node: ^14 || ^16 || >=18.0}
3200 | peerDependencies:
3201 | postcss: ^8.2.15
3202 | dependencies:
3203 | postcss: 8.4.31
3204 | dev: true
3205 |
3206 | /postcss-discard-empty@6.0.0(postcss@8.4.31):
3207 | resolution: {integrity: sha512-b+h1S1VT6dNhpcg+LpyiUrdnEZfICF0my7HAKgJixJLW7BnNmpRH34+uw/etf5AhOlIhIAuXApSzzDzMI9K/gQ==}
3208 | engines: {node: ^14 || ^16 || >=18.0}
3209 | peerDependencies:
3210 | postcss: ^8.2.15
3211 | dependencies:
3212 | postcss: 8.4.31
3213 | dev: true
3214 |
3215 | /postcss-discard-overridden@6.0.0(postcss@8.4.31):
3216 | resolution: {integrity: sha512-4VELwssYXDFigPYAZ8vL4yX4mUepF/oCBeeIT4OXsJPYOtvJumyz9WflmJWTfDwCUcpDR+z0zvCWBXgTx35SVw==}
3217 | engines: {node: ^14 || ^16 || >=18.0}
3218 | peerDependencies:
3219 | postcss: ^8.2.15
3220 | dependencies:
3221 | postcss: 8.4.31
3222 | dev: true
3223 |
3224 | /postcss-merge-longhand@6.0.0(postcss@8.4.31):
3225 | resolution: {integrity: sha512-4VSfd1lvGkLTLYcxFuISDtWUfFS4zXe0FpF149AyziftPFQIWxjvFSKhA4MIxMe4XM3yTDgQMbSNgzIVxChbIg==}
3226 | engines: {node: ^14 || ^16 || >=18.0}
3227 | peerDependencies:
3228 | postcss: ^8.2.15
3229 | dependencies:
3230 | postcss: 8.4.31
3231 | postcss-value-parser: 4.2.0
3232 | stylehacks: 6.0.0(postcss@8.4.31)
3233 | dev: true
3234 |
3235 | /postcss-merge-rules@6.0.1(postcss@8.4.31):
3236 | resolution: {integrity: sha512-a4tlmJIQo9SCjcfiCcCMg/ZCEe0XTkl/xK0XHBs955GWg9xDX3NwP9pwZ78QUOWB8/0XCjZeJn98Dae0zg6AAw==}
3237 | engines: {node: ^14 || ^16 || >=18.0}
3238 | peerDependencies:
3239 | postcss: ^8.2.15
3240 | dependencies:
3241 | browserslist: 4.22.1
3242 | caniuse-api: 3.0.0
3243 | cssnano-utils: 4.0.0(postcss@8.4.31)
3244 | postcss: 8.4.31
3245 | postcss-selector-parser: 6.0.13
3246 | dev: true
3247 |
3248 | /postcss-minify-font-values@6.0.0(postcss@8.4.31):
3249 | resolution: {integrity: sha512-zNRAVtyh5E8ndZEYXA4WS8ZYsAp798HiIQ1V2UF/C/munLp2r1UGHwf1+6JFu7hdEhJFN+W1WJQKBrtjhFgEnA==}
3250 | engines: {node: ^14 || ^16 || >=18.0}
3251 | peerDependencies:
3252 | postcss: ^8.2.15
3253 | dependencies:
3254 | postcss: 8.4.31
3255 | postcss-value-parser: 4.2.0
3256 | dev: true
3257 |
3258 | /postcss-minify-gradients@6.0.0(postcss@8.4.31):
3259 | resolution: {integrity: sha512-wO0F6YfVAR+K1xVxF53ueZJza3L+R3E6cp0VwuXJQejnNUH0DjcAFe3JEBeTY1dLwGa0NlDWueCA1VlEfiKgAA==}
3260 | engines: {node: ^14 || ^16 || >=18.0}
3261 | peerDependencies:
3262 | postcss: ^8.2.15
3263 | dependencies:
3264 | colord: 2.9.3
3265 | cssnano-utils: 4.0.0(postcss@8.4.31)
3266 | postcss: 8.4.31
3267 | postcss-value-parser: 4.2.0
3268 | dev: true
3269 |
3270 | /postcss-minify-params@6.0.0(postcss@8.4.31):
3271 | resolution: {integrity: sha512-Fz/wMQDveiS0n5JPcvsMeyNXOIMrwF88n7196puSuQSWSa+/Ofc1gDOSY2xi8+A4PqB5dlYCKk/WfqKqsI+ReQ==}
3272 | engines: {node: ^14 || ^16 || >=18.0}
3273 | peerDependencies:
3274 | postcss: ^8.2.15
3275 | dependencies:
3276 | browserslist: 4.22.1
3277 | cssnano-utils: 4.0.0(postcss@8.4.31)
3278 | postcss: 8.4.31
3279 | postcss-value-parser: 4.2.0
3280 | dev: true
3281 |
3282 | /postcss-minify-selectors@6.0.0(postcss@8.4.31):
3283 | resolution: {integrity: sha512-ec/q9JNCOC2CRDNnypipGfOhbYPuUkewGwLnbv6omue/PSASbHSU7s6uSQ0tcFRVv731oMIx8k0SP4ZX6be/0g==}
3284 | engines: {node: ^14 || ^16 || >=18.0}
3285 | peerDependencies:
3286 | postcss: ^8.2.15
3287 | dependencies:
3288 | postcss: 8.4.31
3289 | postcss-selector-parser: 6.0.13
3290 | dev: true
3291 |
3292 | /postcss-modules-extract-imports@3.0.0(postcss@8.4.31):
3293 | resolution: {integrity: sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==}
3294 | engines: {node: ^10 || ^12 || >= 14}
3295 | peerDependencies:
3296 | postcss: ^8.1.0
3297 | dependencies:
3298 | postcss: 8.4.31
3299 | dev: true
3300 |
3301 | /postcss-modules-local-by-default@4.0.3(postcss@8.4.31):
3302 | resolution: {integrity: sha512-2/u2zraspoACtrbFRnTijMiQtb4GW4BvatjaG/bCjYQo8kLTdevCUlwuBHx2sCnSyrI3x3qj4ZK1j5LQBgzmwA==}
3303 | engines: {node: ^10 || ^12 || >= 14}
3304 | peerDependencies:
3305 | postcss: ^8.1.0
3306 | dependencies:
3307 | icss-utils: 5.1.0(postcss@8.4.31)
3308 | postcss: 8.4.31
3309 | postcss-selector-parser: 6.0.13
3310 | postcss-value-parser: 4.2.0
3311 | dev: true
3312 |
3313 | /postcss-modules-scope@3.0.0(postcss@8.4.31):
3314 | resolution: {integrity: sha512-hncihwFA2yPath8oZ15PZqvWGkWf+XUfQgUGamS4LqoP1anQLOsOJw0vr7J7IwLpoY9fatA2qiGUGmuZL0Iqlg==}
3315 | engines: {node: ^10 || ^12 || >= 14}
3316 | peerDependencies:
3317 | postcss: ^8.1.0
3318 | dependencies:
3319 | postcss: 8.4.31
3320 | postcss-selector-parser: 6.0.13
3321 | dev: true
3322 |
3323 | /postcss-modules-values@4.0.0(postcss@8.4.31):
3324 | resolution: {integrity: sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==}
3325 | engines: {node: ^10 || ^12 || >= 14}
3326 | peerDependencies:
3327 | postcss: ^8.1.0
3328 | dependencies:
3329 | icss-utils: 5.1.0(postcss@8.4.31)
3330 | postcss: 8.4.31
3331 | dev: true
3332 |
3333 | /postcss-modules@6.0.0(postcss@8.4.31):
3334 | resolution: {integrity: sha512-7DGfnlyi/ju82BRzTIjWS5C4Tafmzl3R79YP/PASiocj+aa6yYphHhhKUOEoXQToId5rgyFgJ88+ccOUydjBXQ==}
3335 | peerDependencies:
3336 | postcss: ^8.0.0
3337 | dependencies:
3338 | generic-names: 4.0.0
3339 | icss-utils: 5.1.0(postcss@8.4.31)
3340 | lodash.camelcase: 4.3.0
3341 | postcss: 8.4.31
3342 | postcss-modules-extract-imports: 3.0.0(postcss@8.4.31)
3343 | postcss-modules-local-by-default: 4.0.3(postcss@8.4.31)
3344 | postcss-modules-scope: 3.0.0(postcss@8.4.31)
3345 | postcss-modules-values: 4.0.0(postcss@8.4.31)
3346 | string-hash: 1.1.3
3347 | dev: true
3348 |
3349 | /postcss-normalize-charset@6.0.0(postcss@8.4.31):
3350 | resolution: {integrity: sha512-cqundwChbu8yO/gSWkuFDmKrCZ2vJzDAocheT2JTd0sFNA4HMGoKMfbk2B+J0OmO0t5GUkiAkSM5yF2rSLUjgQ==}
3351 | engines: {node: ^14 || ^16 || >=18.0}
3352 | peerDependencies:
3353 | postcss: ^8.2.15
3354 | dependencies:
3355 | postcss: 8.4.31
3356 | dev: true
3357 |
3358 | /postcss-normalize-display-values@6.0.0(postcss@8.4.31):
3359 | resolution: {integrity: sha512-Qyt5kMrvy7dJRO3OjF7zkotGfuYALETZE+4lk66sziWSPzlBEt7FrUshV6VLECkI4EN8Z863O6Nci4NXQGNzYw==}
3360 | engines: {node: ^14 || ^16 || >=18.0}
3361 | peerDependencies:
3362 | postcss: ^8.2.15
3363 | dependencies:
3364 | postcss: 8.4.31
3365 | postcss-value-parser: 4.2.0
3366 | dev: true
3367 |
3368 | /postcss-normalize-positions@6.0.0(postcss@8.4.31):
3369 | resolution: {integrity: sha512-mPCzhSV8+30FZyWhxi6UoVRYd3ZBJgTRly4hOkaSifo0H+pjDYcii/aVT4YE6QpOil15a5uiv6ftnY3rm0igPg==}
3370 | engines: {node: ^14 || ^16 || >=18.0}
3371 | peerDependencies:
3372 | postcss: ^8.2.15
3373 | dependencies:
3374 | postcss: 8.4.31
3375 | postcss-value-parser: 4.2.0
3376 | dev: true
3377 |
3378 | /postcss-normalize-repeat-style@6.0.0(postcss@8.4.31):
3379 | resolution: {integrity: sha512-50W5JWEBiOOAez2AKBh4kRFm2uhrT3O1Uwdxz7k24aKtbD83vqmcVG7zoIwo6xI2FZ/HDlbrCopXhLeTpQib1A==}
3380 | engines: {node: ^14 || ^16 || >=18.0}
3381 | peerDependencies:
3382 | postcss: ^8.2.15
3383 | dependencies:
3384 | postcss: 8.4.31
3385 | postcss-value-parser: 4.2.0
3386 | dev: true
3387 |
3388 | /postcss-normalize-string@6.0.0(postcss@8.4.31):
3389 | resolution: {integrity: sha512-KWkIB7TrPOiqb8ZZz6homet2KWKJwIlysF5ICPZrXAylGe2hzX/HSf4NTX2rRPJMAtlRsj/yfkrWGavFuB+c0w==}
3390 | engines: {node: ^14 || ^16 || >=18.0}
3391 | peerDependencies:
3392 | postcss: ^8.2.15
3393 | dependencies:
3394 | postcss: 8.4.31
3395 | postcss-value-parser: 4.2.0
3396 | dev: true
3397 |
3398 | /postcss-normalize-timing-functions@6.0.0(postcss@8.4.31):
3399 | resolution: {integrity: sha512-tpIXWciXBp5CiFs8sem90IWlw76FV4oi6QEWfQwyeREVwUy39VSeSqjAT7X0Qw650yAimYW5gkl2Gd871N5SQg==}
3400 | engines: {node: ^14 || ^16 || >=18.0}
3401 | peerDependencies:
3402 | postcss: ^8.2.15
3403 | dependencies:
3404 | postcss: 8.4.31
3405 | postcss-value-parser: 4.2.0
3406 | dev: true
3407 |
3408 | /postcss-normalize-unicode@6.0.0(postcss@8.4.31):
3409 | resolution: {integrity: sha512-ui5crYkb5ubEUDugDc786L/Me+DXp2dLg3fVJbqyAl0VPkAeALyAijF2zOsnZyaS1HyfPuMH0DwyY18VMFVNkg==}
3410 | engines: {node: ^14 || ^16 || >=18.0}
3411 | peerDependencies:
3412 | postcss: ^8.2.15
3413 | dependencies:
3414 | browserslist: 4.22.1
3415 | postcss: 8.4.31
3416 | postcss-value-parser: 4.2.0
3417 | dev: true
3418 |
3419 | /postcss-normalize-url@6.0.0(postcss@8.4.31):
3420 | resolution: {integrity: sha512-98mvh2QzIPbb02YDIrYvAg4OUzGH7s1ZgHlD3fIdTHLgPLRpv1ZTKJDnSAKr4Rt21ZQFzwhGMXxpXlfrUBKFHw==}
3421 | engines: {node: ^14 || ^16 || >=18.0}
3422 | peerDependencies:
3423 | postcss: ^8.2.15
3424 | dependencies:
3425 | postcss: 8.4.31
3426 | postcss-value-parser: 4.2.0
3427 | dev: true
3428 |
3429 | /postcss-normalize-whitespace@6.0.0(postcss@8.4.31):
3430 | resolution: {integrity: sha512-7cfE1AyLiK0+ZBG6FmLziJzqQCpTQY+8XjMhMAz8WSBSCsCNNUKujgIgjCAmDT3cJ+3zjTXFkoD15ZPsckArVw==}
3431 | engines: {node: ^14 || ^16 || >=18.0}
3432 | peerDependencies:
3433 | postcss: ^8.2.15
3434 | dependencies:
3435 | postcss: 8.4.31
3436 | postcss-value-parser: 4.2.0
3437 | dev: true
3438 |
3439 | /postcss-ordered-values@6.0.0(postcss@8.4.31):
3440 | resolution: {integrity: sha512-K36XzUDpvfG/nWkjs6d1hRBydeIxGpKS2+n+ywlKPzx1nMYDYpoGbcjhj5AwVYJK1qV2/SDoDEnHzlPD6s3nMg==}
3441 | engines: {node: ^14 || ^16 || >=18.0}
3442 | peerDependencies:
3443 | postcss: ^8.2.15
3444 | dependencies:
3445 | cssnano-utils: 4.0.0(postcss@8.4.31)
3446 | postcss: 8.4.31
3447 | postcss-value-parser: 4.2.0
3448 | dev: true
3449 |
3450 | /postcss-reduce-initial@6.0.0(postcss@8.4.31):
3451 | resolution: {integrity: sha512-s2UOnidpVuXu6JiiI5U+fV2jamAw5YNA9Fdi/GRK0zLDLCfXmSGqQtzpUPtfN66RtCbb9fFHoyZdQaxOB3WxVA==}
3452 | engines: {node: ^14 || ^16 || >=18.0}
3453 | peerDependencies:
3454 | postcss: ^8.2.15
3455 | dependencies:
3456 | browserslist: 4.22.1
3457 | caniuse-api: 3.0.0
3458 | postcss: 8.4.31
3459 | dev: true
3460 |
3461 | /postcss-reduce-transforms@6.0.0(postcss@8.4.31):
3462 | resolution: {integrity: sha512-FQ9f6xM1homnuy1wLe9lP1wujzxnwt1EwiigtWwuyf8FsqqXUDUp2Ulxf9A5yjlUOTdCJO6lonYjg1mgqIIi2w==}
3463 | engines: {node: ^14 || ^16 || >=18.0}
3464 | peerDependencies:
3465 | postcss: ^8.2.15
3466 | dependencies:
3467 | postcss: 8.4.31
3468 | postcss-value-parser: 4.2.0
3469 | dev: true
3470 |
3471 | /postcss-selector-parser@6.0.13:
3472 | resolution: {integrity: sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ==}
3473 | engines: {node: '>=4'}
3474 | dependencies:
3475 | cssesc: 3.0.0
3476 | util-deprecate: 1.0.2
3477 | dev: true
3478 |
3479 | /postcss-svgo@6.0.0(postcss@8.4.31):
3480 | resolution: {integrity: sha512-r9zvj/wGAoAIodn84dR/kFqwhINp5YsJkLoujybWG59grR/IHx+uQ2Zo+IcOwM0jskfYX3R0mo+1Kip1VSNcvw==}
3481 | engines: {node: ^14 || ^16 || >= 18}
3482 | peerDependencies:
3483 | postcss: ^8.2.15
3484 | dependencies:
3485 | postcss: 8.4.31
3486 | postcss-value-parser: 4.2.0
3487 | svgo: 3.0.2
3488 | dev: true
3489 |
3490 | /postcss-unique-selectors@6.0.0(postcss@8.4.31):
3491 | resolution: {integrity: sha512-EPQzpZNxOxP7777t73RQpZE5e9TrnCrkvp7AH7a0l89JmZiPnS82y216JowHXwpBCQitfyxrof9TK3rYbi7/Yw==}
3492 | engines: {node: ^14 || ^16 || >=18.0}
3493 | peerDependencies:
3494 | postcss: ^8.2.15
3495 | dependencies:
3496 | postcss: 8.4.31
3497 | postcss-selector-parser: 6.0.13
3498 | dev: true
3499 |
3500 | /postcss-value-parser@4.2.0:
3501 | resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==}
3502 | dev: true
3503 |
3504 | /postcss@8.4.31:
3505 | resolution: {integrity: sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==}
3506 | engines: {node: ^10 || ^12 || >=14}
3507 | dependencies:
3508 | nanoid: 3.3.6
3509 | picocolors: 1.0.0
3510 | source-map-js: 1.0.2
3511 | dev: true
3512 |
3513 | /postcss@8.4.32:
3514 | resolution: {integrity: sha512-D/kj5JNu6oo2EIy+XL/26JEDTlIbB8hw85G8StOE6L74RQAVVP5rej6wxCNqyMbR4RkPfqvezVbPw81Ngd6Kcw==}
3515 | engines: {node: ^10 || ^12 || >=14}
3516 | dependencies:
3517 | nanoid: 3.3.7
3518 | picocolors: 1.0.0
3519 | source-map-js: 1.0.2
3520 | dev: true
3521 |
3522 | /preact@10.18.1:
3523 | resolution: {integrity: sha512-mKUD7RRkQQM6s7Rkmi7IFkoEHjuFqRQUaXamO61E6Nn7vqF/bo7EZCmSyrUnp2UWHw0O7XjZ2eeXis+m7tf4lg==}
3524 | dev: true
3525 |
3526 | /prelude-ls@1.2.1:
3527 | resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==}
3528 | engines: {node: '>= 0.8.0'}
3529 | dev: true
3530 |
3531 | /pretty-format@29.7.0:
3532 | resolution: {integrity: sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==}
3533 | engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
3534 | dependencies:
3535 | '@jest/schemas': 29.6.3
3536 | ansi-styles: 5.2.0
3537 | react-is: 18.2.0
3538 | dev: true
3539 |
3540 | /punycode@2.3.1:
3541 | resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==}
3542 | engines: {node: '>=6'}
3543 | dev: true
3544 |
3545 | /queue-microtask@1.2.3:
3546 | resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==}
3547 | dev: true
3548 |
3549 | /react-is@18.2.0:
3550 | resolution: {integrity: sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==}
3551 | dev: true
3552 |
3553 | /read-pkg-up@7.0.1:
3554 | resolution: {integrity: sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==}
3555 | engines: {node: '>=8'}
3556 | dependencies:
3557 | find-up: 4.1.0
3558 | read-pkg: 5.2.0
3559 | type-fest: 0.8.1
3560 | dev: true
3561 |
3562 | /read-pkg@5.2.0:
3563 | resolution: {integrity: sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==}
3564 | engines: {node: '>=8'}
3565 | dependencies:
3566 | '@types/normalize-package-data': 2.4.3
3567 | normalize-package-data: 2.5.0
3568 | parse-json: 5.2.0
3569 | type-fest: 0.6.0
3570 | dev: true
3571 |
3572 | /readdirp@3.6.0:
3573 | resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==}
3574 | engines: {node: '>=8.10.0'}
3575 | dependencies:
3576 | picomatch: 2.3.1
3577 | dev: true
3578 |
3579 | /regexp-tree@0.1.27:
3580 | resolution: {integrity: sha512-iETxpjK6YoRWJG5o6hXLwvjYAoW+FEZn9os0PD/b6AP6xQwsa/Y7lCVgIixBbUPMfhu+i2LtdeAqVTgGlQarfA==}
3581 | hasBin: true
3582 | dev: true
3583 |
3584 | /regexp.prototype.flags@1.5.1:
3585 | resolution: {integrity: sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg==}
3586 | engines: {node: '>= 0.4'}
3587 | dependencies:
3588 | call-bind: 1.0.5
3589 | define-properties: 1.2.1
3590 | set-function-name: 2.0.1
3591 | dev: true
3592 |
3593 | /regjsparser@0.10.0:
3594 | resolution: {integrity: sha512-qx+xQGZVsy55CH0a1hiVwHmqjLryfh7wQyF5HO07XJ9f7dQMY/gPQHhlyDkIzJKC+x2fUCpCcUODUUUFrm7SHA==}
3595 | hasBin: true
3596 | dependencies:
3597 | jsesc: 0.5.0
3598 | dev: true
3599 |
3600 | /require-directory@2.1.1:
3601 | resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==}
3602 | engines: {node: '>=0.10.0'}
3603 | dev: true
3604 |
3605 | /resolve-from@4.0.0:
3606 | resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==}
3607 | engines: {node: '>=4'}
3608 | dev: true
3609 |
3610 | /resolve-pkg-maps@1.0.0:
3611 | resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==}
3612 | dev: true
3613 |
3614 | /resolve@1.22.8:
3615 | resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==}
3616 | hasBin: true
3617 | dependencies:
3618 | is-core-module: 2.13.1
3619 | path-parse: 1.0.7
3620 | supports-preserve-symlinks-flag: 1.0.0
3621 | dev: true
3622 |
3623 | /reusify@1.0.4:
3624 | resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==}
3625 | engines: {iojs: '>=1.0.0', node: '>=0.10.0'}
3626 | dev: true
3627 |
3628 | /rev-hash@4.0.0:
3629 | resolution: {integrity: sha512-5w/auZRs65pf1AkZIbfICeorQfOCb6XVWaHmDEbkMyjmyRMxck+W0Erdj9zffuBRXxn5cbKfgmWQ9GpgR8dFZQ==}
3630 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
3631 | dev: true
3632 |
3633 | /rgb-hex@4.1.0:
3634 | resolution: {integrity: sha512-UZLM57BW09Yi9J1R3OP8B1yCbbDK3NT8BDtihGZkGkGEs2b6EaV85rsfJ6yK4F+8UbxFFmfA+9xHT5ZWhN1gDQ==}
3635 | engines: {node: '>=12'}
3636 |
3637 | /rimraf@3.0.2:
3638 | resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==}
3639 | hasBin: true
3640 | dependencies:
3641 | glob: 7.2.3
3642 | dev: true
3643 |
3644 | /rollup@4.8.0:
3645 | resolution: {integrity: sha512-NpsklK2fach5CdI+PScmlE5R4Ao/FSWtF7LkoIrHDxPACY/xshNasPsbpG0VVHxUTbf74tJbVT4PrP8JsJ6ZDA==}
3646 | engines: {node: '>=18.0.0', npm: '>=8.0.0'}
3647 | hasBin: true
3648 | optionalDependencies:
3649 | '@rollup/rollup-android-arm-eabi': 4.8.0
3650 | '@rollup/rollup-android-arm64': 4.8.0
3651 | '@rollup/rollup-darwin-arm64': 4.8.0
3652 | '@rollup/rollup-darwin-x64': 4.8.0
3653 | '@rollup/rollup-linux-arm-gnueabihf': 4.8.0
3654 | '@rollup/rollup-linux-arm64-gnu': 4.8.0
3655 | '@rollup/rollup-linux-arm64-musl': 4.8.0
3656 | '@rollup/rollup-linux-riscv64-gnu': 4.8.0
3657 | '@rollup/rollup-linux-x64-gnu': 4.8.0
3658 | '@rollup/rollup-linux-x64-musl': 4.8.0
3659 | '@rollup/rollup-win32-arm64-msvc': 4.8.0
3660 | '@rollup/rollup-win32-ia32-msvc': 4.8.0
3661 | '@rollup/rollup-win32-x64-msvc': 4.8.0
3662 | fsevents: 2.3.3
3663 | dev: true
3664 |
3665 | /run-parallel@1.2.0:
3666 | resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==}
3667 | dependencies:
3668 | queue-microtask: 1.2.3
3669 | dev: true
3670 |
3671 | /sade@1.8.1:
3672 | resolution: {integrity: sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==}
3673 | engines: {node: '>=6'}
3674 | dependencies:
3675 | mri: 1.2.0
3676 | dev: true
3677 |
3678 | /safe-array-concat@1.0.1:
3679 | resolution: {integrity: sha512-6XbUAseYE2KtOuGueyeobCySj9L4+66Tn6KQMOPQJrAJEowYKW/YR/MGJZl7FdydUdaFu4LYyDZjxf4/Nmo23Q==}
3680 | engines: {node: '>=0.4'}
3681 | dependencies:
3682 | call-bind: 1.0.5
3683 | get-intrinsic: 1.2.2
3684 | has-symbols: 1.0.3
3685 | isarray: 2.0.5
3686 | dev: true
3687 |
3688 | /safe-regex-test@1.0.0:
3689 | resolution: {integrity: sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==}
3690 | dependencies:
3691 | call-bind: 1.0.5
3692 | get-intrinsic: 1.2.2
3693 | is-regex: 1.1.4
3694 | dev: true
3695 |
3696 | /semver@5.7.2:
3697 | resolution: {integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==}
3698 | hasBin: true
3699 | dev: true
3700 |
3701 | /semver@7.5.4:
3702 | resolution: {integrity: sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==}
3703 | engines: {node: '>=10'}
3704 | hasBin: true
3705 | dependencies:
3706 | lru-cache: 6.0.0
3707 | dev: true
3708 |
3709 | /set-function-length@1.1.1:
3710 | resolution: {integrity: sha512-VoaqjbBJKiWtg4yRcKBQ7g7wnGnLV3M8oLvVWwOk2PdYY6PEFegR1vezXR0tw6fZGF9csVakIRjrJiy2veSBFQ==}
3711 | engines: {node: '>= 0.4'}
3712 | dependencies:
3713 | define-data-property: 1.1.1
3714 | get-intrinsic: 1.2.2
3715 | gopd: 1.0.1
3716 | has-property-descriptors: 1.0.1
3717 | dev: true
3718 |
3719 | /set-function-name@2.0.1:
3720 | resolution: {integrity: sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA==}
3721 | engines: {node: '>= 0.4'}
3722 | dependencies:
3723 | define-data-property: 1.1.1
3724 | functions-have-names: 1.2.3
3725 | has-property-descriptors: 1.0.1
3726 | dev: true
3727 |
3728 | /shebang-command@2.0.0:
3729 | resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==}
3730 | engines: {node: '>=8'}
3731 | dependencies:
3732 | shebang-regex: 3.0.0
3733 | dev: true
3734 |
3735 | /shebang-regex@3.0.0:
3736 | resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==}
3737 | engines: {node: '>=8'}
3738 | dev: true
3739 |
3740 | /side-channel@1.0.4:
3741 | resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==}
3742 | dependencies:
3743 | call-bind: 1.0.5
3744 | get-intrinsic: 1.2.2
3745 | object-inspect: 1.13.1
3746 | dev: true
3747 |
3748 | /siginfo@2.0.0:
3749 | resolution: {integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==}
3750 | dev: true
3751 |
3752 | /signal-exit@4.1.0:
3753 | resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==}
3754 | engines: {node: '>=14'}
3755 | dev: true
3756 |
3757 | /simple-git-hooks@2.9.0:
3758 | resolution: {integrity: sha512-waSQ5paUQtyGC0ZxlHmcMmD9I1rRXauikBwX31bX58l5vTOhCEcBC5Bi+ZDkPXTjDnZAF8TbCqKBY+9+sVPScw==}
3759 | hasBin: true
3760 | requiresBuild: true
3761 | dev: true
3762 |
3763 | /simple-swizzle@0.2.2:
3764 | resolution: {integrity: sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==}
3765 | dependencies:
3766 | is-arrayish: 0.3.2
3767 | dev: false
3768 |
3769 | /slash@3.0.0:
3770 | resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==}
3771 | engines: {node: '>=8'}
3772 | dev: true
3773 |
3774 | /slash@4.0.0:
3775 | resolution: {integrity: sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==}
3776 | engines: {node: '>=12'}
3777 | dev: true
3778 |
3779 | /source-map-js@1.0.2:
3780 | resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==}
3781 | engines: {node: '>=0.10.0'}
3782 | dev: true
3783 |
3784 | /spdx-correct@3.2.0:
3785 | resolution: {integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==}
3786 | dependencies:
3787 | spdx-expression-parse: 3.0.1
3788 | spdx-license-ids: 3.0.16
3789 | dev: true
3790 |
3791 | /spdx-exceptions@2.3.0:
3792 | resolution: {integrity: sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==}
3793 | dev: true
3794 |
3795 | /spdx-expression-parse@3.0.1:
3796 | resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==}
3797 | dependencies:
3798 | spdx-exceptions: 2.3.0
3799 | spdx-license-ids: 3.0.16
3800 | dev: true
3801 |
3802 | /spdx-license-ids@3.0.16:
3803 | resolution: {integrity: sha512-eWN+LnM3GR6gPu35WxNgbGl8rmY1AEmoMDvL/QD6zYmPWgywxWqJWNdLGT+ke8dKNWrcYgYjPpG5gbTfghP8rw==}
3804 | dev: true
3805 |
3806 | /stackback@0.0.2:
3807 | resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==}
3808 | dev: true
3809 |
3810 | /std-env@3.6.0:
3811 | resolution: {integrity: sha512-aFZ19IgVmhdB2uX599ve2kE6BIE3YMnQ6Gp6BURhW/oIzpXGKr878TQfAQZn1+i0Flcc/UKUy1gOlcfaUBCryg==}
3812 | dev: true
3813 |
3814 | /string-hash@1.1.3:
3815 | resolution: {integrity: sha512-kJUvRUFK49aub+a7T1nNE66EJbZBMnBgoC1UbCZ5n6bsZKBRga4KgBRTMn/pFkeCZSYtNeSyMxPDM0AXWELk2A==}
3816 | dev: true
3817 |
3818 | /string-width@4.2.3:
3819 | resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==}
3820 | engines: {node: '>=8'}
3821 | dependencies:
3822 | emoji-regex: 8.0.0
3823 | is-fullwidth-code-point: 3.0.0
3824 | strip-ansi: 6.0.1
3825 | dev: true
3826 |
3827 | /string-width@5.1.2:
3828 | resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==}
3829 | engines: {node: '>=12'}
3830 | dependencies:
3831 | eastasianwidth: 0.2.0
3832 | emoji-regex: 9.2.2
3833 | strip-ansi: 7.1.0
3834 | dev: true
3835 |
3836 | /string.prototype.trim@1.2.8:
3837 | resolution: {integrity: sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==}
3838 | engines: {node: '>= 0.4'}
3839 | dependencies:
3840 | call-bind: 1.0.5
3841 | define-properties: 1.2.1
3842 | es-abstract: 1.22.3
3843 | dev: true
3844 |
3845 | /string.prototype.trimend@1.0.7:
3846 | resolution: {integrity: sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==}
3847 | dependencies:
3848 | call-bind: 1.0.5
3849 | define-properties: 1.2.1
3850 | es-abstract: 1.22.3
3851 | dev: true
3852 |
3853 | /string.prototype.trimstart@1.0.7:
3854 | resolution: {integrity: sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==}
3855 | dependencies:
3856 | call-bind: 1.0.5
3857 | define-properties: 1.2.1
3858 | es-abstract: 1.22.3
3859 | dev: true
3860 |
3861 | /strip-ansi@6.0.1:
3862 | resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==}
3863 | engines: {node: '>=8'}
3864 | dependencies:
3865 | ansi-regex: 5.0.1
3866 | dev: true
3867 |
3868 | /strip-ansi@7.1.0:
3869 | resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==}
3870 | engines: {node: '>=12'}
3871 | dependencies:
3872 | ansi-regex: 6.0.1
3873 | dev: true
3874 |
3875 | /strip-final-newline@3.0.0:
3876 | resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==}
3877 | engines: {node: '>=12'}
3878 | dev: true
3879 |
3880 | /strip-indent@3.0.0:
3881 | resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==}
3882 | engines: {node: '>=8'}
3883 | dependencies:
3884 | min-indent: 1.0.1
3885 | dev: true
3886 |
3887 | /strip-json-comments@3.1.1:
3888 | resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==}
3889 | engines: {node: '>=8'}
3890 | dev: true
3891 |
3892 | /strip-literal@1.3.0:
3893 | resolution: {integrity: sha512-PugKzOsyXpArk0yWmUwqOZecSO0GH0bPoctLcqNDH9J04pVW3lflYE0ujElBGTloevcxF5MofAOZ7C5l2b+wLg==}
3894 | dependencies:
3895 | acorn: 8.11.2
3896 | dev: true
3897 |
3898 | /stylehacks@6.0.0(postcss@8.4.31):
3899 | resolution: {integrity: sha512-+UT589qhHPwz6mTlCLSt/vMNTJx8dopeJlZAlBMJPWA3ORqu6wmQY7FBXf+qD+FsqoBJODyqNxOUP3jdntFRdw==}
3900 | engines: {node: ^14 || ^16 || >=18.0}
3901 | peerDependencies:
3902 | postcss: ^8.2.15
3903 | dependencies:
3904 | browserslist: 4.22.1
3905 | postcss: 8.4.31
3906 | postcss-selector-parser: 6.0.13
3907 | dev: true
3908 |
3909 | /supports-color@5.5.0:
3910 | resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==}
3911 | engines: {node: '>=4'}
3912 | dependencies:
3913 | has-flag: 3.0.0
3914 | dev: true
3915 |
3916 | /supports-color@7.2.0:
3917 | resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==}
3918 | engines: {node: '>=8'}
3919 | dependencies:
3920 | has-flag: 4.0.0
3921 | dev: true
3922 |
3923 | /supports-preserve-symlinks-flag@1.0.0:
3924 | resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==}
3925 | engines: {node: '>= 0.4'}
3926 | dev: true
3927 |
3928 | /svgo@3.0.2:
3929 | resolution: {integrity: sha512-Z706C1U2pb1+JGP48fbazf3KxHrWOsLme6Rv7imFBn5EnuanDW1GPaA/P1/dvObE670JDePC3mnj0k0B7P0jjQ==}
3930 | engines: {node: '>=14.0.0'}
3931 | hasBin: true
3932 | dependencies:
3933 | '@trysound/sax': 0.2.0
3934 | commander: 7.2.0
3935 | css-select: 5.1.0
3936 | css-tree: 2.3.1
3937 | csso: 5.0.5
3938 | picocolors: 1.0.0
3939 | dev: true
3940 |
3941 | /temp-dir@2.0.0:
3942 | resolution: {integrity: sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg==}
3943 | engines: {node: '>=8'}
3944 | dev: true
3945 |
3946 | /temp-dir@3.0.0:
3947 | resolution: {integrity: sha512-nHc6S/bwIilKHNRgK/3jlhDoIHcp45YgyiwcAk46Tr0LfEqGBVpmiAyuiuxeVE44m3mXnEeVhaipLOEWmH+Njw==}
3948 | engines: {node: '>=14.16'}
3949 | dev: true
3950 |
3951 | /temp-write@5.0.0:
3952 | resolution: {integrity: sha512-cJhnzBW7DjNox7VcZDXeNlQSkIh3mX/h+M0n0Fh+zgT7YAHwI9c+OngKx4MCiQCVx9iXxV104xYlJgDBCCtawA==}
3953 | engines: {node: '>=12'}
3954 | dependencies:
3955 | graceful-fs: 4.2.11
3956 | is-stream: 2.0.1
3957 | temp-dir: 2.0.0
3958 | uuid: 8.3.2
3959 | dev: true
3960 |
3961 | /tempy@3.1.0:
3962 | resolution: {integrity: sha512-7jDLIdD2Zp0bDe5r3D2qtkd1QOCacylBuL7oa4udvN6v2pqr4+LcCr67C8DR1zkpaZ8XosF5m1yQSabKAW6f2g==}
3963 | engines: {node: '>=14.16'}
3964 | dependencies:
3965 | is-stream: 3.0.0
3966 | temp-dir: 3.0.0
3967 | type-fest: 2.19.0
3968 | unique-string: 3.0.0
3969 | dev: true
3970 |
3971 | /text-table@0.2.0:
3972 | resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==}
3973 | dev: true
3974 |
3975 | /tinybench@2.5.1:
3976 | resolution: {integrity: sha512-65NKvSuAVDP/n4CqH+a9w2kTlLReS9vhsAP06MWx+/89nMinJyB2icyl58RIcqCmIggpojIGeuJGhjU1aGMBSg==}
3977 | dev: true
3978 |
3979 | /tinypool@0.8.1:
3980 | resolution: {integrity: sha512-zBTCK0cCgRROxvs9c0CGK838sPkeokNGdQVUUwHAbynHFlmyJYj825f/oRs528HaIJ97lo0pLIlDUzwN+IorWg==}
3981 | engines: {node: '>=14.0.0'}
3982 | dev: true
3983 |
3984 | /tinyspy@2.2.0:
3985 | resolution: {integrity: sha512-d2eda04AN/cPOR89F7Xv5bK/jrQEhmcLFe6HFldoeO9AJtps+fqEnh486vnT/8y4bw38pSyxDcTCAq+Ks2aJTg==}
3986 | engines: {node: '>=14.0.0'}
3987 | dev: true
3988 |
3989 | /to-regex-range@5.0.1:
3990 | resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==}
3991 | engines: {node: '>=8.0'}
3992 | dependencies:
3993 | is-number: 7.0.0
3994 | dev: true
3995 |
3996 | /ts-api-utils@1.0.3(typescript@5.2.2):
3997 | resolution: {integrity: sha512-wNMeqtMz5NtwpT/UZGY5alT+VoKdSsOOP/kqHFcUW1P/VRhH2wJ48+DN2WwUliNbQ976ETwDL0Ifd2VVvgonvg==}
3998 | engines: {node: '>=16.13.0'}
3999 | peerDependencies:
4000 | typescript: '>=4.2.0'
4001 | dependencies:
4002 | typescript: 5.2.2
4003 | dev: true
4004 |
4005 | /type-check@0.4.0:
4006 | resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==}
4007 | engines: {node: '>= 0.8.0'}
4008 | dependencies:
4009 | prelude-ls: 1.2.1
4010 | dev: true
4011 |
4012 | /type-detect@4.0.8:
4013 | resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==}
4014 | engines: {node: '>=4'}
4015 | dev: true
4016 |
4017 | /type-fest@0.20.2:
4018 | resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==}
4019 | engines: {node: '>=10'}
4020 | dev: true
4021 |
4022 | /type-fest@0.6.0:
4023 | resolution: {integrity: sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==}
4024 | engines: {node: '>=8'}
4025 | dev: true
4026 |
4027 | /type-fest@0.8.1:
4028 | resolution: {integrity: sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==}
4029 | engines: {node: '>=8'}
4030 | dev: true
4031 |
4032 | /type-fest@1.4.0:
4033 | resolution: {integrity: sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==}
4034 | engines: {node: '>=10'}
4035 | dev: true
4036 |
4037 | /type-fest@2.19.0:
4038 | resolution: {integrity: sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==}
4039 | engines: {node: '>=12.20'}
4040 | dev: true
4041 |
4042 | /typed-array-buffer@1.0.0:
4043 | resolution: {integrity: sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==}
4044 | engines: {node: '>= 0.4'}
4045 | dependencies:
4046 | call-bind: 1.0.5
4047 | get-intrinsic: 1.2.2
4048 | is-typed-array: 1.1.12
4049 | dev: true
4050 |
4051 | /typed-array-byte-length@1.0.0:
4052 | resolution: {integrity: sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==}
4053 | engines: {node: '>= 0.4'}
4054 | dependencies:
4055 | call-bind: 1.0.5
4056 | for-each: 0.3.3
4057 | has-proto: 1.0.1
4058 | is-typed-array: 1.1.12
4059 | dev: true
4060 |
4061 | /typed-array-byte-offset@1.0.0:
4062 | resolution: {integrity: sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==}
4063 | engines: {node: '>= 0.4'}
4064 | dependencies:
4065 | available-typed-arrays: 1.0.5
4066 | call-bind: 1.0.5
4067 | for-each: 0.3.3
4068 | has-proto: 1.0.1
4069 | is-typed-array: 1.1.12
4070 | dev: true
4071 |
4072 | /typed-array-length@1.0.4:
4073 | resolution: {integrity: sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==}
4074 | dependencies:
4075 | call-bind: 1.0.5
4076 | for-each: 0.3.3
4077 | is-typed-array: 1.1.12
4078 | dev: true
4079 |
4080 | /typed-css-modules@0.8.0:
4081 | resolution: {integrity: sha512-zX9n45IYv27B/85W/b7o+PLmSiLHKSGI/loE8etbIrkVPqB60S7Le7Bkcxl7KR1/visRJRPC/DDFiwx4370FEg==}
4082 | engines: {node: '>=18.0.0'}
4083 | hasBin: true
4084 | dependencies:
4085 | camelcase: 6.3.0
4086 | chalk: 4.1.2
4087 | chokidar: 3.5.3
4088 | glob: 10.3.10
4089 | icss-replace-symbols: 1.1.0
4090 | is-there: 4.5.1
4091 | mkdirp: 3.0.1
4092 | postcss: 8.4.31
4093 | postcss-modules-extract-imports: 3.0.0(postcss@8.4.31)
4094 | postcss-modules-local-by-default: 4.0.3(postcss@8.4.31)
4095 | postcss-modules-scope: 3.0.0(postcss@8.4.31)
4096 | postcss-modules-values: 4.0.0(postcss@8.4.31)
4097 | yargs: 17.7.2
4098 | dev: true
4099 |
4100 | /typescript@5.2.2:
4101 | resolution: {integrity: sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==}
4102 | engines: {node: '>=14.17'}
4103 | hasBin: true
4104 | dev: true
4105 |
4106 | /ufo@1.3.1:
4107 | resolution: {integrity: sha512-uY/99gMLIOlJPwATcMVYfqDSxUR9//AUcgZMzwfSTJPDKzA1S8mX4VLqa+fiAtveraQUBCz4FFcwVZBGbwBXIw==}
4108 | dev: true
4109 |
4110 | /unbox-primitive@1.0.2:
4111 | resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==}
4112 | dependencies:
4113 | call-bind: 1.0.5
4114 | has-bigints: 1.0.2
4115 | has-symbols: 1.0.3
4116 | which-boxed-primitive: 1.0.2
4117 | dev: true
4118 |
4119 | /unique-string@3.0.0:
4120 | resolution: {integrity: sha512-VGXBUVwxKMBUznyffQweQABPRRW1vHZAbadFZud4pLFAqRGvv/96vafgjWFqzourzr8YonlQiPgH0YCJfawoGQ==}
4121 | engines: {node: '>=12'}
4122 | dependencies:
4123 | crypto-random-string: 4.0.0
4124 | dev: true
4125 |
4126 | /unist-util-stringify-position@2.0.3:
4127 | resolution: {integrity: sha512-3faScn5I+hy9VleOq/qNbAd6pAx7iH5jYBMS9I1HgQVijz/4mv5Bvw5iw1sC/90CODiKo81G/ps8AJrISn687g==}
4128 | dependencies:
4129 | '@types/unist': 2.0.9
4130 | dev: true
4131 |
4132 | /update-browserslist-db@1.0.13(browserslist@4.22.1):
4133 | resolution: {integrity: sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==}
4134 | hasBin: true
4135 | peerDependencies:
4136 | browserslist: '>= 4.21.0'
4137 | dependencies:
4138 | browserslist: 4.22.1
4139 | escalade: 3.1.1
4140 | picocolors: 1.0.0
4141 | dev: true
4142 |
4143 | /uri-js@4.4.1:
4144 | resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==}
4145 | dependencies:
4146 | punycode: 2.3.1
4147 | dev: true
4148 |
4149 | /util-deprecate@1.0.2:
4150 | resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==}
4151 | dev: true
4152 |
4153 | /uuid@8.3.2:
4154 | resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==}
4155 | hasBin: true
4156 | dev: true
4157 |
4158 | /validate-npm-package-license@3.0.4:
4159 | resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==}
4160 | dependencies:
4161 | spdx-correct: 3.2.0
4162 | spdx-expression-parse: 3.0.1
4163 | dev: true
4164 |
4165 | /vite-node@1.0.4:
4166 | resolution: {integrity: sha512-9xQQtHdsz5Qn8hqbV7UKqkm8YkJhzT/zr41Dmt5N7AlD8hJXw/Z7y0QiD5I8lnTthV9Rvcvi0QW7PI0Fq83ZPg==}
4167 | engines: {node: ^18.0.0 || >=20.0.0}
4168 | hasBin: true
4169 | dependencies:
4170 | cac: 6.7.14
4171 | debug: 4.3.4
4172 | pathe: 1.1.1
4173 | picocolors: 1.0.0
4174 | vite: 5.0.8
4175 | transitivePeerDependencies:
4176 | - '@types/node'
4177 | - less
4178 | - lightningcss
4179 | - sass
4180 | - stylus
4181 | - sugarss
4182 | - supports-color
4183 | - terser
4184 | dev: true
4185 |
4186 | /vite@5.0.8:
4187 | resolution: {integrity: sha512-jYMALd8aeqR3yS9xlHd0OzQJndS9fH5ylVgWdB+pxTwxLKdO1pgC5Dlb398BUxpfaBxa4M9oT7j1g503Gaj5IQ==}
4188 | engines: {node: ^18.0.0 || >=20.0.0}
4189 | hasBin: true
4190 | peerDependencies:
4191 | '@types/node': ^18.0.0 || >=20.0.0
4192 | less: '*'
4193 | lightningcss: ^1.21.0
4194 | sass: '*'
4195 | stylus: '*'
4196 | sugarss: '*'
4197 | terser: ^5.4.0
4198 | peerDependenciesMeta:
4199 | '@types/node':
4200 | optional: true
4201 | less:
4202 | optional: true
4203 | lightningcss:
4204 | optional: true
4205 | sass:
4206 | optional: true
4207 | stylus:
4208 | optional: true
4209 | sugarss:
4210 | optional: true
4211 | terser:
4212 | optional: true
4213 | dependencies:
4214 | esbuild: 0.19.5
4215 | postcss: 8.4.32
4216 | rollup: 4.8.0
4217 | optionalDependencies:
4218 | fsevents: 2.3.3
4219 | dev: true
4220 |
4221 | /vitest@1.0.4:
4222 | resolution: {integrity: sha512-s1GQHp/UOeWEo4+aXDOeFBJwFzL6mjycbQwwKWX2QcYfh/7tIerS59hWQ20mxzupTJluA2SdwiBuWwQHH67ckg==}
4223 | engines: {node: ^18.0.0 || >=20.0.0}
4224 | hasBin: true
4225 | peerDependencies:
4226 | '@edge-runtime/vm': '*'
4227 | '@types/node': ^18.0.0 || >=20.0.0
4228 | '@vitest/browser': ^1.0.0
4229 | '@vitest/ui': ^1.0.0
4230 | happy-dom: '*'
4231 | jsdom: '*'
4232 | peerDependenciesMeta:
4233 | '@edge-runtime/vm':
4234 | optional: true
4235 | '@types/node':
4236 | optional: true
4237 | '@vitest/browser':
4238 | optional: true
4239 | '@vitest/ui':
4240 | optional: true
4241 | happy-dom:
4242 | optional: true
4243 | jsdom:
4244 | optional: true
4245 | dependencies:
4246 | '@vitest/expect': 1.0.4
4247 | '@vitest/runner': 1.0.4
4248 | '@vitest/snapshot': 1.0.4
4249 | '@vitest/spy': 1.0.4
4250 | '@vitest/utils': 1.0.4
4251 | acorn-walk: 8.3.0
4252 | cac: 6.7.14
4253 | chai: 4.3.10
4254 | debug: 4.3.4
4255 | execa: 8.0.1
4256 | local-pkg: 0.5.0
4257 | magic-string: 0.30.5
4258 | pathe: 1.1.1
4259 | picocolors: 1.0.0
4260 | std-env: 3.6.0
4261 | strip-literal: 1.3.0
4262 | tinybench: 2.5.1
4263 | tinypool: 0.8.1
4264 | vite: 5.0.8
4265 | vite-node: 1.0.4
4266 | why-is-node-running: 2.2.2
4267 | transitivePeerDependencies:
4268 | - less
4269 | - lightningcss
4270 | - sass
4271 | - stylus
4272 | - sugarss
4273 | - supports-color
4274 | - terser
4275 | dev: true
4276 |
4277 | /vue-eslint-parser@9.3.2(eslint@8.55.0):
4278 | resolution: {integrity: sha512-q7tWyCVaV9f8iQyIA5Mkj/S6AoJ9KBN8IeUSf3XEmBrOtxOZnfTg5s4KClbZBCK3GtnT/+RyCLZyDHuZwTuBjg==}
4279 | engines: {node: ^14.17.0 || >=16.0.0}
4280 | peerDependencies:
4281 | eslint: '>=6.0.0'
4282 | dependencies:
4283 | debug: 4.3.4
4284 | eslint: 8.55.0
4285 | eslint-scope: 7.2.2
4286 | eslint-visitor-keys: 3.4.3
4287 | espree: 9.6.1
4288 | esquery: 1.5.0
4289 | lodash: 4.17.21
4290 | semver: 7.5.4
4291 | transitivePeerDependencies:
4292 | - supports-color
4293 | dev: true
4294 |
4295 | /which-boxed-primitive@1.0.2:
4296 | resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==}
4297 | dependencies:
4298 | is-bigint: 1.0.4
4299 | is-boolean-object: 1.1.2
4300 | is-number-object: 1.0.7
4301 | is-string: 1.0.7
4302 | is-symbol: 1.0.4
4303 | dev: true
4304 |
4305 | /which-typed-array@1.1.13:
4306 | resolution: {integrity: sha512-P5Nra0qjSncduVPEAr7xhoF5guty49ArDTwzJ/yNuPIbZppyRxFQsRCWrocxIY+CnMVG+qfbU2FmDKyvSGClow==}
4307 | engines: {node: '>= 0.4'}
4308 | dependencies:
4309 | available-typed-arrays: 1.0.5
4310 | call-bind: 1.0.5
4311 | for-each: 0.3.3
4312 | gopd: 1.0.1
4313 | has-tostringtag: 1.0.0
4314 | dev: true
4315 |
4316 | /which@2.0.2:
4317 | resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==}
4318 | engines: {node: '>= 8'}
4319 | hasBin: true
4320 | dependencies:
4321 | isexe: 2.0.0
4322 | dev: true
4323 |
4324 | /why-is-node-running@2.2.2:
4325 | resolution: {integrity: sha512-6tSwToZxTOcotxHeA+qGCq1mVzKR3CwcJGmVcY+QE8SHy6TnpFnh8PAvPNHYr7EcuVeG0QSMxtYCuO1ta/G/oA==}
4326 | engines: {node: '>=8'}
4327 | hasBin: true
4328 | dependencies:
4329 | siginfo: 2.0.0
4330 | stackback: 0.0.2
4331 | dev: true
4332 |
4333 | /wrap-ansi@7.0.0:
4334 | resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==}
4335 | engines: {node: '>=10'}
4336 | dependencies:
4337 | ansi-styles: 4.3.0
4338 | string-width: 4.2.3
4339 | strip-ansi: 6.0.1
4340 | dev: true
4341 |
4342 | /wrap-ansi@8.1.0:
4343 | resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==}
4344 | engines: {node: '>=12'}
4345 | dependencies:
4346 | ansi-styles: 6.2.1
4347 | string-width: 5.1.2
4348 | strip-ansi: 7.1.0
4349 | dev: true
4350 |
4351 | /wrappy@1.0.2:
4352 | resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==}
4353 | dev: true
4354 |
4355 | /xml-name-validator@4.0.0:
4356 | resolution: {integrity: sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==}
4357 | engines: {node: '>=12'}
4358 | dev: true
4359 |
4360 | /xstate@4.38.3:
4361 | resolution: {integrity: sha512-SH7nAaaPQx57dx6qvfcIgqKRXIh4L0A1iYEqim4s1u7c9VoCgzZc+63FY90AKU4ZzOC2cfJzTnpO4zK7fCUzzw==}
4362 | dev: true
4363 |
4364 | /y18n@5.0.8:
4365 | resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==}
4366 | engines: {node: '>=10'}
4367 | dev: true
4368 |
4369 | /yallist@4.0.0:
4370 | resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==}
4371 | dev: true
4372 |
4373 | /yaml-eslint-parser@1.2.2:
4374 | resolution: {integrity: sha512-pEwzfsKbTrB8G3xc/sN7aw1v6A6c/pKxLAkjclnAyo5g5qOh6eL9WGu0o3cSDQZKrTNk4KL4lQSwZW+nBkANEg==}
4375 | engines: {node: ^14.17.0 || >=16.0.0}
4376 | dependencies:
4377 | eslint-visitor-keys: 3.4.3
4378 | lodash: 4.17.21
4379 | yaml: 2.3.4
4380 | dev: true
4381 |
4382 | /yaml@2.3.4:
4383 | resolution: {integrity: sha512-8aAvwVUSHpfEqTQ4w/KMlf3HcRdt50E5ODIQJBw1fQ5RL34xabzxtUlzTXVqc4rkZsPbvrXKWnABCD7kWSmocA==}
4384 | engines: {node: '>= 14'}
4385 | dev: true
4386 |
4387 | /yargs-parser@21.1.1:
4388 | resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==}
4389 | engines: {node: '>=12'}
4390 | dev: true
4391 |
4392 | /yargs@17.7.2:
4393 | resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==}
4394 | engines: {node: '>=12'}
4395 | dependencies:
4396 | cliui: 8.0.1
4397 | escalade: 3.1.1
4398 | get-caller-file: 2.0.5
4399 | require-directory: 2.1.1
4400 | string-width: 4.2.3
4401 | y18n: 5.0.8
4402 | yargs-parser: 21.1.1
4403 | dev: true
4404 |
4405 | /yocto-queue@0.1.0:
4406 | resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==}
4407 | engines: {node: '>=10'}
4408 | dev: true
4409 |
4410 | /yocto-queue@1.0.0:
4411 | resolution: {integrity: sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==}
4412 | engines: {node: '>=12.20'}
4413 | dev: true
4414 |
--------------------------------------------------------------------------------