├── .all-contributorsrc
├── .devcontainer
└── devcontainer.json
├── .editorconfig
├── .gitattributes
├── .github
├── dependabot.yaml
└── workflows
│ ├── release.yaml
│ ├── update-license-year.yaml
│ └── workflow.yaml
├── .gitignore
├── .vscode
└── settings.json
├── CONTRIBUTING.md
├── LICENSE
├── README.md
├── action.yaml
├── biome.json
├── package.json
├── src
├── GraphvizInstaller.ts
├── __tests__
│ └── GraphvizInstaller.spec.ts
└── main.ts
├── tsconfig.json
└── yarn.lock
/.all-contributorsrc:
--------------------------------------------------------------------------------
1 | {
2 | "files": [
3 | "README.md"
4 | ],
5 | "imageSize": 100,
6 | "commit": false,
7 | "contributors": [
8 | {
9 | "login": "kamiazya",
10 | "name": "Yuki Yamazaki",
11 | "avatar_url": "https://avatars0.githubusercontent.com/u/35218186?v=4",
12 | "profile": "http://blog.kamiazya.tech/",
13 | "contributions": [
14 | "code",
15 | "test",
16 | "doc",
17 | "example"
18 | ]
19 | },
20 | {
21 | "login": "mhtb32",
22 | "name": "Mohammad Hussein Tavakoli Bina ",
23 | "avatar_url": "https://avatars3.githubusercontent.com/u/24754239?v=4",
24 | "profile": "https://github.com/mhtb32",
25 | "contributions": [
26 | "ideas"
27 | ]
28 | },
29 | {
30 | "login": "sammcj",
31 | "name": "Sam",
32 | "avatar_url": "https://avatars.githubusercontent.com/u/862951?v=4",
33 | "profile": "https://smcleod.net",
34 | "contributions": [
35 | "maintenance"
36 | ]
37 | },
38 | {
39 | "login": "mohawk2",
40 | "name": "mohawk2",
41 | "avatar_url": "https://avatars.githubusercontent.com/u/7308181?v=4",
42 | "profile": "https://github.com/mohawk2",
43 | "contributions": [
44 | "bug",
45 | "ideas"
46 | ]
47 | },
48 | {
49 | "login": "leadelngalame1611",
50 | "name": "leadelngalame1611",
51 | "avatar_url": "https://avatars.githubusercontent.com/u/39901966?v=4",
52 | "profile": "https://github.com/leadelngalame1611",
53 | "contributions": [
54 | "bug",
55 | "ideas"
56 | ]
57 | },
58 | {
59 | "login": "stunney",
60 | "name": "S. Tunney",
61 | "avatar_url": "https://avatars.githubusercontent.com/u/609012?v=4",
62 | "profile": "https://github.com/stunney",
63 | "contributions": [
64 | "ideas"
65 | ]
66 | },
67 | {
68 | "login": "khaeru",
69 | "name": "Paul Natsuo Kishimoto",
70 | "avatar_url": "https://avatars.githubusercontent.com/u/1634164?v=4",
71 | "profile": "https://paul.kishimoto.name",
72 | "contributions": [
73 | "bug",
74 | "research"
75 | ]
76 | },
77 | {
78 | "login": "jbms",
79 | "name": "Jeremy Maitin-Shepard",
80 | "avatar_url": "https://avatars.githubusercontent.com/u/4211946?v=4",
81 | "profile": "https://github.com/jbms",
82 | "contributions": [
83 | "bug",
84 | "ideas"
85 | ]
86 | },
87 | {
88 | "login": "mvrueden",
89 | "name": "mvrueden",
90 | "avatar_url": "https://avatars.githubusercontent.com/u/4202259?v=4",
91 | "profile": "https://github.com/mvrueden",
92 | "contributions": [
93 | "bug",
94 | "code"
95 | ]
96 | },
97 | {
98 | "login": "dhimmel",
99 | "name": "Daniel Himmelstein",
100 | "avatar_url": "https://avatars.githubusercontent.com/u/1117703?v=4",
101 | "profile": "https://dhimmel.com",
102 | "contributions": [
103 | "question"
104 | ]
105 | },
106 | {
107 | "login": "deining",
108 | "name": "Andreas Deininger",
109 | "avatar_url": "https://avatars.githubusercontent.com/u/18169566?v=4",
110 | "profile": "https://github.com/deining",
111 | "contributions": [
112 | "doc",
113 | "maintenance"
114 | ]
115 | },
116 | {
117 | "login": "joshstrohminger",
118 | "name": "Joshua Strohminger",
119 | "avatar_url": "https://avatars.githubusercontent.com/u/17883887?v=4",
120 | "profile": "http://devmonstr.com",
121 | "contributions": [
122 | "code",
123 | "maintenance"
124 | ]
125 | },
126 | {
127 | "login": "2bndy5",
128 | "name": "Brendan",
129 | "avatar_url": "https://avatars.githubusercontent.com/u/14963867?v=4",
130 | "profile": "https://github.com/2bndy5",
131 | "contributions": [
132 | "maintenance"
133 | ]
134 | },
135 | {
136 | "login": "glatterf42",
137 | "name": "Fridolin Glatter",
138 | "avatar_url": "https://avatars.githubusercontent.com/u/83776373?v=4",
139 | "profile": "https://github.com/glatterf42",
140 | "contributions": [
141 | "maintenance"
142 | ]
143 | },
144 | {
145 | "login": "Maetveis",
146 | "name": "Mészáros Gergely",
147 | "avatar_url": "https://avatars.githubusercontent.com/u/8176760?v=4",
148 | "profile": "https://github.com/Maetveis",
149 | "contributions": [
150 | "bug",
151 | "test"
152 | ]
153 | },
154 | {
155 | "login": "XF-FW",
156 | "name": "Xavier Francisco",
157 | "avatar_url": "https://avatars.githubusercontent.com/u/98830734?v=4",
158 | "profile": "https://github.com/XF-FW",
159 | "contributions": [
160 | "ideas"
161 | ]
162 | },
163 | {
164 | "login": "stinodego",
165 | "name": "Stijn de Gooijer",
166 | "avatar_url": "https://avatars.githubusercontent.com/u/3502351?v=4",
167 | "profile": "https://github.com/stinodego",
168 | "contributions": [
169 | "bug"
170 | ]
171 | },
172 | {
173 | "login": "jakebeal",
174 | "name": "Jacob Beal",
175 | "avatar_url": "https://avatars.githubusercontent.com/u/10675899?v=4",
176 | "profile": "http://jakebeal.com",
177 | "contributions": [
178 | "bug"
179 | ]
180 | },
181 | {
182 | "login": "mrbuslov",
183 | "name": "Dmitry Buslov",
184 | "avatar_url": "https://avatars.githubusercontent.com/u/68155915?v=4",
185 | "profile": "https://github.com/mrbuslov",
186 | "contributions": [
187 | "bug"
188 | ]
189 | },
190 | {
191 | "login": "vkottler",
192 | "name": "Vaughn Kottler",
193 | "avatar_url": "https://avatars.githubusercontent.com/u/15205052?v=4",
194 | "profile": "https://vkottler.github.io/",
195 | "contributions": [
196 | "bug"
197 | ]
198 | },
199 | {
200 | "login": "gpaulfleetwood",
201 | "name": "gpaulfleetwood",
202 | "avatar_url": "https://avatars.githubusercontent.com/u/56100336?v=4",
203 | "profile": "https://github.com/gpaulfleetwood",
204 | "contributions": [
205 | "bug"
206 | ]
207 | }
208 | ],
209 | "contributorsPerLine": 7,
210 | "projectName": "setup-graphviz",
211 | "projectOwner": "ts-graphviz",
212 | "repoType": "github",
213 | "repoHost": "https://github.com",
214 | "skipCi": true,
215 | "commitConvention": "angular",
216 | "commitType": "docs"
217 | }
218 |
--------------------------------------------------------------------------------
/.devcontainer/devcontainer.json:
--------------------------------------------------------------------------------
1 | // For format details, see https://aka.ms/devcontainer.json. For config options, see the
2 | // README at: https://github.com/devcontainers/templates/tree/main/src/typescript-node
3 | {
4 | "name": "Node.js & TypeScript",
5 | // Or use a Dockerfile or Docker Compose file. More info: https://containers.dev/guide/dockerfile
6 | "image": "mcr.microsoft.com/devcontainers/typescript-node:0-20",
7 | "features": {
8 | "ghcr.io/dhoeric/features/act:1": {}
9 | },
10 | "postCreateCommand": "yarn install"
11 | // "remoteUser": "root"
12 | }
13 |
--------------------------------------------------------------------------------
/.editorconfig:
--------------------------------------------------------------------------------
1 | root = true
2 |
3 | [*]
4 | indent_style = space
5 | indent_size = 2
6 | charset = utf-8
7 | trim_trailing_whitespace = true
8 | insert_final_newline = true
9 |
--------------------------------------------------------------------------------
/.gitattributes:
--------------------------------------------------------------------------------
1 | * text=auto eol=lf
2 |
--------------------------------------------------------------------------------
/.github/dependabot.yaml:
--------------------------------------------------------------------------------
1 | version: 2
2 | updates:
3 | - package-ecosystem: npm
4 | directory: "/"
5 | schedule:
6 | interval: weekly
7 | open-pull-requests-limit: 10
8 | - package-ecosystem: github-actions
9 | directory: "/"
10 | schedule:
11 | interval: weekly
12 |
--------------------------------------------------------------------------------
/.github/workflows/release.yaml:
--------------------------------------------------------------------------------
1 | on:
2 | push:
3 | tags:
4 | - "v*"
5 |
6 | name: Release
7 | jobs:
8 | release:
9 | name: Release GitHub Actions
10 | runs-on: ubuntu-latest
11 | steps:
12 | - uses: technote-space/release-github-actions@052f205daf62dff0c3ece009f07b38f3ec83e01a # v8.0.3
13 |
--------------------------------------------------------------------------------
/.github/workflows/update-license-year.yaml:
--------------------------------------------------------------------------------
1 | name: Update copyright year(s) in license file
2 |
3 | on:
4 | schedule:
5 | - cron: '0 3 1 1 *' # 03:00 AM on January 1
6 | workflow_dispatch:
7 | jobs:
8 | update-license-year:
9 | runs-on: ubuntu-latest
10 | steps:
11 | - uses: actions/checkout@1d96c772d19495a3b5c517cd2bc0cb401ea0529f # v4.1.3
12 | with:
13 | fetch-depth: 0
14 | - uses: FantasticFiasco/action-update-license-year@9135da8f9ccc675217e02357c744b6b541d45cb0 # v3.0.2
15 | with:
16 | token: ${{ secrets.GITHUB_TOKEN }}
17 |
--------------------------------------------------------------------------------
/.github/workflows/workflow.yaml:
--------------------------------------------------------------------------------
1 | name: Main workflow
2 | on: [push]
3 | jobs:
4 | check:
5 | name: Checks
6 | runs-on: ubuntu-latest
7 | steps:
8 | - name: Checkout
9 | uses: actions/checkout@1d96c772d19495a3b5c517cd2bc0cb401ea0529f # v4.1.3
10 | - name: Set Node.js 20.x
11 | uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2
12 | with:
13 | node-version: 20.x
14 | cache: yarn
15 | - name: Install Dependencies
16 | run: yarn install --frozen-lockfile
17 | - name: Lint
18 | run: yarn lint
19 | - name: TypeCheck
20 | run: yarn typecheck
21 |
22 | unit-test:
23 | name: Unit Tests
24 | runs-on: ubuntu-latest
25 | needs: check
26 | steps:
27 | - name: Checkout
28 | uses: actions/checkout@1d96c772d19495a3b5c517cd2bc0cb401ea0529f # v4.1.3
29 | - name: Set Node.js 20.x
30 | uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2
31 | with:
32 | node-version: 20.x
33 | cache: yarn
34 | - name: Install Dependencies
35 | run: yarn install --frozen-lockfile
36 | - name: Test
37 | run: yarn test
38 | - name: Build
39 | run: yarn build
40 |
41 | build:
42 | name: Build
43 | runs-on: ubuntu-latest
44 | needs: check
45 | steps:
46 | - name: Checkout
47 | uses: actions/checkout@1d96c772d19495a3b5c517cd2bc0cb401ea0529f # v4.1.3
48 | - name: Set Node.js 20.x
49 | uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2
50 | with:
51 | node-version: 20.x
52 | cache: yarn
53 | - name: Install Dependencies
54 | run: yarn install --frozen-lockfile
55 | - name: Build
56 | run: yarn build
57 | - name: Upload Artifact
58 | uses: actions/upload-artifact@65462800fd760344b1a7b4382951275a0abb4808 # v4.3.3
59 | with:
60 | name: lib
61 | path: lib
62 |
63 | integration-test:
64 | name: Integration Tests
65 | runs-on: ${{ matrix.os }}
66 | needs:
67 | - build
68 | - unit-test
69 | strategy:
70 | fail-fast: false
71 | matrix:
72 | os: [ubuntu-latest, windows-latest, macos-latest]
73 | steps:
74 | - name: Checkout
75 | uses: actions/checkout@1d96c772d19495a3b5c517cd2bc0cb401ea0529f # v4.1.3
76 | - name: Set Node.js 20.x
77 | uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2
78 | with:
79 | node-version: 20.x
80 | cache: yarn
81 | - name: Install Dependencies
82 | run: yarn install --frozen-lockfile
83 | - name: Download Artifact
84 | uses: actions/download-artifact@9c19ed7fe5d278cd354c7dfd5d3b88589c7e2395 # v4.1.6
85 | - name: Run Integration Tests
86 | uses: ./
87 | - name: Graphviz test
88 | run: dot -V
89 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # See CONTRIBUTING.md
2 |
3 | # COMMENT OUT START
4 | node_modules/
5 | lib
6 | # COMMENT OUT END
7 |
8 | # Created by https://www.gitignore.io/api/node
9 | # Edit at https://www.gitignore.io/?templates=node
10 |
11 | ### Node ###
12 | # Logs
13 | logs
14 | *.log
15 | npm-debug.log*
16 | yarn-debug.log*
17 | yarn-error.log*
18 | lerna-debug.log*
19 |
20 | # Diagnostic reports (https://nodejs.org/api/report.html)
21 | report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json
22 |
23 | # Runtime data
24 | pids
25 | *.pid
26 | *.seed
27 | *.pid.lock
28 |
29 | # Directory for instrumented libs generated by jscoverage/JSCover
30 | lib-cov
31 |
32 | # Coverage directory used by tools like istanbul
33 | coverage
34 | *.lcov
35 |
36 | # nyc test coverage
37 | .nyc_output
38 |
39 | # Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files)
40 | .grunt
41 |
42 | # Bower dependency directory (https://bower.io/)
43 | bower_components
44 |
45 | # node-waf configuration
46 | .lock-wscript
47 |
48 | # Compiled binary addons (https://nodejs.org/api/addons.html)
49 | build/Release
50 |
51 | # Dependency directories
52 | # node_modules/
53 | jspm_packages/
54 |
55 | # TypeScript v1 declaration files
56 | typings/
57 |
58 | # TypeScript cache
59 | *.tsbuildinfo
60 |
61 | # Optional npm cache directory
62 | .npm
63 |
64 | # Optional eslint cache
65 | .eslintcache
66 |
67 | # Optional REPL history
68 | .node_repl_history
69 |
70 | # Output of 'npm pack'
71 | *.tgz
72 |
73 | # Yarn Integrity file
74 | .yarn-integrity
75 |
76 | # dotenv environment variables file
77 | .env
78 | .env.test
79 |
80 | # parcel-bundler cache (https://parceljs.org/)
81 | .cache
82 |
83 | # next.js build output
84 | .next
85 |
86 | # nuxt.js build output
87 | .nuxt
88 |
89 | # react / gatsby
90 | public/
91 |
92 | # vuepress build output
93 | .vuepress/dist
94 |
95 | # Serverless directories
96 | .serverless/
97 |
98 | # FuseBox cache
99 | .fusebox/
100 |
101 | # DynamoDB Local files
102 | .dynamodb/
103 |
104 | # End of https://www.gitignore.io/api/node
105 |
--------------------------------------------------------------------------------
/.vscode/settings.json:
--------------------------------------------------------------------------------
1 | {
2 | "editor.formatOnSave": false,
3 | "editor.formatOnPaste": false,
4 | "editor.formatOnType": false,
5 | "editor.codeActionsOnSave": {
6 | "source.fixAll.tslint": "explicit"
7 | },
8 | "typescript.tsdk": "node_modules/typescript/lib"
9 | }
10 |
--------------------------------------------------------------------------------
/CONTRIBUTING.md:
--------------------------------------------------------------------------------
1 | # Contribution Guide
2 |
3 | ## Code in Master
4 |
5 | Install the dependencies
6 |
7 | ```bash
8 | yarn install
9 | ```
10 |
11 | Build the typescript
12 |
13 | ```bash
14 | yarn build
15 | ```
16 |
17 | Run the tests :heavy_check_mark:
18 |
19 | ```bash
20 | yarn test
21 |
22 | PASS src/__test__/installer.spec.ts
23 | class Installer
24 | Supported platforms
25 | Work on "darwin"
26 | ✓ brewInstall method called on "darwin" platform (3ms)
27 | Work on "linux"
28 | ✓ getAptInstall method called on "linux" platform (1ms)
29 | Work on "win32"
30 | ✓ chocoInstall method called on "win32" platform
31 | ...
32 | ```
33 |
34 | ## Publish to a distribution branch
35 |
36 | Actions are run from GitHub repos. We will create a releases branch and only checkin production modules (core in this case).
37 |
38 | Comment out node_modules in .gitignore and create a releases/v1 branch
39 |
40 | ```plain
41 | # comment out in distribution branches
42 | # node_modules/
43 | # lib
44 | ```
45 |
46 | ```bash
47 | git checkout -b releases/v1
48 | git commit -a -m "prod dependencies"
49 | ```
50 |
51 | ```bash
52 | npm prune --production
53 | git add node_modules
54 | git commit -a -m "prod dependencies"
55 | git push origin releases/v1
56 | ```
57 |
58 | Your action is now published! :rocket:
59 |
60 | See the [versioning documentation](https://github.com/actions/toolkit/blob/master/docs/action-versioning.md)
61 |
62 | ## Validate
63 |
64 | You can now validate the action by referencing the releases/v1 branch
65 |
66 | ```yaml
67 | uses: ts-graphviz/setup-graphviz@releases/v1
68 | with:
69 | milliseconds: 1000
70 | ```
71 |
72 | See the [actions tab](https://github.com/actions/javascript-action/actions) for runs of this action! :rocket:
73 |
74 | ## Usage
75 |
76 | After testing you can [create a v1 tag](https://github.com/actions/toolkit/blob/master/docs/action-versioning.md) to reference the stable and tested action
77 |
78 | ```yaml
79 | uses: ts-graphviz/setup-graphviz@v1
80 | ```
81 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 |
2 | The MIT License (MIT)
3 |
4 | Copyright (c) 2019-2025 Yuki Yamazaki
5 |
6 | Permission is hereby granted, free of charge, to any person obtaining a copy
7 | of this software and associated documentation files (the "Software"), to deal
8 | in the Software without restriction, including without limitation the rights
9 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10 | copies of the Software, and to permit persons to whom the Software is
11 | furnished to do so, subject to the following conditions:
12 |
13 | The above copyright notice and this permission notice shall be included in all
14 | copies or substantial portions of the Software.
15 |
16 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22 | SOFTWARE.
23 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # `ts-graphviz/setup-graphviz` action
2 |
3 | [](#contributors-)
4 |
5 |
6 | GitHub Action to set up Graphviz cross-platform(Linux, macOS, Windows).
7 |
8 | ## Example usage
9 |
10 | With `ts-graphviz/setup-graphviz`, you can set up a GitHub Action environment
11 | that allows you to use `Graphviz` on all operating systems.
12 |
13 | ```yml
14 | name: Graphviz CI
15 | on: [push]
16 | jobs:
17 | test:
18 | name: Test on node ${{ matrix.node-version }} and ${{ matrix.os }}
19 | runs-on: ${{ matrix.os }}
20 | strategy:
21 | matrix:
22 | os: [ubuntu-latest, windows-latest, macos-latest]
23 | steps:
24 | - uses: actions/checkout@v4
25 | - name: Setup Graphviz
26 | uses: ts-graphviz/setup-graphviz@v2
27 | ...
28 | # In the steps below this you can use Graphviz dot command.
29 | ```
30 |
31 | If you want a fixed version of Graphviz,
32 | you can specify a specific version for each operating system (not macOS).
33 |
34 | ```yaml
35 | - name: Setup Graphviz
36 | uses: ts-graphviz/setup-graphviz@v2
37 | with:
38 | # graphviz version on Ubuntu.
39 | ubuntu-graphviz-version: '2.42.2-3build2'
40 | # libgraphviz-dev version on Ubuntu.
41 | ubuntu-libgraphvizdev-version: '2.42.2-3build2'
42 | # Skip to run apt update command on Ubuntu.
43 | ubuntu-skip-apt-update: 'true' # default false
44 | # graphviz version on Windows.
45 | windows-graphviz-version: '2.49.3'
46 | # Skip to run brew update command on macOS.
47 | macos-skip-brew-update: 'true' # default false
48 | ```
49 |
50 | ## See Also
51 |
52 | Graphviz-dot Test and Integration
53 |
54 | - [ts-graphviz](https://github.com/ts-graphviz/ts-graphviz)
55 | - Graphviz library for TypeScript.
56 | - [@ts-graphviz/react](https://github.com/ts-graphviz/react)
57 | - Graphviz-dot Renderer for React.
58 | - [jest-graphviz](https://github.com/ts-graphviz/jest-graphviz)
59 | - Jest matchers that supports graphviz integration.
60 |
61 | ## Contributing
62 |
63 | For more info on how to contribute to setup-graphviz, see the [CONTRIBUTING](./CONTRIBUTING.md).
64 |
65 | ## Contributors
66 |
67 | Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):
68 |
69 |
70 |
71 |
72 |
103 |
104 |
105 |
106 |
107 |
108 |
109 | This project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!
110 |
111 | ## License
112 |
113 | This software is released under the MIT License, see [LICENSE](./LICENSE).
114 |
--------------------------------------------------------------------------------
/action.yaml:
--------------------------------------------------------------------------------
1 | name: Setup Graphviz
2 | description: Setup a graphviz environment and add it to the PATH.
3 | author: kamiazya
4 | branding:
5 | icon: arrow-down-circle
6 | color: gray-dark
7 | inputs:
8 | ubuntu-skip-apt-update:
9 | description: |-
10 | Skip to run apt update command on Ubuntu.
11 | required: false
12 | default: 'false'
13 | ubuntu-graphviz-version:
14 | description: |-
15 | graphviz version on Ubuntu.
16 | required: false
17 | ubuntu-libgraphvizdev-version:
18 | description: |-
19 | libgraphviz-dev version on Ubuntu.
20 | required: false
21 | macos-skip-brew-update:
22 | description: |-
23 | Skip to run brew update command on macOS.
24 | required: false
25 | default: 'false'
26 | windows-graphviz-version:
27 | description: |-
28 | graphviz version on Windows.
29 | required: false
30 |
31 | runs:
32 | using: node20
33 | main: lib/main.js
34 |
--------------------------------------------------------------------------------
/biome.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://biomejs.dev/schemas/1.4.1/schema.json",
3 | "vcs": {
4 | "enabled": true,
5 | "clientKind": "git",
6 | "useIgnoreFile": true
7 | },
8 | "files": {
9 | "ignoreUnknown": true,
10 | "include": ["src/**/*"]
11 | },
12 | "organizeImports": {
13 | "enabled": true
14 | },
15 | "formatter": {
16 | "enabled": true,
17 | "indentStyle": "space",
18 | "indentWidth": 2
19 | },
20 | "linter": {
21 | "enabled": true,
22 | "rules": {
23 | "recommended": true,
24 | "suspicious": {
25 | "noExplicitAny": "off"
26 | }
27 | }
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "setup-graphviz",
3 | "version": "2.0.2",
4 | "author": "kamiazya ",
5 | "description": "Setup a graphviz environment.",
6 | "private": true,
7 | "license": "MIT",
8 | "keywords": [
9 | "actions",
10 | "graphviz",
11 | "setup"
12 | ],
13 | "scripts": {
14 | "lint": "biome check src",
15 | "format": "biome check --apply src",
16 | "typecheck": "tsc --noEmit",
17 | "build": "tsc",
18 | "test": "vitest"
19 | },
20 | "dependencies": {
21 | "@actions/core": "^1.2.6",
22 | "@actions/tool-cache": "^2.0.1"
23 | },
24 | "devDependencies": {
25 | "@biomejs/biome": "^1.7.1",
26 | "@types/node": "^20.12.7",
27 | "typescript": "^5.4.5",
28 | "vitest": "^1.5.0"
29 | }
30 | }
31 |
--------------------------------------------------------------------------------
/src/GraphvizInstaller.ts:
--------------------------------------------------------------------------------
1 | import { getBooleanInput, getInput } from "@actions/core";
2 | import { exec } from "@actions/exec";
3 |
4 | export class GraphvizInstaller {
5 | public async get() {
6 | await this.install();
7 | }
8 | private async install() {
9 | switch (process.platform) {
10 | case "darwin":
11 | await this.brewInstall();
12 | break;
13 | case "linux":
14 | await this.getAptInstall();
15 | break;
16 | case "win32":
17 | await this.chocoInstall();
18 | break;
19 | default:
20 | throw new Error(`platform '${process.platform}' is not yet supported`);
21 | }
22 | }
23 |
24 | private async brewInstall() {
25 | const skipBrewUpdate = getBooleanInput("macos-skip-brew-update");
26 | if (skipBrewUpdate === false) {
27 | await exec("brew", ["update"]);
28 | }
29 | await exec("brew", ["install", "graphviz"]);
30 | }
31 |
32 | private async getAptInstall() {
33 | const skipAptUpdate = getBooleanInput("ubuntu-skip-apt-update");
34 | const graphvizVersion = getInput("ubuntu-graphviz-version");
35 | const libgraphvizdevVersion = getInput("ubuntu-libgraphvizdev-version");
36 | if (skipAptUpdate === false) {
37 | await exec("sudo", ["apt-get", "update"]);
38 | }
39 | await exec("sudo", [
40 | "apt-get",
41 | "install",
42 | "-y",
43 | graphvizVersion ? `graphviz=${graphvizVersion}` : "graphviz",
44 | // https://github.com/pygraphviz/pygraphviz/issues/163#issuecomment-570770201
45 | libgraphvizdevVersion
46 | ? `libgraphviz-dev=${libgraphvizdevVersion}`
47 | : "libgraphviz-dev",
48 | "pkg-config",
49 | ]);
50 | }
51 |
52 | private async chocoInstall() {
53 | const graphvizVersion = getInput("windows-graphviz-version");
54 | await exec("choco", [
55 | "install",
56 | "graphviz",
57 | ...(graphvizVersion ? [`--version=${graphvizVersion}`] : []),
58 | ]);
59 | }
60 | }
61 |
--------------------------------------------------------------------------------
/src/__tests__/GraphvizInstaller.spec.ts:
--------------------------------------------------------------------------------
1 | import {
2 | type MockInstance,
3 | afterAll,
4 | beforeAll,
5 | beforeEach,
6 | describe,
7 | expect,
8 | it,
9 | test,
10 | vi,
11 | } from "vitest";
12 | vi.mock("@actions/core");
13 | vi.mock("@actions/exec");
14 |
15 | import { getBooleanInput, getInput } from "@actions/core";
16 | import * as exec from "@actions/exec";
17 | import { GraphvizInstaller } from "../GraphvizInstaller";
18 |
19 | describe("class GraphvizInstaller", () => {
20 | let installer: GraphvizInstaller;
21 | const originalPlatform = process.platform;
22 |
23 | const setPlatform = (platform: NodeJS.Platform) => {
24 | Object.defineProperty(process, "platform", { value: platform });
25 | };
26 |
27 | const mockNamedInputs = (
28 | mock: MockInstance,
29 | name: string,
30 | value: string | boolean,
31 | ) => {
32 | mock.mockImplementation((input: string) => {
33 | if (input === name) return value;
34 | return typeof value === "string" ? "" : false;
35 | });
36 | };
37 |
38 | beforeEach(() => {
39 | installer = new GraphvizInstaller();
40 | vi.clearAllMocks();
41 | });
42 |
43 | describe("Supported platforms", () => {
44 | describe('Work on "darwin"', () => {
45 | beforeAll(() => {
46 | setPlatform("darwin");
47 | });
48 |
49 | it('brewInstall method called on "darwin" platform', async () => {
50 | const brewInstall = vi.fn();
51 | // eslint-disable-next-line @typescript-eslint/no-explicit-any
52 | (installer as any).brewInstall = brewInstall;
53 |
54 | await installer.get();
55 |
56 | expect(brewInstall.mock.calls.length).toBe(1);
57 | });
58 |
59 | describe("inputs works", () => {
60 | test("default", async () => {
61 | mockNamedInputs(
62 | getBooleanInput as unknown as MockInstance,
63 | "macos-skip-brew-update",
64 | false,
65 | );
66 | const execSpy = vi.spyOn(exec, "exec");
67 |
68 | await installer.get();
69 |
70 | expect(execSpy).toBeCalledTimes(2);
71 | expect(execSpy.mock.calls[0]).toMatchInlineSnapshot(`
72 | [
73 | "brew",
74 | [
75 | "update",
76 | ],
77 | ]
78 | `);
79 | expect(execSpy.mock.calls[1]).toMatchInlineSnapshot(`
80 | [
81 | "brew",
82 | [
83 | "install",
84 | "graphviz",
85 | ],
86 | ]
87 | `);
88 | });
89 | test("skip brew update", async () => {
90 | mockNamedInputs(
91 | getBooleanInput as unknown as MockInstance,
92 | "macos-skip-brew-update",
93 | true,
94 | );
95 | const execSpy = vi.spyOn(exec, "exec");
96 |
97 | await installer.get();
98 |
99 | expect(execSpy).toBeCalledTimes(1);
100 | expect(execSpy.mock.calls[0]).toMatchInlineSnapshot(`
101 | [
102 | "brew",
103 | [
104 | "install",
105 | "graphviz",
106 | ],
107 | ]
108 | `);
109 | });
110 | });
111 | });
112 |
113 | describe('Work on "linux"', () => {
114 | beforeAll(() => {
115 | setPlatform("linux");
116 | });
117 |
118 | it('getAptInstall method called on "linux" platform', async () => {
119 | const getAptInstall = vi.fn();
120 | // eslint-disable-next-line @typescript-eslint/no-explicit-any
121 | (installer as any).getAptInstall = getAptInstall;
122 |
123 | await installer.get();
124 |
125 | expect(getAptInstall.mock.calls.length).toBe(1);
126 | });
127 |
128 | describe("inputs works", () => {
129 | test("skip apt update", async () => {
130 | mockNamedInputs(
131 | getBooleanInput as unknown as MockInstance,
132 | "ubuntu-skip-apt-update",
133 | true,
134 | );
135 | const execSpy = vi.spyOn(exec, "exec");
136 |
137 | await installer.get();
138 |
139 | expect(execSpy.mock.calls).toMatchInlineSnapshot(`
140 | [
141 | [
142 | "sudo",
143 | [
144 | "apt-get",
145 | "install",
146 | "-y",
147 | "graphviz",
148 | "libgraphviz-dev",
149 | "pkg-config",
150 | ],
151 | ],
152 | ]
153 | `);
154 | });
155 |
156 | test("graphviz version not set", async () => {
157 | (getInput as unknown as MockInstance).mockReturnValue("");
158 | (getBooleanInput as unknown as MockInstance).mockReturnValue(false);
159 | const execSpy = vi.spyOn(exec, "exec");
160 |
161 | await installer.get();
162 |
163 | expect(execSpy.mock.calls).toMatchInlineSnapshot(`
164 | [
165 | [
166 | "sudo",
167 | [
168 | "apt-get",
169 | "update",
170 | ],
171 | ],
172 | [
173 | "sudo",
174 | [
175 | "apt-get",
176 | "install",
177 | "-y",
178 | "graphviz",
179 | "libgraphviz-dev",
180 | "pkg-config",
181 | ],
182 | ],
183 | ]
184 | `);
185 | });
186 |
187 | test('input graphviz version set to "1.1.1" and libgraphviz_dev version set to "2.2.2"', async () => {
188 | (getInput as unknown as MockInstance).mockImplementation((input) => {
189 | switch (input) {
190 | case "ubuntu-graphviz-version":
191 | return "1.1.1";
192 | case "ubuntu-libgraphvizdev-version":
193 | return "2.2.2";
194 | default:
195 | return "";
196 | }
197 | });
198 | (getBooleanInput as unknown as MockInstance).mockReturnValue(false);
199 | const execSpy = vi.spyOn(exec, "exec");
200 |
201 | await installer.get();
202 |
203 | expect(execSpy.mock.calls).toMatchInlineSnapshot(`
204 | [
205 | [
206 | "sudo",
207 | [
208 | "apt-get",
209 | "update",
210 | ],
211 | ],
212 | [
213 | "sudo",
214 | [
215 | "apt-get",
216 | "install",
217 | "-y",
218 | "graphviz=1.1.1",
219 | "libgraphviz-dev=2.2.2",
220 | "pkg-config",
221 | ],
222 | ],
223 | ]
224 | `);
225 | });
226 |
227 | test('input graphviz version set to "3.3.3" and libgraphviz_dev version not set', async () => {
228 | (getInput as unknown as MockInstance).mockImplementation((input) => {
229 | switch (input) {
230 | case "ubuntu-graphviz-version":
231 | return "3.3.3";
232 | default:
233 | return "";
234 | }
235 | });
236 | (getBooleanInput as unknown as MockInstance).mockReturnValue(false);
237 | const execSpy = vi.spyOn(exec, "exec");
238 |
239 | await installer.get();
240 |
241 | expect(execSpy.mock.calls).toMatchInlineSnapshot(`
242 | [
243 | [
244 | "sudo",
245 | [
246 | "apt-get",
247 | "update",
248 | ],
249 | ],
250 | [
251 | "sudo",
252 | [
253 | "apt-get",
254 | "install",
255 | "-y",
256 | "graphviz=3.3.3",
257 | "libgraphviz-dev",
258 | "pkg-config",
259 | ],
260 | ],
261 | ]
262 | `);
263 | });
264 |
265 | test("input graphviz not set and libgraphviz_dev set to 4.4.4", async () => {
266 | (getInput as unknown as MockInstance).mockImplementation((input) => {
267 | switch (input) {
268 | case "ubuntu-libgraphvizdev-version":
269 | return "4.4.4";
270 | default:
271 | return "";
272 | }
273 | });
274 | (getBooleanInput as unknown as MockInstance).mockReturnValue(false);
275 | const execSpy = vi.spyOn(exec, "exec");
276 |
277 | await installer.get();
278 |
279 | expect(execSpy.mock.calls).toMatchInlineSnapshot(`
280 | [
281 | [
282 | "sudo",
283 | [
284 | "apt-get",
285 | "update",
286 | ],
287 | ],
288 | [
289 | "sudo",
290 | [
291 | "apt-get",
292 | "install",
293 | "-y",
294 | "graphviz",
295 | "libgraphviz-dev=4.4.4",
296 | "pkg-config",
297 | ],
298 | ],
299 | ]
300 | `);
301 | });
302 | });
303 | });
304 |
305 | describe('Work on "win32"', () => {
306 | beforeAll(() => {
307 | setPlatform("win32");
308 | });
309 |
310 | it('chocoInstall method called on "win32" platform', async () => {
311 | const chocoInstall = vi.fn();
312 | // eslint-disable-next-line @typescript-eslint/no-explicit-any
313 | (installer as any).chocoInstall = chocoInstall;
314 |
315 | await installer.get();
316 |
317 | expect(chocoInstall.mock.calls.length).toBe(1);
318 | });
319 |
320 | describe("inputs works", () => {
321 | test("graphviz version not set", async () => {
322 | (getInput as unknown as MockInstance).mockReturnValue("");
323 | const execSpy = vi.spyOn(exec, "exec");
324 |
325 | await installer.get();
326 |
327 | expect(execSpy.mock.calls).toMatchInlineSnapshot(`
328 | [
329 | [
330 | "choco",
331 | [
332 | "install",
333 | "graphviz",
334 | ],
335 | ],
336 | ]
337 | `);
338 | });
339 |
340 | test('graphviz version seted to "1.1.1"', async () => {
341 | mockNamedInputs(
342 | getInput as unknown as MockInstance,
343 | "windows-graphviz-version",
344 | "1.1.1",
345 | );
346 | const execSpy = vi.spyOn(exec, "exec");
347 |
348 | await installer.get();
349 |
350 | expect(execSpy.mock.calls).toMatchInlineSnapshot(`
351 | [
352 | [
353 | "choco",
354 | [
355 | "install",
356 | "graphviz",
357 | "--version=1.1.1",
358 | ],
359 | ],
360 | ]
361 | `);
362 | });
363 | });
364 | });
365 | });
366 |
367 | describe("Unsupported platforms", () => {
368 | const unsupportedPlatforms: NodeJS.Platform[] = [
369 | "aix",
370 | "android",
371 | "freebsd",
372 | "openbsd",
373 | "sunos",
374 | "cygwin",
375 | "netbsd",
376 | ];
377 | test.each(unsupportedPlatforms)(
378 | '"%s" is not supported',
379 | async (platform: NodeJS.Platform) => {
380 | setPlatform(platform);
381 | await expect(installer.get()).rejects.toThrow(
382 | `platform '${platform}' is not yet supported`,
383 | );
384 | },
385 | );
386 | });
387 |
388 | afterAll(() => {
389 | Object.defineProperty(process, "platform", {
390 | value: originalPlatform,
391 | });
392 | });
393 | });
394 |
--------------------------------------------------------------------------------
/src/main.ts:
--------------------------------------------------------------------------------
1 | import { setFailed } from "@actions/core";
2 | import { GraphvizInstaller } from "./GraphvizInstaller";
3 |
4 | async function run() {
5 | try {
6 | const installer = new GraphvizInstaller();
7 | await installer.get();
8 | } catch (error) {
9 | setFailed((error as Error).message);
10 | }
11 | }
12 |
13 | run();
14 |
--------------------------------------------------------------------------------
/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "target": "ES2017",
4 | "module": "CommonJS",
5 | "strict": true,
6 | "esModuleInterop": true,
7 | "forceConsistentCasingInFileNames": true,
8 | "moduleResolution": "Node",
9 | "rootDir": "src",
10 | "outDir": "lib"
11 | },
12 | "include": ["src"],
13 | "exclude": [
14 | "node_modules",
15 | "**/*.test.ts",
16 | "**/*.spec.ts"
17 | ]
18 | }
19 |
--------------------------------------------------------------------------------
/yarn.lock:
--------------------------------------------------------------------------------
1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
2 | # yarn lockfile v1
3 |
4 |
5 | "@actions/core@^1.2.6":
6 | version "1.10.1"
7 | resolved "https://registry.yarnpkg.com/@actions/core/-/core-1.10.1.tgz#61108e7ac40acae95ee36da074fa5850ca4ced8a"
8 | integrity sha512-3lBR9EDAY+iYIpTnTIXmWcNbX3T2kCkAEQGIQx4NVQ0575nk2k3GRZDTPQG+vVtS2izSLmINlxXf0uLtnrTP+g==
9 | dependencies:
10 | "@actions/http-client" "^2.0.1"
11 | uuid "^8.3.2"
12 |
13 | "@actions/exec@^1.0.0":
14 | version "1.1.1"
15 | resolved "https://registry.yarnpkg.com/@actions/exec/-/exec-1.1.1.tgz#2e43f28c54022537172819a7cf886c844221a611"
16 | integrity sha512-+sCcHHbVdk93a0XT19ECtO/gIXoxvdsgQLzb2fE2/5sIZmWQuluYyjPQtrtTHdU1YzTZ7bAPN4sITq2xi1679w==
17 | dependencies:
18 | "@actions/io" "^1.0.1"
19 |
20 | "@actions/http-client@^2.0.1":
21 | version "2.2.1"
22 | resolved "https://registry.yarnpkg.com/@actions/http-client/-/http-client-2.2.1.tgz#ed3fe7a5a6d317ac1d39886b0bb999ded229bb38"
23 | integrity sha512-KhC/cZsq7f8I4LfZSJKgCvEwfkE8o1538VoBeoGzokVLLnbFDEAdFD3UhoMklxo2un9NJVBdANOresx7vTHlHw==
24 | dependencies:
25 | tunnel "^0.0.6"
26 | undici "^5.25.4"
27 |
28 | "@actions/io@^1.0.1", "@actions/io@^1.1.1":
29 | version "1.1.3"
30 | resolved "https://registry.yarnpkg.com/@actions/io/-/io-1.1.3.tgz#4cdb6254da7962b07473ff5c335f3da485d94d71"
31 | integrity sha512-wi9JjgKLYS7U/z8PPbco+PvTb/nRWjeoFlJ1Qer83k/3C5PHQi28hiVdeE2kHXmIL99mQFawx8qt/JPjZilJ8Q==
32 |
33 | "@actions/tool-cache@^2.0.1":
34 | version "2.0.1"
35 | resolved "https://registry.yarnpkg.com/@actions/tool-cache/-/tool-cache-2.0.1.tgz#8a649b9c07838d9d750c9864814e66a7660ab720"
36 | integrity sha512-iPU+mNwrbA8jodY8eyo/0S/QqCKDajiR8OxWTnSk/SnYg0sj8Hp4QcUEVC1YFpHWXtrfbQrE13Jz4k4HXJQKcA==
37 | dependencies:
38 | "@actions/core" "^1.2.6"
39 | "@actions/exec" "^1.0.0"
40 | "@actions/http-client" "^2.0.1"
41 | "@actions/io" "^1.1.1"
42 | semver "^6.1.0"
43 | uuid "^3.3.2"
44 |
45 | "@biomejs/biome@^1.7.1":
46 | version "1.7.1"
47 | resolved "https://registry.yarnpkg.com/@biomejs/biome/-/biome-1.7.1.tgz#db64c9640ff5a60396c40dc94ce58010f8bacd4e"
48 | integrity sha512-wb2UNoFXcgaMdKXKT5ytsYntaogl2FSTjDt20CZynF3v7OXQUcIpTrr+be3XoOGpoZRj3Ytq9TSpmplUREXmeA==
49 | optionalDependencies:
50 | "@biomejs/cli-darwin-arm64" "1.7.1"
51 | "@biomejs/cli-darwin-x64" "1.7.1"
52 | "@biomejs/cli-linux-arm64" "1.7.1"
53 | "@biomejs/cli-linux-arm64-musl" "1.7.1"
54 | "@biomejs/cli-linux-x64" "1.7.1"
55 | "@biomejs/cli-linux-x64-musl" "1.7.1"
56 | "@biomejs/cli-win32-arm64" "1.7.1"
57 | "@biomejs/cli-win32-x64" "1.7.1"
58 |
59 | "@biomejs/cli-darwin-arm64@1.7.1":
60 | version "1.7.1"
61 | resolved "https://registry.yarnpkg.com/@biomejs/cli-darwin-arm64/-/cli-darwin-arm64-1.7.1.tgz#5d31b472a537054f8032456f928cb76785877e3c"
62 | integrity sha512-qfLrIIB58dkgiY/1tgG6fSCBK22PZaSIf6blweZBsG6iMij05mEuJt50ne+zPnNFNUmt8t43NC/qOXT3iFHQBA==
63 |
64 | "@biomejs/cli-darwin-x64@1.7.1":
65 | version "1.7.1"
66 | resolved "https://registry.yarnpkg.com/@biomejs/cli-darwin-x64/-/cli-darwin-x64-1.7.1.tgz#868dd2a9285c7ec73c425eab5a0923d58477409f"
67 | integrity sha512-OGeyNsEcp5VnKbF9/TBjPCTHNEOm7oHegEve07U3KZmzqfpw2Oe3i9DVW8t6vvj1TYbrwWYCld25H34kBDY7Vg==
68 |
69 | "@biomejs/cli-linux-arm64-musl@1.7.1":
70 | version "1.7.1"
71 | resolved "https://registry.yarnpkg.com/@biomejs/cli-linux-arm64-musl/-/cli-linux-arm64-musl-1.7.1.tgz#22b5c6130d0e5da3e315da8e3975b49491102bea"
72 | integrity sha512-giH0/CzLOJ+wbxLxd5Shnr5xQf5fGnTRWLDe3lzjaF7IplVydNCEeZJtncB01SvyA6DAFJsvQ4LNxzAOQfEVCg==
73 |
74 | "@biomejs/cli-linux-arm64@1.7.1":
75 | version "1.7.1"
76 | resolved "https://registry.yarnpkg.com/@biomejs/cli-linux-arm64/-/cli-linux-arm64-1.7.1.tgz#495530cf404c707d8938ce10d0324ee3f7a0298a"
77 | integrity sha512-MQDf5wErj1iBvlcxCyOa0XqZYN8WJrupVgbNnqhntO3yVATg8GxduVUn1fDSaolznkDRsj7Pz3Xu1esBFwvfmg==
78 |
79 | "@biomejs/cli-linux-x64-musl@1.7.1":
80 | version "1.7.1"
81 | resolved "https://registry.yarnpkg.com/@biomejs/cli-linux-x64-musl/-/cli-linux-x64-musl-1.7.1.tgz#db3cd5d239deba606d72403b547344c41f87dd2b"
82 | integrity sha512-ySNDtPhsLxU125IFHHAxfpoHBpkM56s4mEXeO70GZtgZay/o1h8IUPWCWf5Z7gKgc4jwgYN1U1U9xabI3hZVAg==
83 |
84 | "@biomejs/cli-linux-x64@1.7.1":
85 | version "1.7.1"
86 | resolved "https://registry.yarnpkg.com/@biomejs/cli-linux-x64/-/cli-linux-x64-1.7.1.tgz#6ac6e680778a5b9125f2aa9685d7d14de2fa7319"
87 | integrity sha512-3wmCsGcC3KZ4pfTknXHfyMMlXPMhgfXVAcG5GlrR+Tq2JGiAw0EUydaLpsSBEbcG7IxH6OiUZEJZ95kAycCHBA==
88 |
89 | "@biomejs/cli-win32-arm64@1.7.1":
90 | version "1.7.1"
91 | resolved "https://registry.yarnpkg.com/@biomejs/cli-win32-arm64/-/cli-win32-arm64-1.7.1.tgz#124890636bddb112a25af64a561feaca81a3664b"
92 | integrity sha512-8hIDakEqZn0i6+388noYKdZ0ZrovTwnvMU/Qp/oJou0G7EPVdXupOe0oxiQSdRN0W7f6CS/yjPCYuVGzDG6r0g==
93 |
94 | "@biomejs/cli-win32-x64@1.7.1":
95 | version "1.7.1"
96 | resolved "https://registry.yarnpkg.com/@biomejs/cli-win32-x64/-/cli-win32-x64-1.7.1.tgz#34e9daa9f30372acb39f5e1bdf47cbfff22419ba"
97 | integrity sha512-3W9k3uH6Ea6VOpAS9xkkAlS0LTfnGQjmIUCegZ8SDtK2NgJ1gO+qdEkGJb0ltahusFTN1QxJ107dM7ASA9IUEg==
98 |
99 | "@esbuild/aix-ppc64@0.20.2":
100 | version "0.20.2"
101 | resolved "https://registry.yarnpkg.com/@esbuild/aix-ppc64/-/aix-ppc64-0.20.2.tgz#a70f4ac11c6a1dfc18b8bbb13284155d933b9537"
102 | integrity sha512-D+EBOJHXdNZcLJRBkhENNG8Wji2kgc9AZ9KiPr1JuZjsNtyHzrsfLRrY0tk2H2aoFu6RANO1y1iPPUCDYWkb5g==
103 |
104 | "@esbuild/android-arm64@0.20.2":
105 | version "0.20.2"
106 | resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.20.2.tgz#db1c9202a5bc92ea04c7b6840f1bbe09ebf9e6b9"
107 | integrity sha512-mRzjLacRtl/tWU0SvD8lUEwb61yP9cqQo6noDZP/O8VkwafSYwZ4yWy24kan8jE/IMERpYncRt2dw438LP3Xmg==
108 |
109 | "@esbuild/android-arm@0.20.2":
110 | version "0.20.2"
111 | resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.20.2.tgz#3b488c49aee9d491c2c8f98a909b785870d6e995"
112 | integrity sha512-t98Ra6pw2VaDhqNWO2Oph2LXbz/EJcnLmKLGBJwEwXX/JAN83Fym1rU8l0JUWK6HkIbWONCSSatf4sf2NBRx/w==
113 |
114 | "@esbuild/android-x64@0.20.2":
115 | version "0.20.2"
116 | resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.20.2.tgz#3b1628029e5576249d2b2d766696e50768449f98"
117 | integrity sha512-btzExgV+/lMGDDa194CcUQm53ncxzeBrWJcncOBxuC6ndBkKxnHdFJn86mCIgTELsooUmwUm9FkhSp5HYu00Rg==
118 |
119 | "@esbuild/darwin-arm64@0.20.2":
120 | version "0.20.2"
121 | resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.20.2.tgz#6e8517a045ddd86ae30c6608c8475ebc0c4000bb"
122 | integrity sha512-4J6IRT+10J3aJH3l1yzEg9y3wkTDgDk7TSDFX+wKFiWjqWp/iCfLIYzGyasx9l0SAFPT1HwSCR+0w/h1ES/MjA==
123 |
124 | "@esbuild/darwin-x64@0.20.2":
125 | version "0.20.2"
126 | resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.20.2.tgz#90ed098e1f9dd8a9381695b207e1cff45540a0d0"
127 | integrity sha512-tBcXp9KNphnNH0dfhv8KYkZhjc+H3XBkF5DKtswJblV7KlT9EI2+jeA8DgBjp908WEuYll6pF+UStUCfEpdysA==
128 |
129 | "@esbuild/freebsd-arm64@0.20.2":
130 | version "0.20.2"
131 | resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.20.2.tgz#d71502d1ee89a1130327e890364666c760a2a911"
132 | integrity sha512-d3qI41G4SuLiCGCFGUrKsSeTXyWG6yem1KcGZVS+3FYlYhtNoNgYrWcvkOoaqMhwXSMrZRl69ArHsGJ9mYdbbw==
133 |
134 | "@esbuild/freebsd-x64@0.20.2":
135 | version "0.20.2"
136 | resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.20.2.tgz#aa5ea58d9c1dd9af688b8b6f63ef0d3d60cea53c"
137 | integrity sha512-d+DipyvHRuqEeM5zDivKV1KuXn9WeRX6vqSqIDgwIfPQtwMP4jaDsQsDncjTDDsExT4lR/91OLjRo8bmC1e+Cw==
138 |
139 | "@esbuild/linux-arm64@0.20.2":
140 | version "0.20.2"
141 | resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.20.2.tgz#055b63725df678379b0f6db9d0fa85463755b2e5"
142 | integrity sha512-9pb6rBjGvTFNira2FLIWqDk/uaf42sSyLE8j1rnUpuzsODBq7FvpwHYZxQ/It/8b+QOS1RYfqgGFNLRI+qlq2A==
143 |
144 | "@esbuild/linux-arm@0.20.2":
145 | version "0.20.2"
146 | resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.20.2.tgz#76b3b98cb1f87936fbc37f073efabad49dcd889c"
147 | integrity sha512-VhLPeR8HTMPccbuWWcEUD1Az68TqaTYyj6nfE4QByZIQEQVWBB8vup8PpR7y1QHL3CpcF6xd5WVBU/+SBEvGTg==
148 |
149 | "@esbuild/linux-ia32@0.20.2":
150 | version "0.20.2"
151 | resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.20.2.tgz#c0e5e787c285264e5dfc7a79f04b8b4eefdad7fa"
152 | integrity sha512-o10utieEkNPFDZFQm9CoP7Tvb33UutoJqg3qKf1PWVeeJhJw0Q347PxMvBgVVFgouYLGIhFYG0UGdBumROyiig==
153 |
154 | "@esbuild/linux-loong64@0.20.2":
155 | version "0.20.2"
156 | resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.20.2.tgz#a6184e62bd7cdc63e0c0448b83801001653219c5"
157 | integrity sha512-PR7sp6R/UC4CFVomVINKJ80pMFlfDfMQMYynX7t1tNTeivQ6XdX5r2XovMmha/VjR1YN/HgHWsVcTRIMkymrgQ==
158 |
159 | "@esbuild/linux-mips64el@0.20.2":
160 | version "0.20.2"
161 | resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.20.2.tgz#d08e39ce86f45ef8fc88549d29c62b8acf5649aa"
162 | integrity sha512-4BlTqeutE/KnOiTG5Y6Sb/Hw6hsBOZapOVF6njAESHInhlQAghVVZL1ZpIctBOoTFbQyGW+LsVYZ8lSSB3wkjA==
163 |
164 | "@esbuild/linux-ppc64@0.20.2":
165 | version "0.20.2"
166 | resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.20.2.tgz#8d252f0b7756ffd6d1cbde5ea67ff8fd20437f20"
167 | integrity sha512-rD3KsaDprDcfajSKdn25ooz5J5/fWBylaaXkuotBDGnMnDP1Uv5DLAN/45qfnf3JDYyJv/ytGHQaziHUdyzaAg==
168 |
169 | "@esbuild/linux-riscv64@0.20.2":
170 | version "0.20.2"
171 | resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.20.2.tgz#19f6dcdb14409dae607f66ca1181dd4e9db81300"
172 | integrity sha512-snwmBKacKmwTMmhLlz/3aH1Q9T8v45bKYGE3j26TsaOVtjIag4wLfWSiZykXzXuE1kbCE+zJRmwp+ZbIHinnVg==
173 |
174 | "@esbuild/linux-s390x@0.20.2":
175 | version "0.20.2"
176 | resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.20.2.tgz#3c830c90f1a5d7dd1473d5595ea4ebb920988685"
177 | integrity sha512-wcWISOobRWNm3cezm5HOZcYz1sKoHLd8VL1dl309DiixxVFoFe/o8HnwuIwn6sXre88Nwj+VwZUvJf4AFxkyrQ==
178 |
179 | "@esbuild/linux-x64@0.20.2":
180 | version "0.20.2"
181 | resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.20.2.tgz#86eca35203afc0d9de0694c64ec0ab0a378f6fff"
182 | integrity sha512-1MdwI6OOTsfQfek8sLwgyjOXAu+wKhLEoaOLTjbijk6E2WONYpH9ZU2mNtR+lZ2B4uwr+usqGuVfFT9tMtGvGw==
183 |
184 | "@esbuild/netbsd-x64@0.20.2":
185 | version "0.20.2"
186 | resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.20.2.tgz#e771c8eb0e0f6e1877ffd4220036b98aed5915e6"
187 | integrity sha512-K8/DhBxcVQkzYc43yJXDSyjlFeHQJBiowJ0uVL6Tor3jGQfSGHNNJcWxNbOI8v5k82prYqzPuwkzHt3J1T1iZQ==
188 |
189 | "@esbuild/openbsd-x64@0.20.2":
190 | version "0.20.2"
191 | resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.20.2.tgz#9a795ae4b4e37e674f0f4d716f3e226dd7c39baf"
192 | integrity sha512-eMpKlV0SThJmmJgiVyN9jTPJ2VBPquf6Kt/nAoo6DgHAoN57K15ZghiHaMvqjCye/uU4X5u3YSMgVBI1h3vKrQ==
193 |
194 | "@esbuild/sunos-x64@0.20.2":
195 | version "0.20.2"
196 | resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.20.2.tgz#7df23b61a497b8ac189def6e25a95673caedb03f"
197 | integrity sha512-2UyFtRC6cXLyejf/YEld4Hajo7UHILetzE1vsRcGL3earZEW77JxrFjH4Ez2qaTiEfMgAXxfAZCm1fvM/G/o8w==
198 |
199 | "@esbuild/win32-arm64@0.20.2":
200 | version "0.20.2"
201 | resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.20.2.tgz#f1ae5abf9ca052ae11c1bc806fb4c0f519bacf90"
202 | integrity sha512-GRibxoawM9ZCnDxnP3usoUDO9vUkpAxIIZ6GQI+IlVmr5kP3zUq+l17xELTHMWTWzjxa2guPNyrpq1GWmPvcGQ==
203 |
204 | "@esbuild/win32-ia32@0.20.2":
205 | version "0.20.2"
206 | resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.20.2.tgz#241fe62c34d8e8461cd708277813e1d0ba55ce23"
207 | integrity sha512-HfLOfn9YWmkSKRQqovpnITazdtquEW8/SoHW7pWpuEeguaZI4QnCRW6b+oZTztdBnZOS2hqJ6im/D5cPzBTTlQ==
208 |
209 | "@esbuild/win32-x64@0.20.2":
210 | version "0.20.2"
211 | resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.20.2.tgz#9c907b21e30a52db959ba4f80bb01a0cc403d5cc"
212 | integrity sha512-N49X4lJX27+l9jbLKSqZ6bKNjzQvHaT8IIFUy+YIqmXQdjYCToGWwOItDrfby14c78aDd5NHQl29xingXfCdLQ==
213 |
214 | "@fastify/busboy@^2.0.0":
215 | version "2.1.1"
216 | resolved "https://registry.yarnpkg.com/@fastify/busboy/-/busboy-2.1.1.tgz#b9da6a878a371829a0502c9b6c1c143ef6663f4d"
217 | integrity sha512-vBZP4NlzfOlerQTnba4aqZoMhE/a9HY7HRqoOPaETQcSQuWEIyZMHGfVu6w9wGtGK5fED5qRs2DteVCjOH60sA==
218 |
219 | "@jest/schemas@^29.6.3":
220 | version "29.6.3"
221 | resolved "https://registry.yarnpkg.com/@jest/schemas/-/schemas-29.6.3.tgz#430b5ce8a4e0044a7e3819663305a7b3091c8e03"
222 | integrity sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==
223 | dependencies:
224 | "@sinclair/typebox" "^0.27.8"
225 |
226 | "@jridgewell/sourcemap-codec@^1.4.15":
227 | version "1.4.15"
228 | resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz#d7c6e6755c78567a951e04ab52ef0fd26de59f32"
229 | integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==
230 |
231 | "@rollup/rollup-android-arm-eabi@4.16.4":
232 | version "4.16.4"
233 | resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.16.4.tgz#5e8930291f1e5ead7fb1171d53ba5c87718de062"
234 | integrity sha512-GkhjAaQ8oUTOKE4g4gsZ0u8K/IHU1+2WQSgS1TwTcYvL+sjbaQjNHFXbOJ6kgqGHIO1DfUhI/Sphi9GkRT9K+Q==
235 |
236 | "@rollup/rollup-android-arm64@4.16.4":
237 | version "4.16.4"
238 | resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.16.4.tgz#ffb84f1359c04ec8a022a97110e18a5600f5f638"
239 | integrity sha512-Bvm6D+NPbGMQOcxvS1zUl8H7DWlywSXsphAeOnVeiZLQ+0J6Is8T7SrjGTH29KtYkiY9vld8ZnpV3G2EPbom+w==
240 |
241 | "@rollup/rollup-darwin-arm64@4.16.4":
242 | version "4.16.4"
243 | resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.16.4.tgz#b2fcee8d4806a0b1b9185ac038cc428ddedce9f4"
244 | integrity sha512-i5d64MlnYBO9EkCOGe5vPR/EeDwjnKOGGdd7zKFhU5y8haKhQZTN2DgVtpODDMxUr4t2K90wTUJg7ilgND6bXw==
245 |
246 | "@rollup/rollup-darwin-x64@4.16.4":
247 | version "4.16.4"
248 | resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.16.4.tgz#fcb25ccbaa3dd33a6490e9d1c64bab2e0e16b932"
249 | integrity sha512-WZupV1+CdUYehaZqjaFTClJI72fjJEgTXdf4NbW69I9XyvdmztUExBtcI2yIIU6hJtYvtwS6pkTkHJz+k08mAQ==
250 |
251 | "@rollup/rollup-linux-arm-gnueabihf@4.16.4":
252 | version "4.16.4"
253 | resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.16.4.tgz#40d46bdfe667e5eca31bf40047460e326d2e26bb"
254 | integrity sha512-ADm/xt86JUnmAfA9mBqFcRp//RVRt1ohGOYF6yL+IFCYqOBNwy5lbEK05xTsEoJq+/tJzg8ICUtS82WinJRuIw==
255 |
256 | "@rollup/rollup-linux-arm-musleabihf@4.16.4":
257 | version "4.16.4"
258 | resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.16.4.tgz#7741df2448c11c56588b50835dbfe91b1a10b375"
259 | integrity sha512-tJfJaXPiFAG+Jn3cutp7mCs1ePltuAgRqdDZrzb1aeE3TktWWJ+g7xK9SNlaSUFw6IU4QgOxAY4rA+wZUT5Wfg==
260 |
261 | "@rollup/rollup-linux-arm64-gnu@4.16.4":
262 | version "4.16.4"
263 | resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.16.4.tgz#0a23b02d2933e4c4872ad18d879890b6a4a295df"
264 | integrity sha512-7dy1BzQkgYlUTapDTvK997cgi0Orh5Iu7JlZVBy1MBURk7/HSbHkzRnXZa19ozy+wwD8/SlpJnOOckuNZtJR9w==
265 |
266 | "@rollup/rollup-linux-arm64-musl@4.16.4":
267 | version "4.16.4"
268 | resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.16.4.tgz#e37ef259358aa886cc07d782220a4fb83c1e6970"
269 | integrity sha512-zsFwdUw5XLD1gQe0aoU2HVceI6NEW7q7m05wA46eUAyrkeNYExObfRFQcvA6zw8lfRc5BHtan3tBpo+kqEOxmg==
270 |
271 | "@rollup/rollup-linux-powerpc64le-gnu@4.16.4":
272 | version "4.16.4"
273 | resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.16.4.tgz#8c69218b6de05ee2ba211664a2d2ac1e54e43f94"
274 | integrity sha512-p8C3NnxXooRdNrdv6dBmRTddEapfESEUflpICDNKXpHvTjRRq1J82CbU5G3XfebIZyI3B0s074JHMWD36qOW6w==
275 |
276 | "@rollup/rollup-linux-riscv64-gnu@4.16.4":
277 | version "4.16.4"
278 | resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.16.4.tgz#d32727dab8f538d9a4a7c03bcf58c436aecd0139"
279 | integrity sha512-Lh/8ckoar4s4Id2foY7jNgitTOUQczwMWNYi+Mjt0eQ9LKhr6sK477REqQkmy8YHY3Ca3A2JJVdXnfb3Rrwkng==
280 |
281 | "@rollup/rollup-linux-s390x-gnu@4.16.4":
282 | version "4.16.4"
283 | resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.16.4.tgz#d46097246a187d99fc9451fe8393b7155b47c5ec"
284 | integrity sha512-1xwwn9ZCQYuqGmulGsTZoKrrn0z2fAur2ujE60QgyDpHmBbXbxLaQiEvzJWDrscRq43c8DnuHx3QorhMTZgisQ==
285 |
286 | "@rollup/rollup-linux-x64-gnu@4.16.4":
287 | version "4.16.4"
288 | resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.16.4.tgz#6356c5a03a4afb1c3057490fc51b4764e109dbc7"
289 | integrity sha512-LuOGGKAJ7dfRtxVnO1i3qWc6N9sh0Em/8aZ3CezixSTM+E9Oq3OvTsvC4sm6wWjzpsIlOCnZjdluINKESflJLA==
290 |
291 | "@rollup/rollup-linux-x64-musl@4.16.4":
292 | version "4.16.4"
293 | resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.16.4.tgz#03a5831a9c0d05877b94653b5ddd3020d3c6fb06"
294 | integrity sha512-ch86i7KkJKkLybDP2AtySFTRi5fM3KXp0PnHocHuJMdZwu7BuyIKi35BE9guMlmTpwwBTB3ljHj9IQXnTCD0vA==
295 |
296 | "@rollup/rollup-win32-arm64-msvc@4.16.4":
297 | version "4.16.4"
298 | resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.16.4.tgz#6cc0db57750376b9303bdb6f5482af8974fcae35"
299 | integrity sha512-Ma4PwyLfOWZWayfEsNQzTDBVW8PZ6TUUN1uFTBQbF2Chv/+sjenE86lpiEwj2FiviSmSZ4Ap4MaAfl1ciF4aSA==
300 |
301 | "@rollup/rollup-win32-ia32-msvc@4.16.4":
302 | version "4.16.4"
303 | resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.16.4.tgz#aea0b7e492bd9ed46971cb80bc34f1eb14e07789"
304 | integrity sha512-9m/ZDrQsdo/c06uOlP3W9G2ENRVzgzbSXmXHT4hwVaDQhYcRpi9bgBT0FTG9OhESxwK0WjQxYOSfv40cU+T69w==
305 |
306 | "@rollup/rollup-win32-x64-msvc@4.16.4":
307 | version "4.16.4"
308 | resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.16.4.tgz#c09ad9a132ccb5a67c4f211d909323ab1294f95f"
309 | integrity sha512-YunpoOAyGLDseanENHmbFvQSfVL5BxW3k7hhy0eN4rb3gS/ct75dVD0EXOWIqFT/nE8XYW6LP6vz6ctKRi0k9A==
310 |
311 | "@sinclair/typebox@^0.27.8":
312 | version "0.27.8"
313 | resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.27.8.tgz#6667fac16c436b5434a387a34dedb013198f6e6e"
314 | integrity sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==
315 |
316 | "@types/estree@1.0.5", "@types/estree@^1.0.0":
317 | version "1.0.5"
318 | resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.5.tgz#a6ce3e556e00fd9895dd872dd172ad0d4bd687f4"
319 | integrity sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==
320 |
321 | "@types/node@^20.12.7":
322 | version "20.12.7"
323 | resolved "https://registry.yarnpkg.com/@types/node/-/node-20.12.7.tgz#04080362fa3dd6c5822061aa3124f5c152cff384"
324 | integrity sha512-wq0cICSkRLVaf3UGLMGItu/PtdY7oaXaI/RVU+xliKVOtRna3PRY57ZDfztpDL0n11vfymMUnXv8QwYCO7L1wg==
325 | dependencies:
326 | undici-types "~5.26.4"
327 |
328 | "@vitest/expect@1.5.1":
329 | version "1.5.1"
330 | resolved "https://registry.yarnpkg.com/@vitest/expect/-/expect-1.5.1.tgz#a9ad180570a934bd4d63c59175e50ab2c359fff9"
331 | integrity sha512-w3Bn+VUMqku+oWmxvPhTE86uMTbfmBl35aGaIPlwVW7Q89ZREC/icfo2HBsEZ3AAW6YR9lObfZKPEzstw9tJOQ==
332 | dependencies:
333 | "@vitest/spy" "1.5.1"
334 | "@vitest/utils" "1.5.1"
335 | chai "^4.3.10"
336 |
337 | "@vitest/runner@1.5.1":
338 | version "1.5.1"
339 | resolved "https://registry.yarnpkg.com/@vitest/runner/-/runner-1.5.1.tgz#dbb26a7ce1a3b8c3d186b2c06dd556ed093ddaef"
340 | integrity sha512-mt372zsz0vFR7L1xF/ert4t+teD66oSuXoTyaZbl0eJgilvyzCKP1tJ21gVa8cDklkBOM3DLnkE1ljj/BskyEw==
341 | dependencies:
342 | "@vitest/utils" "1.5.1"
343 | p-limit "^5.0.0"
344 | pathe "^1.1.1"
345 |
346 | "@vitest/snapshot@1.5.1":
347 | version "1.5.1"
348 | resolved "https://registry.yarnpkg.com/@vitest/snapshot/-/snapshot-1.5.1.tgz#56f459f9327567378ee111384fadcda91d8e6be3"
349 | integrity sha512-h/1SGaZYXmjn6hULRBOlqam2z4oTlEe6WwARRzLErAPBqljAs6eX7tfdyN0K+MpipIwSZ5sZsubDWkCPAiVXZQ==
350 | dependencies:
351 | magic-string "^0.30.5"
352 | pathe "^1.1.1"
353 | pretty-format "^29.7.0"
354 |
355 | "@vitest/spy@1.5.1":
356 | version "1.5.1"
357 | resolved "https://registry.yarnpkg.com/@vitest/spy/-/spy-1.5.1.tgz#a0f96a3441afe6e0c5e7c8068d60b2086b0384d3"
358 | integrity sha512-vsqczk6uPJjmPLy6AEtqfbFqgLYcGBe9BTY+XL8L6y8vrGOhyE23CJN9P/hPimKXnScbqiZ/r/UtUSOQ2jIDGg==
359 | dependencies:
360 | tinyspy "^2.2.0"
361 |
362 | "@vitest/utils@1.5.1":
363 | version "1.5.1"
364 | resolved "https://registry.yarnpkg.com/@vitest/utils/-/utils-1.5.1.tgz#b373a1f5274b2b8b52ce8d6023db5e006f92d770"
365 | integrity sha512-92pE17bBXUxA0Y7goPcvnATMCuq4NQLOmqsG0e2BtzRi7KLwZB5jpiELi/8ybY8IQNWemKjSD5rMoO7xTdv8ug==
366 | dependencies:
367 | diff-sequences "^29.6.3"
368 | estree-walker "^3.0.3"
369 | loupe "^2.3.7"
370 | pretty-format "^29.7.0"
371 |
372 | acorn-walk@^8.3.2:
373 | version "8.3.2"
374 | resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.3.2.tgz#7703af9415f1b6db9315d6895503862e231d34aa"
375 | integrity sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==
376 |
377 | acorn@^8.11.3:
378 | version "8.11.3"
379 | resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.11.3.tgz#71e0b14e13a4ec160724b38fb7b0f233b1b81d7a"
380 | integrity sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==
381 |
382 | ansi-styles@^5.0.0:
383 | version "5.2.0"
384 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-5.2.0.tgz#07449690ad45777d1924ac2abb2fc8895dba836b"
385 | integrity sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==
386 |
387 | assertion-error@^1.1.0:
388 | version "1.1.0"
389 | resolved "https://registry.yarnpkg.com/assertion-error/-/assertion-error-1.1.0.tgz#e60b6b0e8f301bd97e5375215bda406c85118c0b"
390 | integrity sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==
391 |
392 | cac@^6.7.14:
393 | version "6.7.14"
394 | resolved "https://registry.yarnpkg.com/cac/-/cac-6.7.14.tgz#804e1e6f506ee363cb0e3ccbb09cad5dd9870959"
395 | integrity sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==
396 |
397 | chai@^4.3.10:
398 | version "4.4.1"
399 | resolved "https://registry.yarnpkg.com/chai/-/chai-4.4.1.tgz#3603fa6eba35425b0f2ac91a009fe924106e50d1"
400 | integrity sha512-13sOfMv2+DWduEU+/xbun3LScLoqN17nBeTLUsmDfKdoiC1fr0n9PU4guu4AhRcOVFk/sW8LyZWHuhWtQZiF+g==
401 | dependencies:
402 | assertion-error "^1.1.0"
403 | check-error "^1.0.3"
404 | deep-eql "^4.1.3"
405 | get-func-name "^2.0.2"
406 | loupe "^2.3.6"
407 | pathval "^1.1.1"
408 | type-detect "^4.0.8"
409 |
410 | check-error@^1.0.3:
411 | version "1.0.3"
412 | resolved "https://registry.yarnpkg.com/check-error/-/check-error-1.0.3.tgz#a6502e4312a7ee969f646e83bb3ddd56281bd694"
413 | integrity sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==
414 | dependencies:
415 | get-func-name "^2.0.2"
416 |
417 | confbox@^0.1.7:
418 | version "0.1.7"
419 | resolved "https://registry.yarnpkg.com/confbox/-/confbox-0.1.7.tgz#ccfc0a2bcae36a84838e83a3b7f770fb17d6c579"
420 | integrity sha512-uJcB/FKZtBMCJpK8MQji6bJHgu1tixKPxRLeGkNzBoOZzpnZUJm0jm2/sBDWcuBx1dYgxV4JU+g5hmNxCyAmdA==
421 |
422 | cross-spawn@^7.0.3:
423 | version "7.0.3"
424 | resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6"
425 | integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==
426 | dependencies:
427 | path-key "^3.1.0"
428 | shebang-command "^2.0.0"
429 | which "^2.0.1"
430 |
431 | debug@^4.3.4:
432 | version "4.3.4"
433 | resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865"
434 | integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==
435 | dependencies:
436 | ms "2.1.2"
437 |
438 | deep-eql@^4.1.3:
439 | version "4.1.3"
440 | resolved "https://registry.yarnpkg.com/deep-eql/-/deep-eql-4.1.3.tgz#7c7775513092f7df98d8df9996dd085eb668cc6d"
441 | integrity sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==
442 | dependencies:
443 | type-detect "^4.0.0"
444 |
445 | diff-sequences@^29.6.3:
446 | version "29.6.3"
447 | resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-29.6.3.tgz#4deaf894d11407c51efc8418012f9e70b84ea921"
448 | integrity sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==
449 |
450 | esbuild@^0.20.1:
451 | version "0.20.2"
452 | resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.20.2.tgz#9d6b2386561766ee6b5a55196c6d766d28c87ea1"
453 | integrity sha512-WdOOppmUNU+IbZ0PaDiTst80zjnrOkyJNHoKupIcVyU8Lvla3Ugx94VzkQ32Ijqd7UhHJy75gNWDMUekcrSJ6g==
454 | optionalDependencies:
455 | "@esbuild/aix-ppc64" "0.20.2"
456 | "@esbuild/android-arm" "0.20.2"
457 | "@esbuild/android-arm64" "0.20.2"
458 | "@esbuild/android-x64" "0.20.2"
459 | "@esbuild/darwin-arm64" "0.20.2"
460 | "@esbuild/darwin-x64" "0.20.2"
461 | "@esbuild/freebsd-arm64" "0.20.2"
462 | "@esbuild/freebsd-x64" "0.20.2"
463 | "@esbuild/linux-arm" "0.20.2"
464 | "@esbuild/linux-arm64" "0.20.2"
465 | "@esbuild/linux-ia32" "0.20.2"
466 | "@esbuild/linux-loong64" "0.20.2"
467 | "@esbuild/linux-mips64el" "0.20.2"
468 | "@esbuild/linux-ppc64" "0.20.2"
469 | "@esbuild/linux-riscv64" "0.20.2"
470 | "@esbuild/linux-s390x" "0.20.2"
471 | "@esbuild/linux-x64" "0.20.2"
472 | "@esbuild/netbsd-x64" "0.20.2"
473 | "@esbuild/openbsd-x64" "0.20.2"
474 | "@esbuild/sunos-x64" "0.20.2"
475 | "@esbuild/win32-arm64" "0.20.2"
476 | "@esbuild/win32-ia32" "0.20.2"
477 | "@esbuild/win32-x64" "0.20.2"
478 |
479 | estree-walker@^3.0.3:
480 | version "3.0.3"
481 | resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-3.0.3.tgz#67c3e549ec402a487b4fc193d1953a524752340d"
482 | integrity sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==
483 | dependencies:
484 | "@types/estree" "^1.0.0"
485 |
486 | execa@^8.0.1:
487 | version "8.0.1"
488 | resolved "https://registry.yarnpkg.com/execa/-/execa-8.0.1.tgz#51f6a5943b580f963c3ca9c6321796db8cc39b8c"
489 | integrity sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==
490 | dependencies:
491 | cross-spawn "^7.0.3"
492 | get-stream "^8.0.1"
493 | human-signals "^5.0.0"
494 | is-stream "^3.0.0"
495 | merge-stream "^2.0.0"
496 | npm-run-path "^5.1.0"
497 | onetime "^6.0.0"
498 | signal-exit "^4.1.0"
499 | strip-final-newline "^3.0.0"
500 |
501 | fsevents@~2.3.2, fsevents@~2.3.3:
502 | version "2.3.3"
503 | resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6"
504 | integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==
505 |
506 | get-func-name@^2.0.1, get-func-name@^2.0.2:
507 | version "2.0.2"
508 | resolved "https://registry.yarnpkg.com/get-func-name/-/get-func-name-2.0.2.tgz#0d7cf20cd13fda808669ffa88f4ffc7a3943fc41"
509 | integrity sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==
510 |
511 | get-stream@^8.0.1:
512 | version "8.0.1"
513 | resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-8.0.1.tgz#def9dfd71742cd7754a7761ed43749a27d02eca2"
514 | integrity sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==
515 |
516 | human-signals@^5.0.0:
517 | version "5.0.0"
518 | resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-5.0.0.tgz#42665a284f9ae0dade3ba41ebc37eb4b852f3a28"
519 | integrity sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==
520 |
521 | is-stream@^3.0.0:
522 | version "3.0.0"
523 | resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-3.0.0.tgz#e6bfd7aa6bef69f4f472ce9bb681e3e57b4319ac"
524 | integrity sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==
525 |
526 | isexe@^2.0.0:
527 | version "2.0.0"
528 | resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10"
529 | integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==
530 |
531 | js-tokens@^9.0.0:
532 | version "9.0.0"
533 | resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-9.0.0.tgz#0f893996d6f3ed46df7f0a3b12a03f5fd84223c1"
534 | integrity sha512-WriZw1luRMlmV3LGJaR6QOJjWwgLUTf89OwT2lUOyjX2dJGBwgmIkbcz+7WFZjrZM635JOIR517++e/67CP9dQ==
535 |
536 | local-pkg@^0.5.0:
537 | version "0.5.0"
538 | resolved "https://registry.yarnpkg.com/local-pkg/-/local-pkg-0.5.0.tgz#093d25a346bae59a99f80e75f6e9d36d7e8c925c"
539 | integrity sha512-ok6z3qlYyCDS4ZEU27HaU6x/xZa9Whf8jD4ptH5UZTQYZVYeb9bnZ3ojVhiJNLiXK1Hfc0GNbLXcmZ5plLDDBg==
540 | dependencies:
541 | mlly "^1.4.2"
542 | pkg-types "^1.0.3"
543 |
544 | loupe@^2.3.6, loupe@^2.3.7:
545 | version "2.3.7"
546 | resolved "https://registry.yarnpkg.com/loupe/-/loupe-2.3.7.tgz#6e69b7d4db7d3ab436328013d37d1c8c3540c697"
547 | integrity sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==
548 | dependencies:
549 | get-func-name "^2.0.1"
550 |
551 | magic-string@^0.30.5:
552 | version "0.30.10"
553 | resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.30.10.tgz#123d9c41a0cb5640c892b041d4cfb3bd0aa4b39e"
554 | integrity sha512-iIRwTIf0QKV3UAnYK4PU8uiEc4SRh5jX0mwpIwETPpHdhVM4f53RSwS/vXvN1JhGX+Cs7B8qIq3d6AH49O5fAQ==
555 | dependencies:
556 | "@jridgewell/sourcemap-codec" "^1.4.15"
557 |
558 | merge-stream@^2.0.0:
559 | version "2.0.0"
560 | resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60"
561 | integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==
562 |
563 | mimic-fn@^4.0.0:
564 | version "4.0.0"
565 | resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-4.0.0.tgz#60a90550d5cb0b239cca65d893b1a53b29871ecc"
566 | integrity sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==
567 |
568 | mlly@^1.4.2, mlly@^1.6.1:
569 | version "1.6.1"
570 | resolved "https://registry.yarnpkg.com/mlly/-/mlly-1.6.1.tgz#0983067dc3366d6314fc5e12712884e6978d028f"
571 | integrity sha512-vLgaHvaeunuOXHSmEbZ9izxPx3USsk8KCQ8iC+aTlp5sKRSoZvwhHh5L9VbKSaVC6sJDqbyohIS76E2VmHIPAA==
572 | dependencies:
573 | acorn "^8.11.3"
574 | pathe "^1.1.2"
575 | pkg-types "^1.0.3"
576 | ufo "^1.3.2"
577 |
578 | ms@2.1.2:
579 | version "2.1.2"
580 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009"
581 | integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==
582 |
583 | nanoid@^3.3.7:
584 | version "3.3.7"
585 | resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.7.tgz#d0c301a691bc8d54efa0a2226ccf3fe2fd656bd8"
586 | integrity sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==
587 |
588 | npm-run-path@^5.1.0:
589 | version "5.3.0"
590 | resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-5.3.0.tgz#e23353d0ebb9317f174e93417e4a4d82d0249e9f"
591 | integrity sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==
592 | dependencies:
593 | path-key "^4.0.0"
594 |
595 | onetime@^6.0.0:
596 | version "6.0.0"
597 | resolved "https://registry.yarnpkg.com/onetime/-/onetime-6.0.0.tgz#7c24c18ed1fd2e9bca4bd26806a33613c77d34b4"
598 | integrity sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==
599 | dependencies:
600 | mimic-fn "^4.0.0"
601 |
602 | p-limit@^5.0.0:
603 | version "5.0.0"
604 | resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-5.0.0.tgz#6946d5b7140b649b7a33a027d89b4c625b3a5985"
605 | integrity sha512-/Eaoq+QyLSiXQ4lyYV23f14mZRQcXnxfHrN0vCai+ak9G0pp9iEQukIIZq5NccEvwRB8PUnZT0KsOoDCINS1qQ==
606 | dependencies:
607 | yocto-queue "^1.0.0"
608 |
609 | path-key@^3.1.0:
610 | version "3.1.1"
611 | resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375"
612 | integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==
613 |
614 | path-key@^4.0.0:
615 | version "4.0.0"
616 | resolved "https://registry.yarnpkg.com/path-key/-/path-key-4.0.0.tgz#295588dc3aee64154f877adb9d780b81c554bf18"
617 | integrity sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==
618 |
619 | pathe@^1.1.1, pathe@^1.1.2:
620 | version "1.1.2"
621 | resolved "https://registry.yarnpkg.com/pathe/-/pathe-1.1.2.tgz#6c4cb47a945692e48a1ddd6e4094d170516437ec"
622 | integrity sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==
623 |
624 | pathval@^1.1.1:
625 | version "1.1.1"
626 | resolved "https://registry.yarnpkg.com/pathval/-/pathval-1.1.1.tgz#8534e77a77ce7ac5a2512ea21e0fdb8fcf6c3d8d"
627 | integrity sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==
628 |
629 | picocolors@^1.0.0:
630 | version "1.0.0"
631 | resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c"
632 | integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==
633 |
634 | pkg-types@^1.0.3:
635 | version "1.1.0"
636 | resolved "https://registry.yarnpkg.com/pkg-types/-/pkg-types-1.1.0.tgz#3ec1bf33379030fd0a34c227b6c650e8ea7ca271"
637 | integrity sha512-/RpmvKdxKf8uILTtoOhAgf30wYbP2Qw+L9p3Rvshx1JZVX+XQNZQFjlbmGHEGIm4CkVPlSn+NXmIM8+9oWQaSA==
638 | dependencies:
639 | confbox "^0.1.7"
640 | mlly "^1.6.1"
641 | pathe "^1.1.2"
642 |
643 | postcss@^8.4.38:
644 | version "8.4.38"
645 | resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.38.tgz#b387d533baf2054288e337066d81c6bee9db9e0e"
646 | integrity sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==
647 | dependencies:
648 | nanoid "^3.3.7"
649 | picocolors "^1.0.0"
650 | source-map-js "^1.2.0"
651 |
652 | pretty-format@^29.7.0:
653 | version "29.7.0"
654 | resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-29.7.0.tgz#ca42c758310f365bfa71a0bda0a807160b776812"
655 | integrity sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==
656 | dependencies:
657 | "@jest/schemas" "^29.6.3"
658 | ansi-styles "^5.0.0"
659 | react-is "^18.0.0"
660 |
661 | react-is@^18.0.0:
662 | version "18.2.0"
663 | resolved "https://registry.yarnpkg.com/react-is/-/react-is-18.2.0.tgz#199431eeaaa2e09f86427efbb4f1473edb47609b"
664 | integrity sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==
665 |
666 | rollup@^4.13.0:
667 | version "4.16.4"
668 | resolved "https://registry.yarnpkg.com/rollup/-/rollup-4.16.4.tgz#fe328eb41293f20c9593a095ec23bdc4b5d93317"
669 | integrity sha512-kuaTJSUbz+Wsb2ATGvEknkI12XV40vIiHmLuFlejoo7HtDok/O5eDDD0UpCVY5bBX5U5RYo8wWP83H7ZsqVEnA==
670 | dependencies:
671 | "@types/estree" "1.0.5"
672 | optionalDependencies:
673 | "@rollup/rollup-android-arm-eabi" "4.16.4"
674 | "@rollup/rollup-android-arm64" "4.16.4"
675 | "@rollup/rollup-darwin-arm64" "4.16.4"
676 | "@rollup/rollup-darwin-x64" "4.16.4"
677 | "@rollup/rollup-linux-arm-gnueabihf" "4.16.4"
678 | "@rollup/rollup-linux-arm-musleabihf" "4.16.4"
679 | "@rollup/rollup-linux-arm64-gnu" "4.16.4"
680 | "@rollup/rollup-linux-arm64-musl" "4.16.4"
681 | "@rollup/rollup-linux-powerpc64le-gnu" "4.16.4"
682 | "@rollup/rollup-linux-riscv64-gnu" "4.16.4"
683 | "@rollup/rollup-linux-s390x-gnu" "4.16.4"
684 | "@rollup/rollup-linux-x64-gnu" "4.16.4"
685 | "@rollup/rollup-linux-x64-musl" "4.16.4"
686 | "@rollup/rollup-win32-arm64-msvc" "4.16.4"
687 | "@rollup/rollup-win32-ia32-msvc" "4.16.4"
688 | "@rollup/rollup-win32-x64-msvc" "4.16.4"
689 | fsevents "~2.3.2"
690 |
691 | semver@^6.1.0:
692 | version "6.3.1"
693 | resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4"
694 | integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==
695 |
696 | shebang-command@^2.0.0:
697 | version "2.0.0"
698 | resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea"
699 | integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==
700 | dependencies:
701 | shebang-regex "^3.0.0"
702 |
703 | shebang-regex@^3.0.0:
704 | version "3.0.0"
705 | resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172"
706 | integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==
707 |
708 | siginfo@^2.0.0:
709 | version "2.0.0"
710 | resolved "https://registry.yarnpkg.com/siginfo/-/siginfo-2.0.0.tgz#32e76c70b79724e3bb567cb9d543eb858ccfaf30"
711 | integrity sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==
712 |
713 | signal-exit@^4.1.0:
714 | version "4.1.0"
715 | resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-4.1.0.tgz#952188c1cbd546070e2dd20d0f41c0ae0530cb04"
716 | integrity sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==
717 |
718 | source-map-js@^1.2.0:
719 | version "1.2.0"
720 | resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.2.0.tgz#16b809c162517b5b8c3e7dcd315a2a5c2612b2af"
721 | integrity sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==
722 |
723 | stackback@0.0.2:
724 | version "0.0.2"
725 | resolved "https://registry.yarnpkg.com/stackback/-/stackback-0.0.2.tgz#1ac8a0d9483848d1695e418b6d031a3c3ce68e3b"
726 | integrity sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==
727 |
728 | std-env@^3.5.0:
729 | version "3.7.0"
730 | resolved "https://registry.yarnpkg.com/std-env/-/std-env-3.7.0.tgz#c9f7386ced6ecf13360b6c6c55b8aaa4ef7481d2"
731 | integrity sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg==
732 |
733 | strip-final-newline@^3.0.0:
734 | version "3.0.0"
735 | resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-3.0.0.tgz#52894c313fbff318835280aed60ff71ebf12b8fd"
736 | integrity sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==
737 |
738 | strip-literal@^2.0.0:
739 | version "2.1.0"
740 | resolved "https://registry.yarnpkg.com/strip-literal/-/strip-literal-2.1.0.tgz#6d82ade5e2e74f5c7e8739b6c84692bd65f0bd2a"
741 | integrity sha512-Op+UycaUt/8FbN/Z2TWPBLge3jWrP3xj10f3fnYxf052bKuS3EKs1ZQcVGjnEMdsNVAM+plXRdmjrZ/KgG3Skw==
742 | dependencies:
743 | js-tokens "^9.0.0"
744 |
745 | tinybench@^2.5.1:
746 | version "2.8.0"
747 | resolved "https://registry.yarnpkg.com/tinybench/-/tinybench-2.8.0.tgz#30e19ae3a27508ee18273ffed9ac7018949acd7b"
748 | integrity sha512-1/eK7zUnIklz4JUUlL+658n58XO2hHLQfSk1Zf2LKieUjxidN16eKFEoDEfjHc3ohofSSqK3X5yO6VGb6iW8Lw==
749 |
750 | tinypool@^0.8.3:
751 | version "0.8.4"
752 | resolved "https://registry.yarnpkg.com/tinypool/-/tinypool-0.8.4.tgz#e217fe1270d941b39e98c625dcecebb1408c9aa8"
753 | integrity sha512-i11VH5gS6IFeLY3gMBQ00/MmLncVP7JLXOw1vlgkytLmJK7QnEr7NXf0LBdxfmNPAeyetukOk0bOYrJrFGjYJQ==
754 |
755 | tinyspy@^2.2.0:
756 | version "2.2.1"
757 | resolved "https://registry.yarnpkg.com/tinyspy/-/tinyspy-2.2.1.tgz#117b2342f1f38a0dbdcc73a50a454883adf861d1"
758 | integrity sha512-KYad6Vy5VDWV4GH3fjpseMQ/XU2BhIYP7Vzd0LG44qRWm/Yt2WCOTicFdvmgo6gWaqooMQCawTtILVQJupKu7A==
759 |
760 | tunnel@^0.0.6:
761 | version "0.0.6"
762 | resolved "https://registry.yarnpkg.com/tunnel/-/tunnel-0.0.6.tgz#72f1314b34a5b192db012324df2cc587ca47f92c"
763 | integrity sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==
764 |
765 | type-detect@^4.0.0, type-detect@^4.0.8:
766 | version "4.0.8"
767 | resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c"
768 | integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==
769 |
770 | typescript@^5.4.5:
771 | version "5.4.5"
772 | resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.4.5.tgz#42ccef2c571fdbd0f6718b1d1f5e6e5ef006f611"
773 | integrity sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==
774 |
775 | ufo@^1.3.2:
776 | version "1.5.3"
777 | resolved "https://registry.yarnpkg.com/ufo/-/ufo-1.5.3.tgz#3325bd3c977b6c6cd3160bf4ff52989adc9d3344"
778 | integrity sha512-Y7HYmWaFwPUmkoQCUIAYpKqkOf+SbVj/2fJJZ4RJMCfZp0rTGwRbzQD+HghfnhKOjL9E01okqz+ncJskGYfBNw==
779 |
780 | undici-types@~5.26.4:
781 | version "5.26.5"
782 | resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-5.26.5.tgz#bcd539893d00b56e964fd2657a4866b221a65617"
783 | integrity sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==
784 |
785 | undici@^5.25.4:
786 | version "5.28.4"
787 | resolved "https://registry.yarnpkg.com/undici/-/undici-5.28.4.tgz#6b280408edb6a1a604a9b20340f45b422e373068"
788 | integrity sha512-72RFADWFqKmUb2hmmvNODKL3p9hcB6Gt2DOQMis1SEBaV6a4MH8soBvzg+95CYhCKPFedut2JY9bMfrDl9D23g==
789 | dependencies:
790 | "@fastify/busboy" "^2.0.0"
791 |
792 | uuid@^3.3.2:
793 | version "3.4.0"
794 | resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee"
795 | integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==
796 |
797 | uuid@^8.3.2:
798 | version "8.3.2"
799 | resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2"
800 | integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==
801 |
802 | vite-node@1.5.1:
803 | version "1.5.1"
804 | resolved "https://registry.yarnpkg.com/vite-node/-/vite-node-1.5.1.tgz#5e1a0c6265aa2b553694e6b3dd9421aa3d4dc00c"
805 | integrity sha512-HNpfV7BrAsjkYVNWIcPleJwvJmydJqqJRrRbpoQ/U7QDwJKyEzNa4g5aYg8MjXJyKsk29IUCcMLFRcsEvqUIsA==
806 | dependencies:
807 | cac "^6.7.14"
808 | debug "^4.3.4"
809 | pathe "^1.1.1"
810 | picocolors "^1.0.0"
811 | vite "^5.0.0"
812 |
813 | vite@^5.0.0:
814 | version "5.2.10"
815 | resolved "https://registry.yarnpkg.com/vite/-/vite-5.2.10.tgz#2ac927c91e99d51b376a5c73c0e4b059705f5bd7"
816 | integrity sha512-PAzgUZbP7msvQvqdSD+ErD5qGnSFiGOoWmV5yAKUEI0kdhjbH6nMWVyZQC/hSc4aXwc0oJ9aEdIiF9Oje0JFCw==
817 | dependencies:
818 | esbuild "^0.20.1"
819 | postcss "^8.4.38"
820 | rollup "^4.13.0"
821 | optionalDependencies:
822 | fsevents "~2.3.3"
823 |
824 | vitest@^1.5.0:
825 | version "1.5.1"
826 | resolved "https://registry.yarnpkg.com/vitest/-/vitest-1.5.1.tgz#e661504adab8e587bf6834c6b6790cd1cc72d816"
827 | integrity sha512-3GvBMpoRnUNbZRX1L3mJCv3Ou3NAobb4dM48y8k9ZGwDofePpclTOyO+lqJFKSQpubH1V8tEcAEw/Y3mJKGJQQ==
828 | dependencies:
829 | "@vitest/expect" "1.5.1"
830 | "@vitest/runner" "1.5.1"
831 | "@vitest/snapshot" "1.5.1"
832 | "@vitest/spy" "1.5.1"
833 | "@vitest/utils" "1.5.1"
834 | acorn-walk "^8.3.2"
835 | chai "^4.3.10"
836 | debug "^4.3.4"
837 | execa "^8.0.1"
838 | local-pkg "^0.5.0"
839 | magic-string "^0.30.5"
840 | pathe "^1.1.1"
841 | picocolors "^1.0.0"
842 | std-env "^3.5.0"
843 | strip-literal "^2.0.0"
844 | tinybench "^2.5.1"
845 | tinypool "^0.8.3"
846 | vite "^5.0.0"
847 | vite-node "1.5.1"
848 | why-is-node-running "^2.2.2"
849 |
850 | which@^2.0.1:
851 | version "2.0.2"
852 | resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1"
853 | integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==
854 | dependencies:
855 | isexe "^2.0.0"
856 |
857 | why-is-node-running@^2.2.2:
858 | version "2.2.2"
859 | resolved "https://registry.yarnpkg.com/why-is-node-running/-/why-is-node-running-2.2.2.tgz#4185b2b4699117819e7154594271e7e344c9973e"
860 | integrity sha512-6tSwToZxTOcotxHeA+qGCq1mVzKR3CwcJGmVcY+QE8SHy6TnpFnh8PAvPNHYr7EcuVeG0QSMxtYCuO1ta/G/oA==
861 | dependencies:
862 | siginfo "^2.0.0"
863 | stackback "0.0.2"
864 |
865 | yocto-queue@^1.0.0:
866 | version "1.0.0"
867 | resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-1.0.0.tgz#7f816433fb2cbc511ec8bf7d263c3b58a1a3c251"
868 | integrity sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==
869 |
--------------------------------------------------------------------------------