├── .editorconfig
├── .eslintignore
├── .eslintrc
├── .github
└── FUNDING.yml
├── .gitignore
├── .npmrc
├── .prettierignore
├── .prettierrc.json
├── LICENSE
├── README.md
├── esbuild.config.mjs
├── manifest.json
├── package.json
├── scripts
└── release.sh
├── src
├── components
│ ├── action_line.ts
│ ├── action_line_button.ts
│ ├── action_line_divider.ts
│ ├── differences_view.ts
│ └── modals
│ │ ├── delete_file_modal.ts
│ │ ├── risky_action_modal.ts
│ │ └── select_file_modal.ts
├── data
│ ├── difference.ts
│ ├── file_differences.test.ts
│ └── file_differences.ts
├── main.ts
└── utils
│ ├── string_utils.test.ts
│ └── string_utils.ts
├── styles.css
├── tsconfig.json
├── version-bump.mjs
├── versions.json
└── yarn.lock
/.editorconfig:
--------------------------------------------------------------------------------
1 | # top-most EditorConfig file
2 | root = true
3 |
4 | [*]
5 | charset = utf-8
6 | end_of_line = lf
7 | insert_final_newline = true
8 | indent_style = tab
9 | indent_size = 4
10 | tab_width = 4
11 |
--------------------------------------------------------------------------------
/.eslintignore:
--------------------------------------------------------------------------------
1 | node_modules/
2 |
3 | main.js
4 |
5 | *.css
6 | *.svg
--------------------------------------------------------------------------------
/.eslintrc:
--------------------------------------------------------------------------------
1 | {
2 | "env": {
3 | "browser": true,
4 | "es2021": true
5 | },
6 | "extends": [
7 | "plugin:react/recommended",
8 | "airbnb",
9 | "plugin:@typescript-eslint/recommended",
10 | "prettier",
11 | "plugin:prettier/recommended"
12 | ],
13 | "parser": "@typescript-eslint/parser",
14 | "parserOptions": {
15 | "ecmaFeatures": {
16 | "jsx": true
17 | },
18 | "ecmaVersion": 12,
19 | "sourceType": "module"
20 | },
21 | "plugins": ["react", "@typescript-eslint", "react-hooks"],
22 | "rules": {
23 | "class-methods-use-this": "off",
24 | "no-use-before-define": "off",
25 | "no-restricted-syntax": "off",
26 | "no-warning-comments": 1,
27 | "semi": [2, "always"],
28 | "@typescript-eslint/no-use-before-define": ["error"],
29 | "react/jsx-filename-extension": [
30 | "warn",
31 | {
32 | "extensions": [".tsx"]
33 | }
34 | ],
35 | "import/extensions": [
36 | "error",
37 | "ignorePackages",
38 | {
39 | "ts": "never",
40 | "tsx": "never"
41 | }
42 | ],
43 | "no-shadow": "off",
44 | "@typescript-eslint/no-shadow": ["error"],
45 | "@typescript-eslint/explicit-function-return-type": [
46 | "error",
47 | {
48 | "allowExpressions": true
49 | }
50 | ],
51 | "max-len": [
52 | "warn",
53 | {
54 | "code": 80
55 | }
56 | ],
57 | "react-hooks/rules-of-hooks": "error",
58 | "react-hooks/exhaustive-deps": "warn",
59 | "import/prefer-default-export": "off",
60 | "react/prop-types": "off"
61 | },
62 | "settings": {
63 | "import/resolver": {
64 | "typescript": {}
65 | }
66 | }
67 | }
68 |
--------------------------------------------------------------------------------
/.github/FUNDING.yml:
--------------------------------------------------------------------------------
1 | # These are supported funding model platforms
2 |
3 | github: [friebetill]
4 | patreon: # Replace with a single Patreon username
5 | open_collective: # Replace with a single Open Collective username
6 | ko_fi: # Replace with a single Ko-fi username
7 | tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel
8 | community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
9 | liberapay: # Replace with a single Liberapay username
10 | issuehunt: # Replace with a single IssueHunt username
11 | otechie: # Replace with a single Otechie username
12 | lfx_crowdfunding: # Replace with a single LFX Crowdfunding project-name e.g., cloud-foundry
13 | custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2']
14 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # vscode
2 | .vscode
3 |
4 | # Intellij
5 | *.iml
6 | .idea
7 |
8 | # npm
9 | node_modules
10 |
11 | # Don't include the compiled main.js file in the repo.
12 | # They should be uploaded to GitHub releases instead.
13 | main.js
14 |
15 | # Exclude sourcemaps
16 | *.map
17 |
18 | # obsidian
19 | data.json
20 |
21 | # Exclude macOS Finder (System Explorer) View States
22 | .DS_Store
23 |
--------------------------------------------------------------------------------
/.npmrc:
--------------------------------------------------------------------------------
1 | tag-version-prefix=""
--------------------------------------------------------------------------------
/.prettierignore:
--------------------------------------------------------------------------------
1 | node_modules
2 | # Ignore artifacts:
3 | build
4 | coverage
--------------------------------------------------------------------------------
/.prettierrc.json:
--------------------------------------------------------------------------------
1 | {
2 | "trailingComma": "es5",
3 | "tabWidth": 4,
4 | "semi": true,
5 | "singleQuote": true
6 | }
7 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2022 Till Friebe
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Obsidian File Diff
2 |
3 | [](obsidian://show-plugin?id=file-diff)
4 | 
5 |
6 | ## Commands
7 |
8 | `Compare`: Compare your active file with another file and look at the differences.
9 |
10 | `Compare and merge`: Same as `Compare`, but you have the option to merge changes.
11 |
12 | `Find sync conflicts and merge`: Finds all Syncthing conflicts and shows the merge option for each conflict sequentially.
13 |
14 |
17 |
18 | ## Motivation
19 |
20 | I created this plugin because I use [SyncThing](https://syncthing.net/) and it bothered me to clean up merge conflicts by hand.
21 |
22 | ## Installation
23 |
24 | 1. Search for "File Diff" in the community plugins of Obsidian
25 | 2. Install the plugin
26 | 3. Enable the plugin
27 |
28 | ## FAQ
29 |
30 | 1. How do I adjust the colors?
31 |
32 | Adjust the colors by following [these instructions](https://github.com/friebetill/obsidian-file-diff/issues/1#issuecomment-1425157959).
33 |
34 | ## Contributing
35 |
36 | If you have any issues or suggestions, please open an issue on the repository.
37 | If you would like to contribute code, please fork the repository and submit a
38 | pull request.
39 |
40 | ## Support
41 |
42 | For support, please open an issue on the repository, with a reproducible example if possible.
43 |
44 | If you're interested in supporting me, it would mean a lot if you could buy me a coffee through GitHub Sponsors, located on the right side.
45 |
--------------------------------------------------------------------------------
/esbuild.config.mjs:
--------------------------------------------------------------------------------
1 | import builtins from "builtin-modules";
2 | import esbuild from "esbuild";
3 | import process from "process";
4 |
5 | const banner =
6 | `/*
7 | THIS IS A GENERATED/BUNDLED FILE BY ESBUILD
8 | if you want to view the source, please visit the github repository of this plugin
9 | */
10 | `;
11 |
12 | const prod = (process.argv[2] === "production");
13 |
14 | const context = await esbuild.context({
15 | banner: {
16 | js: banner,
17 | },
18 | entryPoints: ["src/main.ts"],
19 | bundle: true,
20 | external: [
21 | "obsidian",
22 | "electron",
23 | "@codemirror/autocomplete",
24 | "@codemirror/collab",
25 | "@codemirror/commands",
26 | "@codemirror/language",
27 | "@codemirror/lint",
28 | "@codemirror/search",
29 | "@codemirror/state",
30 | "@codemirror/view",
31 | "@lezer/common",
32 | "@lezer/highlight",
33 | "@lezer/lr",
34 | ...builtins],
35 | format: "cjs",
36 | target: "es2018",
37 | logLevel: "info",
38 | sourcemap: prod ? false : "inline",
39 | treeShaking: true,
40 | outfile: "main.js",
41 | });
42 |
43 | if (prod) {
44 | await context.rebuild();
45 | process.exit(0);
46 | } else {
47 | await context.watch();
48 | }
--------------------------------------------------------------------------------
/manifest.json:
--------------------------------------------------------------------------------
1 | {
2 | "id": "file-diff",
3 | "name": "File Diff",
4 | "version": "1.1.1",
5 | "minAppVersion": "0.15.0",
6 | "description": "Shows the differences between two files..",
7 | "author": "Till Friebe",
8 | "authorUrl": "https://friebetill.github.io/",
9 | "isDesktopOnly": false
10 | }
11 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "obsidian-file-diff",
3 | "version": "1.1.1",
4 | "description": "Shows the differences between two files.",
5 | "main": "main.js",
6 | "scripts": {
7 | "dev": "node esbuild.config.mjs",
8 | "build": "tsc -noEmit -skipLibCheck && node esbuild.config.mjs production",
9 | "test": "vitest",
10 | "format": "prettier --write \"**/*.{ts,tsx}\"",
11 | "lint": "eslint src",
12 | "coverage": "vitest run --coverage",
13 | "release": "./scripts/release.sh"
14 | },
15 | "keywords": [
16 | "obsidian"
17 | ],
18 | "author": "Till Friebe",
19 | "authorUrl": "https://friebetill.github.io/",
20 | "license": "MIT",
21 | "dependencies": {
22 | "diff": "^5.1.0",
23 | "obsidian": "latest"
24 | },
25 | "devDependencies": {
26 | "@types/diff": "^5.0.2",
27 | "@types/node": "^16.11.6",
28 | "@typescript-eslint/eslint-plugin": "5.29.0",
29 | "@typescript-eslint/parser": "5.29.0",
30 | "builtin-modules": "3.3.0",
31 | "esbuild": "0.17.3",
32 | "eslint": "^8.33.0",
33 | "eslint-config-airbnb": "^19.0.4",
34 | "eslint-config-prettier": "^8.6.0",
35 | "eslint-import-resolver-typescript": "^3.5.3",
36 | "eslint-plugin-import": "^2.27.5",
37 | "eslint-plugin-jsx-a11y": "^6.7.1",
38 | "eslint-plugin-prettier": "^4.2.1",
39 | "eslint-plugin-react": "^7.32.2",
40 | "eslint-plugin-react-hooks": "^4.6.0",
41 | "prettier": "^2.8.3",
42 | "react": "^18.2.0",
43 | "tslib": "2.4.0",
44 | "typescript": "4.7.4",
45 | "vitest": "^0.28.3"
46 | }
47 | }
48 |
--------------------------------------------------------------------------------
/scripts/release.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | CURRENT_VERSION=""
4 | NEW_VERSION=""
5 | OBSIDIAN_MINIMUM_VERSION="0.15.0"
6 |
7 | # This script is used to release a new version of the project.
8 | main() {
9 | verifyDependencies
10 |
11 | # Version
12 | readCurrentVersion
13 | askForNewVersion
14 |
15 | # Update files
16 | updatePackageJson
17 | updateManifestJson
18 | updateVersionsJson
19 |
20 | # Git
21 | addUpdatedFiles
22 | commitChanges
23 | pushChanges
24 |
25 | buildRelease
26 |
27 | createGitHubRelease
28 | }
29 |
30 | verifyDependencies() {
31 | # Verify that GitHub CLI is installed
32 | if ! command -v gh &>/dev/null; then
33 | echo "GitHub CLI could not be found. Please install it from https://cli.github.com/."
34 | exit
35 | fi
36 | }
37 |
38 | readCurrentVersion() {
39 | CURRENT_VERSION=$(cat package.json | grep version | head -1 | awk -F: '{ print $2 }' | sed 's/[",]//g' | tr -d '[[:space:]]')
40 | }
41 |
42 | askForNewVersion() {
43 | # Ask for new version number
44 | echo "What is the new version number? The current version is $CURRENT_VERSION."
45 | read -r NEW_VERSION
46 |
47 | # Check if version number is valid
48 | if [[ ! $NEW_VERSION =~ ^[0-9]+\.[0-9]+\.[0-9]+$ ]]; then
49 | echo "Version number is not valid. Please use the format x.x.x."
50 | exit 1
51 | else
52 | echo ""
53 | fi
54 | }
55 |
56 | updatePackageJson() {
57 | echo "Update version in package.json. Press ENTER to update or ESC to skip."
58 | if askForEnter; then
59 | sed -i '' "s/\"version\": \"$CURRENT_VERSION\"/\"version\": \"$NEW_VERSION\"/g" package.json
60 |
61 | echo "Verify version in package.json is correct"
62 | echo ""
63 | git --no-pager diff package.json
64 | echo ""
65 | echo "Press ENTER if the version is correct or ESC to abort."
66 | if ! askForEnter; then
67 | echo "Aborting release"
68 | exit 1
69 | fi
70 |
71 | echo ""
72 | fi
73 | }
74 |
75 | updateManifestJson() {
76 | echo "Update version in manifest.json. Press ENTER to update or ESC to skip."
77 | if askForEnter; then
78 | sed -i '' "s/\"version\": \"$CURRENT_VERSION\"/\"version\": \"$NEW_VERSION\"/g" manifest.json
79 |
80 | echo "Verify version in manifest.json is correct."
81 | echo ""
82 | git --no-pager diff manifest.json
83 | echo ""
84 | echo "Press ENTER if the version is correct or ESC to abort."
85 | if ! askForEnter; then
86 | echo "Aborting release"
87 | exit 1
88 | fi
89 |
90 | echo ""
91 | fi
92 | }
93 |
94 | updateVersionsJson() {
95 | echo "Add version to versions.json. Press ENTER to update or ESC to skip."
96 | if askForEnter; then
97 | # Add new version after line with current version in versions.json on macOS
98 | sed -i "" -E "s/(\"$CURRENT_VERSION\":.*)/\1,\n\t\"$NEW_VERSION\": \"$OBSIDIAN_MINIMUM_VERSION\"/g" versions.json
99 |
100 | echo "Verify version in versions.json is correct."
101 | echo ""
102 | git --no-pager diff versions.json
103 | echo ""
104 | echo "Press ENTER if the version is correct or ESC to abort."
105 | if ! askForEnter; then
106 | echo "Aborting release"
107 | exit 1
108 | fi
109 |
110 | echo ""
111 | fi
112 | }
113 |
114 | addUpdatedFiles() {
115 | echo "Add package.json, manifest.json and versions.json to Git. Press ENTER to add or ESC to skip."
116 | if askForEnter; then
117 | git add package.json
118 | git add manifest.json
119 | git add versions.json
120 | fi
121 |
122 | echo ""
123 | }
124 |
125 | commitChanges() {
126 | echo "Commit changes. Press ENTER to commit or ESC to skip."
127 | if askForEnter; then
128 | git commit -m "Release version $NEW_VERSION"
129 | fi
130 | echo ""
131 | }
132 |
133 | pushChanges() {
134 | echo "Push changes. Press ENTER to push or ESC to skip."
135 | if askForEnter; then
136 | git push
137 | fi
138 | echo ""
139 | }
140 |
141 | buildRelease() {
142 | echo "Build release. Press ENTER to build or ESC to skip."
143 | if askForEnter; then
144 | npm run build
145 | fi
146 | echo ""
147 | }
148 |
149 | createGitHubRelease() {
150 | echo "Create GitHub release. Press ENTER to create or ESC to skip."
151 | if askForEnter; then
152 | gh release create "$NEW_VERSION" manifest.json main.js styles.css --generate-notes
153 | fi
154 | echo ""
155 | }
156 |
157 | askForEnter() {
158 | read -r -s -n 1 key
159 | # -s: do not echo input character.
160 | # -n 1: read only 1 character (separate with space)
161 |
162 | # double brackets to test, single equals sign, empty string for just 'enter' in this case...
163 | # if [[ ... ]] is followed by semicolon and 'then' keyword
164 | if [[ $key = "" ]]; then
165 | return 0
166 | else
167 | return 1
168 | fi
169 | }
170 |
171 | main
172 |
--------------------------------------------------------------------------------
/src/components/action_line.ts:
--------------------------------------------------------------------------------
1 | import { TFile } from 'obsidian';
2 | import { Difference } from '../data/difference';
3 | import { deleteLines, insertLine, replaceLine } from '../utils/string_utils';
4 | import { ActionLineButton } from './action_line_button';
5 | import { ActionLineDivider } from './action_line_divider';
6 |
7 | type VoidCallback = () => void;
8 |
9 | export class ActionLine {
10 | constructor(args: {
11 | difference: Difference;
12 | file1: TFile;
13 | file2: TFile;
14 | file1Content: string;
15 | file2Content: string;
16 | triggerRebuild: VoidCallback;
17 | }) {
18 | this.difference = args.difference;
19 | this.file1 = args.file1;
20 | this.file2 = args.file2;
21 | this.file1Content = args.file1Content;
22 | this.file2Content = args.file2Content;
23 | this.triggerRebuild = args.triggerRebuild;
24 | }
25 |
26 | private difference: Difference;
27 |
28 | private file1: TFile;
29 |
30 | private file2: TFile;
31 |
32 | private file1Content: string;
33 |
34 | private file2Content: string;
35 |
36 | private triggerRebuild: VoidCallback;
37 |
38 | build(container: HTMLDivElement): void {
39 | const actionLine = container.createDiv({
40 | cls: 'flex flex-row gap-1 py-0-5',
41 | });
42 |
43 | const hasMinusLines = this.difference.file1Lines.length > 0;
44 | const hasPlusLines = this.difference.file2Lines.length > 0;
45 |
46 | if (hasPlusLines && hasMinusLines) {
47 | new ActionLineButton({
48 | text: 'Accept Top',
49 | onClick: (e) => this.acceptTopClick(e, this.difference),
50 | }).build(actionLine);
51 | ActionLineDivider.build(actionLine);
52 | new ActionLineButton({
53 | text: 'Accept Bottom',
54 | onClick: (e) => this.acceptBottomClick(e, this.difference),
55 | }).build(actionLine);
56 | ActionLineDivider.build(actionLine);
57 | new ActionLineButton({
58 | text: 'Accept All',
59 | onClick: (e) => this.acceptAllClick(e, this.difference),
60 | }).build(actionLine);
61 | ActionLineDivider.build(actionLine);
62 | new ActionLineButton({
63 | text: 'Accept None',
64 | onClick: (e) => this.acceptNoneClick(e, this.difference),
65 | }).build(actionLine);
66 | } else if (hasMinusLines) {
67 | new ActionLineButton({
68 | text: `Accept from ${this.file1.name}`,
69 | onClick: (e) => this.insertFile1Difference(e, this.difference),
70 | }).build(actionLine);
71 | ActionLineDivider.build(actionLine);
72 | new ActionLineButton({
73 | text: 'Discard',
74 | onClick: (e) => this.discardFile1Difference(e, this.difference),
75 | }).build(actionLine);
76 | } else if (hasPlusLines) {
77 | new ActionLineButton({
78 | text: `Accept from ${this.file2.name}`,
79 | onClick: (e) => this.insertFile2Difference(e, this.difference),
80 | }).build(actionLine);
81 | ActionLineDivider.build(actionLine);
82 | new ActionLineButton({
83 | text: 'Discard',
84 | onClick: (e) => this.discardFile2Difference(e, this.difference),
85 | }).build(actionLine);
86 | }
87 | }
88 |
89 | private async acceptTopClick(
90 | event: MouseEvent,
91 | difference: Difference
92 | ): Promise {
93 | event.preventDefault();
94 |
95 | const changedLines = difference.file1Lines.join('\n');
96 | const newContent = replaceLine({
97 | fullText: this.file2Content,
98 | newLine: changedLines,
99 | position: difference.file2Start,
100 | linesToReplace: difference.file2Lines.length,
101 | });
102 | await app.vault.modify(this.file2, newContent);
103 |
104 | this.triggerRebuild();
105 | }
106 |
107 | private async acceptBottomClick(
108 | event: MouseEvent,
109 | difference: Difference
110 | ): Promise {
111 | event.preventDefault();
112 |
113 | const changedLines = difference.file2Lines.join('\n');
114 | const newContent = replaceLine({
115 | fullText: this.file1Content,
116 | newLine: changedLines,
117 | position: difference.file1Start,
118 | linesToReplace: difference.file1Lines.length,
119 | });
120 | await app.vault.modify(this.file1, newContent);
121 |
122 | this.triggerRebuild();
123 | }
124 |
125 | private async acceptAllClick(
126 | event: MouseEvent,
127 | difference: Difference
128 | ): Promise {
129 | event.preventDefault();
130 |
131 | const changedLines = [
132 | ...difference.file1Lines,
133 | ...difference.file2Lines,
134 | ].join('\n');
135 |
136 | const newFile1Content = replaceLine({
137 | fullText: this.file1Content,
138 | newLine: changedLines,
139 | position: difference.file1Start,
140 | linesToReplace: difference.file1Lines.length,
141 | });
142 | await app.vault.modify(this.file1, newFile1Content);
143 |
144 | const newFile2Content = replaceLine({
145 | fullText: this.file2Content,
146 | newLine: changedLines,
147 | position: difference.file2Start,
148 | linesToReplace: difference.file2Lines.length,
149 | });
150 | await app.vault.modify(this.file2, newFile2Content);
151 |
152 | this.triggerRebuild();
153 | }
154 |
155 | private async acceptNoneClick(
156 | event: MouseEvent,
157 | difference: Difference
158 | ): Promise {
159 | event.preventDefault();
160 |
161 | const newFile1Content = deleteLines({
162 | fullText: this.file1Content,
163 | position: difference.file1Start,
164 | count: difference.file1Lines.length,
165 | });
166 | await app.vault.modify(this.file1, newFile1Content);
167 |
168 | const newFile2Content = deleteLines({
169 | fullText: this.file2Content,
170 | position: difference.file2Start,
171 | count: difference.file2Lines.length,
172 | });
173 | await app.vault.modify(this.file2, newFile2Content);
174 |
175 | this.triggerRebuild();
176 | }
177 |
178 | private async insertFile1Difference(
179 | event: MouseEvent,
180 | difference: Difference
181 | ): Promise {
182 | event.preventDefault();
183 |
184 | const changedLines = difference.file1Lines.join('\n');
185 | const newContent = insertLine({
186 | fullText: this.file2Content,
187 | newLine: changedLines,
188 | position: difference.file2Start,
189 | });
190 | await app.vault.modify(this.file2, newContent);
191 |
192 | this.triggerRebuild();
193 | }
194 |
195 | private async insertFile2Difference(
196 | event: MouseEvent,
197 | difference: Difference
198 | ): Promise {
199 | event.preventDefault();
200 |
201 | const changedLines = difference.file2Lines.join('\n');
202 | const newContent = insertLine({
203 | fullText: this.file1Content,
204 | newLine: changedLines,
205 | position: difference.file1Start,
206 | });
207 | await app.vault.modify(this.file1, newContent);
208 |
209 | this.triggerRebuild();
210 | }
211 |
212 | async discardFile1Difference(
213 | event: MouseEvent,
214 | difference: Difference
215 | ): Promise {
216 | event.preventDefault();
217 |
218 | const newContent = deleteLines({
219 | fullText: this.file1Content,
220 | position: difference.file1Start,
221 | count: difference.file1Lines.length,
222 | });
223 | await app.vault.modify(this.file1, newContent);
224 |
225 | this.triggerRebuild();
226 | }
227 |
228 | async discardFile2Difference(
229 | event: MouseEvent,
230 | difference: Difference
231 | ): Promise {
232 | event.preventDefault();
233 |
234 | const newContent = deleteLines({
235 | fullText: this.file2Content,
236 | position: difference.file2Start,
237 | count: difference.file2Lines.length,
238 | });
239 | await app.vault.modify(this.file2, newContent);
240 |
241 | this.triggerRebuild();
242 | }
243 | }
244 |
--------------------------------------------------------------------------------
/src/components/action_line_button.ts:
--------------------------------------------------------------------------------
1 | export class ActionLineButton {
2 | constructor(args: { text: string; onClick: (e: MouseEvent) => void }) {
3 | this.text = args.text;
4 | this.onClick = args.onClick;
5 | }
6 |
7 | public text: string;
8 |
9 | public onClick: (e: MouseEvent) => void;
10 |
11 | build(actionLine: HTMLDivElement): void {
12 | actionLine
13 | .createEl('a', {
14 | text: this.text,
15 | cls: 'no-decoration text-xxs file-diff__action-line',
16 | })
17 | .onClickEvent(this.onClick);
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/src/components/action_line_divider.ts:
--------------------------------------------------------------------------------
1 | export class ActionLineDivider {
2 | static build(actionLine: HTMLDivElement): void {
3 | actionLine.createEl('span', {
4 | text: '|',
5 | cls: 'text-xxs file-diff__action-line',
6 | });
7 | }
8 | }
9 |
--------------------------------------------------------------------------------
/src/components/differences_view.ts:
--------------------------------------------------------------------------------
1 | import { structuredPatch, diffWords } from 'diff';
2 | import { ItemView, TFile, ViewStateResult, WorkspaceLeaf } from 'obsidian';
3 | import { Difference } from '../data/difference';
4 | import { FileDifferences } from '../data/file_differences';
5 | import { preventEmptyString } from '../utils/string_utils';
6 | import { ActionLine } from './action_line';
7 | import { DeleteFileModal } from './modals/delete_file_modal';
8 |
9 | export const VIEW_TYPE_DIFFERENCES = 'differences-view';
10 |
11 | export interface ViewState {
12 | file1: TFile;
13 | file2: TFile;
14 | showMergeOption: boolean;
15 | continueCallback?: (shouldContinue: boolean) => Promise;
16 | }
17 |
18 | export class DifferencesView extends ItemView {
19 | constructor(leaf: WorkspaceLeaf) {
20 | super(leaf);
21 |
22 | this.registerEvent(
23 | this.app.vault.on('modify', async (file) => {
24 | if (file !== this.state.file1 && file !== this.state.file2) {
25 | return;
26 | }
27 |
28 | await this.updateState();
29 | this.build();
30 | })
31 | );
32 | }
33 |
34 | private state: ViewState;
35 |
36 | private file1Content: string;
37 |
38 | private file2Content: string;
39 |
40 | private fileDifferences: FileDifferences;
41 |
42 | private file1Lines: string[];
43 |
44 | private file2Lines: string[];
45 |
46 | private wasDeleteModalShown = false;
47 |
48 | override getViewType(): string {
49 | return VIEW_TYPE_DIFFERENCES;
50 | }
51 |
52 | override getDisplayText(): string {
53 | if (this.state?.file1 && this.state?.file2) {
54 | return (
55 | `File Diff: ${this.state.file1.name} ` +
56 | `and ${this.state.file2.name}`
57 | );
58 | }
59 | return `File Diff`;
60 | }
61 |
62 | override async setState(
63 | state: ViewState,
64 | result: ViewStateResult
65 | ): Promise {
66 | super.setState(state, result);
67 | this.state = state;
68 |
69 | await this.updateState();
70 | this.build();
71 | }
72 |
73 | async onunload(): Promise {
74 | this.state.continueCallback?.(false);
75 | }
76 |
77 | private async updateState(): Promise {
78 | if (this.state.file1 == null || this.state.file2 == null) {
79 | return;
80 | }
81 |
82 | this.file1Content = await this.app.vault.cachedRead(this.state.file1);
83 | this.file2Content = await this.app.vault.cachedRead(this.state.file2);
84 |
85 | this.file1Lines = this.file1Content
86 | // Add trailing new line as this removes edge cases
87 | .concat('\n')
88 | .split('\n')
89 | // Streamline empty spaces at the end as this remove edge cases
90 | .map((line) => line.trimEnd());
91 |
92 | this.file2Lines = this.file2Content
93 | // Add trailing new spaces as this removes edge cases
94 | .concat('\n')
95 | .split('\n')
96 | // Streamline empty lines at the end as this remove edge cases
97 | .map((line) => line.trimEnd());
98 |
99 | const parsedDiff = structuredPatch(
100 | this.state.file1.path,
101 | this.state.file2.path,
102 | this.file1Lines.join('\n'),
103 | this.file2Lines.join('\n')
104 | );
105 | this.fileDifferences = FileDifferences.fromParsedDiff(parsedDiff);
106 |
107 | }
108 |
109 | private build(): void {
110 | this.contentEl.empty();
111 |
112 | const container = this.contentEl.createDiv({
113 | cls: 'file-diff__container',
114 | });
115 |
116 | this.buildLines(container);
117 |
118 | this.scrollToFirstDifference();
119 | if (
120 | this.fileDifferences.differences.length === 0 &&
121 | this.state.showMergeOption &&
122 | !this.wasDeleteModalShown
123 | ) {
124 | this.wasDeleteModalShown = true;
125 | this.showDeleteModal();
126 | }
127 | }
128 |
129 | private buildLines(container: HTMLDivElement): void {
130 | let lineCount1 = 0;
131 | let lineCount2 = 0;
132 | const maxLineCount = Math.max(this.file1Lines.length, this.file2Lines.length)
133 | while (lineCount1 <= maxLineCount || lineCount2 <= maxLineCount) {
134 | const difference = this.fileDifferences.differences.find(
135 | // eslint-disable-next-line no-loop-func
136 | (d) =>
137 | d.file1Start === lineCount1 && d.file2Start === lineCount2
138 | );
139 |
140 | if (difference != null) {
141 | const differenceContainer = container.createDiv({
142 | cls: 'difference',
143 | });
144 | this.buildDifferenceVisualizer(differenceContainer, difference);
145 | lineCount1 += difference.file1Lines.length;
146 | lineCount2 += difference.file2Lines.length;
147 | } else {
148 | const line =
149 | lineCount1 <= lineCount2
150 | ? this.file1Lines[lineCount1]
151 | : this.file2Lines[lineCount2];
152 | container.createDiv({
153 | // Necessary to give the line a height when it's empty.
154 | text: preventEmptyString(line),
155 | cls: 'file-diff__line',
156 | });
157 | lineCount1 += 1;
158 | lineCount2 += 1;
159 | }
160 | }
161 | }
162 |
163 | private buildDifferenceVisualizer(
164 | container: HTMLDivElement,
165 | difference: Difference
166 | ): void {
167 | if (this.state.showMergeOption) {
168 | new ActionLine({
169 | difference,
170 | file1: this.state.file1,
171 | file2: this.state.file2,
172 | file1Content: this.file1Content,
173 | file2Content: this.file2Content,
174 | triggerRebuild: async (): Promise => {
175 | await this.updateState();
176 | this.build();
177 | },
178 | }).build(container);
179 | }
180 |
181 | // Draw top diff
182 | for (let i = 0; i < difference.file1Lines.length; i += 1) {
183 | const line1 = difference.file1Lines[i];
184 | const line2 = difference.file2Lines[i];
185 |
186 | const lineDiv = container.createDiv({ cls: 'file-diff__line file-diff__top-line__bg' });
187 | const diffSpans = this.buildDiffLine(line1, line2, 'file-diff_top-line__character');
188 |
189 | // Remove border radius if applicable
190 | if (i < difference.file1Lines.length - 1 || difference.file2Lines.length !== 0) {
191 | lineDiv.classList.add('file-diff__no-bottom-border');
192 | }
193 | if (i !== 0) {
194 | lineDiv.classList.add('file-diff__no-top-border');
195 | }
196 |
197 | lineDiv.appendChild(diffSpans);
198 | }
199 |
200 | // Draw bottom diff
201 | for (let i = 0; i < difference.file2Lines.length; i += 1) {
202 | const line1 = difference.file1Lines[i];
203 | const line2 = difference.file2Lines[i];
204 |
205 | const lineDiv = container.createDiv({ cls: 'file-diff__line file-diff__bottom-line__bg' });
206 | const diffSpans = this.buildDiffLine(line2, line1, 'file-diff_bottom-line__character');
207 |
208 | // Remove border radius if applicable
209 | if ((i == 0 && difference.file1Lines.length > 0) || i > 0) {
210 | lineDiv.classList.add('file-diff__no-top-border');
211 | }
212 | if (i < difference.file2Lines.length - 1) {
213 | lineDiv.classList.add('file-diff__no-bottom-border');
214 | }
215 |
216 | lineDiv.appendChild(diffSpans);
217 | }
218 | }
219 |
220 | private buildDiffLine(line1: string, line2: string, charClass: string) {
221 | const fragment = document.createElement('div');
222 |
223 | if (line1 != undefined && line1.length === 0) {
224 | fragment.textContent = preventEmptyString(line1);
225 | } else if (line1 != undefined && line2 != undefined) {
226 | const differences = diffWords(line2, line1);
227 |
228 | for (const difference of differences) {
229 | if (difference.removed) {
230 | continue;
231 | }
232 |
233 | const span = document.createElement('span');
234 | // Necessary to give the line a height when it's empty.
235 | span.textContent = preventEmptyString(difference.value);
236 | if (difference.added) {
237 | span.classList.add(charClass);
238 | }
239 | fragment.appendChild(span);
240 | }
241 | } else if(line1 != undefined && line2 == undefined) {
242 | const span = document.createElement('span');
243 | // Necessary to give the line a height when it's empty.
244 | span.textContent = preventEmptyString(line1);
245 | span.classList.add(charClass);
246 | fragment.appendChild(span);
247 | } else {
248 | fragment.textContent = preventEmptyString(line1);
249 | }
250 |
251 | return fragment;
252 | }
253 |
254 | private scrollToFirstDifference(): void {
255 | if (this.fileDifferences.differences.length === 0) {
256 | return;
257 | }
258 |
259 | const containerRect = this.contentEl
260 | .getElementsByClassName('file-diff__container')[0]
261 | .getBoundingClientRect();
262 | const elementRect = this.contentEl
263 | .getElementsByClassName('difference')[0]
264 | .getBoundingClientRect();
265 | this.contentEl.scrollTo({
266 | top: elementRect.top - containerRect.top - 100,
267 | behavior: 'smooth',
268 | });
269 | }
270 |
271 | async showDeleteModal(): Promise {
272 | // Wait a moment to avoid appearing overly aggressive with the modal
273 | await sleep(200);
274 |
275 | return new Promise((resolve, reject) => {
276 | new DeleteFileModal({
277 | file1: this.state.file1,
278 | file2: this.state.file2,
279 | onDone: (e) => {
280 | if (e) {
281 | return reject(e);
282 | }
283 | this.state.continueCallback?.(true);
284 | this.leaf.detach();
285 | return resolve();
286 | },
287 | }).open();
288 | });
289 | }
290 | }
291 |
--------------------------------------------------------------------------------
/src/components/modals/delete_file_modal.ts:
--------------------------------------------------------------------------------
1 | import { Modal, TFile } from 'obsidian';
2 |
3 | export class DeleteFileModal extends Modal {
4 | constructor(args: {
5 | file1: TFile;
6 | file2: TFile;
7 | onDone: (error: Error | null) => void;
8 | }) {
9 | super(app);
10 | this.file1 = args.file1;
11 | this.file2 = args.file2;
12 | this.onDone = args.onDone;
13 | }
14 |
15 | private readonly file1: TFile;
16 |
17 | private readonly file2: TFile;
18 |
19 | private readonly onDone: (error: Error | null) => void;
20 |
21 | onOpen(): void {
22 | // Counteract gravity pull by moving box up for balanced composition
23 | this.modalEl.addClass('mb-20');
24 |
25 | this.contentEl.createEl('h3', {
26 | text: `Delete "${this.file2.name}"?`,
27 | });
28 | this.contentEl.createEl('p', {
29 | text:
30 | `The contents of "${this.file1.name}" and ` +
31 | `"${this.file2.name}" are identical. Would you like to ` +
32 | `delete the duplicate file? Please note that this action is ` +
33 | `irreversible.`,
34 | });
35 |
36 | const buttonContainer = this.contentEl.createDiv(
37 | 'file-diff__button-container'
38 | );
39 |
40 | const deleteButton = buttonContainer.createEl('button', {
41 | text: 'Delete',
42 | cls: 'mod-warning mr-2',
43 | });
44 | const cancelButton = buttonContainer.createEl('button', {
45 | text: 'Cancel',
46 | });
47 |
48 | deleteButton.addEventListener('click', () => this.handleDeleteClick());
49 | cancelButton.addEventListener('click', () => this.close());
50 | }
51 |
52 | handleDeleteClick(): void {
53 | this.app.vault.delete(this.file2);
54 |
55 | this.close();
56 |
57 | this.onDone(null);
58 | }
59 | }
60 |
--------------------------------------------------------------------------------
/src/components/modals/risky_action_modal.ts:
--------------------------------------------------------------------------------
1 | import { Modal } from 'obsidian';
2 |
3 | export class RiskyActionModal extends Modal {
4 | constructor(args: { onAccept: (error: Error | null) => void }) {
5 | super(app);
6 | this.onAccept = args.onAccept;
7 | }
8 |
9 | private readonly onAccept: (error: Error | null) => void;
10 |
11 | onOpen(): void {
12 | // Counteract gravity pull by moving box up for balanced composition
13 | this.modalEl.addClass('mb-20');
14 |
15 | this.contentEl.createEl('h3', { text: `Do you accept the risk?` });
16 | this.contentEl.createEl('p', {
17 | text:
18 | `The merging options alter the files irreversibly. ` +
19 | `Proceed with caution and only if you are aware and ` +
20 | `accepting of the associated risks.`,
21 | });
22 |
23 | const buttonContainer = this.contentEl.createDiv(
24 | 'file-diff__button-container'
25 | );
26 |
27 | const deleteButton = buttonContainer.createEl('button', {
28 | text: 'Accept Risk',
29 | cls: 'mod-warning mr-2',
30 | });
31 | const cancelButton = buttonContainer.createEl('button', {
32 | text: 'Cancel',
33 | });
34 |
35 | cancelButton.addEventListener('click', () => this.close());
36 | deleteButton.addEventListener('click', () => {
37 | this.close();
38 | this.onAccept(null);
39 | });
40 | }
41 | }
42 |
--------------------------------------------------------------------------------
/src/components/modals/select_file_modal.ts:
--------------------------------------------------------------------------------
1 | import { SuggestModal, TFile } from 'obsidian';
2 |
3 | export class SelectFileModal extends SuggestModal {
4 | constructor(args: {
5 | selectableFiles: TFile[];
6 | onChoose: (error: Error | null, result?: TFile) => void;
7 | }) {
8 | super(app);
9 | this.selectableFiles = args.selectableFiles;
10 | this.onChoose = args.onChoose;
11 | }
12 |
13 | private readonly selectableFiles: TFile[];
14 |
15 | private readonly onChoose: (error: Error | null, result?: TFile) => void;
16 |
17 | getSuggestions(query: string): TFile[] {
18 | return this.selectableFiles
19 | .filter((file) => {
20 | const searchQuery = query?.toLowerCase();
21 | return file.name?.toLowerCase().includes(searchQuery);
22 | })
23 | .sort((a, b) => (a.stat.mtime < b.stat.mtime ? 1 : -1));
24 | }
25 |
26 | renderSuggestion(file: TFile, el: HTMLElement): void {
27 | el.createEl('div', { text: file.name });
28 | }
29 |
30 | onChooseSuggestion(file: TFile): void {
31 | this.onChoose(null, file);
32 | }
33 | }
34 |
--------------------------------------------------------------------------------
/src/data/difference.ts:
--------------------------------------------------------------------------------
1 | export class Difference {
2 | constructor(args: {
3 | file1Start: number;
4 | file2Start: number;
5 | file1Lines: string[];
6 | file2Lines: string[];
7 | }) {
8 | this.file1Start = args.file1Start;
9 | this.file2Start = args.file2Start;
10 | this.file1Lines = args.file1Lines;
11 | this.file2Lines = args.file2Lines;
12 | }
13 |
14 | public readonly file1Start: number;
15 |
16 | public readonly file2Start: number;
17 |
18 | public readonly file1Lines: string[];
19 |
20 | public readonly file2Lines: string[];
21 | }
22 |
--------------------------------------------------------------------------------
/src/data/file_differences.test.ts:
--------------------------------------------------------------------------------
1 | /* eslint-disable import/no-extraneous-dependencies */
2 | import { ParsedDiff } from 'diff';
3 | import { describe, expect, it } from 'vitest';
4 | import { FileDifferences } from './file_differences';
5 |
6 | describe('FileDifferences.fromParsedDiff', () => {
7 | it('should work with files containing one line', () => {
8 | const test = JSON.parse(`
9 | {"oldFileName": "1", "newFileName": "2", "hunks": [
10 | {"oldStart": 1, "oldLines": 1, "newStart": 1, "newLines": 1,
11 | "lines": ["-a","+b"]
12 | }]}
13 | `) as ParsedDiff;
14 |
15 | const fileDifferences = FileDifferences.fromParsedDiff(test);
16 |
17 | expect(JSON.stringify(fileDifferences)).toBe(
18 | '{"file1Name":"1","file2Name":"2",' +
19 | '"differences":[{"file1Start":0,"file2Start":0,' +
20 | '"file1Lines":["a"],"file2Lines":["b"]}]}'
21 | );
22 | });
23 | });
24 |
--------------------------------------------------------------------------------
/src/data/file_differences.ts:
--------------------------------------------------------------------------------
1 | import { ParsedDiff } from 'diff';
2 | import { Difference } from './difference';
3 |
4 | /**
5 | * A class that contains the differences between two files.
6 | */
7 | export class FileDifferences {
8 | private constructor(args: {
9 | file1Name?: string;
10 | file2Name?: string;
11 | differences: Difference[];
12 | }) {
13 | this.file1Name = args.file1Name;
14 | this.file2Name = args.file2Name;
15 | this.differences = args.differences;
16 | }
17 |
18 | public readonly file1Name?: string;
19 |
20 | public readonly file2Name?: string;
21 |
22 | public readonly differences: Difference[];
23 |
24 | /**
25 | * Returns a FileDifferences object from the given ParsedDiff instance.
26 | *
27 | * Why create a new data structure if parsedDiff already exists?
28 | *
29 | * The FileDifferences class was created because there was a limitation in
30 | * the existing ParsedDiff class from the diff library for my use case. The
31 | * hunk object in the ParsedDiff class can contain multiple separated line
32 | * differences, which is problematic because I wanted to display a separate
33 | * action line for each contiguous change and thus allow for more precise
34 | * selection of changes. Additionally, the user needs to be able to apply
35 | * the changes one by one and so I have to keep a state where only one
36 | * contiguous change but is applied. To solve this, I considered two
37 | * options: removing the contiguous change directly in the hunk object or
38 | * introducing a new data structure with a finer granularity. I ultimately
39 | * chose the latter option as it seemed simpler.
40 | */
41 | static fromParsedDiff(parsedDiff: ParsedDiff): FileDifferences {
42 | const differences: Difference[] = [];
43 |
44 | parsedDiff.hunks.forEach((hunk) => {
45 | let line1Count = 0;
46 | let line2Count = 0;
47 | for (let i = 0; i < hunk.lines.length; i += 1) {
48 | const line = hunk.lines[i];
49 |
50 | if (line.startsWith('+') || line.startsWith('-')) {
51 | const start = i;
52 |
53 | // Find the end of the contiguous lines
54 | let end = start;
55 | while (
56 | end < hunk.lines.length - 1 &&
57 | (hunk.lines[end + 1].startsWith('+') ||
58 | hunk.lines[end + 1].startsWith('-'))
59 | ) {
60 | end += 1;
61 | }
62 |
63 | // Add the contiguous lines to the differences
64 | const file1Lines = hunk.lines
65 | .slice(start, end + 1)
66 | .filter((l) => l.startsWith('-'))
67 | .map((l) => l.slice(1));
68 | const file2Lines = hunk.lines
69 | .slice(start, end + 1)
70 | .filter((l) => l.startsWith('+'))
71 | .map((l) => l.slice(1));
72 | differences.push(
73 | new Difference({
74 | file1Start: hunk.oldStart + start - line2Count - 1,
75 | file2Start: hunk.newStart + start - line1Count - 1,
76 | file1Lines,
77 | file2Lines,
78 | })
79 | );
80 |
81 | line1Count += file1Lines.length;
82 | line2Count += file2Lines.length;
83 | i += end - start;
84 | }
85 | }
86 | });
87 |
88 | return new this({
89 | file1Name: parsedDiff.oldFileName,
90 | file2Name: parsedDiff.newFileName,
91 | differences,
92 | });
93 | }
94 | }
95 |
--------------------------------------------------------------------------------
/src/main.ts:
--------------------------------------------------------------------------------
1 | import { Plugin, TFile } from 'obsidian';
2 |
3 | import {
4 | DifferencesView,
5 | VIEW_TYPE_DIFFERENCES,
6 | ViewState,
7 | } from './components/differences_view';
8 | import { RiskyActionModal } from './components/modals/risky_action_modal';
9 | import { SelectFileModal } from './components/modals/select_file_modal';
10 |
11 | export default class FileDiffPlugin extends Plugin {
12 | fileDiffMergeWarningKey = 'file-diff-merge-warning';
13 |
14 | override onload(): void {
15 | this.registerView(
16 | VIEW_TYPE_DIFFERENCES,
17 | (leaf) => new DifferencesView(leaf)
18 | );
19 |
20 | this.addCommand({
21 | id: 'compare',
22 | name: 'Compare',
23 | editorCallback: async () => {
24 | const activeFile = this.app.workspace.getActiveFile();
25 | if (activeFile == null) {
26 | return;
27 | }
28 |
29 | const compareFile = await this.getFileToCompare(activeFile);
30 | if (compareFile == null) {
31 | return;
32 | }
33 |
34 | this.openDifferencesView({
35 | file1: activeFile,
36 | file2: compareFile,
37 | showMergeOption: false,
38 | });
39 | },
40 | });
41 |
42 | this.addCommand({
43 | id: 'compare-and-merge',
44 | name: 'Compare and merge',
45 | editorCallback: async () => {
46 | // Show warning when this option is selected for the first time
47 | if (!localStorage.getItem(this.fileDiffMergeWarningKey)) {
48 | await this.showRiskyActionModal();
49 | if (!localStorage.getItem(this.fileDiffMergeWarningKey)) {
50 | return;
51 | }
52 | }
53 |
54 | const activeFile = this.app.workspace.getActiveFile();
55 | if (activeFile == null) {
56 | return;
57 | }
58 |
59 | const compareFile = await this.getFileToCompare(activeFile);
60 | if (compareFile == null) {
61 | return;
62 | }
63 |
64 | this.openDifferencesView({
65 | file1: activeFile,
66 | file2: compareFile,
67 | showMergeOption: true,
68 | });
69 | },
70 | });
71 |
72 | this.addCommand({
73 | id: 'find-sync-conflicts-and-merge',
74 | name: 'Find sync conflicts and merge',
75 | callback: async () => {
76 | // Show warning when this option is selected for the first time
77 | if (!localStorage.getItem(this.fileDiffMergeWarningKey)) {
78 | await this.showRiskyActionModal();
79 | if (!localStorage.getItem(this.fileDiffMergeWarningKey)) {
80 | return;
81 | }
82 | }
83 |
84 | const syncConflicts = this.findSyncConflicts();
85 |
86 | for await (const syncConflict of syncConflicts) {
87 | const continuePromise = new Promise((resolve) => {
88 | this.openDifferencesView({
89 | file1: syncConflict.originalFile,
90 | file2: syncConflict.syncConflictFile,
91 | showMergeOption: true,
92 | continueCallback: async (shouldContinue: boolean) =>
93 | resolve(shouldContinue),
94 | });
95 | });
96 |
97 | const shouldContinue = await continuePromise;
98 | if (!shouldContinue) {
99 | break;
100 | }
101 | }
102 | },
103 | });
104 | }
105 |
106 | override async onunload(): Promise {
107 | this.app.workspace.detachLeavesOfType(VIEW_TYPE_DIFFERENCES);
108 | }
109 |
110 | private getFileToCompare(activeFile: TFile): Promise {
111 | const selectableFiles = this.app.vault.getFiles();
112 | selectableFiles.remove(activeFile);
113 | return this.showSelectOtherFileModal({ selectableFiles });
114 | }
115 |
116 | private showSelectOtherFileModal(args: {
117 | selectableFiles: TFile[];
118 | }): Promise {
119 | return new Promise((resolve, reject) => {
120 | new SelectFileModal({
121 | selectableFiles: args.selectableFiles,
122 | onChoose: (e, f) => (e ? reject(e) : resolve(f)),
123 | }).open();
124 | });
125 | }
126 |
127 | private showRiskyActionModal(): Promise {
128 | return new Promise((resolve, reject) => {
129 | new RiskyActionModal({
130 | onAccept: async (e: Error | null) => {
131 | if (e) {
132 | reject(e);
133 | } else {
134 | localStorage.setItem(
135 | this.fileDiffMergeWarningKey,
136 | 'true'
137 | );
138 | // Wait for the set item dispatch event to be processed
139 | await sleep(50);
140 |
141 | resolve();
142 | }
143 | },
144 | }).open();
145 | });
146 | }
147 |
148 | async openDifferencesView(state: ViewState): Promise {
149 | // Closes all leafs (views) of the type VIEW_TYPE_DIFFERENCES
150 | this.app.workspace.detachLeavesOfType(VIEW_TYPE_DIFFERENCES);
151 |
152 | // Opens a new leaf (view) of the type VIEW_TYPE_DIFFERENCES
153 | const leaf = this.app.workspace.getLeaf(true);
154 | leaf.setViewState({
155 | type: VIEW_TYPE_DIFFERENCES,
156 | active: true,
157 | state,
158 | });
159 | this.app.workspace.revealLeaf(leaf);
160 | }
161 |
162 | findSyncConflicts(): { originalFile: TFile; syncConflictFile: TFile }[] {
163 | const syncConflicts: {
164 | originalFile: TFile;
165 | syncConflictFile: TFile;
166 | }[] = [];
167 |
168 | const files = app.vault.getMarkdownFiles();
169 |
170 | for (const file of files) {
171 | if (file.name.includes('sync-conflict')) {
172 | const originalFileName = file.name.replace(
173 | /\.sync-conflict-\d{8}-\d{6}-[A-Z0-9]+/,
174 | ''
175 | );
176 | const originalFile = files.find(
177 | (f) => f.name === originalFileName && (file.parent?.path ?? "") === (f.parent?.path ?? "")
178 | );
179 |
180 | if (originalFile) {
181 | syncConflicts.push({
182 | originalFile,
183 | syncConflictFile: file,
184 | });
185 | }
186 | }
187 | }
188 |
189 | return syncConflicts;
190 | }
191 | }
192 |
--------------------------------------------------------------------------------
/src/utils/string_utils.test.ts:
--------------------------------------------------------------------------------
1 | /* eslint-disable import/no-extraneous-dependencies */
2 | import { describe, expect, it } from 'vitest';
3 | import { replaceLine } from './string_utils';
4 |
5 | describe('replaceLine', () => {
6 | it('should replace fullText with newLine at given position', () => {
7 | const fullText = 'line1\nline2\nline3';
8 | const newFullText = replaceLine({
9 | fullText,
10 | newLine: 'newLine2',
11 | position: 1,
12 | linesToReplace: 1,
13 | });
14 | expect(newFullText).toBe('line1\nnewLine2\nline3');
15 | });
16 |
17 | it('should replacing with mutliple lines correctly', () => {
18 | const fullText = 'line1\nline2\nline3';
19 | const newFullText = replaceLine({
20 | fullText,
21 | newLine: 'newLine2\nnewLine3',
22 | position: 1,
23 | linesToReplace: 1,
24 | });
25 | expect(newFullText).toBe('line1\nnewLine2\nnewLine3\nline3');
26 | });
27 |
28 | it('should remove line when new line is empty', () => {
29 | const fullText = 'line1\nline2\nline3';
30 | const newFullText = replaceLine({
31 | fullText,
32 | newLine: '',
33 | position: 1,
34 | linesToReplace: 1,
35 | });
36 | expect(newFullText).toBe('line1\nline3');
37 | });
38 |
39 | it('should replace two lines', () => {
40 | const fullText = 'line1\nline2\nline3\nline4';
41 | const newFullText = replaceLine({
42 | fullText,
43 | newLine: 'line5',
44 | position: 1,
45 | linesToReplace: 2,
46 | });
47 | expect(newFullText).toBe('line1\nline5\nline4');
48 | });
49 | });
50 |
--------------------------------------------------------------------------------
/src/utils/string_utils.ts:
--------------------------------------------------------------------------------
1 | /** Method to insert a line in a string */
2 | export function insertLine(args: {
3 | fullText: string;
4 | newLine: string;
5 | position: number;
6 | }): string {
7 | const lines = args.fullText.split('\n');
8 | lines.splice(args.position, 0, args.newLine);
9 | return lines.join('\n');
10 | }
11 |
12 | /** Method to replace a line in a string */
13 | export function replaceLine(args: {
14 | fullText: string;
15 | newLine: string;
16 | position: number;
17 | linesToReplace: number;
18 | }): string {
19 | const lines = args.fullText.split('\n');
20 | if (args.newLine === '') {
21 | lines.splice(args.position, args.linesToReplace);
22 | } else {
23 | lines.splice(args.position, args.linesToReplace, args.newLine);
24 | }
25 | return lines.join('\n');
26 | }
27 |
28 | /** Method to delete a line in a string */
29 | export function deleteLines(args: {
30 | fullText: string;
31 | position: number;
32 | count: number;
33 | }): string {
34 | const lines = args.fullText.split('\n');
35 | lines.splice(args.position, args.count);
36 | return lines.join('\n');
37 | }
38 |
39 | /** Returns an invisible character when the text is empty. */
40 | export function preventEmptyString(text: string): string {
41 | return text !== '' ? text : '';
42 | }
43 |
--------------------------------------------------------------------------------
/styles.css:
--------------------------------------------------------------------------------
1 | .file-diff__container {
2 | width: 100%;
3 | max-width: 100%;
4 | overflow-x: scroll;
5 | padding: 1rem;
6 | }
7 |
8 | .file-diff__line {
9 | padding: 0.1rem 0;
10 | }
11 |
12 | .file-diff__button-container {
13 | text-align: right;
14 | }
15 |
16 | @media (prefers-color-scheme: light) {
17 | .file-diff__top-line__bg {
18 | background-color: #d9f4ef;
19 | border-radius: 0.25rem; /* 4px */
20 | }
21 |
22 | .file-diff_top-line__character {
23 | background-color: #99e1d3;
24 | border-radius: 0.25rem; /* 4px */
25 | }
26 |
27 | .file-diff__bottom-line__bg {
28 | background-color: #d9edff;
29 | border-radius: 0.25rem; /* 4px */
30 | }
31 |
32 | .file-diff_bottom-line__character {
33 | background-color: #b1d4f2;
34 | border-radius: 0.25rem; /* 4px */
35 | }
36 | }
37 |
38 | @media (prefers-color-scheme: dark) {
39 | .file-diff__top-line__bg {
40 | background-color: #25403b;
41 | border-radius: 0.25rem; /* 4px */
42 | }
43 |
44 | .file-diff_top-line__character {
45 | background-color: #236559;
46 | border-radius: 0.25rem; /* 4px */
47 | }
48 |
49 | .file-diff__bottom-line__bg {
50 | background-color: #25394b;
51 | border-radius: 0.25rem; /* 4px */
52 | }
53 |
54 | .file-diff_bottom-line__character {
55 | background-color: #2e618d;
56 | border-radius: 0.25rem; /* 4px */
57 | }
58 | }
59 |
60 | .file-diff__no-bottom-border {
61 | border-bottom-left-radius: 0;
62 | border-bottom-right-radius: 0;
63 | }
64 |
65 | .file-diff__no-top-border {
66 | border-top-left-radius: 0;
67 | border-top-right-radius: 0;
68 | }
69 |
70 | .file-diff__action-line {
71 | color: #919191;
72 | }
73 |
74 | /* Tailwind CSS */
75 | .flex {
76 | display: flex;
77 | }
78 |
79 | .flex-row {
80 | flex-direction: row;
81 | }
82 |
83 | .gap-1 {
84 | gap: 0.25rem; /* 4px */
85 | }
86 |
87 | .no-decoration {
88 | text-decoration-line: none;
89 | }
90 |
91 | .no-decoration:hover {
92 | text-decoration-line: none;
93 | }
94 |
95 | .text-xxs {
96 | font-size: 0.65rem;
97 | }
98 |
99 | /* Rename from py-0.5 to py-0-5, as dots aren't allowed in selector names */
100 | .py-0-5 {
101 | padding-top: 0.125rem; /* 2px */
102 | padding-bottom: 0.125rem; /* 2px */
103 | }
104 |
105 | .mr-2 {
106 | margin-right: 0.5rem; /* 8px */
107 | }
108 |
109 | .mb-20 {
110 | margin-bottom: 5rem; /* 80px */
111 | }
112 |
--------------------------------------------------------------------------------
/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "baseUrl": ".",
4 | "inlineSourceMap": true,
5 | "inlineSources": true,
6 | "module": "ESNext",
7 | "target": "ES6",
8 | "allowJs": true,
9 | "noImplicitAny": true,
10 | "moduleResolution": "node",
11 | "importHelpers": true,
12 | "isolatedModules": true,
13 | "strictNullChecks": true,
14 | "lib": ["DOM", "ES5", "ES6", "ES7"],
15 | "skipLibCheck": true
16 | },
17 | "include": ["**/*.ts"]
18 | }
19 |
--------------------------------------------------------------------------------
/version-bump.mjs:
--------------------------------------------------------------------------------
1 | import { readFileSync, writeFileSync } from "fs";
2 |
3 | const targetVersion = process.env.npm_package_version;
4 |
5 | // read minAppVersion from manifest.json and bump version to target version
6 | let manifest = JSON.parse(readFileSync("manifest.json", "utf8"));
7 | const { minAppVersion } = manifest;
8 | manifest.version = targetVersion;
9 | writeFileSync("manifest.json", JSON.stringify(manifest, null, "\t"));
10 |
11 | // update versions.json with target version and minAppVersion from manifest.json
12 | let versions = JSON.parse(readFileSync("versions.json", "utf8"));
13 | versions[targetVersion] = minAppVersion;
14 | writeFileSync("versions.json", JSON.stringify(versions, null, "\t"));
15 |
--------------------------------------------------------------------------------
/versions.json:
--------------------------------------------------------------------------------
1 | {
2 | "1.0.0": "0.15.0",
3 | "1.0.1": "0.15.0",
4 | "1.0.2": "0.15.0",
5 | "1.0.3": "0.15.0",
6 | "1.0.4": "0.15.0",
7 | "1.0.5": "0.15.0",
8 | "1.0.6": "0.15.0",
9 | "1.0.7": "0.15.0",
10 | "1.0.8": "0.15.0",
11 | "1.0.9": "0.15.0",
12 | "1.0.10": "0.15.0",
13 | "1.0.11": "0.15.0",
14 | "1.0.12": "0.15.0",
15 | "1.0.13": "0.15.0",
16 | "1.1.0": "0.15.0",
17 | "1.1.1": "0.15.0"
18 | }
19 |
--------------------------------------------------------------------------------
/yarn.lock:
--------------------------------------------------------------------------------
1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
2 | # yarn lockfile v1
3 |
4 |
5 | "@babel/runtime@^7.20.7":
6 | version "7.22.5"
7 | resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.22.5.tgz#8564dd588182ce0047d55d7a75e93921107b57ec"
8 | integrity sha512-ecjvYlnAaZ/KVneE/OdKYBYfgXV3Ptu6zQWmgEF7vwKhQnvVS6bjMD2XYgj+SNvQ1GfK/pjgokfPkC/2CO8CuA==
9 | dependencies:
10 | regenerator-runtime "^0.13.11"
11 |
12 | "@esbuild/android-arm64@0.17.19":
13 | version "0.17.19"
14 | resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.17.19.tgz#bafb75234a5d3d1b690e7c2956a599345e84a2fd"
15 | integrity sha512-KBMWvEZooR7+kzY0BtbTQn0OAYY7CsiydT63pVEaPtVYF0hXbUaOyZog37DKxK7NF3XacBJOpYT4adIJh+avxA==
16 |
17 | "@esbuild/android-arm64@0.17.3":
18 | version "0.17.3"
19 | resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.17.3.tgz#35d045f69c9b4cf3f8efcd1ced24a560213d3346"
20 | integrity sha512-XvJsYo3dO3Pi4kpalkyMvfQsjxPWHYjoX4MDiB/FUM4YMfWcXa5l4VCwFWVYI1+92yxqjuqrhNg0CZg3gSouyQ==
21 |
22 | "@esbuild/android-arm@0.17.19":
23 | version "0.17.19"
24 | resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.17.19.tgz#5898f7832c2298bc7d0ab53701c57beb74d78b4d"
25 | integrity sha512-rIKddzqhmav7MSmoFCmDIb6e2W57geRsM94gV2l38fzhXMwq7hZoClug9USI2pFRGL06f4IOPHHpFNOkWieR8A==
26 |
27 | "@esbuild/android-arm@0.17.3":
28 | version "0.17.3"
29 | resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.17.3.tgz#4986d26306a7440078d42b3bf580d186ef714286"
30 | integrity sha512-1Mlz934GvbgdDmt26rTLmf03cAgLg5HyOgJN+ZGCeP3Q9ynYTNMn2/LQxIl7Uy+o4K6Rfi2OuLsr12JQQR8gNg==
31 |
32 | "@esbuild/android-x64@0.17.19":
33 | version "0.17.19"
34 | resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.17.19.tgz#658368ef92067866d95fb268719f98f363d13ae1"
35 | integrity sha512-uUTTc4xGNDT7YSArp/zbtmbhO0uEEK9/ETW29Wk1thYUJBz3IVnvgEiEwEa9IeLyvnpKrWK64Utw2bgUmDveww==
36 |
37 | "@esbuild/android-x64@0.17.3":
38 | version "0.17.3"
39 | resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.17.3.tgz#a1928cd681e4055103384103c8bd34df7b9c7b19"
40 | integrity sha512-nuV2CmLS07Gqh5/GrZLuqkU9Bm6H6vcCspM+zjp9TdQlxJtIe+qqEXQChmfc7nWdyr/yz3h45Utk1tUn8Cz5+A==
41 |
42 | "@esbuild/darwin-arm64@0.17.19":
43 | version "0.17.19"
44 | resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.17.19.tgz#584c34c5991b95d4d48d333300b1a4e2ff7be276"
45 | integrity sha512-80wEoCfF/hFKM6WE1FyBHc9SfUblloAWx6FJkFWTWiCoht9Mc0ARGEM47e67W9rI09YoUxJL68WHfDRYEAvOhg==
46 |
47 | "@esbuild/darwin-arm64@0.17.3":
48 | version "0.17.3"
49 | resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.17.3.tgz#e4af2b392e5606a4808d3a78a99d38c27af39f1d"
50 | integrity sha512-01Hxaaat6m0Xp9AXGM8mjFtqqwDjzlMP0eQq9zll9U85ttVALGCGDuEvra5Feu/NbP5AEP1MaopPwzsTcUq1cw==
51 |
52 | "@esbuild/darwin-x64@0.17.19":
53 | version "0.17.19"
54 | resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.17.19.tgz#7751d236dfe6ce136cce343dce69f52d76b7f6cb"
55 | integrity sha512-IJM4JJsLhRYr9xdtLytPLSH9k/oxR3boaUIYiHkAawtwNOXKE8KoU8tMvryogdcT8AU+Bflmh81Xn6Q0vTZbQw==
56 |
57 | "@esbuild/darwin-x64@0.17.3":
58 | version "0.17.3"
59 | resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.17.3.tgz#cbcbfb32c8d5c86953f215b48384287530c5a38e"
60 | integrity sha512-Eo2gq0Q/er2muf8Z83X21UFoB7EU6/m3GNKvrhACJkjVThd0uA+8RfKpfNhuMCl1bKRfBzKOk6xaYKQZ4lZqvA==
61 |
62 | "@esbuild/freebsd-arm64@0.17.19":
63 | version "0.17.19"
64 | resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.17.19.tgz#cacd171665dd1d500f45c167d50c6b7e539d5fd2"
65 | integrity sha512-pBwbc7DufluUeGdjSU5Si+P3SoMF5DQ/F/UmTSb8HXO80ZEAJmrykPyzo1IfNbAoaqw48YRpv8shwd1NoI0jcQ==
66 |
67 | "@esbuild/freebsd-arm64@0.17.3":
68 | version "0.17.3"
69 | resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.17.3.tgz#90ec1755abca4c3ffe1ad10819cd9d31deddcb89"
70 | integrity sha512-CN62ESxaquP61n1ZjQP/jZte8CE09M6kNn3baos2SeUfdVBkWN5n6vGp2iKyb/bm/x4JQzEvJgRHLGd5F5b81w==
71 |
72 | "@esbuild/freebsd-x64@0.17.19":
73 | version "0.17.19"
74 | resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.17.19.tgz#0769456eee2a08b8d925d7c00b79e861cb3162e4"
75 | integrity sha512-4lu+n8Wk0XlajEhbEffdy2xy53dpR06SlzvhGByyg36qJw6Kpfk7cp45DR/62aPH9mtJRmIyrXAS5UWBrJT6TQ==
76 |
77 | "@esbuild/freebsd-x64@0.17.3":
78 | version "0.17.3"
79 | resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.17.3.tgz#8760eedc466af253c3ed0dfa2940d0e59b8b0895"
80 | integrity sha512-feq+K8TxIznZE+zhdVurF3WNJ/Sa35dQNYbaqM/wsCbWdzXr5lyq+AaTUSER2cUR+SXPnd/EY75EPRjf4s1SLg==
81 |
82 | "@esbuild/linux-arm64@0.17.19":
83 | version "0.17.19"
84 | resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.17.19.tgz#38e162ecb723862c6be1c27d6389f48960b68edb"
85 | integrity sha512-ct1Tg3WGwd3P+oZYqic+YZF4snNl2bsnMKRkb3ozHmnM0dGWuxcPTTntAF6bOP0Sp4x0PjSF+4uHQ1xvxfRKqg==
86 |
87 | "@esbuild/linux-arm64@0.17.3":
88 | version "0.17.3"
89 | resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.17.3.tgz#13916fc8873115d7d546656e19037267b12d4567"
90 | integrity sha512-JHeZXD4auLYBnrKn6JYJ0o5nWJI9PhChA/Nt0G4MvLaMrvXuWnY93R3a7PiXeJQphpL1nYsaMcoV2QtuvRnF/g==
91 |
92 | "@esbuild/linux-arm@0.17.19":
93 | version "0.17.19"
94 | resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.17.19.tgz#1a2cd399c50040184a805174a6d89097d9d1559a"
95 | integrity sha512-cdmT3KxjlOQ/gZ2cjfrQOtmhG4HJs6hhvm3mWSRDPtZ/lP5oe8FWceS10JaSJC13GBd4eH/haHnqf7hhGNLerA==
96 |
97 | "@esbuild/linux-arm@0.17.3":
98 | version "0.17.3"
99 | resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.17.3.tgz#15f876d127b244635ddc09eaaa65ae97bc472a63"
100 | integrity sha512-CLP3EgyNuPcg2cshbwkqYy5bbAgK+VhyfMU7oIYyn+x4Y67xb5C5ylxsNUjRmr8BX+MW3YhVNm6Lq6FKtRTWHQ==
101 |
102 | "@esbuild/linux-ia32@0.17.19":
103 | version "0.17.19"
104 | resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.17.19.tgz#e28c25266b036ce1cabca3c30155222841dc035a"
105 | integrity sha512-w4IRhSy1VbsNxHRQpeGCHEmibqdTUx61Vc38APcsRbuVgK0OPEnQ0YD39Brymn96mOx48Y2laBQGqgZ0j9w6SQ==
106 |
107 | "@esbuild/linux-ia32@0.17.3":
108 | version "0.17.3"
109 | resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.17.3.tgz#6691f02555d45b698195c81c9070ab4e521ef005"
110 | integrity sha512-FyXlD2ZjZqTFh0sOQxFDiWG1uQUEOLbEh9gKN/7pFxck5Vw0qjWSDqbn6C10GAa1rXJpwsntHcmLqydY9ST9ZA==
111 |
112 | "@esbuild/linux-loong64@0.17.19":
113 | version "0.17.19"
114 | resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.17.19.tgz#0f887b8bb3f90658d1a0117283e55dbd4c9dcf72"
115 | integrity sha512-2iAngUbBPMq439a+z//gE+9WBldoMp1s5GWsUSgqHLzLJ9WoZLZhpwWuym0u0u/4XmZ3gpHmzV84PonE+9IIdQ==
116 |
117 | "@esbuild/linux-loong64@0.17.3":
118 | version "0.17.3"
119 | resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.17.3.tgz#f77ef657f222d8b3a8fbd530a09e40976c458d48"
120 | integrity sha512-OrDGMvDBI2g7s04J8dh8/I7eSO+/E7nMDT2Z5IruBfUO/RiigF1OF6xoH33Dn4W/OwAWSUf1s2nXamb28ZklTA==
121 |
122 | "@esbuild/linux-mips64el@0.17.19":
123 | version "0.17.19"
124 | resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.17.19.tgz#f5d2a0b8047ea9a5d9f592a178ea054053a70289"
125 | integrity sha512-LKJltc4LVdMKHsrFe4MGNPp0hqDFA1Wpt3jE1gEyM3nKUvOiO//9PheZZHfYRfYl6AwdTH4aTcXSqBerX0ml4A==
126 |
127 | "@esbuild/linux-mips64el@0.17.3":
128 | version "0.17.3"
129 | resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.17.3.tgz#fa38833cfc8bfaadaa12b243257fe6d19d0f6f79"
130 | integrity sha512-DcnUpXnVCJvmv0TzuLwKBC2nsQHle8EIiAJiJ+PipEVC16wHXaPEKP0EqN8WnBe0TPvMITOUlP2aiL5YMld+CQ==
131 |
132 | "@esbuild/linux-ppc64@0.17.19":
133 | version "0.17.19"
134 | resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.17.19.tgz#876590e3acbd9fa7f57a2c7d86f83717dbbac8c7"
135 | integrity sha512-/c/DGybs95WXNS8y3Ti/ytqETiW7EU44MEKuCAcpPto3YjQbyK3IQVKfF6nbghD7EcLUGl0NbiL5Rt5DMhn5tg==
136 |
137 | "@esbuild/linux-ppc64@0.17.3":
138 | version "0.17.3"
139 | resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.17.3.tgz#c157a602b627c90d174743e4b0dfb7630b101dbf"
140 | integrity sha512-BDYf/l1WVhWE+FHAW3FzZPtVlk9QsrwsxGzABmN4g8bTjmhazsId3h127pliDRRu5674k1Y2RWejbpN46N9ZhQ==
141 |
142 | "@esbuild/linux-riscv64@0.17.19":
143 | version "0.17.19"
144 | resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.17.19.tgz#7f49373df463cd9f41dc34f9b2262d771688bf09"
145 | integrity sha512-FC3nUAWhvFoutlhAkgHf8f5HwFWUL6bYdvLc/TTuxKlvLi3+pPzdZiFKSWz/PF30TB1K19SuCxDTI5KcqASJqA==
146 |
147 | "@esbuild/linux-riscv64@0.17.3":
148 | version "0.17.3"
149 | resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.17.3.tgz#7bf79614bd544bd932839b1fcff6cf1f8f6bdf1a"
150 | integrity sha512-WViAxWYMRIi+prTJTyV1wnqd2mS2cPqJlN85oscVhXdb/ZTFJdrpaqm/uDsZPGKHtbg5TuRX/ymKdOSk41YZow==
151 |
152 | "@esbuild/linux-s390x@0.17.19":
153 | version "0.17.19"
154 | resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.17.19.tgz#e2afd1afcaf63afe2c7d9ceacd28ec57c77f8829"
155 | integrity sha512-IbFsFbxMWLuKEbH+7sTkKzL6NJmG2vRyy6K7JJo55w+8xDk7RElYn6xvXtDW8HCfoKBFK69f3pgBJSUSQPr+4Q==
156 |
157 | "@esbuild/linux-s390x@0.17.3":
158 | version "0.17.3"
159 | resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.17.3.tgz#6bb50c5a2613d31ce1137fe5c249ecadbecccdea"
160 | integrity sha512-Iw8lkNHUC4oGP1O/KhumcVy77u2s6+KUjieUqzEU3XuWJqZ+AY7uVMrrCbAiwWTkpQHkr00BuXH5RpC6Sb/7Ug==
161 |
162 | "@esbuild/linux-x64@0.17.19":
163 | version "0.17.19"
164 | resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.17.19.tgz#8a0e9738b1635f0c53389e515ae83826dec22aa4"
165 | integrity sha512-68ngA9lg2H6zkZcyp22tsVt38mlhWde8l3eJLWkyLrp4HwMUr3c1s/M2t7+kHIhvMjglIBrFpncX1SzMckomGw==
166 |
167 | "@esbuild/linux-x64@0.17.3":
168 | version "0.17.3"
169 | resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.17.3.tgz#aa140d99f0d9e0af388024823bfe4558d73fbbf9"
170 | integrity sha512-0AGkWQMzeoeAtXQRNB3s4J1/T2XbigM2/Mn2yU1tQSmQRmHIZdkGbVq2A3aDdNslPyhb9/lH0S5GMTZ4xsjBqg==
171 |
172 | "@esbuild/netbsd-x64@0.17.19":
173 | version "0.17.19"
174 | resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.17.19.tgz#c29fb2453c6b7ddef9a35e2c18b37bda1ae5c462"
175 | integrity sha512-CwFq42rXCR8TYIjIfpXCbRX0rp1jo6cPIUPSaWwzbVI4aOfX96OXY8M6KNmtPcg7QjYeDmN+DD0Wp3LaBOLf4Q==
176 |
177 | "@esbuild/netbsd-x64@0.17.3":
178 | version "0.17.3"
179 | resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.17.3.tgz#b6ae9948b03e4c95dc581c68358fb61d9d12a625"
180 | integrity sha512-4+rR/WHOxIVh53UIQIICryjdoKdHsFZFD4zLSonJ9RRw7bhKzVyXbnRPsWSfwybYqw9sB7ots/SYyufL1mBpEg==
181 |
182 | "@esbuild/openbsd-x64@0.17.19":
183 | version "0.17.19"
184 | resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.17.19.tgz#95e75a391403cb10297280d524d66ce04c920691"
185 | integrity sha512-cnq5brJYrSZ2CF6c35eCmviIN3k3RczmHz8eYaVlNasVqsNY+JKohZU5MKmaOI+KkllCdzOKKdPs762VCPC20g==
186 |
187 | "@esbuild/openbsd-x64@0.17.3":
188 | version "0.17.3"
189 | resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.17.3.tgz#cda007233e211fc9154324bfa460540cfc469408"
190 | integrity sha512-cVpWnkx9IYg99EjGxa5Gc0XmqumtAwK3aoz7O4Dii2vko+qXbkHoujWA68cqXjhh6TsLaQelfDO4MVnyr+ODeA==
191 |
192 | "@esbuild/sunos-x64@0.17.19":
193 | version "0.17.19"
194 | resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.17.19.tgz#722eaf057b83c2575937d3ffe5aeb16540da7273"
195 | integrity sha512-vCRT7yP3zX+bKWFeP/zdS6SqdWB8OIpaRq/mbXQxTGHnIxspRtigpkUcDMlSCOejlHowLqII7K2JKevwyRP2rg==
196 |
197 | "@esbuild/sunos-x64@0.17.3":
198 | version "0.17.3"
199 | resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.17.3.tgz#f1385b092000c662d360775f3fad80943d2169c4"
200 | integrity sha512-RxmhKLbTCDAY2xOfrww6ieIZkZF+KBqG7S2Ako2SljKXRFi+0863PspK74QQ7JpmWwncChY25JTJSbVBYGQk2Q==
201 |
202 | "@esbuild/win32-arm64@0.17.19":
203 | version "0.17.19"
204 | resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.17.19.tgz#9aa9dc074399288bdcdd283443e9aeb6b9552b6f"
205 | integrity sha512-yYx+8jwowUstVdorcMdNlzklLYhPxjniHWFKgRqH7IFlUEa0Umu3KuYplf1HUZZ422e3NU9F4LGb+4O0Kdcaag==
206 |
207 | "@esbuild/win32-arm64@0.17.3":
208 | version "0.17.3"
209 | resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.17.3.tgz#14e9dd9b1b55aa991f80c120fef0c4492d918801"
210 | integrity sha512-0r36VeEJ4efwmofxVJRXDjVRP2jTmv877zc+i+Pc7MNsIr38NfsjkQj23AfF7l0WbB+RQ7VUb+LDiqC/KY/M/A==
211 |
212 | "@esbuild/win32-ia32@0.17.19":
213 | version "0.17.19"
214 | resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.17.19.tgz#95ad43c62ad62485e210f6299c7b2571e48d2b03"
215 | integrity sha512-eggDKanJszUtCdlVs0RB+h35wNlb5v4TWEkq4vZcmVt5u/HiDZrTXe2bWFQUez3RgNHwx/x4sk5++4NSSicKkw==
216 |
217 | "@esbuild/win32-ia32@0.17.3":
218 | version "0.17.3"
219 | resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.17.3.tgz#de584423513d13304a6925e01233499a37a4e075"
220 | integrity sha512-wgO6rc7uGStH22nur4aLFcq7Wh86bE9cOFmfTr/yxN3BXvDEdCSXyKkO+U5JIt53eTOgC47v9k/C1bITWL/Teg==
221 |
222 | "@esbuild/win32-x64@0.17.19":
223 | version "0.17.19"
224 | resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.17.19.tgz#8cfaf2ff603e9aabb910e9c0558c26cf32744061"
225 | integrity sha512-lAhycmKnVOuRYNtRtatQR1LPQf2oYCkRGkSFnseDAKPl8lu5SOsK/e1sXe5a0Pc5kHIHe6P2I/ilntNv2xf3cA==
226 |
227 | "@esbuild/win32-x64@0.17.3":
228 | version "0.17.3"
229 | resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.17.3.tgz#2f69ea6b37031b0d1715dd2da832a8ae5eb36e74"
230 | integrity sha512-FdVl64OIuiKjgXBjwZaJLKp0eaEckifbhn10dXWhysMJkWblg3OEEGKSIyhiD5RSgAya8WzP3DNkngtIg3Nt7g==
231 |
232 | "@eslint-community/eslint-utils@^4.2.0":
233 | version "4.4.0"
234 | resolved "https://registry.yarnpkg.com/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz#a23514e8fb9af1269d5f7788aa556798d61c6b59"
235 | integrity sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==
236 | dependencies:
237 | eslint-visitor-keys "^3.3.0"
238 |
239 | "@eslint-community/regexpp@^4.4.0":
240 | version "4.5.1"
241 | resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.5.1.tgz#cdd35dce4fa1a89a4fd42b1599eb35b3af408884"
242 | integrity sha512-Z5ba73P98O1KUYCCJTUeVpja9RcGoMdncZ6T49FCUl2lN38JtCJ+3WgIDBv0AuY4WChU5PmtJmOCTlN6FZTFKQ==
243 |
244 | "@eslint/eslintrc@^2.0.3":
245 | version "2.0.3"
246 | resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-2.0.3.tgz#4910db5505f4d503f27774bf356e3704818a0331"
247 | integrity sha512-+5gy6OQfk+xx3q0d6jGZZC3f3KzAkXc/IanVxd1is/VIIziRqqt3ongQz0FiTUXqTk0c7aDB3OaFuKnuSoJicQ==
248 | dependencies:
249 | ajv "^6.12.4"
250 | debug "^4.3.2"
251 | espree "^9.5.2"
252 | globals "^13.19.0"
253 | ignore "^5.2.0"
254 | import-fresh "^3.2.1"
255 | js-yaml "^4.1.0"
256 | minimatch "^3.1.2"
257 | strip-json-comments "^3.1.1"
258 |
259 | "@eslint/js@8.42.0":
260 | version "8.42.0"
261 | resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.42.0.tgz#484a1d638de2911e6f5a30c12f49c7e4a3270fb6"
262 | integrity sha512-6SWlXpWU5AvId8Ac7zjzmIOqMOba/JWY8XZ4A7q7Gn1Vlfg/SFFIlrtHXt9nPn4op9ZPAkl91Jao+QQv3r/ukw==
263 |
264 | "@humanwhocodes/config-array@^0.11.10":
265 | version "0.11.10"
266 | resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.11.10.tgz#5a3ffe32cc9306365fb3fd572596cd602d5e12d2"
267 | integrity sha512-KVVjQmNUepDVGXNuoRRdmmEjruj0KfiGSbS8LVc12LMsWDQzRXJ0qdhN8L8uUigKpfEHRhlaQFY0ib1tnUbNeQ==
268 | dependencies:
269 | "@humanwhocodes/object-schema" "^1.2.1"
270 | debug "^4.1.1"
271 | minimatch "^3.0.5"
272 |
273 | "@humanwhocodes/module-importer@^1.0.1":
274 | version "1.0.1"
275 | resolved "https://registry.yarnpkg.com/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz#af5b2691a22b44be847b0ca81641c5fb6ad0172c"
276 | integrity sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==
277 |
278 | "@humanwhocodes/object-schema@^1.2.1":
279 | version "1.2.1"
280 | resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz#b520529ec21d8e5945a1851dfd1c32e94e39ff45"
281 | integrity sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==
282 |
283 | "@nodelib/fs.scandir@2.1.5":
284 | version "2.1.5"
285 | resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5"
286 | integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==
287 | dependencies:
288 | "@nodelib/fs.stat" "2.0.5"
289 | run-parallel "^1.1.9"
290 |
291 | "@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2":
292 | version "2.0.5"
293 | resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b"
294 | integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==
295 |
296 | "@nodelib/fs.walk@^1.2.3", "@nodelib/fs.walk@^1.2.8":
297 | version "1.2.8"
298 | resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a"
299 | integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==
300 | dependencies:
301 | "@nodelib/fs.scandir" "2.1.5"
302 | fastq "^1.6.0"
303 |
304 | "@pkgr/utils@^2.3.1":
305 | version "2.4.1"
306 | resolved "https://registry.yarnpkg.com/@pkgr/utils/-/utils-2.4.1.tgz#adf291d0357834c410ce80af16e711b56c7b1cd3"
307 | integrity sha512-JOqwkgFEyi+OROIyq7l4Jy28h/WwhDnG/cPkXG2Z1iFbubB6jsHW1NDvmyOzTBxHr3yg68YGirmh1JUgMqa+9w==
308 | dependencies:
309 | cross-spawn "^7.0.3"
310 | fast-glob "^3.2.12"
311 | is-glob "^4.0.3"
312 | open "^9.1.0"
313 | picocolors "^1.0.0"
314 | tslib "^2.5.0"
315 |
316 | "@types/chai-subset@^1.3.3":
317 | version "1.3.3"
318 | resolved "https://registry.yarnpkg.com/@types/chai-subset/-/chai-subset-1.3.3.tgz#97893814e92abd2c534de422cb377e0e0bdaac94"
319 | integrity sha512-frBecisrNGz+F4T6bcc+NLeolfiojh5FxW2klu669+8BARtyQv2C/GkNW6FUodVe4BroGMP/wER/YDGc7rEllw==
320 | dependencies:
321 | "@types/chai" "*"
322 |
323 | "@types/chai@*", "@types/chai@^4.3.4":
324 | version "4.3.5"
325 | resolved "https://registry.yarnpkg.com/@types/chai/-/chai-4.3.5.tgz#ae69bcbb1bebb68c4ac0b11e9d8ed04526b3562b"
326 | integrity sha512-mEo1sAde+UCE6b2hxn332f1g1E8WfYRu6p5SvTKr2ZKC1f7gFJXk4h5PyGP9Dt6gCaG8y8XhwnXWC6Iy2cmBng==
327 |
328 | "@types/codemirror@5.60.8":
329 | version "5.60.8"
330 | resolved "https://registry.yarnpkg.com/@types/codemirror/-/codemirror-5.60.8.tgz#b647d04b470e8e1836dd84b2879988fc55c9de68"
331 | integrity sha512-VjFgDF/eB+Aklcy15TtOTLQeMjTo07k7KAjql8OK5Dirr7a6sJY4T1uVBDuTVG9VEmn1uUsohOpYnVfgC6/jyw==
332 | dependencies:
333 | "@types/tern" "*"
334 |
335 | "@types/diff@^5.0.2":
336 | version "5.0.3"
337 | resolved "https://registry.yarnpkg.com/@types/diff/-/diff-5.0.3.tgz#1f89e49ff83b5d200d78964fb896c68498ce1828"
338 | integrity sha512-amrLbRqTU9bXMCc6uX0sWpxsQzRIo9z6MJPkH1pkez/qOxuqSZVuryJAWoBRq94CeG8JxY+VK4Le9HtjQR5T9A==
339 |
340 | "@types/estree@*":
341 | version "1.0.1"
342 | resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.1.tgz#aa22750962f3bf0e79d753d3cc067f010c95f194"
343 | integrity sha512-LG4opVs2ANWZ1TJoKc937iMmNstM/d0ae1vNbnBvBhqCSezgVUOzcLCqbI5elV8Vy6WKwKjaqR+zO9VKirBBCA==
344 |
345 | "@types/json-schema@^7.0.9":
346 | version "7.0.12"
347 | resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.12.tgz#d70faba7039d5fca54c83c7dbab41051d2b6f6cb"
348 | integrity sha512-Hr5Jfhc9eYOQNPYO5WLDq/n4jqijdHNlDXjuAQkkt+mWdQR+XJToOHrsD4cPaMXpn6KO7y2+wM8AZEs8VpBLVA==
349 |
350 | "@types/json5@^0.0.29":
351 | version "0.0.29"
352 | resolved "https://registry.yarnpkg.com/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee"
353 | integrity sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==
354 |
355 | "@types/node@*":
356 | version "20.2.6"
357 | resolved "https://registry.yarnpkg.com/@types/node/-/node-20.2.6.tgz#f8f4cdcf9bc74fffcb44a9e1e3f3586d583dac24"
358 | integrity sha512-GQBWUtGoefMEOx/vu+emHEHU5aw6JdDoEtZhoBrHFPZbA/YNRFfN996XbBASEWdvmLSLyv9FKYppYGyZjCaq/g==
359 |
360 | "@types/node@^16.11.6":
361 | version "16.18.35"
362 | resolved "https://registry.yarnpkg.com/@types/node/-/node-16.18.35.tgz#d691fa3bccf0279babd2a079d046f9967642f895"
363 | integrity sha512-yqU2Rf94HFZqgHf6Tuyc/IqVD0l3U91KjvypSr1GtJKyrnl6L/kfnxVqN4QOwcF5Zx9tO/HKK+fozGr5AtqA+g==
364 |
365 | "@types/tern@*":
366 | version "0.23.4"
367 | resolved "https://registry.yarnpkg.com/@types/tern/-/tern-0.23.4.tgz#03926eb13dbeaf3ae0d390caf706b2643a0127fb"
368 | integrity sha512-JAUw1iXGO1qaWwEOzxTKJZ/5JxVeON9kvGZ/osgZaJImBnyjyn0cjovPsf6FNLmyGY8Vw9DoXZCMlfMkMwHRWg==
369 | dependencies:
370 | "@types/estree" "*"
371 |
372 | "@typescript-eslint/eslint-plugin@5.29.0":
373 | version "5.29.0"
374 | resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.29.0.tgz#c67794d2b0fd0b4a47f50266088acdc52a08aab6"
375 | integrity sha512-kgTsISt9pM53yRFQmLZ4npj99yGl3x3Pl7z4eA66OuTzAGC4bQB5H5fuLwPnqTKU3yyrrg4MIhjF17UYnL4c0w==
376 | dependencies:
377 | "@typescript-eslint/scope-manager" "5.29.0"
378 | "@typescript-eslint/type-utils" "5.29.0"
379 | "@typescript-eslint/utils" "5.29.0"
380 | debug "^4.3.4"
381 | functional-red-black-tree "^1.0.1"
382 | ignore "^5.2.0"
383 | regexpp "^3.2.0"
384 | semver "^7.3.7"
385 | tsutils "^3.21.0"
386 |
387 | "@typescript-eslint/parser@5.29.0":
388 | version "5.29.0"
389 | resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.29.0.tgz#41314b195b34d44ff38220caa55f3f93cfca43cf"
390 | integrity sha512-ruKWTv+x0OOxbzIw9nW5oWlUopvP/IQDjB5ZqmTglLIoDTctLlAJpAQFpNPJP/ZI7hTT9sARBosEfaKbcFuECw==
391 | dependencies:
392 | "@typescript-eslint/scope-manager" "5.29.0"
393 | "@typescript-eslint/types" "5.29.0"
394 | "@typescript-eslint/typescript-estree" "5.29.0"
395 | debug "^4.3.4"
396 |
397 | "@typescript-eslint/scope-manager@5.29.0":
398 | version "5.29.0"
399 | resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.29.0.tgz#2a6a32e3416cb133e9af8dcf54bf077a916aeed3"
400 | integrity sha512-etbXUT0FygFi2ihcxDZjz21LtC+Eps9V2xVx09zFoN44RRHPrkMflidGMI+2dUs821zR1tDS6Oc9IXxIjOUZwA==
401 | dependencies:
402 | "@typescript-eslint/types" "5.29.0"
403 | "@typescript-eslint/visitor-keys" "5.29.0"
404 |
405 | "@typescript-eslint/type-utils@5.29.0":
406 | version "5.29.0"
407 | resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-5.29.0.tgz#241918001d164044020b37d26d5b9f4e37cc3d5d"
408 | integrity sha512-JK6bAaaiJozbox3K220VRfCzLa9n0ib/J+FHIwnaV3Enw/TO267qe0pM1b1QrrEuy6xun374XEAsRlA86JJnyg==
409 | dependencies:
410 | "@typescript-eslint/utils" "5.29.0"
411 | debug "^4.3.4"
412 | tsutils "^3.21.0"
413 |
414 | "@typescript-eslint/types@5.29.0":
415 | version "5.29.0"
416 | resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.29.0.tgz#7861d3d288c031703b2d97bc113696b4d8c19aab"
417 | integrity sha512-X99VbqvAXOMdVyfFmksMy3u8p8yoRGITgU1joBJPzeYa0rhdf5ok9S56/itRoUSh99fiDoMtarSIJXo7H/SnOg==
418 |
419 | "@typescript-eslint/typescript-estree@5.29.0":
420 | version "5.29.0"
421 | resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.29.0.tgz#e83d19aa7fd2e74616aab2f25dfbe4de4f0b5577"
422 | integrity sha512-mQvSUJ/JjGBdvo+1LwC+GY2XmSYjK1nAaVw2emp/E61wEVYEyibRHCqm1I1vEKbXCpUKuW4G7u9ZCaZhJbLoNQ==
423 | dependencies:
424 | "@typescript-eslint/types" "5.29.0"
425 | "@typescript-eslint/visitor-keys" "5.29.0"
426 | debug "^4.3.4"
427 | globby "^11.1.0"
428 | is-glob "^4.0.3"
429 | semver "^7.3.7"
430 | tsutils "^3.21.0"
431 |
432 | "@typescript-eslint/utils@5.29.0":
433 | version "5.29.0"
434 | resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.29.0.tgz#775046effd5019667bd086bcf326acbe32cd0082"
435 | integrity sha512-3Eos6uP1nyLOBayc/VUdKZikV90HahXE5Dx9L5YlSd/7ylQPXhLk1BYb29SDgnBnTp+jmSZUU0QxUiyHgW4p7A==
436 | dependencies:
437 | "@types/json-schema" "^7.0.9"
438 | "@typescript-eslint/scope-manager" "5.29.0"
439 | "@typescript-eslint/types" "5.29.0"
440 | "@typescript-eslint/typescript-estree" "5.29.0"
441 | eslint-scope "^5.1.1"
442 | eslint-utils "^3.0.0"
443 |
444 | "@typescript-eslint/visitor-keys@5.29.0":
445 | version "5.29.0"
446 | resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.29.0.tgz#7a4749fa7ef5160c44a451bf060ac1dc6dfb77ee"
447 | integrity sha512-Hpb/mCWsjILvikMQoZIE3voc9wtQcS0A9FUw3h8bhr9UxBdtI/tw1ZDZUOXHXLOVMedKCH5NxyzATwnU78bWCQ==
448 | dependencies:
449 | "@typescript-eslint/types" "5.29.0"
450 | eslint-visitor-keys "^3.3.0"
451 |
452 | "@vitest/expect@0.28.5":
453 | version "0.28.5"
454 | resolved "https://registry.yarnpkg.com/@vitest/expect/-/expect-0.28.5.tgz#d5a6eccd014e9ad66fe87a20d16426a2815c0e8a"
455 | integrity sha512-gqTZwoUTwepwGIatnw4UKpQfnoyV0Z9Czn9+Lo2/jLIt4/AXLTn+oVZxlQ7Ng8bzcNkR+3DqLJ08kNr8jRmdNQ==
456 | dependencies:
457 | "@vitest/spy" "0.28.5"
458 | "@vitest/utils" "0.28.5"
459 | chai "^4.3.7"
460 |
461 | "@vitest/runner@0.28.5":
462 | version "0.28.5"
463 | resolved "https://registry.yarnpkg.com/@vitest/runner/-/runner-0.28.5.tgz#4a18fe0e40b25569763f9f1f64b799d1629b3026"
464 | integrity sha512-NKkHtLB+FGjpp5KmneQjTcPLWPTDfB7ie+MmF1PnUBf/tGe2OjGxWyB62ySYZ25EYp9krR5Bw0YPLS/VWh1QiA==
465 | dependencies:
466 | "@vitest/utils" "0.28.5"
467 | p-limit "^4.0.0"
468 | pathe "^1.1.0"
469 |
470 | "@vitest/spy@0.28.5":
471 | version "0.28.5"
472 | resolved "https://registry.yarnpkg.com/@vitest/spy/-/spy-0.28.5.tgz#b69affa0786200251b9e5aac5c58bbfb1b3273c9"
473 | integrity sha512-7if6rsHQr9zbmvxN7h+gGh2L9eIIErgf8nSKYDlg07HHimCxp4H6I/X/DPXktVPPLQfiZ1Cw2cbDIx9fSqDjGw==
474 | dependencies:
475 | tinyspy "^1.0.2"
476 |
477 | "@vitest/utils@0.28.5":
478 | version "0.28.5"
479 | resolved "https://registry.yarnpkg.com/@vitest/utils/-/utils-0.28.5.tgz#7b82b528df86adfbd4a1f6a3b72c39790e81de0d"
480 | integrity sha512-UyZdYwdULlOa4LTUSwZ+Paz7nBHGTT72jKwdFSV4IjHF1xsokp+CabMdhjvVhYwkLfO88ylJT46YMilnkSARZA==
481 | dependencies:
482 | cli-truncate "^3.1.0"
483 | diff "^5.1.0"
484 | loupe "^2.3.6"
485 | picocolors "^1.0.0"
486 | pretty-format "^27.5.1"
487 |
488 | acorn-jsx@^5.3.2:
489 | version "5.3.2"
490 | resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937"
491 | integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==
492 |
493 | acorn-walk@^8.2.0:
494 | version "8.2.0"
495 | resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.2.0.tgz#741210f2e2426454508853a2f44d0ab83b7f69c1"
496 | integrity sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==
497 |
498 | acorn@^8.8.0, acorn@^8.8.1, acorn@^8.8.2:
499 | version "8.8.2"
500 | resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.8.2.tgz#1b2f25db02af965399b9776b0c2c391276d37c4a"
501 | integrity sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==
502 |
503 | ajv@^6.10.0, ajv@^6.12.4:
504 | version "6.12.6"
505 | resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4"
506 | integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==
507 | dependencies:
508 | fast-deep-equal "^3.1.1"
509 | fast-json-stable-stringify "^2.0.0"
510 | json-schema-traverse "^0.4.1"
511 | uri-js "^4.2.2"
512 |
513 | ansi-regex@^5.0.1:
514 | version "5.0.1"
515 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304"
516 | integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==
517 |
518 | ansi-regex@^6.0.1:
519 | version "6.0.1"
520 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-6.0.1.tgz#3183e38fae9a65d7cb5e53945cd5897d0260a06a"
521 | integrity sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==
522 |
523 | ansi-styles@^4.1.0:
524 | version "4.3.0"
525 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937"
526 | integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==
527 | dependencies:
528 | color-convert "^2.0.1"
529 |
530 | ansi-styles@^5.0.0:
531 | version "5.2.0"
532 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-5.2.0.tgz#07449690ad45777d1924ac2abb2fc8895dba836b"
533 | integrity sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==
534 |
535 | ansi-styles@^6.0.0:
536 | version "6.2.1"
537 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-6.2.1.tgz#0e62320cf99c21afff3b3012192546aacbfb05c5"
538 | integrity sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==
539 |
540 | argparse@^2.0.1:
541 | version "2.0.1"
542 | resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38"
543 | integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==
544 |
545 | aria-query@^5.1.3:
546 | version "5.1.3"
547 | resolved "https://registry.yarnpkg.com/aria-query/-/aria-query-5.1.3.tgz#19db27cd101152773631396f7a95a3b58c22c35e"
548 | integrity sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ==
549 | dependencies:
550 | deep-equal "^2.0.5"
551 |
552 | array-buffer-byte-length@^1.0.0:
553 | version "1.0.0"
554 | resolved "https://registry.yarnpkg.com/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz#fabe8bc193fea865f317fe7807085ee0dee5aead"
555 | integrity sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==
556 | dependencies:
557 | call-bind "^1.0.2"
558 | is-array-buffer "^3.0.1"
559 |
560 | array-includes@^3.1.5, array-includes@^3.1.6:
561 | version "3.1.6"
562 | resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.6.tgz#9e9e720e194f198266ba9e18c29e6a9b0e4b225f"
563 | integrity sha512-sgTbLvL6cNnw24FnbaDyjmvddQ2ML8arZsgaJhoABMoplz/4QRhtrYS+alr1BUM1Bwp6dhx8vVCBSLG+StwOFw==
564 | dependencies:
565 | call-bind "^1.0.2"
566 | define-properties "^1.1.4"
567 | es-abstract "^1.20.4"
568 | get-intrinsic "^1.1.3"
569 | is-string "^1.0.7"
570 |
571 | array-union@^2.1.0:
572 | version "2.1.0"
573 | resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d"
574 | integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==
575 |
576 | array.prototype.flat@^1.3.1:
577 | version "1.3.1"
578 | resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.3.1.tgz#ffc6576a7ca3efc2f46a143b9d1dda9b4b3cf5e2"
579 | integrity sha512-roTU0KWIOmJ4DRLmwKd19Otg0/mT3qPNt0Qb3GWW8iObuZXxrjB/pzn0R3hqpRSWg4HCwqx+0vwOnWnvlOyeIA==
580 | dependencies:
581 | call-bind "^1.0.2"
582 | define-properties "^1.1.4"
583 | es-abstract "^1.20.4"
584 | es-shim-unscopables "^1.0.0"
585 |
586 | array.prototype.flatmap@^1.3.1:
587 | version "1.3.1"
588 | resolved "https://registry.yarnpkg.com/array.prototype.flatmap/-/array.prototype.flatmap-1.3.1.tgz#1aae7903c2100433cb8261cd4ed310aab5c4a183"
589 | integrity sha512-8UGn9O1FDVvMNB0UlLv4voxRMze7+FpHyF5mSMRjWHUMlpoDViniy05870VlxhfgTnLbpuwTzvD76MTtWxB/mQ==
590 | dependencies:
591 | call-bind "^1.0.2"
592 | define-properties "^1.1.4"
593 | es-abstract "^1.20.4"
594 | es-shim-unscopables "^1.0.0"
595 |
596 | array.prototype.tosorted@^1.1.1:
597 | version "1.1.1"
598 | resolved "https://registry.yarnpkg.com/array.prototype.tosorted/-/array.prototype.tosorted-1.1.1.tgz#ccf44738aa2b5ac56578ffda97c03fd3e23dd532"
599 | integrity sha512-pZYPXPRl2PqWcsUs6LOMn+1f1532nEoPTYowBtqLwAW+W8vSVhkIGnmOX1t/UQjD6YGI0vcD2B1U7ZFGQH9jnQ==
600 | dependencies:
601 | call-bind "^1.0.2"
602 | define-properties "^1.1.4"
603 | es-abstract "^1.20.4"
604 | es-shim-unscopables "^1.0.0"
605 | get-intrinsic "^1.1.3"
606 |
607 | assertion-error@^1.1.0:
608 | version "1.1.0"
609 | resolved "https://registry.yarnpkg.com/assertion-error/-/assertion-error-1.1.0.tgz#e60b6b0e8f301bd97e5375215bda406c85118c0b"
610 | integrity sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==
611 |
612 | ast-types-flow@^0.0.7:
613 | version "0.0.7"
614 | resolved "https://registry.yarnpkg.com/ast-types-flow/-/ast-types-flow-0.0.7.tgz#f70b735c6bca1a5c9c22d982c3e39e7feba3bdad"
615 | integrity sha512-eBvWn1lvIApYMhzQMsu9ciLfkBY499mFZlNqG+/9WR7PVlroQw0vG30cOQQbaKz3sCEc44TAOu2ykzqXSNnwag==
616 |
617 | available-typed-arrays@^1.0.5:
618 | version "1.0.5"
619 | resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz#92f95616501069d07d10edb2fc37d3e1c65123b7"
620 | integrity sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==
621 |
622 | axe-core@^4.6.2:
623 | version "4.7.2"
624 | resolved "https://registry.yarnpkg.com/axe-core/-/axe-core-4.7.2.tgz#040a7342b20765cb18bb50b628394c21bccc17a0"
625 | integrity sha512-zIURGIS1E1Q4pcrMjp+nnEh+16G56eG/MUllJH8yEvw7asDo7Ac9uhC9KIH5jzpITueEZolfYglnCGIuSBz39g==
626 |
627 | axobject-query@^3.1.1:
628 | version "3.1.1"
629 | resolved "https://registry.yarnpkg.com/axobject-query/-/axobject-query-3.1.1.tgz#3b6e5c6d4e43ca7ba51c5babf99d22a9c68485e1"
630 | integrity sha512-goKlv8DZrK9hUh975fnHzhNIO4jUnFCfv/dszV5VwUGDFjI6vQ2VwoyjYjYNEbBE8AH87TduWP5uyDR1D+Iteg==
631 | dependencies:
632 | deep-equal "^2.0.5"
633 |
634 | balanced-match@^1.0.0:
635 | version "1.0.2"
636 | resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee"
637 | integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==
638 |
639 | big-integer@^1.6.44:
640 | version "1.6.51"
641 | resolved "https://registry.yarnpkg.com/big-integer/-/big-integer-1.6.51.tgz#0df92a5d9880560d3ff2d5fd20245c889d130686"
642 | integrity sha512-GPEid2Y9QU1Exl1rpO9B2IPJGHPSupF5GnVIP0blYvNOMer2bTvSWs1jGOUg04hTmu67nmLsQ9TBo1puaotBHg==
643 |
644 | bplist-parser@^0.2.0:
645 | version "0.2.0"
646 | resolved "https://registry.yarnpkg.com/bplist-parser/-/bplist-parser-0.2.0.tgz#43a9d183e5bf9d545200ceac3e712f79ebbe8d0e"
647 | integrity sha512-z0M+byMThzQmD9NILRniCUXYsYpjwnlO8N5uCFaCqIOpqRsJCrQL9NK3JsD67CN5a08nF5oIL2bD6loTdHOuKw==
648 | dependencies:
649 | big-integer "^1.6.44"
650 |
651 | brace-expansion@^1.1.7:
652 | version "1.1.11"
653 | resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd"
654 | integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==
655 | dependencies:
656 | balanced-match "^1.0.0"
657 | concat-map "0.0.1"
658 |
659 | braces@^3.0.2:
660 | version "3.0.2"
661 | resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107"
662 | integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==
663 | dependencies:
664 | fill-range "^7.0.1"
665 |
666 | buffer-from@^1.0.0:
667 | version "1.1.2"
668 | resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5"
669 | integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==
670 |
671 | builtin-modules@3.3.0:
672 | version "3.3.0"
673 | resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-3.3.0.tgz#cae62812b89801e9656336e46223e030386be7b6"
674 | integrity sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==
675 |
676 | bundle-name@^3.0.0:
677 | version "3.0.0"
678 | resolved "https://registry.yarnpkg.com/bundle-name/-/bundle-name-3.0.0.tgz#ba59bcc9ac785fb67ccdbf104a2bf60c099f0e1a"
679 | integrity sha512-PKA4BeSvBpQKQ8iPOGCSiell+N8P+Tf1DlwqmYhpe2gAhKPHn8EYOxVT+ShuGmhg8lN8XiSlS80yiExKXrURlw==
680 | dependencies:
681 | run-applescript "^5.0.0"
682 |
683 | cac@^6.7.14:
684 | version "6.7.14"
685 | resolved "https://registry.yarnpkg.com/cac/-/cac-6.7.14.tgz#804e1e6f506ee363cb0e3ccbb09cad5dd9870959"
686 | integrity sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==
687 |
688 | call-bind@^1.0.0, call-bind@^1.0.2:
689 | version "1.0.2"
690 | resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c"
691 | integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==
692 | dependencies:
693 | function-bind "^1.1.1"
694 | get-intrinsic "^1.0.2"
695 |
696 | callsites@^3.0.0:
697 | version "3.1.0"
698 | resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73"
699 | integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==
700 |
701 | chai@^4.3.7:
702 | version "4.3.7"
703 | resolved "https://registry.yarnpkg.com/chai/-/chai-4.3.7.tgz#ec63f6df01829088e8bf55fca839bcd464a8ec51"
704 | integrity sha512-HLnAzZ2iupm25PlN0xFreAlBA5zaBSv3og0DdeGA4Ar6h6rJ3A0rolRUKJhSF2V10GZKDgWF/VmAEsNWjCRB+A==
705 | dependencies:
706 | assertion-error "^1.1.0"
707 | check-error "^1.0.2"
708 | deep-eql "^4.1.2"
709 | get-func-name "^2.0.0"
710 | loupe "^2.3.1"
711 | pathval "^1.1.1"
712 | type-detect "^4.0.5"
713 |
714 | chalk@^4.0.0:
715 | version "4.1.2"
716 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01"
717 | integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==
718 | dependencies:
719 | ansi-styles "^4.1.0"
720 | supports-color "^7.1.0"
721 |
722 | check-error@^1.0.2:
723 | version "1.0.2"
724 | resolved "https://registry.yarnpkg.com/check-error/-/check-error-1.0.2.tgz#574d312edd88bb5dd8912e9286dd6c0aed4aac82"
725 | integrity sha512-BrgHpW9NURQgzoNyjfq0Wu6VFO6D7IZEmJNdtgNqpzGG8RuNFHt2jQxWlAs4HMe119chBnv+34syEZtc6IhLtA==
726 |
727 | cli-truncate@^3.1.0:
728 | version "3.1.0"
729 | resolved "https://registry.yarnpkg.com/cli-truncate/-/cli-truncate-3.1.0.tgz#3f23ab12535e3d73e839bb43e73c9de487db1389"
730 | integrity sha512-wfOBkjXteqSnI59oPcJkcPl/ZmwvMMOj340qUIY1SKZCv0B9Cf4D4fAucRkIKQmsIuYK3x1rrgU7MeGRruiuiA==
731 | dependencies:
732 | slice-ansi "^5.0.0"
733 | string-width "^5.0.0"
734 |
735 | color-convert@^2.0.1:
736 | version "2.0.1"
737 | resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3"
738 | integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==
739 | dependencies:
740 | color-name "~1.1.4"
741 |
742 | color-name@~1.1.4:
743 | version "1.1.4"
744 | resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2"
745 | integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==
746 |
747 | concat-map@0.0.1:
748 | version "0.0.1"
749 | resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
750 | integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==
751 |
752 | confusing-browser-globals@^1.0.10:
753 | version "1.0.11"
754 | resolved "https://registry.yarnpkg.com/confusing-browser-globals/-/confusing-browser-globals-1.0.11.tgz#ae40e9b57cdd3915408a2805ebd3a5585608dc81"
755 | integrity sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA==
756 |
757 | cross-spawn@^7.0.2, cross-spawn@^7.0.3:
758 | version "7.0.3"
759 | resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6"
760 | integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==
761 | dependencies:
762 | path-key "^3.1.0"
763 | shebang-command "^2.0.0"
764 | which "^2.0.1"
765 |
766 | damerau-levenshtein@^1.0.8:
767 | version "1.0.8"
768 | resolved "https://registry.yarnpkg.com/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz#b43d286ccbd36bc5b2f7ed41caf2d0aba1f8a6e7"
769 | integrity sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==
770 |
771 | debug@^3.2.7:
772 | version "3.2.7"
773 | resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a"
774 | integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==
775 | dependencies:
776 | ms "^2.1.1"
777 |
778 | debug@^4.1.1, debug@^4.3.2, debug@^4.3.4:
779 | version "4.3.4"
780 | resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865"
781 | integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==
782 | dependencies:
783 | ms "2.1.2"
784 |
785 | deep-eql@^4.1.2:
786 | version "4.1.3"
787 | resolved "https://registry.yarnpkg.com/deep-eql/-/deep-eql-4.1.3.tgz#7c7775513092f7df98d8df9996dd085eb668cc6d"
788 | integrity sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==
789 | dependencies:
790 | type-detect "^4.0.0"
791 |
792 | deep-equal@^2.0.5:
793 | version "2.2.1"
794 | resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-2.2.1.tgz#c72ab22f3a7d3503a4ca87dde976fe9978816739"
795 | integrity sha512-lKdkdV6EOGoVn65XaOsPdH4rMxTZOnmFyuIkMjM1i5HHCbfjC97dawgTAy0deYNfuqUqW+Q5VrVaQYtUpSd6yQ==
796 | dependencies:
797 | array-buffer-byte-length "^1.0.0"
798 | call-bind "^1.0.2"
799 | es-get-iterator "^1.1.3"
800 | get-intrinsic "^1.2.0"
801 | is-arguments "^1.1.1"
802 | is-array-buffer "^3.0.2"
803 | is-date-object "^1.0.5"
804 | is-regex "^1.1.4"
805 | is-shared-array-buffer "^1.0.2"
806 | isarray "^2.0.5"
807 | object-is "^1.1.5"
808 | object-keys "^1.1.1"
809 | object.assign "^4.1.4"
810 | regexp.prototype.flags "^1.5.0"
811 | side-channel "^1.0.4"
812 | which-boxed-primitive "^1.0.2"
813 | which-collection "^1.0.1"
814 | which-typed-array "^1.1.9"
815 |
816 | deep-is@^0.1.3:
817 | version "0.1.4"
818 | resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831"
819 | integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==
820 |
821 | default-browser-id@^3.0.0:
822 | version "3.0.0"
823 | resolved "https://registry.yarnpkg.com/default-browser-id/-/default-browser-id-3.0.0.tgz#bee7bbbef1f4e75d31f98f4d3f1556a14cea790c"
824 | integrity sha512-OZ1y3y0SqSICtE8DE4S8YOE9UZOJ8wO16fKWVP5J1Qz42kV9jcnMVFrEE/noXb/ss3Q4pZIH79kxofzyNNtUNA==
825 | dependencies:
826 | bplist-parser "^0.2.0"
827 | untildify "^4.0.0"
828 |
829 | default-browser@^4.0.0:
830 | version "4.0.0"
831 | resolved "https://registry.yarnpkg.com/default-browser/-/default-browser-4.0.0.tgz#53c9894f8810bf86696de117a6ce9085a3cbc7da"
832 | integrity sha512-wX5pXO1+BrhMkSbROFsyxUm0i/cJEScyNhA4PPxc41ICuv05ZZB/MX28s8aZx6xjmatvebIapF6hLEKEcpneUA==
833 | dependencies:
834 | bundle-name "^3.0.0"
835 | default-browser-id "^3.0.0"
836 | execa "^7.1.1"
837 | titleize "^3.0.0"
838 |
839 | define-lazy-prop@^3.0.0:
840 | version "3.0.0"
841 | resolved "https://registry.yarnpkg.com/define-lazy-prop/-/define-lazy-prop-3.0.0.tgz#dbb19adfb746d7fc6d734a06b72f4a00d021255f"
842 | integrity sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==
843 |
844 | define-properties@^1.1.3, define-properties@^1.1.4, define-properties@^1.2.0:
845 | version "1.2.0"
846 | resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.2.0.tgz#52988570670c9eacedd8064f4a990f2405849bd5"
847 | integrity sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA==
848 | dependencies:
849 | has-property-descriptors "^1.0.0"
850 | object-keys "^1.1.1"
851 |
852 | diff@^5.1.0:
853 | version "5.1.0"
854 | resolved "https://registry.yarnpkg.com/diff/-/diff-5.1.0.tgz#bc52d298c5ea8df9194800224445ed43ffc87e40"
855 | integrity sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw==
856 |
857 | dir-glob@^3.0.1:
858 | version "3.0.1"
859 | resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f"
860 | integrity sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==
861 | dependencies:
862 | path-type "^4.0.0"
863 |
864 | doctrine@^2.1.0:
865 | version "2.1.0"
866 | resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.1.0.tgz#5cd01fc101621b42c4cd7f5d1a66243716d3f39d"
867 | integrity sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==
868 | dependencies:
869 | esutils "^2.0.2"
870 |
871 | doctrine@^3.0.0:
872 | version "3.0.0"
873 | resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961"
874 | integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==
875 | dependencies:
876 | esutils "^2.0.2"
877 |
878 | eastasianwidth@^0.2.0:
879 | version "0.2.0"
880 | resolved "https://registry.yarnpkg.com/eastasianwidth/-/eastasianwidth-0.2.0.tgz#696ce2ec0aa0e6ea93a397ffcf24aa7840c827cb"
881 | integrity sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==
882 |
883 | emoji-regex@^9.2.2:
884 | version "9.2.2"
885 | resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-9.2.2.tgz#840c8803b0d8047f4ff0cf963176b32d4ef3ed72"
886 | integrity sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==
887 |
888 | enhanced-resolve@^5.12.0:
889 | version "5.14.1"
890 | resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.14.1.tgz#de684b6803724477a4af5d74ccae5de52c25f6b3"
891 | integrity sha512-Vklwq2vDKtl0y/vtwjSesgJ5MYS7Etuk5txS8VdKL4AOS1aUlD96zqIfsOSLQsdv3xgMRbtkWM8eG9XDfKUPow==
892 | dependencies:
893 | graceful-fs "^4.2.4"
894 | tapable "^2.2.0"
895 |
896 | es-abstract@^1.19.0, es-abstract@^1.20.4:
897 | version "1.21.2"
898 | resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.21.2.tgz#a56b9695322c8a185dc25975aa3b8ec31d0e7eff"
899 | integrity sha512-y/B5POM2iBnIxCiernH1G7rC9qQoM77lLIMQLuob0zhp8C56Po81+2Nj0WFKnd0pNReDTnkYryc+zhOzpEIROg==
900 | dependencies:
901 | array-buffer-byte-length "^1.0.0"
902 | available-typed-arrays "^1.0.5"
903 | call-bind "^1.0.2"
904 | es-set-tostringtag "^2.0.1"
905 | es-to-primitive "^1.2.1"
906 | function.prototype.name "^1.1.5"
907 | get-intrinsic "^1.2.0"
908 | get-symbol-description "^1.0.0"
909 | globalthis "^1.0.3"
910 | gopd "^1.0.1"
911 | has "^1.0.3"
912 | has-property-descriptors "^1.0.0"
913 | has-proto "^1.0.1"
914 | has-symbols "^1.0.3"
915 | internal-slot "^1.0.5"
916 | is-array-buffer "^3.0.2"
917 | is-callable "^1.2.7"
918 | is-negative-zero "^2.0.2"
919 | is-regex "^1.1.4"
920 | is-shared-array-buffer "^1.0.2"
921 | is-string "^1.0.7"
922 | is-typed-array "^1.1.10"
923 | is-weakref "^1.0.2"
924 | object-inspect "^1.12.3"
925 | object-keys "^1.1.1"
926 | object.assign "^4.1.4"
927 | regexp.prototype.flags "^1.4.3"
928 | safe-regex-test "^1.0.0"
929 | string.prototype.trim "^1.2.7"
930 | string.prototype.trimend "^1.0.6"
931 | string.prototype.trimstart "^1.0.6"
932 | typed-array-length "^1.0.4"
933 | unbox-primitive "^1.0.2"
934 | which-typed-array "^1.1.9"
935 |
936 | es-get-iterator@^1.1.3:
937 | version "1.1.3"
938 | resolved "https://registry.yarnpkg.com/es-get-iterator/-/es-get-iterator-1.1.3.tgz#3ef87523c5d464d41084b2c3c9c214f1199763d6"
939 | integrity sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==
940 | dependencies:
941 | call-bind "^1.0.2"
942 | get-intrinsic "^1.1.3"
943 | has-symbols "^1.0.3"
944 | is-arguments "^1.1.1"
945 | is-map "^2.0.2"
946 | is-set "^2.0.2"
947 | is-string "^1.0.7"
948 | isarray "^2.0.5"
949 | stop-iteration-iterator "^1.0.0"
950 |
951 | es-set-tostringtag@^2.0.1:
952 | version "2.0.1"
953 | resolved "https://registry.yarnpkg.com/es-set-tostringtag/-/es-set-tostringtag-2.0.1.tgz#338d502f6f674301d710b80c8592de8a15f09cd8"
954 | integrity sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==
955 | dependencies:
956 | get-intrinsic "^1.1.3"
957 | has "^1.0.3"
958 | has-tostringtag "^1.0.0"
959 |
960 | es-shim-unscopables@^1.0.0:
961 | version "1.0.0"
962 | resolved "https://registry.yarnpkg.com/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz#702e632193201e3edf8713635d083d378e510241"
963 | integrity sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==
964 | dependencies:
965 | has "^1.0.3"
966 |
967 | es-to-primitive@^1.2.1:
968 | version "1.2.1"
969 | resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a"
970 | integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==
971 | dependencies:
972 | is-callable "^1.1.4"
973 | is-date-object "^1.0.1"
974 | is-symbol "^1.0.2"
975 |
976 | esbuild@0.17.3:
977 | version "0.17.3"
978 | resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.17.3.tgz#d9aa02a3bc441ed35f9569cd9505812ae3fcae61"
979 | integrity sha512-9n3AsBRe6sIyOc6kmoXg2ypCLgf3eZSraWFRpnkto+svt8cZNuKTkb1bhQcitBcvIqjNiK7K0J3KPmwGSfkA8g==
980 | optionalDependencies:
981 | "@esbuild/android-arm" "0.17.3"
982 | "@esbuild/android-arm64" "0.17.3"
983 | "@esbuild/android-x64" "0.17.3"
984 | "@esbuild/darwin-arm64" "0.17.3"
985 | "@esbuild/darwin-x64" "0.17.3"
986 | "@esbuild/freebsd-arm64" "0.17.3"
987 | "@esbuild/freebsd-x64" "0.17.3"
988 | "@esbuild/linux-arm" "0.17.3"
989 | "@esbuild/linux-arm64" "0.17.3"
990 | "@esbuild/linux-ia32" "0.17.3"
991 | "@esbuild/linux-loong64" "0.17.3"
992 | "@esbuild/linux-mips64el" "0.17.3"
993 | "@esbuild/linux-ppc64" "0.17.3"
994 | "@esbuild/linux-riscv64" "0.17.3"
995 | "@esbuild/linux-s390x" "0.17.3"
996 | "@esbuild/linux-x64" "0.17.3"
997 | "@esbuild/netbsd-x64" "0.17.3"
998 | "@esbuild/openbsd-x64" "0.17.3"
999 | "@esbuild/sunos-x64" "0.17.3"
1000 | "@esbuild/win32-arm64" "0.17.3"
1001 | "@esbuild/win32-ia32" "0.17.3"
1002 | "@esbuild/win32-x64" "0.17.3"
1003 |
1004 | esbuild@^0.17.5:
1005 | version "0.17.19"
1006 | resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.17.19.tgz#087a727e98299f0462a3d0bcdd9cd7ff100bd955"
1007 | integrity sha512-XQ0jAPFkK/u3LcVRcvVHQcTIqD6E2H1fvZMA5dQPSOWb3suUbWbfbRf94pjc0bNzRYLfIrDRQXr7X+LHIm5oHw==
1008 | optionalDependencies:
1009 | "@esbuild/android-arm" "0.17.19"
1010 | "@esbuild/android-arm64" "0.17.19"
1011 | "@esbuild/android-x64" "0.17.19"
1012 | "@esbuild/darwin-arm64" "0.17.19"
1013 | "@esbuild/darwin-x64" "0.17.19"
1014 | "@esbuild/freebsd-arm64" "0.17.19"
1015 | "@esbuild/freebsd-x64" "0.17.19"
1016 | "@esbuild/linux-arm" "0.17.19"
1017 | "@esbuild/linux-arm64" "0.17.19"
1018 | "@esbuild/linux-ia32" "0.17.19"
1019 | "@esbuild/linux-loong64" "0.17.19"
1020 | "@esbuild/linux-mips64el" "0.17.19"
1021 | "@esbuild/linux-ppc64" "0.17.19"
1022 | "@esbuild/linux-riscv64" "0.17.19"
1023 | "@esbuild/linux-s390x" "0.17.19"
1024 | "@esbuild/linux-x64" "0.17.19"
1025 | "@esbuild/netbsd-x64" "0.17.19"
1026 | "@esbuild/openbsd-x64" "0.17.19"
1027 | "@esbuild/sunos-x64" "0.17.19"
1028 | "@esbuild/win32-arm64" "0.17.19"
1029 | "@esbuild/win32-ia32" "0.17.19"
1030 | "@esbuild/win32-x64" "0.17.19"
1031 |
1032 | escape-string-regexp@^4.0.0:
1033 | version "4.0.0"
1034 | resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34"
1035 | integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==
1036 |
1037 | eslint-config-airbnb-base@^15.0.0:
1038 | version "15.0.0"
1039 | resolved "https://registry.yarnpkg.com/eslint-config-airbnb-base/-/eslint-config-airbnb-base-15.0.0.tgz#6b09add90ac79c2f8d723a2580e07f3925afd236"
1040 | integrity sha512-xaX3z4ZZIcFLvh2oUNvcX5oEofXda7giYmuplVxoOg5A7EXJMrUyqRgR+mhDhPK8LZ4PttFOBvCYDbX3sUoUig==
1041 | dependencies:
1042 | confusing-browser-globals "^1.0.10"
1043 | object.assign "^4.1.2"
1044 | object.entries "^1.1.5"
1045 | semver "^6.3.0"
1046 |
1047 | eslint-config-airbnb@^19.0.4:
1048 | version "19.0.4"
1049 | resolved "https://registry.yarnpkg.com/eslint-config-airbnb/-/eslint-config-airbnb-19.0.4.tgz#84d4c3490ad70a0ffa571138ebcdea6ab085fdc3"
1050 | integrity sha512-T75QYQVQX57jiNgpF9r1KegMICE94VYwoFQyMGhrvc+lB8YF2E/M/PYDaQe1AJcWaEgqLE+ErXV1Og/+6Vyzew==
1051 | dependencies:
1052 | eslint-config-airbnb-base "^15.0.0"
1053 | object.assign "^4.1.2"
1054 | object.entries "^1.1.5"
1055 |
1056 | eslint-config-prettier@^8.6.0:
1057 | version "8.8.0"
1058 | resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-8.8.0.tgz#bfda738d412adc917fd7b038857110efe98c9348"
1059 | integrity sha512-wLbQiFre3tdGgpDv67NQKnJuTlcUVYHas3k+DZCc2U2BadthoEY4B7hLPvAxaqdyOGCzuLfii2fqGph10va7oA==
1060 |
1061 | eslint-import-resolver-node@^0.3.7:
1062 | version "0.3.7"
1063 | resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.7.tgz#83b375187d412324a1963d84fa664377a23eb4d7"
1064 | integrity sha512-gozW2blMLJCeFpBwugLTGyvVjNoeo1knonXAcatC6bjPBZitotxdWf7Gimr25N4c0AAOo4eOUfaG82IJPDpqCA==
1065 | dependencies:
1066 | debug "^3.2.7"
1067 | is-core-module "^2.11.0"
1068 | resolve "^1.22.1"
1069 |
1070 | eslint-import-resolver-typescript@^3.5.3:
1071 | version "3.5.5"
1072 | resolved "https://registry.yarnpkg.com/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-3.5.5.tgz#0a9034ae7ed94b254a360fbea89187b60ea7456d"
1073 | integrity sha512-TdJqPHs2lW5J9Zpe17DZNQuDnox4xo2o+0tE7Pggain9Rbc19ik8kFtXdxZ250FVx2kF4vlt2RSf4qlUpG7bhw==
1074 | dependencies:
1075 | debug "^4.3.4"
1076 | enhanced-resolve "^5.12.0"
1077 | eslint-module-utils "^2.7.4"
1078 | get-tsconfig "^4.5.0"
1079 | globby "^13.1.3"
1080 | is-core-module "^2.11.0"
1081 | is-glob "^4.0.3"
1082 | synckit "^0.8.5"
1083 |
1084 | eslint-module-utils@^2.7.4:
1085 | version "2.8.0"
1086 | resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.8.0.tgz#e439fee65fc33f6bba630ff621efc38ec0375c49"
1087 | integrity sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==
1088 | dependencies:
1089 | debug "^3.2.7"
1090 |
1091 | eslint-plugin-import@^2.27.5:
1092 | version "2.27.5"
1093 | resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.27.5.tgz#876a6d03f52608a3e5bb439c2550588e51dd6c65"
1094 | integrity sha512-LmEt3GVofgiGuiE+ORpnvP+kAm3h6MLZJ4Q5HCyHADofsb4VzXFsRiWj3c0OFiV+3DWFh0qg3v9gcPlfc3zRow==
1095 | dependencies:
1096 | array-includes "^3.1.6"
1097 | array.prototype.flat "^1.3.1"
1098 | array.prototype.flatmap "^1.3.1"
1099 | debug "^3.2.7"
1100 | doctrine "^2.1.0"
1101 | eslint-import-resolver-node "^0.3.7"
1102 | eslint-module-utils "^2.7.4"
1103 | has "^1.0.3"
1104 | is-core-module "^2.11.0"
1105 | is-glob "^4.0.3"
1106 | minimatch "^3.1.2"
1107 | object.values "^1.1.6"
1108 | resolve "^1.22.1"
1109 | semver "^6.3.0"
1110 | tsconfig-paths "^3.14.1"
1111 |
1112 | eslint-plugin-jsx-a11y@^6.7.1:
1113 | version "6.7.1"
1114 | resolved "https://registry.yarnpkg.com/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.7.1.tgz#fca5e02d115f48c9a597a6894d5bcec2f7a76976"
1115 | integrity sha512-63Bog4iIethyo8smBklORknVjB0T2dwB8Mr/hIC+fBS0uyHdYYpzM/Ed+YC8VxTjlXHEWFOdmgwcDn1U2L9VCA==
1116 | dependencies:
1117 | "@babel/runtime" "^7.20.7"
1118 | aria-query "^5.1.3"
1119 | array-includes "^3.1.6"
1120 | array.prototype.flatmap "^1.3.1"
1121 | ast-types-flow "^0.0.7"
1122 | axe-core "^4.6.2"
1123 | axobject-query "^3.1.1"
1124 | damerau-levenshtein "^1.0.8"
1125 | emoji-regex "^9.2.2"
1126 | has "^1.0.3"
1127 | jsx-ast-utils "^3.3.3"
1128 | language-tags "=1.0.5"
1129 | minimatch "^3.1.2"
1130 | object.entries "^1.1.6"
1131 | object.fromentries "^2.0.6"
1132 | semver "^6.3.0"
1133 |
1134 | eslint-plugin-prettier@^4.2.1:
1135 | version "4.2.1"
1136 | resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-4.2.1.tgz#651cbb88b1dab98bfd42f017a12fa6b2d993f94b"
1137 | integrity sha512-f/0rXLXUt0oFYs8ra4w49wYZBG5GKZpAYsJSm6rnYL5uVDjd+zowwMwVZHnAjf4edNrKpCDYfXDgmRE/Ak7QyQ==
1138 | dependencies:
1139 | prettier-linter-helpers "^1.0.0"
1140 |
1141 | eslint-plugin-react-hooks@^4.6.0:
1142 | version "4.6.0"
1143 | resolved "https://registry.yarnpkg.com/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.0.tgz#4c3e697ad95b77e93f8646aaa1630c1ba607edd3"
1144 | integrity sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==
1145 |
1146 | eslint-plugin-react@^7.32.2:
1147 | version "7.32.2"
1148 | resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.32.2.tgz#e71f21c7c265ebce01bcbc9d0955170c55571f10"
1149 | integrity sha512-t2fBMa+XzonrrNkyVirzKlvn5RXzzPwRHtMvLAtVZrt8oxgnTQaYbU6SXTOO1mwQgp1y5+toMSKInnzGr0Knqg==
1150 | dependencies:
1151 | array-includes "^3.1.6"
1152 | array.prototype.flatmap "^1.3.1"
1153 | array.prototype.tosorted "^1.1.1"
1154 | doctrine "^2.1.0"
1155 | estraverse "^5.3.0"
1156 | jsx-ast-utils "^2.4.1 || ^3.0.0"
1157 | minimatch "^3.1.2"
1158 | object.entries "^1.1.6"
1159 | object.fromentries "^2.0.6"
1160 | object.hasown "^1.1.2"
1161 | object.values "^1.1.6"
1162 | prop-types "^15.8.1"
1163 | resolve "^2.0.0-next.4"
1164 | semver "^6.3.0"
1165 | string.prototype.matchall "^4.0.8"
1166 |
1167 | eslint-scope@^5.1.1:
1168 | version "5.1.1"
1169 | resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c"
1170 | integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==
1171 | dependencies:
1172 | esrecurse "^4.3.0"
1173 | estraverse "^4.1.1"
1174 |
1175 | eslint-scope@^7.2.0:
1176 | version "7.2.0"
1177 | resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-7.2.0.tgz#f21ebdafda02352f103634b96dd47d9f81ca117b"
1178 | integrity sha512-DYj5deGlHBfMt15J7rdtyKNq/Nqlv5KfU4iodrQ019XESsRnwXH9KAE0y3cwtUHDo2ob7CypAnCqefh6vioWRw==
1179 | dependencies:
1180 | esrecurse "^4.3.0"
1181 | estraverse "^5.2.0"
1182 |
1183 | eslint-utils@^3.0.0:
1184 | version "3.0.0"
1185 | resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-3.0.0.tgz#8aebaface7345bb33559db0a1f13a1d2d48c3672"
1186 | integrity sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==
1187 | dependencies:
1188 | eslint-visitor-keys "^2.0.0"
1189 |
1190 | eslint-visitor-keys@^2.0.0:
1191 | version "2.1.0"
1192 | resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz#f65328259305927392c938ed44eb0a5c9b2bd303"
1193 | integrity sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==
1194 |
1195 | eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.1:
1196 | version "3.4.1"
1197 | resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.1.tgz#c22c48f48942d08ca824cc526211ae400478a994"
1198 | integrity sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA==
1199 |
1200 | eslint@^8.33.0:
1201 | version "8.42.0"
1202 | resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.42.0.tgz#7bebdc3a55f9ed7167251fe7259f75219cade291"
1203 | integrity sha512-ulg9Ms6E1WPf67PHaEY4/6E2tEn5/f7FXGzr3t9cBMugOmf1INYvuUwwh1aXQN4MfJ6a5K2iNwP3w4AColvI9A==
1204 | dependencies:
1205 | "@eslint-community/eslint-utils" "^4.2.0"
1206 | "@eslint-community/regexpp" "^4.4.0"
1207 | "@eslint/eslintrc" "^2.0.3"
1208 | "@eslint/js" "8.42.0"
1209 | "@humanwhocodes/config-array" "^0.11.10"
1210 | "@humanwhocodes/module-importer" "^1.0.1"
1211 | "@nodelib/fs.walk" "^1.2.8"
1212 | ajv "^6.10.0"
1213 | chalk "^4.0.0"
1214 | cross-spawn "^7.0.2"
1215 | debug "^4.3.2"
1216 | doctrine "^3.0.0"
1217 | escape-string-regexp "^4.0.0"
1218 | eslint-scope "^7.2.0"
1219 | eslint-visitor-keys "^3.4.1"
1220 | espree "^9.5.2"
1221 | esquery "^1.4.2"
1222 | esutils "^2.0.2"
1223 | fast-deep-equal "^3.1.3"
1224 | file-entry-cache "^6.0.1"
1225 | find-up "^5.0.0"
1226 | glob-parent "^6.0.2"
1227 | globals "^13.19.0"
1228 | graphemer "^1.4.0"
1229 | ignore "^5.2.0"
1230 | import-fresh "^3.0.0"
1231 | imurmurhash "^0.1.4"
1232 | is-glob "^4.0.0"
1233 | is-path-inside "^3.0.3"
1234 | js-yaml "^4.1.0"
1235 | json-stable-stringify-without-jsonify "^1.0.1"
1236 | levn "^0.4.1"
1237 | lodash.merge "^4.6.2"
1238 | minimatch "^3.1.2"
1239 | natural-compare "^1.4.0"
1240 | optionator "^0.9.1"
1241 | strip-ansi "^6.0.1"
1242 | strip-json-comments "^3.1.0"
1243 | text-table "^0.2.0"
1244 |
1245 | espree@^9.5.2:
1246 | version "9.5.2"
1247 | resolved "https://registry.yarnpkg.com/espree/-/espree-9.5.2.tgz#e994e7dc33a082a7a82dceaf12883a829353215b"
1248 | integrity sha512-7OASN1Wma5fum5SrNhFMAMJxOUAbhyfQ8dQ//PJaJbNw0URTPWqIghHWt1MmAANKhHZIYOHruW4Kw4ruUWOdGw==
1249 | dependencies:
1250 | acorn "^8.8.0"
1251 | acorn-jsx "^5.3.2"
1252 | eslint-visitor-keys "^3.4.1"
1253 |
1254 | esquery@^1.4.2:
1255 | version "1.5.0"
1256 | resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.5.0.tgz#6ce17738de8577694edd7361c57182ac8cb0db0b"
1257 | integrity sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==
1258 | dependencies:
1259 | estraverse "^5.1.0"
1260 |
1261 | esrecurse@^4.3.0:
1262 | version "4.3.0"
1263 | resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921"
1264 | integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==
1265 | dependencies:
1266 | estraverse "^5.2.0"
1267 |
1268 | estraverse@^4.1.1:
1269 | version "4.3.0"
1270 | resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d"
1271 | integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==
1272 |
1273 | estraverse@^5.1.0, estraverse@^5.2.0, estraverse@^5.3.0:
1274 | version "5.3.0"
1275 | resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123"
1276 | integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==
1277 |
1278 | esutils@^2.0.2:
1279 | version "2.0.3"
1280 | resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64"
1281 | integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==
1282 |
1283 | execa@^5.0.0:
1284 | version "5.1.1"
1285 | resolved "https://registry.yarnpkg.com/execa/-/execa-5.1.1.tgz#f80ad9cbf4298f7bd1d4c9555c21e93741c411dd"
1286 | integrity sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==
1287 | dependencies:
1288 | cross-spawn "^7.0.3"
1289 | get-stream "^6.0.0"
1290 | human-signals "^2.1.0"
1291 | is-stream "^2.0.0"
1292 | merge-stream "^2.0.0"
1293 | npm-run-path "^4.0.1"
1294 | onetime "^5.1.2"
1295 | signal-exit "^3.0.3"
1296 | strip-final-newline "^2.0.0"
1297 |
1298 | execa@^7.1.1:
1299 | version "7.1.1"
1300 | resolved "https://registry.yarnpkg.com/execa/-/execa-7.1.1.tgz#3eb3c83d239488e7b409d48e8813b76bb55c9c43"
1301 | integrity sha512-wH0eMf/UXckdUYnO21+HDztteVv05rq2GXksxT4fCGeHkBhw1DROXh40wcjMcRqDOWE7iPJ4n3M7e2+YFP+76Q==
1302 | dependencies:
1303 | cross-spawn "^7.0.3"
1304 | get-stream "^6.0.1"
1305 | human-signals "^4.3.0"
1306 | is-stream "^3.0.0"
1307 | merge-stream "^2.0.0"
1308 | npm-run-path "^5.1.0"
1309 | onetime "^6.0.0"
1310 | signal-exit "^3.0.7"
1311 | strip-final-newline "^3.0.0"
1312 |
1313 | fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3:
1314 | version "3.1.3"
1315 | resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525"
1316 | integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==
1317 |
1318 | fast-diff@^1.1.2:
1319 | version "1.3.0"
1320 | resolved "https://registry.yarnpkg.com/fast-diff/-/fast-diff-1.3.0.tgz#ece407fa550a64d638536cd727e129c61616e0f0"
1321 | integrity sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==
1322 |
1323 | fast-glob@^3.2.11, fast-glob@^3.2.12, fast-glob@^3.2.9:
1324 | version "3.2.12"
1325 | resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.12.tgz#7f39ec99c2e6ab030337142da9e0c18f37afae80"
1326 | integrity sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==
1327 | dependencies:
1328 | "@nodelib/fs.stat" "^2.0.2"
1329 | "@nodelib/fs.walk" "^1.2.3"
1330 | glob-parent "^5.1.2"
1331 | merge2 "^1.3.0"
1332 | micromatch "^4.0.4"
1333 |
1334 | fast-json-stable-stringify@^2.0.0:
1335 | version "2.1.0"
1336 | resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633"
1337 | integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==
1338 |
1339 | fast-levenshtein@^2.0.6:
1340 | version "2.0.6"
1341 | resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917"
1342 | integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==
1343 |
1344 | fastq@^1.6.0:
1345 | version "1.15.0"
1346 | resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.15.0.tgz#d04d07c6a2a68fe4599fea8d2e103a937fae6b3a"
1347 | integrity sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==
1348 | dependencies:
1349 | reusify "^1.0.4"
1350 |
1351 | file-entry-cache@^6.0.1:
1352 | version "6.0.1"
1353 | resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz#211b2dd9659cb0394b073e7323ac3c933d522027"
1354 | integrity sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==
1355 | dependencies:
1356 | flat-cache "^3.0.4"
1357 |
1358 | fill-range@^7.0.1:
1359 | version "7.0.1"
1360 | resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40"
1361 | integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==
1362 | dependencies:
1363 | to-regex-range "^5.0.1"
1364 |
1365 | find-up@^5.0.0:
1366 | version "5.0.0"
1367 | resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc"
1368 | integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==
1369 | dependencies:
1370 | locate-path "^6.0.0"
1371 | path-exists "^4.0.0"
1372 |
1373 | flat-cache@^3.0.4:
1374 | version "3.0.4"
1375 | resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.0.4.tgz#61b0338302b2fe9f957dcc32fc2a87f1c3048b11"
1376 | integrity sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==
1377 | dependencies:
1378 | flatted "^3.1.0"
1379 | rimraf "^3.0.2"
1380 |
1381 | flatted@^3.1.0:
1382 | version "3.2.7"
1383 | resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.7.tgz#609f39207cb614b89d0765b477cb2d437fbf9787"
1384 | integrity sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==
1385 |
1386 | for-each@^0.3.3:
1387 | version "0.3.3"
1388 | resolved "https://registry.yarnpkg.com/for-each/-/for-each-0.3.3.tgz#69b447e88a0a5d32c3e7084f3f1710034b21376e"
1389 | integrity sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==
1390 | dependencies:
1391 | is-callable "^1.1.3"
1392 |
1393 | fs.realpath@^1.0.0:
1394 | version "1.0.0"
1395 | resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f"
1396 | integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==
1397 |
1398 | fsevents@~2.3.2:
1399 | version "2.3.2"
1400 | resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a"
1401 | integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==
1402 |
1403 | function-bind@^1.1.1:
1404 | version "1.1.1"
1405 | resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d"
1406 | integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==
1407 |
1408 | function.prototype.name@^1.1.5:
1409 | version "1.1.5"
1410 | resolved "https://registry.yarnpkg.com/function.prototype.name/-/function.prototype.name-1.1.5.tgz#cce0505fe1ffb80503e6f9e46cc64e46a12a9621"
1411 | integrity sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==
1412 | dependencies:
1413 | call-bind "^1.0.2"
1414 | define-properties "^1.1.3"
1415 | es-abstract "^1.19.0"
1416 | functions-have-names "^1.2.2"
1417 |
1418 | functional-red-black-tree@^1.0.1:
1419 | version "1.0.1"
1420 | resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327"
1421 | integrity sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==
1422 |
1423 | functions-have-names@^1.2.2, functions-have-names@^1.2.3:
1424 | version "1.2.3"
1425 | resolved "https://registry.yarnpkg.com/functions-have-names/-/functions-have-names-1.2.3.tgz#0404fe4ee2ba2f607f0e0ec3c80bae994133b834"
1426 | integrity sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==
1427 |
1428 | get-func-name@^2.0.0:
1429 | version "2.0.0"
1430 | resolved "https://registry.yarnpkg.com/get-func-name/-/get-func-name-2.0.0.tgz#ead774abee72e20409433a066366023dd6887a41"
1431 | integrity sha512-Hm0ixYtaSZ/V7C8FJrtZIuBBI+iSgL+1Aq82zSu8VQNB4S3Gk8e7Qs3VwBDJAhmRZcFqkl3tQu36g/Foh5I5ig==
1432 |
1433 | get-intrinsic@^1.0.2, get-intrinsic@^1.1.1, get-intrinsic@^1.1.3, get-intrinsic@^1.2.0:
1434 | version "1.2.1"
1435 | resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.1.tgz#d295644fed4505fc9cde952c37ee12b477a83d82"
1436 | integrity sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==
1437 | dependencies:
1438 | function-bind "^1.1.1"
1439 | has "^1.0.3"
1440 | has-proto "^1.0.1"
1441 | has-symbols "^1.0.3"
1442 |
1443 | get-stream@^6.0.0, get-stream@^6.0.1:
1444 | version "6.0.1"
1445 | resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7"
1446 | integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==
1447 |
1448 | get-symbol-description@^1.0.0:
1449 | version "1.0.0"
1450 | resolved "https://registry.yarnpkg.com/get-symbol-description/-/get-symbol-description-1.0.0.tgz#7fdb81c900101fbd564dd5f1a30af5aadc1e58d6"
1451 | integrity sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==
1452 | dependencies:
1453 | call-bind "^1.0.2"
1454 | get-intrinsic "^1.1.1"
1455 |
1456 | get-tsconfig@^4.5.0:
1457 | version "4.6.0"
1458 | resolved "https://registry.yarnpkg.com/get-tsconfig/-/get-tsconfig-4.6.0.tgz#e977690993a42f3e320e932427502a40f7af6d05"
1459 | integrity sha512-lgbo68hHTQnFddybKbbs/RDRJnJT5YyGy2kQzVwbq+g67X73i+5MVTval34QxGkOe9X5Ujf1UYpCaphLyltjEg==
1460 | dependencies:
1461 | resolve-pkg-maps "^1.0.0"
1462 |
1463 | glob-parent@^5.1.2:
1464 | version "5.1.2"
1465 | resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4"
1466 | integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==
1467 | dependencies:
1468 | is-glob "^4.0.1"
1469 |
1470 | glob-parent@^6.0.2:
1471 | version "6.0.2"
1472 | resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-6.0.2.tgz#6d237d99083950c79290f24c7642a3de9a28f9e3"
1473 | integrity sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==
1474 | dependencies:
1475 | is-glob "^4.0.3"
1476 |
1477 | glob@^7.1.3:
1478 | version "7.2.3"
1479 | resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b"
1480 | integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==
1481 | dependencies:
1482 | fs.realpath "^1.0.0"
1483 | inflight "^1.0.4"
1484 | inherits "2"
1485 | minimatch "^3.1.1"
1486 | once "^1.3.0"
1487 | path-is-absolute "^1.0.0"
1488 |
1489 | globals@^13.19.0:
1490 | version "13.20.0"
1491 | resolved "https://registry.yarnpkg.com/globals/-/globals-13.20.0.tgz#ea276a1e508ffd4f1612888f9d1bad1e2717bf82"
1492 | integrity sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==
1493 | dependencies:
1494 | type-fest "^0.20.2"
1495 |
1496 | globalthis@^1.0.3:
1497 | version "1.0.3"
1498 | resolved "https://registry.yarnpkg.com/globalthis/-/globalthis-1.0.3.tgz#5852882a52b80dc301b0660273e1ed082f0b6ccf"
1499 | integrity sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==
1500 | dependencies:
1501 | define-properties "^1.1.3"
1502 |
1503 | globby@^11.1.0:
1504 | version "11.1.0"
1505 | resolved "https://registry.yarnpkg.com/globby/-/globby-11.1.0.tgz#bd4be98bb042f83d796f7e3811991fbe82a0d34b"
1506 | integrity sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==
1507 | dependencies:
1508 | array-union "^2.1.0"
1509 | dir-glob "^3.0.1"
1510 | fast-glob "^3.2.9"
1511 | ignore "^5.2.0"
1512 | merge2 "^1.4.1"
1513 | slash "^3.0.0"
1514 |
1515 | globby@^13.1.3:
1516 | version "13.1.4"
1517 | resolved "https://registry.yarnpkg.com/globby/-/globby-13.1.4.tgz#2f91c116066bcec152465ba36e5caa4a13c01317"
1518 | integrity sha512-iui/IiiW+QrJ1X1hKH5qwlMQyv34wJAYwH1vrf8b9kBA4sNiif3gKsMHa+BrdnOpEudWjpotfa7LrTzB1ERS/g==
1519 | dependencies:
1520 | dir-glob "^3.0.1"
1521 | fast-glob "^3.2.11"
1522 | ignore "^5.2.0"
1523 | merge2 "^1.4.1"
1524 | slash "^4.0.0"
1525 |
1526 | gopd@^1.0.1:
1527 | version "1.0.1"
1528 | resolved "https://registry.yarnpkg.com/gopd/-/gopd-1.0.1.tgz#29ff76de69dac7489b7c0918a5788e56477c332c"
1529 | integrity sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==
1530 | dependencies:
1531 | get-intrinsic "^1.1.3"
1532 |
1533 | graceful-fs@^4.2.4:
1534 | version "4.2.11"
1535 | resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3"
1536 | integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==
1537 |
1538 | graphemer@^1.4.0:
1539 | version "1.4.0"
1540 | resolved "https://registry.yarnpkg.com/graphemer/-/graphemer-1.4.0.tgz#fb2f1d55e0e3a1849aeffc90c4fa0dd53a0e66c6"
1541 | integrity sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==
1542 |
1543 | has-bigints@^1.0.1, has-bigints@^1.0.2:
1544 | version "1.0.2"
1545 | resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.2.tgz#0871bd3e3d51626f6ca0966668ba35d5602d6eaa"
1546 | integrity sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==
1547 |
1548 | has-flag@^4.0.0:
1549 | version "4.0.0"
1550 | resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b"
1551 | integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==
1552 |
1553 | has-property-descriptors@^1.0.0:
1554 | version "1.0.0"
1555 | resolved "https://registry.yarnpkg.com/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz#610708600606d36961ed04c196193b6a607fa861"
1556 | integrity sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==
1557 | dependencies:
1558 | get-intrinsic "^1.1.1"
1559 |
1560 | has-proto@^1.0.1:
1561 | version "1.0.1"
1562 | resolved "https://registry.yarnpkg.com/has-proto/-/has-proto-1.0.1.tgz#1885c1305538958aff469fef37937c22795408e0"
1563 | integrity sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==
1564 |
1565 | has-symbols@^1.0.2, has-symbols@^1.0.3:
1566 | version "1.0.3"
1567 | resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8"
1568 | integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==
1569 |
1570 | has-tostringtag@^1.0.0:
1571 | version "1.0.0"
1572 | resolved "https://registry.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.0.tgz#7e133818a7d394734f941e73c3d3f9291e658b25"
1573 | integrity sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==
1574 | dependencies:
1575 | has-symbols "^1.0.2"
1576 |
1577 | has@^1.0.3:
1578 | version "1.0.3"
1579 | resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796"
1580 | integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==
1581 | dependencies:
1582 | function-bind "^1.1.1"
1583 |
1584 | human-signals@^2.1.0:
1585 | version "2.1.0"
1586 | resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0"
1587 | integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==
1588 |
1589 | human-signals@^4.3.0:
1590 | version "4.3.1"
1591 | resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-4.3.1.tgz#ab7f811e851fca97ffbd2c1fe9a958964de321b2"
1592 | integrity sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ==
1593 |
1594 | ignore@^5.2.0:
1595 | version "5.2.4"
1596 | resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.4.tgz#a291c0c6178ff1b960befe47fcdec301674a6324"
1597 | integrity sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==
1598 |
1599 | import-fresh@^3.0.0, import-fresh@^3.2.1:
1600 | version "3.3.0"
1601 | resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b"
1602 | integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==
1603 | dependencies:
1604 | parent-module "^1.0.0"
1605 | resolve-from "^4.0.0"
1606 |
1607 | imurmurhash@^0.1.4:
1608 | version "0.1.4"
1609 | resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea"
1610 | integrity sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==
1611 |
1612 | inflight@^1.0.4:
1613 | version "1.0.6"
1614 | resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9"
1615 | integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==
1616 | dependencies:
1617 | once "^1.3.0"
1618 | wrappy "1"
1619 |
1620 | inherits@2:
1621 | version "2.0.4"
1622 | resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c"
1623 | integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==
1624 |
1625 | internal-slot@^1.0.3, internal-slot@^1.0.4, internal-slot@^1.0.5:
1626 | version "1.0.5"
1627 | resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.5.tgz#f2a2ee21f668f8627a4667f309dc0f4fb6674986"
1628 | integrity sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ==
1629 | dependencies:
1630 | get-intrinsic "^1.2.0"
1631 | has "^1.0.3"
1632 | side-channel "^1.0.4"
1633 |
1634 | is-arguments@^1.1.1:
1635 | version "1.1.1"
1636 | resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.1.1.tgz#15b3f88fda01f2a97fec84ca761a560f123efa9b"
1637 | integrity sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==
1638 | dependencies:
1639 | call-bind "^1.0.2"
1640 | has-tostringtag "^1.0.0"
1641 |
1642 | is-array-buffer@^3.0.1, is-array-buffer@^3.0.2:
1643 | version "3.0.2"
1644 | resolved "https://registry.yarnpkg.com/is-array-buffer/-/is-array-buffer-3.0.2.tgz#f2653ced8412081638ecb0ebbd0c41c6e0aecbbe"
1645 | integrity sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==
1646 | dependencies:
1647 | call-bind "^1.0.2"
1648 | get-intrinsic "^1.2.0"
1649 | is-typed-array "^1.1.10"
1650 |
1651 | is-bigint@^1.0.1:
1652 | version "1.0.4"
1653 | resolved "https://registry.yarnpkg.com/is-bigint/-/is-bigint-1.0.4.tgz#08147a1875bc2b32005d41ccd8291dffc6691df3"
1654 | integrity sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==
1655 | dependencies:
1656 | has-bigints "^1.0.1"
1657 |
1658 | is-boolean-object@^1.1.0:
1659 | version "1.1.2"
1660 | resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.1.2.tgz#5c6dc200246dd9321ae4b885a114bb1f75f63719"
1661 | integrity sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==
1662 | dependencies:
1663 | call-bind "^1.0.2"
1664 | has-tostringtag "^1.0.0"
1665 |
1666 | is-callable@^1.1.3, is-callable@^1.1.4, is-callable@^1.2.7:
1667 | version "1.2.7"
1668 | resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.7.tgz#3bc2a85ea742d9e36205dcacdd72ca1fdc51b055"
1669 | integrity sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==
1670 |
1671 | is-core-module@^2.11.0, is-core-module@^2.9.0:
1672 | version "2.12.1"
1673 | resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.12.1.tgz#0c0b6885b6f80011c71541ce15c8d66cf5a4f9fd"
1674 | integrity sha512-Q4ZuBAe2FUsKtyQJoQHlvP8OvBERxO3jEmy1I7hcRXcJBGGHFh/aJBswbXuS9sgrDH2QUO8ilkwNPHvHMd8clg==
1675 | dependencies:
1676 | has "^1.0.3"
1677 |
1678 | is-date-object@^1.0.1, is-date-object@^1.0.5:
1679 | version "1.0.5"
1680 | resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.5.tgz#0841d5536e724c25597bf6ea62e1bd38298df31f"
1681 | integrity sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==
1682 | dependencies:
1683 | has-tostringtag "^1.0.0"
1684 |
1685 | is-docker@^2.0.0:
1686 | version "2.2.1"
1687 | resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-2.2.1.tgz#33eeabe23cfe86f14bde4408a02c0cfb853acdaa"
1688 | integrity sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==
1689 |
1690 | is-docker@^3.0.0:
1691 | version "3.0.0"
1692 | resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-3.0.0.tgz#90093aa3106277d8a77a5910dbae71747e15a200"
1693 | integrity sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==
1694 |
1695 | is-extglob@^2.1.1:
1696 | version "2.1.1"
1697 | resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2"
1698 | integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==
1699 |
1700 | is-fullwidth-code-point@^4.0.0:
1701 | version "4.0.0"
1702 | resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-4.0.0.tgz#fae3167c729e7463f8461ce512b080a49268aa88"
1703 | integrity sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==
1704 |
1705 | is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3:
1706 | version "4.0.3"
1707 | resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084"
1708 | integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==
1709 | dependencies:
1710 | is-extglob "^2.1.1"
1711 |
1712 | is-inside-container@^1.0.0:
1713 | version "1.0.0"
1714 | resolved "https://registry.yarnpkg.com/is-inside-container/-/is-inside-container-1.0.0.tgz#e81fba699662eb31dbdaf26766a61d4814717ea4"
1715 | integrity sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==
1716 | dependencies:
1717 | is-docker "^3.0.0"
1718 |
1719 | is-map@^2.0.1, is-map@^2.0.2:
1720 | version "2.0.2"
1721 | resolved "https://registry.yarnpkg.com/is-map/-/is-map-2.0.2.tgz#00922db8c9bf73e81b7a335827bc2a43f2b91127"
1722 | integrity sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==
1723 |
1724 | is-negative-zero@^2.0.2:
1725 | version "2.0.2"
1726 | resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.2.tgz#7bf6f03a28003b8b3965de3ac26f664d765f3150"
1727 | integrity sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==
1728 |
1729 | is-number-object@^1.0.4:
1730 | version "1.0.7"
1731 | resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.7.tgz#59d50ada4c45251784e9904f5246c742f07a42fc"
1732 | integrity sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==
1733 | dependencies:
1734 | has-tostringtag "^1.0.0"
1735 |
1736 | is-number@^7.0.0:
1737 | version "7.0.0"
1738 | resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b"
1739 | integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==
1740 |
1741 | is-path-inside@^3.0.3:
1742 | version "3.0.3"
1743 | resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283"
1744 | integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==
1745 |
1746 | is-regex@^1.1.4:
1747 | version "1.1.4"
1748 | resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.4.tgz#eef5663cd59fa4c0ae339505323df6854bb15958"
1749 | integrity sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==
1750 | dependencies:
1751 | call-bind "^1.0.2"
1752 | has-tostringtag "^1.0.0"
1753 |
1754 | is-set@^2.0.1, is-set@^2.0.2:
1755 | version "2.0.2"
1756 | resolved "https://registry.yarnpkg.com/is-set/-/is-set-2.0.2.tgz#90755fa4c2562dc1c5d4024760d6119b94ca18ec"
1757 | integrity sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==
1758 |
1759 | is-shared-array-buffer@^1.0.2:
1760 | version "1.0.2"
1761 | resolved "https://registry.yarnpkg.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz#8f259c573b60b6a32d4058a1a07430c0a7344c79"
1762 | integrity sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==
1763 | dependencies:
1764 | call-bind "^1.0.2"
1765 |
1766 | is-stream@^2.0.0:
1767 | version "2.0.1"
1768 | resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077"
1769 | integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==
1770 |
1771 | is-stream@^3.0.0:
1772 | version "3.0.0"
1773 | resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-3.0.0.tgz#e6bfd7aa6bef69f4f472ce9bb681e3e57b4319ac"
1774 | integrity sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==
1775 |
1776 | is-string@^1.0.5, is-string@^1.0.7:
1777 | version "1.0.7"
1778 | resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.7.tgz#0dd12bf2006f255bb58f695110eff7491eebc0fd"
1779 | integrity sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==
1780 | dependencies:
1781 | has-tostringtag "^1.0.0"
1782 |
1783 | is-symbol@^1.0.2, is-symbol@^1.0.3:
1784 | version "1.0.4"
1785 | resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.4.tgz#a6dac93b635b063ca6872236de88910a57af139c"
1786 | integrity sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==
1787 | dependencies:
1788 | has-symbols "^1.0.2"
1789 |
1790 | is-typed-array@^1.1.10, is-typed-array@^1.1.9:
1791 | version "1.1.10"
1792 | resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.10.tgz#36a5b5cb4189b575d1a3e4b08536bfb485801e3f"
1793 | integrity sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A==
1794 | dependencies:
1795 | available-typed-arrays "^1.0.5"
1796 | call-bind "^1.0.2"
1797 | for-each "^0.3.3"
1798 | gopd "^1.0.1"
1799 | has-tostringtag "^1.0.0"
1800 |
1801 | is-weakmap@^2.0.1:
1802 | version "2.0.1"
1803 | resolved "https://registry.yarnpkg.com/is-weakmap/-/is-weakmap-2.0.1.tgz#5008b59bdc43b698201d18f62b37b2ca243e8cf2"
1804 | integrity sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA==
1805 |
1806 | is-weakref@^1.0.2:
1807 | version "1.0.2"
1808 | resolved "https://registry.yarnpkg.com/is-weakref/-/is-weakref-1.0.2.tgz#9529f383a9338205e89765e0392efc2f100f06f2"
1809 | integrity sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==
1810 | dependencies:
1811 | call-bind "^1.0.2"
1812 |
1813 | is-weakset@^2.0.1:
1814 | version "2.0.2"
1815 | resolved "https://registry.yarnpkg.com/is-weakset/-/is-weakset-2.0.2.tgz#4569d67a747a1ce5a994dfd4ef6dcea76e7c0a1d"
1816 | integrity sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg==
1817 | dependencies:
1818 | call-bind "^1.0.2"
1819 | get-intrinsic "^1.1.1"
1820 |
1821 | is-wsl@^2.2.0:
1822 | version "2.2.0"
1823 | resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-2.2.0.tgz#74a4c76e77ca9fd3f932f290c17ea326cd157271"
1824 | integrity sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==
1825 | dependencies:
1826 | is-docker "^2.0.0"
1827 |
1828 | isarray@^2.0.5:
1829 | version "2.0.5"
1830 | resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.5.tgz#8af1e4c1221244cc62459faf38940d4e644a5723"
1831 | integrity sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==
1832 |
1833 | isexe@^2.0.0:
1834 | version "2.0.0"
1835 | resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10"
1836 | integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==
1837 |
1838 | "js-tokens@^3.0.0 || ^4.0.0":
1839 | version "4.0.0"
1840 | resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499"
1841 | integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==
1842 |
1843 | js-yaml@^4.1.0:
1844 | version "4.1.0"
1845 | resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602"
1846 | integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==
1847 | dependencies:
1848 | argparse "^2.0.1"
1849 |
1850 | json-schema-traverse@^0.4.1:
1851 | version "0.4.1"
1852 | resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660"
1853 | integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==
1854 |
1855 | json-stable-stringify-without-jsonify@^1.0.1:
1856 | version "1.0.1"
1857 | resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651"
1858 | integrity sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==
1859 |
1860 | json5@^1.0.2:
1861 | version "1.0.2"
1862 | resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.2.tgz#63d98d60f21b313b77c4d6da18bfa69d80e1d593"
1863 | integrity sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==
1864 | dependencies:
1865 | minimist "^1.2.0"
1866 |
1867 | jsonc-parser@^3.2.0:
1868 | version "3.2.0"
1869 | resolved "https://registry.yarnpkg.com/jsonc-parser/-/jsonc-parser-3.2.0.tgz#31ff3f4c2b9793f89c67212627c51c6394f88e76"
1870 | integrity sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==
1871 |
1872 | "jsx-ast-utils@^2.4.1 || ^3.0.0", jsx-ast-utils@^3.3.3:
1873 | version "3.3.3"
1874 | resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-3.3.3.tgz#76b3e6e6cece5c69d49a5792c3d01bd1a0cdc7ea"
1875 | integrity sha512-fYQHZTZ8jSfmWZ0iyzfwiU4WDX4HpHbMCZ3gPlWYiCl3BoeOTsqKBqnTVfH2rYT7eP5c3sVbeSPHnnJOaTrWiw==
1876 | dependencies:
1877 | array-includes "^3.1.5"
1878 | object.assign "^4.1.3"
1879 |
1880 | language-subtag-registry@~0.3.2:
1881 | version "0.3.22"
1882 | resolved "https://registry.yarnpkg.com/language-subtag-registry/-/language-subtag-registry-0.3.22.tgz#2e1500861b2e457eba7e7ae86877cbd08fa1fd1d"
1883 | integrity sha512-tN0MCzyWnoz/4nHS6uxdlFWoUZT7ABptwKPQ52Ea7URk6vll88bWBVhodtnlfEuCcKWNGoc+uGbw1cwa9IKh/w==
1884 |
1885 | language-tags@=1.0.5:
1886 | version "1.0.5"
1887 | resolved "https://registry.yarnpkg.com/language-tags/-/language-tags-1.0.5.tgz#d321dbc4da30ba8bf3024e040fa5c14661f9193a"
1888 | integrity sha512-qJhlO9cGXi6hBGKoxEG/sKZDAHD5Hnu9Hs4WbOY3pCWXDhw0N8x1NenNzm2EnNLkLkk7J2SdxAkDSbb6ftT+UQ==
1889 | dependencies:
1890 | language-subtag-registry "~0.3.2"
1891 |
1892 | levn@^0.4.1:
1893 | version "0.4.1"
1894 | resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade"
1895 | integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==
1896 | dependencies:
1897 | prelude-ls "^1.2.1"
1898 | type-check "~0.4.0"
1899 |
1900 | local-pkg@^0.4.2:
1901 | version "0.4.3"
1902 | resolved "https://registry.yarnpkg.com/local-pkg/-/local-pkg-0.4.3.tgz#0ff361ab3ae7f1c19113d9bb97b98b905dbc4963"
1903 | integrity sha512-SFppqq5p42fe2qcZQqqEOiVRXl+WCP1MdT6k7BDEW1j++sp5fIY+/fdRQitvKgB5BrBcmrs5m/L0v2FrU5MY1g==
1904 |
1905 | locate-path@^6.0.0:
1906 | version "6.0.0"
1907 | resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286"
1908 | integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==
1909 | dependencies:
1910 | p-locate "^5.0.0"
1911 |
1912 | lodash.merge@^4.6.2:
1913 | version "4.6.2"
1914 | resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a"
1915 | integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==
1916 |
1917 | loose-envify@^1.1.0, loose-envify@^1.4.0:
1918 | version "1.4.0"
1919 | resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf"
1920 | integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==
1921 | dependencies:
1922 | js-tokens "^3.0.0 || ^4.0.0"
1923 |
1924 | loupe@^2.3.1, loupe@^2.3.6:
1925 | version "2.3.6"
1926 | resolved "https://registry.yarnpkg.com/loupe/-/loupe-2.3.6.tgz#76e4af498103c532d1ecc9be102036a21f787b53"
1927 | integrity sha512-RaPMZKiMy8/JruncMU5Bt6na1eftNoo++R4Y+N2FrxkDVTrGvcyzFTsaGif4QTeKESheMGegbhw6iUAq+5A8zA==
1928 | dependencies:
1929 | get-func-name "^2.0.0"
1930 |
1931 | lru-cache@^6.0.0:
1932 | version "6.0.0"
1933 | resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94"
1934 | integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==
1935 | dependencies:
1936 | yallist "^4.0.0"
1937 |
1938 | merge-stream@^2.0.0:
1939 | version "2.0.0"
1940 | resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60"
1941 | integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==
1942 |
1943 | merge2@^1.3.0, merge2@^1.4.1:
1944 | version "1.4.1"
1945 | resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae"
1946 | integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==
1947 |
1948 | micromatch@^4.0.4:
1949 | version "4.0.5"
1950 | resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.5.tgz#bc8999a7cbbf77cdc89f132f6e467051b49090c6"
1951 | integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==
1952 | dependencies:
1953 | braces "^3.0.2"
1954 | picomatch "^2.3.1"
1955 |
1956 | mimic-fn@^2.1.0:
1957 | version "2.1.0"
1958 | resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b"
1959 | integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==
1960 |
1961 | mimic-fn@^4.0.0:
1962 | version "4.0.0"
1963 | resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-4.0.0.tgz#60a90550d5cb0b239cca65d893b1a53b29871ecc"
1964 | integrity sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==
1965 |
1966 | minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2:
1967 | version "3.1.2"
1968 | resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b"
1969 | integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==
1970 | dependencies:
1971 | brace-expansion "^1.1.7"
1972 |
1973 | minimist@^1.2.0, minimist@^1.2.6:
1974 | version "1.2.8"
1975 | resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c"
1976 | integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==
1977 |
1978 | mlly@^1.1.0, mlly@^1.2.0:
1979 | version "1.3.0"
1980 | resolved "https://registry.yarnpkg.com/mlly/-/mlly-1.3.0.tgz#3184cb80c6437bda861a9f452ae74e3434ed9cd1"
1981 | integrity sha512-HT5mcgIQKkOrZecOjOX3DJorTikWXwsBfpcr/MGBkhfWcjiqvnaL/9ppxvIUXfjT6xt4DVIAsN9fMUz1ev4bIw==
1982 | dependencies:
1983 | acorn "^8.8.2"
1984 | pathe "^1.1.0"
1985 | pkg-types "^1.0.3"
1986 | ufo "^1.1.2"
1987 |
1988 | moment@2.29.4:
1989 | version "2.29.4"
1990 | resolved "https://registry.yarnpkg.com/moment/-/moment-2.29.4.tgz#3dbe052889fe7c1b2ed966fcb3a77328964ef108"
1991 | integrity sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w==
1992 |
1993 | ms@2.1.2:
1994 | version "2.1.2"
1995 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009"
1996 | integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==
1997 |
1998 | ms@^2.1.1:
1999 | version "2.1.3"
2000 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2"
2001 | integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==
2002 |
2003 | nanoid@^3.3.6:
2004 | version "3.3.6"
2005 | resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.6.tgz#443380c856d6e9f9824267d960b4236ad583ea4c"
2006 | integrity sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==
2007 |
2008 | natural-compare@^1.4.0:
2009 | version "1.4.0"
2010 | resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7"
2011 | integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==
2012 |
2013 | npm-run-path@^4.0.1:
2014 | version "4.0.1"
2015 | resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea"
2016 | integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==
2017 | dependencies:
2018 | path-key "^3.0.0"
2019 |
2020 | npm-run-path@^5.1.0:
2021 | version "5.1.0"
2022 | resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-5.1.0.tgz#bc62f7f3f6952d9894bd08944ba011a6ee7b7e00"
2023 | integrity sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==
2024 | dependencies:
2025 | path-key "^4.0.0"
2026 |
2027 | object-assign@^4.1.1:
2028 | version "4.1.1"
2029 | resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863"
2030 | integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==
2031 |
2032 | object-inspect@^1.12.3, object-inspect@^1.9.0:
2033 | version "1.12.3"
2034 | resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.3.tgz#ba62dffd67ee256c8c086dfae69e016cd1f198b9"
2035 | integrity sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==
2036 |
2037 | object-is@^1.1.5:
2038 | version "1.1.5"
2039 | resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.1.5.tgz#b9deeaa5fc7f1846a0faecdceec138e5778f53ac"
2040 | integrity sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==
2041 | dependencies:
2042 | call-bind "^1.0.2"
2043 | define-properties "^1.1.3"
2044 |
2045 | object-keys@^1.1.1:
2046 | version "1.1.1"
2047 | resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e"
2048 | integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==
2049 |
2050 | object.assign@^4.1.2, object.assign@^4.1.3, object.assign@^4.1.4:
2051 | version "4.1.4"
2052 | resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.4.tgz#9673c7c7c351ab8c4d0b516f4343ebf4dfb7799f"
2053 | integrity sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==
2054 | dependencies:
2055 | call-bind "^1.0.2"
2056 | define-properties "^1.1.4"
2057 | has-symbols "^1.0.3"
2058 | object-keys "^1.1.1"
2059 |
2060 | object.entries@^1.1.5, object.entries@^1.1.6:
2061 | version "1.1.6"
2062 | resolved "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.6.tgz#9737d0e5b8291edd340a3e3264bb8a3b00d5fa23"
2063 | integrity sha512-leTPzo4Zvg3pmbQ3rDK69Rl8GQvIqMWubrkxONG9/ojtFE2rD9fjMKfSI5BxW3osRH1m6VdzmqK8oAY9aT4x5w==
2064 | dependencies:
2065 | call-bind "^1.0.2"
2066 | define-properties "^1.1.4"
2067 | es-abstract "^1.20.4"
2068 |
2069 | object.fromentries@^2.0.6:
2070 | version "2.0.6"
2071 | resolved "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.6.tgz#cdb04da08c539cffa912dcd368b886e0904bfa73"
2072 | integrity sha512-VciD13dswC4j1Xt5394WR4MzmAQmlgN72phd/riNp9vtD7tp4QQWJ0R4wvclXcafgcYK8veHRed2W6XeGBvcfg==
2073 | dependencies:
2074 | call-bind "^1.0.2"
2075 | define-properties "^1.1.4"
2076 | es-abstract "^1.20.4"
2077 |
2078 | object.hasown@^1.1.2:
2079 | version "1.1.2"
2080 | resolved "https://registry.yarnpkg.com/object.hasown/-/object.hasown-1.1.2.tgz#f919e21fad4eb38a57bc6345b3afd496515c3f92"
2081 | integrity sha512-B5UIT3J1W+WuWIU55h0mjlwaqxiE5vYENJXIXZ4VFe05pNYrkKuK0U/6aFcb0pKywYJh7IhfoqUfKVmrJJHZHw==
2082 | dependencies:
2083 | define-properties "^1.1.4"
2084 | es-abstract "^1.20.4"
2085 |
2086 | object.values@^1.1.6:
2087 | version "1.1.6"
2088 | resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.6.tgz#4abbaa71eba47d63589d402856f908243eea9b1d"
2089 | integrity sha512-FVVTkD1vENCsAcwNs9k6jea2uHC/X0+JcjG8YA60FN5CMaJmG95wT9jek/xX9nornqGRrBkKtzuAu2wuHpKqvw==
2090 | dependencies:
2091 | call-bind "^1.0.2"
2092 | define-properties "^1.1.4"
2093 | es-abstract "^1.20.4"
2094 |
2095 | obsidian@latest:
2096 | version "1.4.11"
2097 | resolved "https://registry.yarnpkg.com/obsidian/-/obsidian-1.4.11.tgz#5cba594c83a74ebad58b630c610265018abdadaa"
2098 | integrity sha512-BCVYTvaXxElJMl6MMbDdY/CGK+aq18SdtDY/7vH8v6BxCBQ6KF4kKxL0vG9UZ0o5qh139KpUoJHNm+6O5dllKA==
2099 | dependencies:
2100 | "@types/codemirror" "5.60.8"
2101 | moment "2.29.4"
2102 |
2103 | once@^1.3.0:
2104 | version "1.4.0"
2105 | resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"
2106 | integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==
2107 | dependencies:
2108 | wrappy "1"
2109 |
2110 | onetime@^5.1.2:
2111 | version "5.1.2"
2112 | resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e"
2113 | integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==
2114 | dependencies:
2115 | mimic-fn "^2.1.0"
2116 |
2117 | onetime@^6.0.0:
2118 | version "6.0.0"
2119 | resolved "https://registry.yarnpkg.com/onetime/-/onetime-6.0.0.tgz#7c24c18ed1fd2e9bca4bd26806a33613c77d34b4"
2120 | integrity sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==
2121 | dependencies:
2122 | mimic-fn "^4.0.0"
2123 |
2124 | open@^9.1.0:
2125 | version "9.1.0"
2126 | resolved "https://registry.yarnpkg.com/open/-/open-9.1.0.tgz#684934359c90ad25742f5a26151970ff8c6c80b6"
2127 | integrity sha512-OS+QTnw1/4vrf+9hh1jc1jnYjzSG4ttTBB8UxOwAnInG3Uo4ssetzC1ihqaIHjLJnA5GGlRl6QlZXOTQhRBUvg==
2128 | dependencies:
2129 | default-browser "^4.0.0"
2130 | define-lazy-prop "^3.0.0"
2131 | is-inside-container "^1.0.0"
2132 | is-wsl "^2.2.0"
2133 |
2134 | optionator@^0.9.1:
2135 | version "0.9.1"
2136 | resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.1.tgz#4f236a6373dae0566a6d43e1326674f50c291499"
2137 | integrity sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==
2138 | dependencies:
2139 | deep-is "^0.1.3"
2140 | fast-levenshtein "^2.0.6"
2141 | levn "^0.4.1"
2142 | prelude-ls "^1.2.1"
2143 | type-check "^0.4.0"
2144 | word-wrap "^1.2.3"
2145 |
2146 | p-limit@^3.0.2:
2147 | version "3.1.0"
2148 | resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b"
2149 | integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==
2150 | dependencies:
2151 | yocto-queue "^0.1.0"
2152 |
2153 | p-limit@^4.0.0:
2154 | version "4.0.0"
2155 | resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-4.0.0.tgz#914af6544ed32bfa54670b061cafcbd04984b644"
2156 | integrity sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==
2157 | dependencies:
2158 | yocto-queue "^1.0.0"
2159 |
2160 | p-locate@^5.0.0:
2161 | version "5.0.0"
2162 | resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834"
2163 | integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==
2164 | dependencies:
2165 | p-limit "^3.0.2"
2166 |
2167 | parent-module@^1.0.0:
2168 | version "1.0.1"
2169 | resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2"
2170 | integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==
2171 | dependencies:
2172 | callsites "^3.0.0"
2173 |
2174 | path-exists@^4.0.0:
2175 | version "4.0.0"
2176 | resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3"
2177 | integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==
2178 |
2179 | path-is-absolute@^1.0.0:
2180 | version "1.0.1"
2181 | resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"
2182 | integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==
2183 |
2184 | path-key@^3.0.0, path-key@^3.1.0:
2185 | version "3.1.1"
2186 | resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375"
2187 | integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==
2188 |
2189 | path-key@^4.0.0:
2190 | version "4.0.0"
2191 | resolved "https://registry.yarnpkg.com/path-key/-/path-key-4.0.0.tgz#295588dc3aee64154f877adb9d780b81c554bf18"
2192 | integrity sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==
2193 |
2194 | path-parse@^1.0.7:
2195 | version "1.0.7"
2196 | resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735"
2197 | integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==
2198 |
2199 | path-type@^4.0.0:
2200 | version "4.0.0"
2201 | resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b"
2202 | integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==
2203 |
2204 | pathe@^1.1.0:
2205 | version "1.1.1"
2206 | resolved "https://registry.yarnpkg.com/pathe/-/pathe-1.1.1.tgz#1dd31d382b974ba69809adc9a7a347e65d84829a"
2207 | integrity sha512-d+RQGp0MAYTIaDBIMmOfMwz3E+LOZnxx1HZd5R18mmCZY0QBlK0LDZfPc8FW8Ed2DlvsuE6PRjroDY+wg4+j/Q==
2208 |
2209 | pathval@^1.1.1:
2210 | version "1.1.1"
2211 | resolved "https://registry.yarnpkg.com/pathval/-/pathval-1.1.1.tgz#8534e77a77ce7ac5a2512ea21e0fdb8fcf6c3d8d"
2212 | integrity sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==
2213 |
2214 | picocolors@^1.0.0:
2215 | version "1.0.0"
2216 | resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c"
2217 | integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==
2218 |
2219 | picomatch@^2.3.1:
2220 | version "2.3.1"
2221 | resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42"
2222 | integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==
2223 |
2224 | pkg-types@^1.0.3:
2225 | version "1.0.3"
2226 | resolved "https://registry.yarnpkg.com/pkg-types/-/pkg-types-1.0.3.tgz#988b42ab19254c01614d13f4f65a2cfc7880f868"
2227 | integrity sha512-nN7pYi0AQqJnoLPC9eHFQ8AcyaixBUOwvqc5TDnIKCMEE6I0y8P7OKA7fPexsXGCGxQDl/cmrLAp26LhcwxZ4A==
2228 | dependencies:
2229 | jsonc-parser "^3.2.0"
2230 | mlly "^1.2.0"
2231 | pathe "^1.1.0"
2232 |
2233 | postcss@^8.4.23:
2234 | version "8.4.24"
2235 | resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.24.tgz#f714dba9b2284be3cc07dbd2fc57ee4dc972d2df"
2236 | integrity sha512-M0RzbcI0sO/XJNucsGjvWU9ERWxb/ytp1w6dKtxTKgixdtQDq4rmx/g8W1hnaheq9jgwL/oyEdH5Bc4WwJKMqg==
2237 | dependencies:
2238 | nanoid "^3.3.6"
2239 | picocolors "^1.0.0"
2240 | source-map-js "^1.0.2"
2241 |
2242 | prelude-ls@^1.2.1:
2243 | version "1.2.1"
2244 | resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396"
2245 | integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==
2246 |
2247 | prettier-linter-helpers@^1.0.0:
2248 | version "1.0.0"
2249 | resolved "https://registry.yarnpkg.com/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz#d23d41fe1375646de2d0104d3454a3008802cf7b"
2250 | integrity sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==
2251 | dependencies:
2252 | fast-diff "^1.1.2"
2253 |
2254 | prettier@^2.8.3:
2255 | version "2.8.8"
2256 | resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.8.8.tgz#e8c5d7e98a4305ffe3de2e1fc4aca1a71c28b1da"
2257 | integrity sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==
2258 |
2259 | pretty-format@^27.5.1:
2260 | version "27.5.1"
2261 | resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-27.5.1.tgz#2181879fdea51a7a5851fb39d920faa63f01d88e"
2262 | integrity sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==
2263 | dependencies:
2264 | ansi-regex "^5.0.1"
2265 | ansi-styles "^5.0.0"
2266 | react-is "^17.0.1"
2267 |
2268 | prop-types@^15.8.1:
2269 | version "15.8.1"
2270 | resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.8.1.tgz#67d87bf1a694f48435cf332c24af10214a3140b5"
2271 | integrity sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==
2272 | dependencies:
2273 | loose-envify "^1.4.0"
2274 | object-assign "^4.1.1"
2275 | react-is "^16.13.1"
2276 |
2277 | punycode@^2.1.0:
2278 | version "2.3.0"
2279 | resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.0.tgz#f67fa67c94da8f4d0cfff981aee4118064199b8f"
2280 | integrity sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==
2281 |
2282 | queue-microtask@^1.2.2:
2283 | version "1.2.3"
2284 | resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243"
2285 | integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==
2286 |
2287 | react-is@^16.13.1:
2288 | version "16.13.1"
2289 | resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4"
2290 | integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==
2291 |
2292 | react-is@^17.0.1:
2293 | version "17.0.2"
2294 | resolved "https://registry.yarnpkg.com/react-is/-/react-is-17.0.2.tgz#e691d4a8e9c789365655539ab372762b0efb54f0"
2295 | integrity sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==
2296 |
2297 | react@^18.2.0:
2298 | version "18.2.0"
2299 | resolved "https://registry.yarnpkg.com/react/-/react-18.2.0.tgz#555bd98592883255fa00de14f1151a917b5d77d5"
2300 | integrity sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==
2301 | dependencies:
2302 | loose-envify "^1.1.0"
2303 |
2304 | regenerator-runtime@^0.13.11:
2305 | version "0.13.11"
2306 | resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz#f6dca3e7ceec20590d07ada785636a90cdca17f9"
2307 | integrity sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==
2308 |
2309 | regexp.prototype.flags@^1.4.3, regexp.prototype.flags@^1.5.0:
2310 | version "1.5.0"
2311 | resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.5.0.tgz#fe7ce25e7e4cca8db37b6634c8a2c7009199b9cb"
2312 | integrity sha512-0SutC3pNudRKgquxGoRGIz946MZVHqbNfPjBdxeOhBrdgDKlRoXmYLQN9xRbrR09ZXWeGAdPuif7egofn6v5LA==
2313 | dependencies:
2314 | call-bind "^1.0.2"
2315 | define-properties "^1.2.0"
2316 | functions-have-names "^1.2.3"
2317 |
2318 | regexpp@^3.2.0:
2319 | version "3.2.0"
2320 | resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.2.0.tgz#0425a2768d8f23bad70ca4b90461fa2f1213e1b2"
2321 | integrity sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==
2322 |
2323 | resolve-from@^4.0.0:
2324 | version "4.0.0"
2325 | resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6"
2326 | integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==
2327 |
2328 | resolve-pkg-maps@^1.0.0:
2329 | version "1.0.0"
2330 | resolved "https://registry.yarnpkg.com/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz#616b3dc2c57056b5588c31cdf4b3d64db133720f"
2331 | integrity sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==
2332 |
2333 | resolve@^1.22.1:
2334 | version "1.22.2"
2335 | resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.2.tgz#0ed0943d4e301867955766c9f3e1ae6d01c6845f"
2336 | integrity sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==
2337 | dependencies:
2338 | is-core-module "^2.11.0"
2339 | path-parse "^1.0.7"
2340 | supports-preserve-symlinks-flag "^1.0.0"
2341 |
2342 | resolve@^2.0.0-next.4:
2343 | version "2.0.0-next.4"
2344 | resolved "https://registry.yarnpkg.com/resolve/-/resolve-2.0.0-next.4.tgz#3d37a113d6429f496ec4752d2a2e58efb1fd4660"
2345 | integrity sha512-iMDbmAWtfU+MHpxt/I5iWI7cY6YVEZUQ3MBgPQ++XD1PELuJHIl82xBmObyP2KyQmkNB2dsqF7seoQQiAn5yDQ==
2346 | dependencies:
2347 | is-core-module "^2.9.0"
2348 | path-parse "^1.0.7"
2349 | supports-preserve-symlinks-flag "^1.0.0"
2350 |
2351 | reusify@^1.0.4:
2352 | version "1.0.4"
2353 | resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76"
2354 | integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==
2355 |
2356 | rimraf@^3.0.2:
2357 | version "3.0.2"
2358 | resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a"
2359 | integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==
2360 | dependencies:
2361 | glob "^7.1.3"
2362 |
2363 | rollup@^3.21.0:
2364 | version "3.24.1"
2365 | resolved "https://registry.yarnpkg.com/rollup/-/rollup-3.24.1.tgz#7ed67b778fb90a6f5e32e64510af9e28b03e47a8"
2366 | integrity sha512-REHe5dx30ERBRFS0iENPHy+t6wtSEYkjrhwNsLyh3qpRaZ1+aylvMUdMBUHWUD/RjjLmLzEvY8Z9XRlpcdIkHA==
2367 | optionalDependencies:
2368 | fsevents "~2.3.2"
2369 |
2370 | run-applescript@^5.0.0:
2371 | version "5.0.0"
2372 | resolved "https://registry.yarnpkg.com/run-applescript/-/run-applescript-5.0.0.tgz#e11e1c932e055d5c6b40d98374e0268d9b11899c"
2373 | integrity sha512-XcT5rBksx1QdIhlFOCtgZkB99ZEouFZ1E2Kc2LHqNW13U3/74YGdkQRmThTwxy4QIyookibDKYZOPqX//6BlAg==
2374 | dependencies:
2375 | execa "^5.0.0"
2376 |
2377 | run-parallel@^1.1.9:
2378 | version "1.2.0"
2379 | resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee"
2380 | integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==
2381 | dependencies:
2382 | queue-microtask "^1.2.2"
2383 |
2384 | safe-regex-test@^1.0.0:
2385 | version "1.0.0"
2386 | resolved "https://registry.yarnpkg.com/safe-regex-test/-/safe-regex-test-1.0.0.tgz#793b874d524eb3640d1873aad03596db2d4f2295"
2387 | integrity sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==
2388 | dependencies:
2389 | call-bind "^1.0.2"
2390 | get-intrinsic "^1.1.3"
2391 | is-regex "^1.1.4"
2392 |
2393 | semver@^6.3.0:
2394 | version "6.3.0"
2395 | resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d"
2396 | integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==
2397 |
2398 | semver@^7.3.7:
2399 | version "7.5.1"
2400 | resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.1.tgz#c90c4d631cf74720e46b21c1d37ea07edfab91ec"
2401 | integrity sha512-Wvss5ivl8TMRZXXESstBA4uR5iXgEN/VC5/sOcuXdVLzcdkz4HWetIoRfG5gb5X+ij/G9rw9YoGn3QoQ8OCSpw==
2402 | dependencies:
2403 | lru-cache "^6.0.0"
2404 |
2405 | shebang-command@^2.0.0:
2406 | version "2.0.0"
2407 | resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea"
2408 | integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==
2409 | dependencies:
2410 | shebang-regex "^3.0.0"
2411 |
2412 | shebang-regex@^3.0.0:
2413 | version "3.0.0"
2414 | resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172"
2415 | integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==
2416 |
2417 | side-channel@^1.0.4:
2418 | version "1.0.4"
2419 | resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf"
2420 | integrity sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==
2421 | dependencies:
2422 | call-bind "^1.0.0"
2423 | get-intrinsic "^1.0.2"
2424 | object-inspect "^1.9.0"
2425 |
2426 | siginfo@^2.0.0:
2427 | version "2.0.0"
2428 | resolved "https://registry.yarnpkg.com/siginfo/-/siginfo-2.0.0.tgz#32e76c70b79724e3bb567cb9d543eb858ccfaf30"
2429 | integrity sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==
2430 |
2431 | signal-exit@^3.0.3, signal-exit@^3.0.7:
2432 | version "3.0.7"
2433 | resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9"
2434 | integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==
2435 |
2436 | slash@^3.0.0:
2437 | version "3.0.0"
2438 | resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634"
2439 | integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==
2440 |
2441 | slash@^4.0.0:
2442 | version "4.0.0"
2443 | resolved "https://registry.yarnpkg.com/slash/-/slash-4.0.0.tgz#2422372176c4c6c5addb5e2ada885af984b396a7"
2444 | integrity sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==
2445 |
2446 | slice-ansi@^5.0.0:
2447 | version "5.0.0"
2448 | resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-5.0.0.tgz#b73063c57aa96f9cd881654b15294d95d285c42a"
2449 | integrity sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==
2450 | dependencies:
2451 | ansi-styles "^6.0.0"
2452 | is-fullwidth-code-point "^4.0.0"
2453 |
2454 | source-map-js@^1.0.2:
2455 | version "1.0.2"
2456 | resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c"
2457 | integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==
2458 |
2459 | source-map-support@^0.5.21:
2460 | version "0.5.21"
2461 | resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f"
2462 | integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==
2463 | dependencies:
2464 | buffer-from "^1.0.0"
2465 | source-map "^0.6.0"
2466 |
2467 | source-map@^0.6.0, source-map@^0.6.1:
2468 | version "0.6.1"
2469 | resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263"
2470 | integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==
2471 |
2472 | stackback@0.0.2:
2473 | version "0.0.2"
2474 | resolved "https://registry.yarnpkg.com/stackback/-/stackback-0.0.2.tgz#1ac8a0d9483848d1695e418b6d031a3c3ce68e3b"
2475 | integrity sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==
2476 |
2477 | std-env@^3.3.1:
2478 | version "3.3.3"
2479 | resolved "https://registry.yarnpkg.com/std-env/-/std-env-3.3.3.tgz#a54f06eb245fdcfef53d56f3c0251f1d5c3d01fe"
2480 | integrity sha512-Rz6yejtVyWnVjC1RFvNmYL10kgjC49EOghxWn0RFqlCHGFpQx+Xe7yW3I4ceK1SGrWIGMjD5Kbue8W/udkbMJg==
2481 |
2482 | stop-iteration-iterator@^1.0.0:
2483 | version "1.0.0"
2484 | resolved "https://registry.yarnpkg.com/stop-iteration-iterator/-/stop-iteration-iterator-1.0.0.tgz#6a60be0b4ee757d1ed5254858ec66b10c49285e4"
2485 | integrity sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ==
2486 | dependencies:
2487 | internal-slot "^1.0.4"
2488 |
2489 | string-width@^5.0.0:
2490 | version "5.1.2"
2491 | resolved "https://registry.yarnpkg.com/string-width/-/string-width-5.1.2.tgz#14f8daec6d81e7221d2a357e668cab73bdbca794"
2492 | integrity sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==
2493 | dependencies:
2494 | eastasianwidth "^0.2.0"
2495 | emoji-regex "^9.2.2"
2496 | strip-ansi "^7.0.1"
2497 |
2498 | string.prototype.matchall@^4.0.8:
2499 | version "4.0.8"
2500 | resolved "https://registry.yarnpkg.com/string.prototype.matchall/-/string.prototype.matchall-4.0.8.tgz#3bf85722021816dcd1bf38bb714915887ca79fd3"
2501 | integrity sha512-6zOCOcJ+RJAQshcTvXPHoxoQGONa3e/Lqx90wUA+wEzX78sg5Bo+1tQo4N0pohS0erG9qtCqJDjNCQBjeWVxyg==
2502 | dependencies:
2503 | call-bind "^1.0.2"
2504 | define-properties "^1.1.4"
2505 | es-abstract "^1.20.4"
2506 | get-intrinsic "^1.1.3"
2507 | has-symbols "^1.0.3"
2508 | internal-slot "^1.0.3"
2509 | regexp.prototype.flags "^1.4.3"
2510 | side-channel "^1.0.4"
2511 |
2512 | string.prototype.trim@^1.2.7:
2513 | version "1.2.7"
2514 | resolved "https://registry.yarnpkg.com/string.prototype.trim/-/string.prototype.trim-1.2.7.tgz#a68352740859f6893f14ce3ef1bb3037f7a90533"
2515 | integrity sha512-p6TmeT1T3411M8Cgg9wBTMRtY2q9+PNy9EV1i2lIXUN/btt763oIfxwN3RR8VU6wHX8j/1CFy0L+YuThm6bgOg==
2516 | dependencies:
2517 | call-bind "^1.0.2"
2518 | define-properties "^1.1.4"
2519 | es-abstract "^1.20.4"
2520 |
2521 | string.prototype.trimend@^1.0.6:
2522 | version "1.0.6"
2523 | resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz#c4a27fa026d979d79c04f17397f250a462944533"
2524 | integrity sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==
2525 | dependencies:
2526 | call-bind "^1.0.2"
2527 | define-properties "^1.1.4"
2528 | es-abstract "^1.20.4"
2529 |
2530 | string.prototype.trimstart@^1.0.6:
2531 | version "1.0.6"
2532 | resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.6.tgz#e90ab66aa8e4007d92ef591bbf3cd422c56bdcf4"
2533 | integrity sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==
2534 | dependencies:
2535 | call-bind "^1.0.2"
2536 | define-properties "^1.1.4"
2537 | es-abstract "^1.20.4"
2538 |
2539 | strip-ansi@^6.0.1:
2540 | version "6.0.1"
2541 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9"
2542 | integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==
2543 | dependencies:
2544 | ansi-regex "^5.0.1"
2545 |
2546 | strip-ansi@^7.0.1:
2547 | version "7.1.0"
2548 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-7.1.0.tgz#d5b6568ca689d8561370b0707685d22434faff45"
2549 | integrity sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==
2550 | dependencies:
2551 | ansi-regex "^6.0.1"
2552 |
2553 | strip-bom@^3.0.0:
2554 | version "3.0.0"
2555 | resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3"
2556 | integrity sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==
2557 |
2558 | strip-final-newline@^2.0.0:
2559 | version "2.0.0"
2560 | resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad"
2561 | integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==
2562 |
2563 | strip-final-newline@^3.0.0:
2564 | version "3.0.0"
2565 | resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-3.0.0.tgz#52894c313fbff318835280aed60ff71ebf12b8fd"
2566 | integrity sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==
2567 |
2568 | strip-json-comments@^3.1.0, strip-json-comments@^3.1.1:
2569 | version "3.1.1"
2570 | resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006"
2571 | integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==
2572 |
2573 | strip-literal@^1.0.0:
2574 | version "1.0.1"
2575 | resolved "https://registry.yarnpkg.com/strip-literal/-/strip-literal-1.0.1.tgz#0115a332710c849b4e46497891fb8d585e404bd2"
2576 | integrity sha512-QZTsipNpa2Ppr6v1AmJHESqJ3Uz247MUS0OjrnnZjFAvEoWqxuyFuXn2xLgMtRnijJShAa1HL0gtJyUs7u7n3Q==
2577 | dependencies:
2578 | acorn "^8.8.2"
2579 |
2580 | supports-color@^7.1.0:
2581 | version "7.2.0"
2582 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da"
2583 | integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==
2584 | dependencies:
2585 | has-flag "^4.0.0"
2586 |
2587 | supports-preserve-symlinks-flag@^1.0.0:
2588 | version "1.0.0"
2589 | resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09"
2590 | integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==
2591 |
2592 | synckit@^0.8.5:
2593 | version "0.8.5"
2594 | resolved "https://registry.yarnpkg.com/synckit/-/synckit-0.8.5.tgz#b7f4358f9bb559437f9f167eb6bc46b3c9818fa3"
2595 | integrity sha512-L1dapNV6vu2s/4Sputv8xGsCdAVlb5nRDMFU/E27D44l5U6cw1g0dGd45uLc+OXjNMmF4ntiMdCimzcjFKQI8Q==
2596 | dependencies:
2597 | "@pkgr/utils" "^2.3.1"
2598 | tslib "^2.5.0"
2599 |
2600 | tapable@^2.2.0:
2601 | version "2.2.1"
2602 | resolved "https://registry.yarnpkg.com/tapable/-/tapable-2.2.1.tgz#1967a73ef4060a82f12ab96af86d52fdb76eeca0"
2603 | integrity sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==
2604 |
2605 | text-table@^0.2.0:
2606 | version "0.2.0"
2607 | resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4"
2608 | integrity sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==
2609 |
2610 | tinybench@^2.3.1:
2611 | version "2.5.0"
2612 | resolved "https://registry.yarnpkg.com/tinybench/-/tinybench-2.5.0.tgz#4711c99bbf6f3e986f67eb722fed9cddb3a68ba5"
2613 | integrity sha512-kRwSG8Zx4tjF9ZiyH4bhaebu+EDz1BOx9hOigYHlUW4xxI/wKIUQUqo018UlU4ar6ATPBsaMrdbKZ+tmPdohFA==
2614 |
2615 | tinypool@^0.3.1:
2616 | version "0.3.1"
2617 | resolved "https://registry.yarnpkg.com/tinypool/-/tinypool-0.3.1.tgz#a99c2e446aba9be05d3e1cb756d6aed7af4723b6"
2618 | integrity sha512-zLA1ZXlstbU2rlpA4CIeVaqvWq41MTWqLY3FfsAXgC8+f7Pk7zroaJQxDgxn1xNudKW6Kmj4808rPFShUlIRmQ==
2619 |
2620 | tinyspy@^1.0.2:
2621 | version "1.1.1"
2622 | resolved "https://registry.yarnpkg.com/tinyspy/-/tinyspy-1.1.1.tgz#0cb91d5157892af38cb2d217f5c7e8507a5bf092"
2623 | integrity sha512-UVq5AXt/gQlti7oxoIg5oi/9r0WpF7DGEVwXgqWSMmyN16+e3tl5lIvTaOpJ3TAtu5xFzWccFRM4R5NaWHF+4g==
2624 |
2625 | titleize@^3.0.0:
2626 | version "3.0.0"
2627 | resolved "https://registry.yarnpkg.com/titleize/-/titleize-3.0.0.tgz#71c12eb7fdd2558aa8a44b0be83b8a76694acd53"
2628 | integrity sha512-KxVu8EYHDPBdUYdKZdKtU2aj2XfEx9AfjXxE/Aj0vT06w2icA09Vus1rh6eSu1y01akYg6BjIK/hxyLJINoMLQ==
2629 |
2630 | to-regex-range@^5.0.1:
2631 | version "5.0.1"
2632 | resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4"
2633 | integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==
2634 | dependencies:
2635 | is-number "^7.0.0"
2636 |
2637 | tsconfig-paths@^3.14.1:
2638 | version "3.14.2"
2639 | resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.14.2.tgz#6e32f1f79412decd261f92d633a9dc1cfa99f088"
2640 | integrity sha512-o/9iXgCYc5L/JxCHPe3Hvh8Q/2xm5Z+p18PESBU6Ff33695QnCHBEjcytY2q19ua7Mbl/DavtBOLq+oG0RCL+g==
2641 | dependencies:
2642 | "@types/json5" "^0.0.29"
2643 | json5 "^1.0.2"
2644 | minimist "^1.2.6"
2645 | strip-bom "^3.0.0"
2646 |
2647 | tslib@2.4.0:
2648 | version "2.4.0"
2649 | resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.4.0.tgz#7cecaa7f073ce680a05847aa77be941098f36dc3"
2650 | integrity sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==
2651 |
2652 | tslib@^1.8.1:
2653 | version "1.14.1"
2654 | resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00"
2655 | integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==
2656 |
2657 | tslib@^2.5.0:
2658 | version "2.5.3"
2659 | resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.5.3.tgz#24944ba2d990940e6e982c4bea147aba80209913"
2660 | integrity sha512-mSxlJJwl3BMEQCUNnxXBU9jP4JBktcEGhURcPR6VQVlnP0FdDEsIaz0C35dXNGLyRfrATNofF0F5p2KPxQgB+w==
2661 |
2662 | tsutils@^3.21.0:
2663 | version "3.21.0"
2664 | resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.21.0.tgz#b48717d394cea6c1e096983eed58e9d61715b623"
2665 | integrity sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==
2666 | dependencies:
2667 | tslib "^1.8.1"
2668 |
2669 | type-check@^0.4.0, type-check@~0.4.0:
2670 | version "0.4.0"
2671 | resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1"
2672 | integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==
2673 | dependencies:
2674 | prelude-ls "^1.2.1"
2675 |
2676 | type-detect@^4.0.0, type-detect@^4.0.5:
2677 | version "4.0.8"
2678 | resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c"
2679 | integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==
2680 |
2681 | type-fest@^0.20.2:
2682 | version "0.20.2"
2683 | resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4"
2684 | integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==
2685 |
2686 | typed-array-length@^1.0.4:
2687 | version "1.0.4"
2688 | resolved "https://registry.yarnpkg.com/typed-array-length/-/typed-array-length-1.0.4.tgz#89d83785e5c4098bec72e08b319651f0eac9c1bb"
2689 | integrity sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==
2690 | dependencies:
2691 | call-bind "^1.0.2"
2692 | for-each "^0.3.3"
2693 | is-typed-array "^1.1.9"
2694 |
2695 | typescript@4.7.4:
2696 | version "4.7.4"
2697 | resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.7.4.tgz#1a88596d1cf47d59507a1bcdfb5b9dfe4d488235"
2698 | integrity sha512-C0WQT0gezHuw6AdY1M2jxUO83Rjf0HP7Sk1DtXj6j1EwkQNZrHAg2XPWlq62oqEhYvONq5pkC2Y9oPljWToLmQ==
2699 |
2700 | ufo@^1.1.2:
2701 | version "1.1.2"
2702 | resolved "https://registry.yarnpkg.com/ufo/-/ufo-1.1.2.tgz#d0d9e0fa09dece0c31ffd57bd363f030a35cfe76"
2703 | integrity sha512-TrY6DsjTQQgyS3E3dBaOXf0TpPD8u9FVrVYmKVegJuFw51n/YB9XPt+U6ydzFG5ZIN7+DIjPbNmXoBj9esYhgQ==
2704 |
2705 | unbox-primitive@^1.0.2:
2706 | version "1.0.2"
2707 | resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.2.tgz#29032021057d5e6cdbd08c5129c226dff8ed6f9e"
2708 | integrity sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==
2709 | dependencies:
2710 | call-bind "^1.0.2"
2711 | has-bigints "^1.0.2"
2712 | has-symbols "^1.0.3"
2713 | which-boxed-primitive "^1.0.2"
2714 |
2715 | untildify@^4.0.0:
2716 | version "4.0.0"
2717 | resolved "https://registry.yarnpkg.com/untildify/-/untildify-4.0.0.tgz#2bc947b953652487e4600949fb091e3ae8cd919b"
2718 | integrity sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==
2719 |
2720 | uri-js@^4.2.2:
2721 | version "4.4.1"
2722 | resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e"
2723 | integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==
2724 | dependencies:
2725 | punycode "^2.1.0"
2726 |
2727 | vite-node@0.28.5:
2728 | version "0.28.5"
2729 | resolved "https://registry.yarnpkg.com/vite-node/-/vite-node-0.28.5.tgz#56d0f78846ea40fddf2e28390899df52a4738006"
2730 | integrity sha512-LmXb9saMGlrMZbXTvOveJKwMTBTNUH66c8rJnQ0ZPNX+myPEol64+szRzXtV5ORb0Hb/91yq+/D3oERoyAt6LA==
2731 | dependencies:
2732 | cac "^6.7.14"
2733 | debug "^4.3.4"
2734 | mlly "^1.1.0"
2735 | pathe "^1.1.0"
2736 | picocolors "^1.0.0"
2737 | source-map "^0.6.1"
2738 | source-map-support "^0.5.21"
2739 | vite "^3.0.0 || ^4.0.0"
2740 |
2741 | "vite@^3.0.0 || ^4.0.0":
2742 | version "4.3.9"
2743 | resolved "https://registry.yarnpkg.com/vite/-/vite-4.3.9.tgz#db896200c0b1aa13b37cdc35c9e99ee2fdd5f96d"
2744 | integrity sha512-qsTNZjO9NoJNW7KnOrgYwczm0WctJ8m/yqYAMAK9Lxt4SoySUfS5S8ia9K7JHpa3KEeMfyF8LoJ3c5NeBJy6pg==
2745 | dependencies:
2746 | esbuild "^0.17.5"
2747 | postcss "^8.4.23"
2748 | rollup "^3.21.0"
2749 | optionalDependencies:
2750 | fsevents "~2.3.2"
2751 |
2752 | vitest@^0.28.3:
2753 | version "0.28.5"
2754 | resolved "https://registry.yarnpkg.com/vitest/-/vitest-0.28.5.tgz#94410a8924cd7189e4f1adffa8c5cde809cbf2f9"
2755 | integrity sha512-pyCQ+wcAOX7mKMcBNkzDwEHRGqQvHUl0XnoHR+3Pb1hytAHISgSxv9h0gUiSiYtISXUU3rMrKiKzFYDrI6ZIHA==
2756 | dependencies:
2757 | "@types/chai" "^4.3.4"
2758 | "@types/chai-subset" "^1.3.3"
2759 | "@types/node" "*"
2760 | "@vitest/expect" "0.28.5"
2761 | "@vitest/runner" "0.28.5"
2762 | "@vitest/spy" "0.28.5"
2763 | "@vitest/utils" "0.28.5"
2764 | acorn "^8.8.1"
2765 | acorn-walk "^8.2.0"
2766 | cac "^6.7.14"
2767 | chai "^4.3.7"
2768 | debug "^4.3.4"
2769 | local-pkg "^0.4.2"
2770 | pathe "^1.1.0"
2771 | picocolors "^1.0.0"
2772 | source-map "^0.6.1"
2773 | std-env "^3.3.1"
2774 | strip-literal "^1.0.0"
2775 | tinybench "^2.3.1"
2776 | tinypool "^0.3.1"
2777 | tinyspy "^1.0.2"
2778 | vite "^3.0.0 || ^4.0.0"
2779 | vite-node "0.28.5"
2780 | why-is-node-running "^2.2.2"
2781 |
2782 | which-boxed-primitive@^1.0.2:
2783 | version "1.0.2"
2784 | resolved "https://registry.yarnpkg.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz#13757bc89b209b049fe5d86430e21cf40a89a8e6"
2785 | integrity sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==
2786 | dependencies:
2787 | is-bigint "^1.0.1"
2788 | is-boolean-object "^1.1.0"
2789 | is-number-object "^1.0.4"
2790 | is-string "^1.0.5"
2791 | is-symbol "^1.0.3"
2792 |
2793 | which-collection@^1.0.1:
2794 | version "1.0.1"
2795 | resolved "https://registry.yarnpkg.com/which-collection/-/which-collection-1.0.1.tgz#70eab71ebbbd2aefaf32f917082fc62cdcb70906"
2796 | integrity sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A==
2797 | dependencies:
2798 | is-map "^2.0.1"
2799 | is-set "^2.0.1"
2800 | is-weakmap "^2.0.1"
2801 | is-weakset "^2.0.1"
2802 |
2803 | which-typed-array@^1.1.9:
2804 | version "1.1.9"
2805 | resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.9.tgz#307cf898025848cf995e795e8423c7f337efbde6"
2806 | integrity sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA==
2807 | dependencies:
2808 | available-typed-arrays "^1.0.5"
2809 | call-bind "^1.0.2"
2810 | for-each "^0.3.3"
2811 | gopd "^1.0.1"
2812 | has-tostringtag "^1.0.0"
2813 | is-typed-array "^1.1.10"
2814 |
2815 | which@^2.0.1:
2816 | version "2.0.2"
2817 | resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1"
2818 | integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==
2819 | dependencies:
2820 | isexe "^2.0.0"
2821 |
2822 | why-is-node-running@^2.2.2:
2823 | version "2.2.2"
2824 | resolved "https://registry.yarnpkg.com/why-is-node-running/-/why-is-node-running-2.2.2.tgz#4185b2b4699117819e7154594271e7e344c9973e"
2825 | integrity sha512-6tSwToZxTOcotxHeA+qGCq1mVzKR3CwcJGmVcY+QE8SHy6TnpFnh8PAvPNHYr7EcuVeG0QSMxtYCuO1ta/G/oA==
2826 | dependencies:
2827 | siginfo "^2.0.0"
2828 | stackback "0.0.2"
2829 |
2830 | word-wrap@^1.2.3:
2831 | version "1.2.3"
2832 | resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c"
2833 | integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==
2834 |
2835 | wrappy@1:
2836 | version "1.0.2"
2837 | resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
2838 | integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==
2839 |
2840 | yallist@^4.0.0:
2841 | version "4.0.0"
2842 | resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72"
2843 | integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==
2844 |
2845 | yocto-queue@^0.1.0:
2846 | version "0.1.0"
2847 | resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b"
2848 | integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==
2849 |
2850 | yocto-queue@^1.0.0:
2851 | version "1.0.0"
2852 | resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-1.0.0.tgz#7f816433fb2cbc511ec8bf7d263c3b58a1a3c251"
2853 | integrity sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==
2854 |
--------------------------------------------------------------------------------