├── .github
└── workflows
│ └── unit-tests.yml
├── .gitignore
├── LICENSE
├── README.md
├── docs
├── assets
│ ├── css
│ │ └── index.css
│ ├── images
│ │ └── copy-clipboard.svg
│ └── js
│ │ └── index.js
├── chapter-1
│ ├── 1.1-is-unique
│ │ └── index.html
│ ├── 1.2-check-permutation
│ │ └── index.html
│ ├── 1.3-urlfy
│ │ └── index.html
│ ├── 1.4-palindrome-permutation
│ │ └── index.html
│ ├── 1.5-one-away
│ │ └── index.html
│ ├── 1.6-string-compression
│ │ └── index.html
│ └── index.html
└── index.html
├── index.html
├── package.json
├── solutions
└── chapter-1
│ ├── 1.1-is-unique
│ ├── is-unique.js
│ └── is-unique.test.js
│ ├── 1.2-check-permutation
│ ├── check-permutation.js
│ └── check-permutation.test.js
│ ├── 1.3-urlfy
│ ├── urify-without-hash-map.js
│ ├── urify-without-hash-map.test.js
│ ├── urify.js
│ └── urify.test.js
│ ├── 1.4-palindrome-permutation
│ ├── palindrome.js
│ └── palindrome.test.js
│ ├── 1.5-one-away
│ ├── one-away.js
│ └── one-away.test.js
│ └── 1.6-string-compression
│ ├── string-compression-next-array.js
│ ├── string-compression-next-array.test.js
│ ├── string-compression-next.js
│ ├── string-compression-next.test.js
│ ├── string-compression-previous.js
│ └── string-compression-previous.test.js
└── yarn.lock
/.github/workflows/unit-tests.yml:
--------------------------------------------------------------------------------
1 | name: 'Testing the application'
2 |
3 | on:
4 | pull_request:
5 | types:
6 | - edited
7 | - opened
8 | - synchronize
9 | # paths:
10 | # - 'src/**.js'
11 |
12 | jobs:
13 | unit-test:
14 | runs-on: ubuntu-latest
15 |
16 | strategy:
17 | matrix:
18 | node-version: [14.x, 16.x, 18.x]
19 |
20 | steps:
21 | - uses: actions/checkout@v3
22 | - uses: actions/setup-node@v3
23 | with:
24 | node-version: ${{ matrix.node-version }}
25 | cache: 'yarn'
26 | - run: yarn install --immutable
27 | - run: yarn test
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # Logs
2 | logs
3 | *.log
4 | npm-debug.log*
5 | yarn-debug.log*
6 | yarn-error.log*
7 | lerna-debug.log*
8 | .pnpm-debug.log*
9 |
10 | # Diagnostic reports (https://nodejs.org/api/report.html)
11 | report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json
12 |
13 | # Runtime data
14 | pids
15 | *.pid
16 | *.seed
17 | *.pid.lock
18 |
19 | # Directory for instrumented libs generated by jscoverage/JSCover
20 | lib-cov
21 |
22 | # Coverage directory used by tools like istanbul
23 | coverage
24 | *.lcov
25 |
26 | # nyc test coverage
27 | .nyc_output
28 |
29 | # Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files)
30 | .grunt
31 |
32 | # Bower dependency directory (https://bower.io/)
33 | bower_components
34 |
35 | # node-waf configuration
36 | .lock-wscript
37 |
38 | # Compiled binary addons (https://nodejs.org/api/addons.html)
39 | build/Release
40 |
41 | # Dependency directories
42 | node_modules/
43 | jspm_packages/
44 |
45 | # Snowpack dependency directory (https://snowpack.dev/)
46 | web_modules/
47 |
48 | # TypeScript cache
49 | *.tsbuildinfo
50 |
51 | # Optional npm cache directory
52 | .npm
53 |
54 | # Optional eslint cache
55 | .eslintcache
56 |
57 | # Optional stylelint cache
58 | .stylelintcache
59 |
60 | # Microbundle cache
61 | .rpt2_cache/
62 | .rts2_cache_cjs/
63 | .rts2_cache_es/
64 | .rts2_cache_umd/
65 |
66 | # Optional REPL history
67 | .node_repl_history
68 |
69 | # Output of 'npm pack'
70 | *.tgz
71 |
72 | # Yarn Integrity file
73 | .yarn-integrity
74 |
75 | # dotenv environment variable files
76 | .env
77 | .env.development.local
78 | .env.test.local
79 | .env.production.local
80 | .env.local
81 |
82 | # parcel-bundler cache (https://parceljs.org/)
83 | .cache
84 | .parcel-cache
85 |
86 | # Next.js build output
87 | .next
88 | out
89 |
90 | # Nuxt.js build / generate output
91 | .nuxt
92 | dist
93 |
94 | # Gatsby files
95 | .cache/
96 | # Comment in the public line in if your project uses Gatsby and not Next.js
97 | # https://nextjs.org/blog/next-9-1#public-directory-support
98 | # public
99 |
100 | # vuepress build output
101 | .vuepress/dist
102 |
103 | # vuepress v2.x temp and cache directory
104 | .temp
105 | .cache
106 |
107 | # Docusaurus cache and generated files
108 | .docusaurus
109 |
110 | # Serverless directories
111 | .serverless/
112 |
113 | # FuseBox cache
114 | .fusebox/
115 |
116 | # DynamoDB Local files
117 | .dynamodb/
118 |
119 | # TernJS port file
120 | .tern-port
121 |
122 | # Stores VSCode versions used for testing VSCode extensions
123 | .vscode-test
124 |
125 | # yarn v2
126 | .yarn/cache
127 | .yarn/unplugged
128 | .yarn/build-state.yml
129 | .yarn/install-state.gz
130 | .pnp.*
131 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2023 Lais Frigério
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 | # Cracking The Coding Interview with JS
2 |
3 | Soluções em JavaScript dos exercícios do livro "Cracking the Coding Interview" 6ª edição.
4 |
5 | - Dentro da pasta `solutions`, têm arquivos `.js` para cada exercício.
6 | - Dentro da pasta `solutions`, têm arquivos de testes `.test.js` para cada exercício
7 | - Para cada exercício, pode haver mais de uma solução
8 |
9 | ## Lista de exercícios por Capítulos
10 |
11 | ### Capítulo 1
12 | - [x] [1.1 - Is Unique](./solutions/chapter-1/1.1-is-unique/)
13 | - [x] [1.2 - Check Permutation](./solutions/chapter-1/1.2-check-permutation/)
14 | - [x] [1.3 - URLify](./solutions/chapter-1/1.3-urlfy/)
15 | - [x] [1.4 - Palindrome Permutation](./solutions/chapter-1/1.4-palindrome-permutation/)
16 | - [x] [1.5 - One Away](./solutions/chapter-1/1.5-one-away/)
17 | - [x] [1.6 - String Compression](./solutions/chapter-1/1.6-string-compressiony/)
18 | - [ ] 1.7 - Rotate Matrix
19 | - [ ] 1.8 - Zero Matrix
20 | - [ ] 1.9 - String Rotation
21 |
22 | ...
23 |
24 | ## 🛠️ Tecnologias
25 |
26 | - nodejs `18.12.1`
27 | - jest `^29.5.0`
28 | - yarn `1.22.19`
29 |
30 | ## :gem: Execute os testes
31 |
32 | ```
33 | yarn install
34 | yarn test
35 | ```
36 |
37 | ## :woman: Autora
38 |
39 | [@laisfrigerio](https://instagram.com/laisfrigerio/)
40 |
41 | ## 📄 Licença
42 |
43 | Este projeto está licenciado sob a licença MIT - consulte o arquivo LICENSE.md para obter detalhes
44 |
--------------------------------------------------------------------------------
/docs/assets/css/index.css:
--------------------------------------------------------------------------------
1 | :root {
2 | --background: #181818;
3 | --green: #1d887a;
4 | --white: #fff;
5 | --gray-01: #23241f;
6 | --gray-03: #616161;
7 | --gray-04: #5f5f5f;
8 | --gray-05: #989898;
9 | --font-roboto: 'Roboto', sans-serif;
10 | }
11 |
12 | * {
13 | border: 0;
14 | box-sizing: border-box;
15 | margin: 0;
16 | padding: 0;
17 | }
18 |
19 | body {
20 | background-color: var(--background);
21 | height: 100vh;
22 | width: 100%;
23 | }
24 |
25 | .code-highlight,
26 | article {
27 | font-family: var(--font-roboto);
28 | margin: 0 auto;
29 | max-width: 600px;
30 | padding: 0 15px;
31 | position: relative;
32 | }
33 |
34 | .code-highlight {
35 | margin-bottom: -40px;
36 | }
37 |
38 | .code-original {
39 | display: none;
40 | }
41 |
42 | .code-display {
43 | visibility: hidden;
44 | }
45 |
46 | .copy-to-clipboard {
47 | background-image: url("../images/copy-clipboard.svg");
48 | background-color: var(--gray-04);
49 | background-size: 20px 20px;
50 | background-position: center;
51 | background-repeat: no-repeat;
52 | border-radius: 50%;
53 | cursor: pointer;
54 | height: 35px;
55 | width: 35px;
56 | position: absolute;
57 | right: 25px;
58 | top: 25px;
59 | }
60 |
61 | .copy-to-clipboard-pressed {
62 | background-color: var(--background);
63 | }
64 |
65 | .breadcrumb {
66 | background: var(--gray-01);
67 | border-radius: 10px;
68 | display: flex;
69 | color: var(--gray-03);
70 | font-family: var(--font-roboto);
71 | font-size: 14px;
72 | list-style: none;
73 | margin: 20px 0;
74 | padding: 10px;
75 | }
76 |
77 | .breadcrumb li:last-child {
78 | color: var(--white);
79 | }
80 |
81 | .breadcrumb li,
82 | .breadcrumb li a {
83 | color: var(--gray-03);
84 | text-decoration: none;
85 | }
86 |
87 | .breadcrumb li a:hover {
88 | color: var(--green);
89 | text-decoration: none;
90 | transition: color 1s;
91 | }
92 |
93 | .breadcrumb li {
94 | margin: 0 10px;
95 | position: relative;
96 | }
97 |
98 | .breadcrumb li:before {
99 | content: ">";
100 | font-size: 10px;
101 | margin-left: -15px;
102 | margin-top: -5px;
103 | padding: 5px;
104 | position: absolute;
105 | }
106 |
107 | article p {
108 | color: var(--gray-04);
109 | line-height: 150%;
110 | margin-bottom: 20px;
111 | }
112 |
113 | article .title-01 {
114 | color: var(--green);
115 | font-size: 24px;
116 | margin-bottom: 20px;
117 | }
118 |
119 | article .title-tip {
120 | color: var(--gray-05);
121 | font-size: 18px;
122 | }
123 |
124 | article .title-03,
125 | article .title-04 {
126 | color: var(--white);
127 | font-size: 16px;
128 | }
129 |
130 | article .title-04 {
131 | margin-bottom: 20px;
132 | }
133 |
134 | article .title-05 {
135 | color: var(--gray-04);
136 | font-weight: 400;
137 | }
138 |
139 | article .title-05 + ul {
140 | margin-top: 10px;
141 | }
142 |
143 | article .title-03 + p {
144 | margin-top: 20px;
145 | }
146 |
147 | article ul {
148 | color: var(--gray-04);
149 | line-height: 150%;
150 | margin: 20px 0 20px 15px;
151 | }
152 |
153 | article ul li a {
154 | color: var(--green);
155 | text-decoration: none;
156 | }
157 |
158 | article ul li a:hover {
159 | text-decoration: underline;
160 | }
161 |
162 | @media screen and (max-width: 450px) {
163 | .copy-to-clipboard {
164 | right: 20px;
165 | }
166 |
167 | .breadcrumb {
168 | font-size: 12px;
169 | }
170 | }
--------------------------------------------------------------------------------
/docs/assets/images/copy-clipboard.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
20 | edit-copy
22 |
24 |
49 |
57 |
58 |
60 |
61 |
63 | image/svg+xml
64 |
66 | edit-copy
67 |
68 |
69 |
70 |
75 |
81 |
82 |
--------------------------------------------------------------------------------
/docs/assets/js/index.js:
--------------------------------------------------------------------------------
1 | const typingSpeed = 200;
2 |
3 | const sleep = (ms) => {
4 | return new Promise(resolve => setTimeout(resolve, ms));
5 | }
6 |
7 | const isFirstInteraction = (index) => {
8 | return index === 0
9 | }
10 |
11 | const isEnd = (index, children) => {
12 | return index >= children.length
13 | }
14 |
15 | const isSampleText = (element) => {
16 | return typeof element.outerHTML === 'undefined'
17 | }
18 |
19 | const typing = async (snippetCode, currentElementHTML, text) => {
20 | for (let i = 0; i < text.length; i++) {
21 | currentElementHTML.innerText += text[i]
22 | snippetCode.appendChild(currentElementHTML);
23 | await sleep(50)
24 | }
25 | }
26 |
27 | const renderHTML = async (snippetCode, currentElementHTML) => {
28 | const text = currentElementHTML.innerText
29 | currentElementHTML.innerText = ''
30 | await typing(snippetCode, currentElementHTML, text)
31 | }
32 |
33 | const renderContent = async (snippetCode, element) => {
34 | if (isSampleText(element)) {
35 | snippetCode.appendChild(element);
36 | return
37 | }
38 |
39 | await renderHTML(snippetCode, element)
40 | }
41 |
42 | const saveOriginalCode = (snippetCodeHTML) => {
43 | const parent = snippetCodeHTML.parentElement
44 | const originalCodeHTML = parent.querySelector('.code-original')
45 | originalCodeHTML.innerHTML = snippetCodeHTML.innerHTML
46 | }
47 |
48 | const sroll = (snippetCodeHTML) => {
49 | snippetCodeHTML.scrollTop = snippetCodeHTML.scrollHeight;
50 | }
51 |
52 | const typeCode = async (snippetCodeHTML, childrenHTML, index) => {
53 | if (isFirstInteraction(index)) {
54 | snippetCodeHTML.style.visibility = 'visible'
55 | }
56 |
57 | // if (isEnd(index, childrenHTML)) {
58 | // return
59 | // }
60 |
61 | // if (childrenHTML.hasOwnProperty(index)) {
62 |
63 | // await renderContent(snippetCodeHTML, childrenHTML[index])
64 | // sroll(snippetCodeHTML)
65 |
66 | // setTimeout(async () => {
67 | // await typeCode(snippetCodeHTML, childrenHTML, ++index)
68 | // }, typingSpeed);
69 | // }
70 | }
71 |
72 | const loadHighlight = (snippetCodeHTML) => {
73 | try {
74 | saveOriginalCode(snippetCodeHTML)
75 | hljs.highlightElement(snippetCodeHTML)
76 |
77 | const childrensHTML = Object.values(snippetCodeHTML.childNodes)
78 |
79 | // snippetCodeHTML.innerHTML = '';
80 |
81 | let index = 0
82 |
83 | typeCode(snippetCodeHTML, childrensHTML, index)
84 | } catch (error) {
85 | console.log(error)
86 | setTimeout(loadHighlight, 50000);
87 | }
88 | }
89 |
90 | document.querySelectorAll('.code-display').forEach(snippetCode => {
91 | loadHighlight(snippetCode)
92 | })
93 |
94 | const copyToClipboard = (buttonHTML) => {
95 | const parent = buttonHTML.parentElement
96 | const text = parent.querySelector('.code-original').innerText
97 | navigator.clipboard.writeText(text)
98 | buttonHTML.classList.add('copy-to-clipboard-pressed')
99 | }
100 |
101 | document.querySelectorAll('.copy-to-clipboard').forEach(buttonHTML => {
102 | buttonHTML.addEventListener('click', () => {
103 | copyToClipboard(buttonHTML)
104 | })
105 | })
106 |
--------------------------------------------------------------------------------
/docs/chapter-1/1.1-is-unique/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | Is Unique | Cracking the Coding Interview
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
22 |
23 | Is Unique
24 |
25 | Implemente um algoritmo que determine se uma string tem apenas caracteres unicos sem o uso de estruturas de dados adicionais.
26 |
27 | Mas, e se você não pudesse utilizar uma estrutura de dados adicional?
28 |
29 | Dicas
30 |
31 | Tente uma Tabela Hash como estrutura de dados adicional
32 |
33 |
34 | Solução 1
35 |
36 |
37 |
38 | /*
39 | * Checking if an input/string has unique values
40 | * without an extra data structure
41 | */
42 |
43 | const isUniqueWithoutExtraDataStructure = (input) => {
44 | for (let i = 0; i < input.length; i++) {
45 | const characterExternal = input[i]
46 |
47 | for (let j = (i + 1); j < input.length; j++) {
48 | const characterInternal = input[j]
49 |
50 | if (characterExternal === characterInternal) {
51 | return false
52 | }
53 | }
54 | }
55 |
56 | return true
57 | }
58 |
59 |
60 |
61 |
62 |
63 | Solução 2
64 |
65 |
66 | /*
67 | * Checking if an input/string has unique values
68 | * with a usage of extra data structure (object).
69 | * With this approach we don't need a extra "for"
70 | * like the previous one example.
71 | */
72 |
73 | const isUnique = (input) => {
74 | const tempObject = {}
75 |
76 | for (const character of input) {
77 |
78 | if (tempObject[character]) {
79 | return false
80 | }
81 |
82 | tempObject[character] = true
83 | }
84 |
85 | return true
86 | }
87 |
88 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
--------------------------------------------------------------------------------
/docs/chapter-1/1.2-check-permutation/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | Check Permutation | Cracking the Coding Interview
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
22 |
23 | Check Permutation
24 |
25 | Dado duas strings, escreva uma função que decida se uma é permuta da outra.
26 |
27 | Dicas
28 |
29 | A solução pode levar em consideração se é Case Sensitive: "God" não é permutação de "dog"
30 | A solução pode levar em consideração espaços em branco: "God " não é permutação de "Dog"
31 | String de tamanhos diferentes não são permutas uma da outra
32 | Ordenando as strings e ambas sendo iguais significa que uma é permuta de outro
33 |
34 |
35 | Solução 1
36 |
37 |
38 |
39 | /*
40 | * This solution sounds more simple,
41 | but the Big O complexity is greater
42 |
43 | - First, the spread operator is probably
44 | a loop behind the scenes
45 |
46 | - To sort, we need to loop through the elements,
47 | and depend of the sort algorithm, it can take a
48 | lot of time to complete
49 |
50 | - Finally, we have to iterate again to
51 | join the array into string
52 |
53 | Also, we have a extra use of memory space compare
54 | to the checkPermutation function
55 | */
56 |
57 | const checkPermutationOrdered = (setence1, setence2) => {
58 | if (setence1.length !== setence2.length) {
59 | return false
60 | }
61 |
62 | const sentence1Ordered = [...setence1].sort().join('')
63 | const sentence2Ordered = [...setence2].sort().join('')
64 |
65 | return sentence1Ordered === sentence2Ordered
66 | }
67 |
68 |
69 |
70 |
71 |
72 | Solução 2
73 |
74 |
75 | /*
76 | * Firstly, Strings with different sizes
77 | are not permutation one for other.
78 |
79 | If they are the same size, we can check with all
80 | the characters from string 1 exists in the string 2
81 | */
82 |
83 | const checkPermutation = (setence1, setence2) => {
84 | if (setence1.length !== setence2.length) {
85 | return false
86 | }
87 |
88 | for (const character of setence1) {
89 | if (!setence2.includes(character)) {
90 | return false
91 | }
92 | }
93 |
94 | return true
95 | }
96 |
97 |
98 |
99 |
100 |
101 |
102 |
103 |
104 |
105 |
--------------------------------------------------------------------------------
/docs/chapter-1/1.3-urlfy/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | URLfy | Cracking the Coding Interview
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
22 |
23 | URLfy
24 |
25 | Escreva um método para substituir todos os espaços em uma string por `%20`. Você pode assumir que a string tem espaço suficiente
26 | no final para conter os caracteres adicionais e que a função vai receber o comprimento "verdadeiro" da string.
27 |
28 | Dicas
29 |
30 | Você pode achar que precisa saber o número de espaços em branco. Você pode apenas contá-los?
31 | Muitas vezes é mais fácil modificar strings indo do final da string para o começo
32 |
33 |
34 | Solução 1
35 |
36 |
37 |
38 | const urify = (input, realSize) => {
39 | const arrayInput = input.split("")
40 |
41 | let spaceCount = 0
42 |
43 | for (let i = 0; i < realSize; i++) {
44 | if (arrayInput[i] === ' ') {
45 | spaceCount++
46 | }
47 | }
48 |
49 | let index = realSize + (spaceCount * 2)
50 |
51 | if (index === arrayInput.length) {
52 | for (let i = realSize - 1; i >= 0; i--) {
53 | if (arrayInput[i] === ' ') {
54 | arrayInput[index - 1] = '0'
55 | arrayInput[index - 2] = '2'
56 | arrayInput[index - 3] = '%'
57 | index = index - 3
58 | } else {
59 | arrayInput[index-1] = arrayInput[i]
60 | index--
61 | }
62 | }
63 | }
64 |
65 | return arrayInput.join("")
66 | }
67 |
68 |
69 |
70 |
71 |
72 | Solução 2
73 |
74 |
75 | const spacesAvailable = (characters, trueLength) => {
76 | const spaces = []
77 |
78 | for (let index = 0; index < trueLength; index++) {
79 | if (characters[index] === ' ') {
80 | spaces.push(index)
81 | }
82 | }
83 |
84 | return spaces
85 | }
86 |
87 | const urify = (input, trueLength) => {
88 | const characters = input.split("")
89 |
90 | const spaces = spacesAvailable(characters, trueLength)
91 | const spaceCount = spaces.length
92 |
93 | const transformedIndex = trueLength + (spaceCount * 2)
94 |
95 | if (transformedIndex === characters.length) {
96 | for (let index = 0; index < spaces.length; index++) {
97 | characters[spaces[index]] = '%20'
98 | }
99 |
100 | return characters.join("").trim()
101 | }
102 |
103 | return characters.join("")
104 | }
105 |
106 |
107 |
108 |
109 |
110 |
111 |
112 |
113 |
114 |
--------------------------------------------------------------------------------
/docs/chapter-1/1.4-palindrome-permutation/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | Palindrome Permutation | Cracking the Coding Interview
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
22 |
23 | Palindrome Permutation
24 |
25 | Dado uma string, escreva uma função para checar se a string é uma permutation de um palíndromo.
26 |
27 | Um palíndromo é uma palavra ou frase ou sentença que permanece igual quando lida de trás para frente.
28 |
29 | A permutação é um rearranjo das letras.
30 |
31 | O palíndromo não precisa ser limitado a apenas palavras do dicionário. Exemplo:
32 |
33 | Dicas
34 |
35 | Você não precisa (e nem deve) gerar todas as permutações possíveis
36 | Que características teria uma string que é uma permutação de um palíndromo?
37 | Você já tentou uma tabela hash? Você conseguiria reduzir a complexidade para O(N)?
38 |
39 |
40 | Solução
41 |
42 |
43 |
44 | function isMod (input) {
45 | return input % 2 === 0
46 | }
47 |
48 | function incremet (input) {
49 | return input + 1
50 | }
51 |
52 | function isEmpty (input) {
53 | return input === ' '
54 | }
55 |
56 | function assoc (map, key) {
57 | map[key] = 1
58 | }
59 |
60 | function updateOddQuantity (input, oddQuantity) {
61 | if (isMod(input)) {
62 | return oddQuantity - 1
63 | }
64 |
65 | return oddQuantity + 1
66 | }
67 |
68 | function palindrome (input) {
69 | let characterHashMap = {}
70 | let oddQuantity = 0;
71 |
72 | for (let i = 0; i < input.length; i++) {
73 | const character = input[i].toLowerCase()
74 |
75 | if (isEmpty(character)) {
76 | continue
77 | }
78 |
79 | if (characterHashMap[character]) {
80 | characterHashMap[character] = incremet(characterHashMap[character])
81 | oddQuantity = updateOddQuantity(characterHashMap[character], oddQuantity)
82 | continue
83 | }
84 |
85 | assoc(characterHashMap, character)
86 | oddQuantity = incremet(oddQuantity)
87 | }
88 |
89 | return oddQuantity < 2
90 | }
91 |
92 |
93 |
94 |
95 |
96 |
97 |
98 |
99 |
100 |
--------------------------------------------------------------------------------
/docs/chapter-1/1.5-one-away/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | One Away | Cracking the Coding Interview
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
22 |
23 | One Away
24 |
25 | Temos 3 tipos de edições que podem ocorrer em strings:
26 |
27 |
28 | Inserir um caracter
29 | Remover um caracter
30 | Substituir um caracter
31 |
32 |
33 | Dado duas strings, escreva uma função para checar se elas têm apenas uma edição (ou nenhuma - quando iguais) de diferença.
34 |
35 | Exemplo:
36 |
37 |
38 | pale, ple -> true
39 | pales, pale -> true
40 | pale, bale -> true
41 | pale, bake -> false
42 |
43 |
44 | Dicas
45 |
46 | Comece pelo mais fácil. Você consegue verificar cada condição separadamente?
47 | Qual a ligação entre "inserir um caracter" e "remover um caracter"? Elas precisam ser duas verificações diferentes?
48 |
49 |
50 | Solução
51 |
52 |
53 |
54 | function firstStringIsLess(string1, string2) {
55 | return (string1.length + 1) === string2.length
56 | }
57 |
58 | function firstStringIsGreater(string1, string2) {
59 | return (string1.length - 1) === string2.length
60 | }
61 |
62 | function oneEditReplace(string1, string2) {
63 | let foundDifferent = false
64 |
65 | for (let index = 0; index < string1.length; index++) {
66 | if (string1[index] !== string2[index]) {
67 | if (foundDifferent) {
68 | return false
69 | }
70 |
71 | foundDifferent = true
72 | }
73 | }
74 |
75 | return true
76 | }
77 |
78 | function onAddOrRemove(string1, string2) {
79 | let index1 = 0
80 | let index2 = 0
81 |
82 | while (index2 < string2.length && index1 < string1.length) {
83 | if (string1[index1] !== string2[index2]) {
84 | if (index1 !== index2) {
85 | return false
86 | }
87 |
88 | index2++
89 | continue
90 | }
91 |
92 | index1++
93 | index2++
94 | }
95 |
96 |
97 | return true
98 | }
99 |
100 | function oneAway(string1, string2) {
101 | if (string1.length === string2.length) {
102 | return oneEditReplace(string1, string2)
103 | }
104 |
105 | if (firstStringIsLess(string1, string2)) {
106 | return onAddOrRemove(string1, string2)
107 | }
108 |
109 | if (firstStringIsGreater(string1, string2)) {
110 | return onAddOrRemove(string2, string1)
111 | }
112 |
113 | return false
114 | }
115 |
116 |
117 |
118 |
119 |
120 |
121 |
122 |
123 |
124 |
--------------------------------------------------------------------------------
/docs/chapter-1/1.6-string-compression/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | String compression | Cracking the Coding Interview
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
22 |
23 | String compression
24 |
25 | Implemente uma função para executar a compactação de uma string simples usando um contador para os caracteres repetidos.
26 |
27 | Por exemplo, a string aabcccccaaa
deve retornar a2b1c5a3
.
28 |
29 | A compactação deve sempre retornar uma string com tamanho menor do que ao valor da entrada. Se não for, sua função deve retornar a string original.
30 |
31 | Você pode assumir que a string tem apenas letras maísculas e minúsculas (az-AZ)
32 |
33 | Dicas
34 |
35 | Faça o simples primeiro. Realiza a compreensão e depois compare os tamanhos.
36 | Tenha cuidado para não concatenar strings repetidamente. Isso pode ser muito ineficiente.
37 |
38 |
39 | Solução 1:
40 |
41 | Eu comecei resolvendo o exercício pensando em iterar sob a string e comparar com o anterior.
42 |
43 | Inicialmente, eu pensei em guardar a soma em uma Hash Table. No final, a lógica de comparar com o anterior ficou mais complexa, se comparada com as demaos soluções.
44 |
45 | Segue solução:
46 |
47 |
48 |
49 | function stringCompression (input) {
50 | const inputSize = input.length
51 | const tempObj = {}
52 |
53 | let result = ""
54 | let previous = ""
55 |
56 | for (let index = 0; index < inputSize; index++) {
57 | const currentCharacter = input[index];
58 |
59 | if (!tempObj[currentCharacter]) {
60 | tempObj[currentCharacter] = 1
61 | } else {
62 | tempObj[currentCharacter]++
63 | }
64 |
65 | if (previous && previous !== currentCharacter) {
66 | result = `${result}${previous}${tempObj[previous]}`
67 | tempObj[previous] = 0
68 | }
69 |
70 | previous = currentCharacter
71 |
72 | if (index === (inputSize - 1)) {
73 | result = `${result}${currentCharacter}${tempObj[currentCharacter]}`
74 |
75 | if (result.length > inputSize) {
76 | result = input
77 | }
78 | }
79 | }
80 |
81 | return result
82 | }
83 |
84 |
85 |
86 |
87 |
88 | Solução 2:
89 |
90 | Já a solução comparando o atual caracter com o próximo é bem mais simples.
91 |
92 | Toda vez que o próximo caracter é diferente, fazemos a concatenação e resetamos o contador:
93 |
94 |
95 |
96 | function stringCompression (input) {
97 | const inputLength = input.length
98 | let result = ""
99 | let count = 0
100 |
101 | for (let index = 0; index < inputLength; index++) {
102 | const currentCharacter = input[index];
103 | count++
104 |
105 | if (input[index + 1] !== currentCharacter) {
106 | result = `${result}${currentCharacter}${count}`
107 | count = 0
108 | }
109 | }
110 |
111 | return result.length > inputLength
112 | ? input
113 | : result
114 |
115 | }
116 |
117 |
118 |
119 |
120 |
121 | Solução 3:
122 |
123 | Como a concatenação de strings pode ficar "cara" computacionalmente falando,
124 | então pode ser melhor adicionar o resultado em um array push()
e, no final,
125 | transformá-lo em string join()
:
126 |
127 |
128 |
129 | function stringCompression (input) {
130 | const resultArray = []
131 |
132 | let count = 0
133 |
134 | for (let index = 0; index < input.length; index++) {
135 | const currentCharacter = input[index];
136 | count++
137 |
138 | if (input[index + 1] !== currentCharacter) {
139 | resultArray.push(currentCharacter)
140 | resultArray.push(count)
141 | count = 0
142 | }
143 | }
144 |
145 | const resultStr = resultArray.join("")
146 |
147 | return resultStr.length > input.length
148 | ? input
149 | : resultStr
150 | }
151 |
152 |
153 |
154 |
155 |
156 |
157 |
158 |
159 |
160 |
--------------------------------------------------------------------------------
/docs/chapter-1/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | Indíce Capítulo 1 | Cracking the Coding Interview
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
21 |
22 | Indíce
23 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
--------------------------------------------------------------------------------
/docs/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | Cracking the Coding Interview
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 | Cracking the Coding Interview
19 |
20 |
21 | Cracking the Coding Interview
22 |
23 | Soluções em JavaScript dos exercícios do livro "Cracking the Coding Interview" 6ª edição.
24 |
25 | Indíce
26 |
27 | Capítulo 1
28 |
36 |
37 |
38 |
39 |
40 |
41 |
--------------------------------------------------------------------------------
/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | Cracking the Coding Interview
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 | Cracking the Coding Interview
19 |
20 |
21 | Cracking the Coding Interview
22 |
23 | Soluções em JavaScript dos exercícios do livro "Cracking the Coding Interview" 6ª edição.
24 |
25 | Indíce
26 |
27 | Capítulo 1
28 |
35 |
36 |
37 |
38 |
39 |
40 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "cracking-the-coding-interview-js",
3 | "version": "1.0.0",
4 | "main": "index.js",
5 | "repository": "git@github.com:laisfrigerio/cracking-the-coding-interview-js.git",
6 | "author": "Lais Frigerio ",
7 | "license": "MIT",
8 | "scripts": {
9 | "test": "jest"
10 | },
11 | "devDependencies": {
12 | "jest": "^29.5.0"
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/solutions/chapter-1/1.1-is-unique/is-unique.js:
--------------------------------------------------------------------------------
1 | /*
2 | * Checking if an input/string has unique values
3 | * without an extra data structure
4 | */
5 |
6 | const isUniqueWithoutExtraDataStructure = (input) => {
7 | for (let i = 0; i < input.length; i++) {
8 | const characterExternal = input[i]
9 |
10 | for (let j = (i + 1); j < input.length; j++) {
11 | const characterInternal = input[j]
12 |
13 | if (characterExternal === characterInternal) {
14 | return false
15 | }
16 | }
17 | }
18 |
19 | return true
20 | }
21 |
22 |
23 | /*
24 | * Checking if an input/string has unique values
25 | * with a usage of extra data structure (object).
26 | * With this approach we don't need a extra "for"
27 | * like the previous one example.
28 | */
29 |
30 | const isUnique = (input) => {
31 | const tempObject = {}
32 |
33 | for (const character of input) {
34 |
35 | if (tempObject[character]) {
36 | return false
37 | }
38 |
39 | tempObject[character] = true
40 | }
41 |
42 | return true
43 | }
44 |
45 | module.exports = {
46 | isUnique,
47 | isUniqueWithoutExtraDataStructure
48 | }
49 |
--------------------------------------------------------------------------------
/solutions/chapter-1/1.1-is-unique/is-unique.test.js:
--------------------------------------------------------------------------------
1 | const {
2 | isUnique,
3 | isUniqueWithoutExtraDataStructure
4 | } = require("./is-unique")
5 |
6 | describe("Checking string has unique characteres without the usage of extra data structure", () => {
7 | it("should return true when the given string has unique characteres", () => {
8 | expect(isUniqueWithoutExtraDataStructure("car")).toBe(true)
9 | expect(isUniqueWithoutExtraDataStructure("setup")).toBe(true)
10 | expect(isUniqueWithoutExtraDataStructure("keyword")).toBe(true)
11 | expect(isUniqueWithoutExtraDataStructure("mouse")).toBe(true)
12 | expect(isUniqueWithoutExtraDataStructure("sunday")).toBe(true)
13 | expect(isUniqueWithoutExtraDataStructure("monday")).toBe(true)
14 | })
15 |
16 | it("should return false when the given string doesn't have unique characteres", () => {
17 | expect(isUniqueWithoutExtraDataStructure("banana")).toBe(false)
18 | expect(isUniqueWithoutExtraDataStructure("apple")).toBe(false)
19 | expect(isUniqueWithoutExtraDataStructure("allow")).toBe(false)
20 | expect(isUniqueWithoutExtraDataStructure("javascript")).toBe(false)
21 | expect(isUniqueWithoutExtraDataStructure("php")).toBe(false)
22 | expect(isUniqueWithoutExtraDataStructure("java")).toBe(false)
23 | })
24 | })
25 |
26 | describe("Checking string has unique characteres with a usage of extra data structure", () => {
27 | it("should return true when the given string has unique characteres", () => {
28 | expect(isUnique("car")).toBe(true)
29 | expect(isUnique("setup")).toBe(true)
30 | expect(isUnique("keyword")).toBe(true)
31 | expect(isUnique("mouse")).toBe(true)
32 | expect(isUnique("sunday")).toBe(true)
33 | expect(isUnique("monday")).toBe(true)
34 | })
35 |
36 | it("should return false when the given string doesn't have unique characteres", () => {
37 | expect(isUnique("banana")).toBe(false)
38 | expect(isUnique("apple")).toBe(false)
39 | expect(isUnique("allow")).toBe(false)
40 | expect(isUnique("javascript")).toBe(false)
41 | expect(isUnique("php")).toBe(false)
42 | expect(isUnique("java")).toBe(false)
43 | })
44 | })
45 |
--------------------------------------------------------------------------------
/solutions/chapter-1/1.2-check-permutation/check-permutation.js:
--------------------------------------------------------------------------------
1 | /*
2 | * This solution sounds more simple, but the Big O complexity is greater
3 |
4 | - First, the spread operator is probably a loop behind the scenes
5 |
6 | - To sort, we need to loop through the elements,
7 | and depend of the sort algorithm, it can take a lot of time to complete
8 |
9 | - Finally, we have to iterate again to join the array into string
10 |
11 | Also, we have a extra use of memory space compare to the checkPermutation function
12 | */
13 | const checkPermutationOrdered = (setence1, setence2) => {
14 | if (setence1.length !== setence2.length) {
15 | return false
16 | }
17 |
18 | const sentence1Ordered = [...setence1].sort().join('')
19 | const sentence2Ordered = [...setence2].sort().join('')
20 |
21 | return sentence1Ordered === sentence2Ordered
22 | }
23 |
24 | /*
25 | * Firstly, Strings with different sizes are not permutation one for other.
26 |
27 | If they are the same size, we can check with all the characters
28 | from string 1 exists in the string 2
29 | */
30 | const checkPermutation = (setence1, setence2) => {
31 | if (setence1.length !== setence2.length) {
32 | return false
33 | }
34 |
35 | for (const character of setence1) {
36 | if (!setence2.includes(character)) {
37 | return false
38 | }
39 | }
40 |
41 | return true
42 | }
43 |
44 | module.exports = {
45 | checkPermutation,
46 | checkPermutationOrdered
47 | }
48 |
--------------------------------------------------------------------------------
/solutions/chapter-1/1.2-check-permutation/check-permutation.test.js:
--------------------------------------------------------------------------------
1 | const {
2 | checkPermutation,
3 | checkPermutationOrdered
4 | } = require("./check-permutation")
5 |
6 | describe("checking for permutations between strings", () => {
7 | it("should return false because the strings has different lenghts", () => {
8 | expect(checkPermutation("banana", "apple")).toBe(false)
9 | expect(checkPermutation("ABC", "DEF")).toBe(false)
10 | expect(checkPermutation("ABC", "ADC")).toBe(false)
11 | })
12 |
13 |
14 | it("should return true because one string is permutation the other", () => {
15 | expect(checkPermutation("god", "dog")).toBe(true)
16 | expect(checkPermutation("ABC", "CBA")).toBe(true)
17 | expect(checkPermutation("BAC", "ABC")).toBe(true)
18 | })
19 | })
20 |
21 | describe("checking for permutations between strings ordering them", () => {
22 | it("should return false because the strings has different lenghts", () => {
23 | expect(checkPermutationOrdered("banana", "apple")).toBe(false)
24 | expect(checkPermutationOrdered("ABC", "DEF")).toBe(false)
25 | expect(checkPermutationOrdered("ABC", "ADC")).toBe(false)
26 | })
27 |
28 |
29 | it("should return true because one string is permutation the other", () => {
30 | expect(checkPermutationOrdered("god", "dog")).toBe(true)
31 | expect(checkPermutationOrdered("ABC", "CBA")).toBe(true)
32 | expect(checkPermutationOrdered("BAC", "ABC")).toBe(true)
33 | })
34 | })
35 |
--------------------------------------------------------------------------------
/solutions/chapter-1/1.3-urlfy/urify-without-hash-map.js:
--------------------------------------------------------------------------------
1 | const urify = (input, realSize) => {
2 | const arrayInput = input.split("")
3 |
4 | let spaceCount = 0
5 |
6 | for (let i = 0; i < realSize; i++) {
7 | if (arrayInput[i] === ' ') {
8 | spaceCount++
9 | }
10 | }
11 |
12 | let index = realSize + (spaceCount * 2)
13 |
14 | if (index === arrayInput.length) {
15 | for (let i = realSize - 1; i >= 0; i--) {
16 | if (arrayInput[i] === ' ') {
17 | arrayInput[index - 1] = '0'
18 | arrayInput[index - 2] = '2'
19 | arrayInput[index - 3] = '%'
20 | index = index - 3
21 | } else {
22 | arrayInput[index-1] = arrayInput[i]
23 | index--
24 | }
25 | }
26 | }
27 |
28 | return arrayInput.join("")
29 | }
30 |
31 | module.exports = {
32 | urify
33 | }
34 |
--------------------------------------------------------------------------------
/solutions/chapter-1/1.3-urlfy/urify-without-hash-map.test.js:
--------------------------------------------------------------------------------
1 | const { urify } = require("./urify-without-hash-map")
2 |
3 | describe("replacing empty spaces", () => {
4 | it("should replace the empty space with %20", () => {
5 | expect(urify("ban ana ", 7)).toBe("ban%20ana")
6 | expect(urify("Hi, Ana. How are you? ", 21)).toBe("Hi,%20Ana.%20How%20are%20you?")
7 | expect(urify("the house is green ", 18)).toBe("the%20house%20is%20green")
8 | })
9 |
10 | it("should noy replace the empty space with %20", () => {
11 | expect(urify("ban ana ", 7)).toBe("ban ana ")
12 | expect(urify("Hi, Ana. How are you?", 21)).toBe("Hi, Ana. How are you?")
13 | })
14 | })
15 |
--------------------------------------------------------------------------------
/solutions/chapter-1/1.3-urlfy/urify.js:
--------------------------------------------------------------------------------
1 | const spacesAvailable = (characters, trueLength) => {
2 | const spaces = []
3 |
4 | for (let index = 0; index < trueLength; index++) {
5 | if (characters[index] === ' ') {
6 | spaces.push(index)
7 | }
8 | }
9 |
10 | return spaces
11 | }
12 |
13 | const urify = (input, trueLength) => {
14 | const characters = input.split("")
15 |
16 | const spaces = spacesAvailable(characters, trueLength)
17 | const spaceCount = spaces.length
18 |
19 | const transformedIndex = trueLength + (spaceCount * 2)
20 |
21 | if (transformedIndex === characters.length) {
22 | for (let index = 0; index < spaces.length; index++) {
23 | characters[spaces[index]] = '%20'
24 | }
25 |
26 | return characters.join("").trim()
27 | }
28 |
29 | return characters.join("")
30 | }
31 |
32 | module.exports = {
33 | urify
34 | }
35 |
--------------------------------------------------------------------------------
/solutions/chapter-1/1.3-urlfy/urify.test.js:
--------------------------------------------------------------------------------
1 | const { urify } = require("./urify")
2 |
3 | describe("replacing empty spaces", () => {
4 | it("should replace the empty space with %20", () => {
5 | expect(urify("ban ana ", 7)).toBe("ban%20ana")
6 | expect(urify("Hi, Ana. How are you? ", 21)).toBe("Hi,%20Ana.%20How%20are%20you?")
7 | expect(urify("the house is green ", 18)).toBe("the%20house%20is%20green")
8 | })
9 |
10 | it("should noy replace the empty space with %20", () => {
11 | expect(urify("ban ana ", 7)).toBe("ban ana ")
12 | expect(urify("Hi, Ana. How are you?", 21)).toBe("Hi, Ana. How are you?")
13 | })
14 | })
15 |
--------------------------------------------------------------------------------
/solutions/chapter-1/1.4-palindrome-permutation/palindrome.js:
--------------------------------------------------------------------------------
1 | function isMod (input) {
2 | return input % 2 === 0
3 | }
4 |
5 | function incremet (input) {
6 | return input + 1
7 | }
8 |
9 | function isEmpty (input) {
10 | return input === ' '
11 | }
12 |
13 | function assoc (map, key) {
14 | map[key] = 1
15 | }
16 |
17 | function updateOddQuantity (input, oddQuantity) {
18 | if (isMod(input)) {
19 | return oddQuantity - 1
20 | }
21 |
22 | return oddQuantity + 1
23 | }
24 |
25 | function palindrome (input) {
26 | let characterHashMap = {}
27 | let oddQuantity = 0;
28 |
29 | for (let i = 0; i < input.length; i++) {
30 | const character = input[i].toLowerCase()
31 |
32 | if (isEmpty(character)) {
33 | continue
34 | }
35 |
36 | if (characterHashMap[character]) {
37 | characterHashMap[character] = incremet(characterHashMap[character])
38 | oddQuantity = updateOddQuantity(characterHashMap[character], oddQuantity)
39 | continue
40 | }
41 |
42 | assoc(characterHashMap, character)
43 | oddQuantity = incremet(oddQuantity)
44 | }
45 |
46 | return oddQuantity < 2
47 | }
48 |
49 | module.exports = {
50 | palindrome
51 | }
52 |
--------------------------------------------------------------------------------
/solutions/chapter-1/1.4-palindrome-permutation/palindrome.test.js:
--------------------------------------------------------------------------------
1 | const {
2 | palindrome
3 | } = require('./palindrome')
4 |
5 | test('Checking is a palindrome permutation', () => {
6 | expect(palindrome('Tact Coa')).toBe(true)
7 | expect(palindrome('civic')).toBe(true)
8 | expect(palindrome('ivicc')).toBe(true)
9 | expect(palindrome('aabbcadad')).toBe(true)
10 | expect(palindrome('ttpkkp')).toBe(true)
11 | expect(palindrome('civil')).toBe(false)
12 | expect(palindrome('livci')).toBe(false)
13 | })
14 |
15 | test('Checking isn\'t a palindrome permutation', () => {
16 | expect(palindrome('civil')).toBe(false)
17 | expect(palindrome('livci')).toBe(false)
18 | })
19 |
--------------------------------------------------------------------------------
/solutions/chapter-1/1.5-one-away/one-away.js:
--------------------------------------------------------------------------------
1 | function firstStringIsLess(string1, string2) {
2 | return (string1.length + 1) === string2.length
3 | }
4 |
5 | function firstStringIsGreater(string1, string2) {
6 | return (string1.length - 1) === string2.length
7 | }
8 |
9 | function oneEditReplace(string1, string2) {
10 | let foundDifferent = false
11 |
12 | for (let index = 0; index < string1.length; index++) {
13 | if (string1[index] !== string2[index]) {
14 | if (foundDifferent) {
15 | return false
16 | }
17 |
18 | foundDifferent = true
19 | }
20 | }
21 |
22 | return true
23 | }
24 |
25 | function onAddOrRemove(string1, string2) {
26 | let index1 = 0
27 | let index2 = 0
28 |
29 | while (index2 < string2.length && index1 < string1.length) {
30 | if (string1[index1] !== string2[index2]) {
31 | if (index1 !== index2) {
32 | return false
33 | }
34 |
35 | index2++
36 | continue
37 | }
38 |
39 | index1++
40 | index2++
41 | }
42 |
43 |
44 | return true
45 | }
46 |
47 | function oneAway(string1, string2) {
48 | if (string1.length === string2.length) {
49 | return oneEditReplace(string1, string2)
50 | }
51 |
52 | if (firstStringIsLess(string1, string2)) {
53 | return onAddOrRemove(string1, string2)
54 | }
55 |
56 | if (firstStringIsGreater(string1, string2)) {
57 | return onAddOrRemove(string2, string1)
58 | }
59 |
60 | return false
61 | }
62 |
63 | module.exports = {
64 | oneAway
65 | }
66 |
--------------------------------------------------------------------------------
/solutions/chapter-1/1.5-one-away/one-away.test.js:
--------------------------------------------------------------------------------
1 | const {
2 | oneAway
3 | } = require('./one-away')
4 |
5 | test('Checking if is one edit only', () => {
6 | expect(oneAway('pale', 'ple')).toBe(true)
7 | expect(oneAway('pales', 'pale')).toBe(true)
8 | expect(oneAway('pale', 'bale')).toBe(true)
9 | expect(oneAway('bale', 'bake')).toBe(true)
10 | expect(oneAway('person', 'persona')).toBe(true)
11 |
12 | })
13 |
14 | test('Checking if is more than one edit only', () => {
15 | expect(oneAway('person', 'personas')).toBe(false)
16 | expect(oneAway('pale', 'bake')).toBe(false)
17 | expect(oneAway('person', 'curson')).toBe(false)
18 | expect(oneAway('person', 'pursoni')).toBe(false)
19 | })
20 |
--------------------------------------------------------------------------------
/solutions/chapter-1/1.6-string-compression/string-compression-next-array.js:
--------------------------------------------------------------------------------
1 | function stringCompression (input) {
2 | const resultArray = []
3 |
4 | let count = 0
5 |
6 | for (let index = 0; index < input.length; index++) {
7 | const currentCharacter = input[index];
8 | count++
9 |
10 | if (input[index + 1] !== currentCharacter) {
11 | resultArray.push(currentCharacter)
12 | resultArray.push(count)
13 | count = 0
14 | }
15 | }
16 |
17 | const resultStr = resultArray.join("")
18 |
19 | return resultStr.length > input.length
20 | ? input
21 | : resultStr
22 | }
23 |
24 | module.exports = {
25 | stringCompression
26 | }
27 |
--------------------------------------------------------------------------------
/solutions/chapter-1/1.6-string-compression/string-compression-next-array.test.js:
--------------------------------------------------------------------------------
1 | const {
2 | stringCompression
3 | } = require('./string-compression-next-array')
4 |
5 | test('When is possible to make the string compression', () => {
6 | expect(stringCompression('aabcccccaaa')).toBe('a2b1c5a3')
7 | expect(stringCompression('aabcccccaaaddeeeeiiioooooo')).toBe('a2b1c5a3d2e4i3o6')
8 | })
9 |
10 | test('When isn\'t possible to make the string compression', () => {
11 | expect(stringCompression('abcde')).toBe('abcde')
12 | })
13 |
--------------------------------------------------------------------------------
/solutions/chapter-1/1.6-string-compression/string-compression-next.js:
--------------------------------------------------------------------------------
1 | function stringCompression (input) {
2 | const inputLength = input.length
3 | let result = ""
4 | let count = 0
5 |
6 | for (let index = 0; index < inputLength; index++) {
7 | const currentCharacter = input[index];
8 | count++
9 |
10 | if (input[index + 1] !== currentCharacter) {
11 | result = `${result}${currentCharacter}${count}`
12 | count = 0
13 | }
14 | }
15 |
16 | return result.length > inputLength
17 | ? input
18 | : result
19 |
20 | }
21 |
22 | module.exports = {
23 | stringCompression
24 | }
25 |
--------------------------------------------------------------------------------
/solutions/chapter-1/1.6-string-compression/string-compression-next.test.js:
--------------------------------------------------------------------------------
1 | const {
2 | stringCompression
3 | } = require('./string-compression-next')
4 |
5 | test('When is possible to make the string compression', () => {
6 | expect(stringCompression('aabcccccaaa')).toBe('a2b1c5a3')
7 | expect(stringCompression('aabcccccaaaddeeeeiiioooooo')).toBe('a2b1c5a3d2e4i3o6')
8 | })
9 |
10 | test('When isn\'t possible to make the string compression', () => {
11 | expect(stringCompression('abcde')).toBe('abcde')
12 | })
13 |
--------------------------------------------------------------------------------
/solutions/chapter-1/1.6-string-compression/string-compression-previous.js:
--------------------------------------------------------------------------------
1 | function stringCompression (input) {
2 | const inputSize = input.length
3 | const tempObj = {}
4 |
5 | let result = ""
6 | let previous = ""
7 |
8 | for (let index = 0; index < inputSize; index++) {
9 | const currentCharacter = input[index];
10 |
11 | if (!tempObj[currentCharacter]) {
12 | tempObj[currentCharacter] = 1
13 | } else {
14 | tempObj[currentCharacter]++
15 | }
16 |
17 | if (previous && previous !== currentCharacter) {
18 | result = `${result}${previous}${tempObj[previous]}`
19 | tempObj[previous] = 0
20 | }
21 |
22 | previous = currentCharacter
23 |
24 | if (index === (inputSize - 1)) {
25 | result = `${result}${currentCharacter}${tempObj[currentCharacter]}`
26 |
27 | if (result.length > inputSize) {
28 | result = input
29 | }
30 | }
31 | }
32 |
33 | return result
34 | }
35 |
36 | module.exports = {
37 | stringCompression
38 | }
39 |
--------------------------------------------------------------------------------
/solutions/chapter-1/1.6-string-compression/string-compression-previous.test.js:
--------------------------------------------------------------------------------
1 | const {
2 | stringCompression
3 | } = require('./string-compression-previous')
4 |
5 | test('When is possible to make the string compression', () => {
6 | expect(stringCompression('aabcccccaaa')).toBe('a2b1c5a3')
7 | expect(stringCompression('aabcccccaaaddeeeeiiioooooo')).toBe('a2b1c5a3d2e4i3o6')
8 | })
9 |
10 | test('When isn\'t possible to make the string compression', () => {
11 | expect(stringCompression('abcde')).toBe('abcde')
12 | })
13 |
--------------------------------------------------------------------------------
/yarn.lock:
--------------------------------------------------------------------------------
1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
2 | # yarn lockfile v1
3 |
4 |
5 | "@ampproject/remapping@^2.2.0":
6 | version "2.2.1"
7 | resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.2.1.tgz#99e8e11851128b8702cd57c33684f1d0f260b630"
8 | integrity sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==
9 | dependencies:
10 | "@jridgewell/gen-mapping" "^0.3.0"
11 | "@jridgewell/trace-mapping" "^0.3.9"
12 |
13 | "@babel/code-frame@^7.0.0", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.22.5":
14 | version "7.22.5"
15 | resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.22.5.tgz#234d98e1551960604f1246e6475891a570ad5658"
16 | integrity sha512-Xmwn266vad+6DAqEB2A6V/CcZVp62BbwVmcOJc2RPuwih1kw02TjQvWVWlcKGbBPd+8/0V5DEkOcizRGYsspYQ==
17 | dependencies:
18 | "@babel/highlight" "^7.22.5"
19 |
20 | "@babel/compat-data@^7.22.5":
21 | version "7.22.5"
22 | resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.22.5.tgz#b1f6c86a02d85d2dd3368a2b67c09add8cd0c255"
23 | integrity sha512-4Jc/YuIaYqKnDDz892kPIledykKg12Aw1PYX5i/TY28anJtacvM1Rrr8wbieB9GfEJwlzqT0hUEao0CxEebiDA==
24 |
25 | "@babel/core@^7.11.6", "@babel/core@^7.12.3":
26 | version "7.22.5"
27 | resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.22.5.tgz#d67d9747ecf26ee7ecd3ebae1ee22225fe902a89"
28 | integrity sha512-SBuTAjg91A3eKOvD+bPEz3LlhHZRNu1nFOVts9lzDJTXshHTjII0BAtDS3Y2DAkdZdDKWVZGVwkDfc4Clxn1dg==
29 | dependencies:
30 | "@ampproject/remapping" "^2.2.0"
31 | "@babel/code-frame" "^7.22.5"
32 | "@babel/generator" "^7.22.5"
33 | "@babel/helper-compilation-targets" "^7.22.5"
34 | "@babel/helper-module-transforms" "^7.22.5"
35 | "@babel/helpers" "^7.22.5"
36 | "@babel/parser" "^7.22.5"
37 | "@babel/template" "^7.22.5"
38 | "@babel/traverse" "^7.22.5"
39 | "@babel/types" "^7.22.5"
40 | convert-source-map "^1.7.0"
41 | debug "^4.1.0"
42 | gensync "^1.0.0-beta.2"
43 | json5 "^2.2.2"
44 | semver "^6.3.0"
45 |
46 | "@babel/generator@^7.22.5", "@babel/generator@^7.7.2":
47 | version "7.22.5"
48 | resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.22.5.tgz#1e7bf768688acfb05cf30b2369ef855e82d984f7"
49 | integrity sha512-+lcUbnTRhd0jOewtFSedLyiPsD5tswKkbgcezOqqWFUVNEwoUTlpPOBmvhG7OXWLR4jMdv0czPGH5XbflnD1EA==
50 | dependencies:
51 | "@babel/types" "^7.22.5"
52 | "@jridgewell/gen-mapping" "^0.3.2"
53 | "@jridgewell/trace-mapping" "^0.3.17"
54 | jsesc "^2.5.1"
55 |
56 | "@babel/helper-compilation-targets@^7.22.5":
57 | version "7.22.5"
58 | resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.5.tgz#fc7319fc54c5e2fa14b2909cf3c5fd3046813e02"
59 | integrity sha512-Ji+ywpHeuqxB8WDxraCiqR0xfhYjiDE/e6k7FuIaANnoOFxAHskHChz4vA1mJC9Lbm01s1PVAGhQY4FUKSkGZw==
60 | dependencies:
61 | "@babel/compat-data" "^7.22.5"
62 | "@babel/helper-validator-option" "^7.22.5"
63 | browserslist "^4.21.3"
64 | lru-cache "^5.1.1"
65 | semver "^6.3.0"
66 |
67 | "@babel/helper-environment-visitor@^7.22.5":
68 | version "7.22.5"
69 | resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.5.tgz#f06dd41b7c1f44e1f8da6c4055b41ab3a09a7e98"
70 | integrity sha512-XGmhECfVA/5sAt+H+xpSg0mfrHq6FzNr9Oxh7PSEBBRUb/mL7Kz3NICXb194rCqAEdxkhPT1a88teizAFyvk8Q==
71 |
72 | "@babel/helper-function-name@^7.22.5":
73 | version "7.22.5"
74 | resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.22.5.tgz#ede300828905bb15e582c037162f99d5183af1be"
75 | integrity sha512-wtHSq6jMRE3uF2otvfuD3DIvVhOsSNshQl0Qrd7qC9oQJzHvOL4qQXlQn2916+CXGywIjpGuIkoyZRRxHPiNQQ==
76 | dependencies:
77 | "@babel/template" "^7.22.5"
78 | "@babel/types" "^7.22.5"
79 |
80 | "@babel/helper-hoist-variables@^7.22.5":
81 | version "7.22.5"
82 | resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz#c01a007dac05c085914e8fb652b339db50d823bb"
83 | integrity sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==
84 | dependencies:
85 | "@babel/types" "^7.22.5"
86 |
87 | "@babel/helper-module-imports@^7.22.5":
88 | version "7.22.5"
89 | resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.22.5.tgz#1a8f4c9f4027d23f520bd76b364d44434a72660c"
90 | integrity sha512-8Dl6+HD/cKifutF5qGd/8ZJi84QeAKh+CEe1sBzz8UayBBGg1dAIJrdHOcOM5b2MpzWL2yuotJTtGjETq0qjXg==
91 | dependencies:
92 | "@babel/types" "^7.22.5"
93 |
94 | "@babel/helper-module-transforms@^7.22.5":
95 | version "7.22.5"
96 | resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.22.5.tgz#0f65daa0716961b6e96b164034e737f60a80d2ef"
97 | integrity sha512-+hGKDt/Ze8GFExiVHno/2dvG5IdstpzCq0y4Qc9OJ25D4q3pKfiIP/4Vp3/JvhDkLKsDK2api3q3fpIgiIF5bw==
98 | dependencies:
99 | "@babel/helper-environment-visitor" "^7.22.5"
100 | "@babel/helper-module-imports" "^7.22.5"
101 | "@babel/helper-simple-access" "^7.22.5"
102 | "@babel/helper-split-export-declaration" "^7.22.5"
103 | "@babel/helper-validator-identifier" "^7.22.5"
104 | "@babel/template" "^7.22.5"
105 | "@babel/traverse" "^7.22.5"
106 | "@babel/types" "^7.22.5"
107 |
108 | "@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.22.5", "@babel/helper-plugin-utils@^7.8.0":
109 | version "7.22.5"
110 | resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz#dd7ee3735e8a313b9f7b05a773d892e88e6d7295"
111 | integrity sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==
112 |
113 | "@babel/helper-simple-access@^7.22.5":
114 | version "7.22.5"
115 | resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz#4938357dc7d782b80ed6dbb03a0fba3d22b1d5de"
116 | integrity sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==
117 | dependencies:
118 | "@babel/types" "^7.22.5"
119 |
120 | "@babel/helper-split-export-declaration@^7.22.5":
121 | version "7.22.5"
122 | resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.5.tgz#88cf11050edb95ed08d596f7a044462189127a08"
123 | integrity sha512-thqK5QFghPKWLhAV321lxF95yCg2K3Ob5yw+M3VHWfdia0IkPXUtoLH8x/6Fh486QUvzhb8YOWHChTVen2/PoQ==
124 | dependencies:
125 | "@babel/types" "^7.22.5"
126 |
127 | "@babel/helper-string-parser@^7.22.5":
128 | version "7.22.5"
129 | resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz#533f36457a25814cf1df6488523ad547d784a99f"
130 | integrity sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==
131 |
132 | "@babel/helper-validator-identifier@^7.22.5":
133 | version "7.22.5"
134 | resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.5.tgz#9544ef6a33999343c8740fa51350f30eeaaaf193"
135 | integrity sha512-aJXu+6lErq8ltp+JhkJUfk1MTGyuA4v7f3pA+BJ5HLfNC6nAQ0Cpi9uOquUj8Hehg0aUiHzWQbOVJGao6ztBAQ==
136 |
137 | "@babel/helper-validator-option@^7.22.5":
138 | version "7.22.5"
139 | resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.22.5.tgz#de52000a15a177413c8234fa3a8af4ee8102d0ac"
140 | integrity sha512-R3oB6xlIVKUnxNUxbmgq7pKjxpru24zlimpE8WK47fACIlM0II/Hm1RS8IaOI7NgCr6LNS+jl5l75m20npAziw==
141 |
142 | "@babel/helpers@^7.22.5":
143 | version "7.22.5"
144 | resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.22.5.tgz#74bb4373eb390d1ceed74a15ef97767e63120820"
145 | integrity sha512-pSXRmfE1vzcUIDFQcSGA5Mr+GxBV9oiRKDuDxXvWQQBCh8HoIjs/2DlDB7H8smac1IVrB9/xdXj2N3Wol9Cr+Q==
146 | dependencies:
147 | "@babel/template" "^7.22.5"
148 | "@babel/traverse" "^7.22.5"
149 | "@babel/types" "^7.22.5"
150 |
151 | "@babel/highlight@^7.22.5":
152 | version "7.22.5"
153 | resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.22.5.tgz#aa6c05c5407a67ebce408162b7ede789b4d22031"
154 | integrity sha512-BSKlD1hgnedS5XRnGOljZawtag7H1yPfQp0tdNJCHoH6AZ+Pcm9VvkrK59/Yy593Ypg0zMxH2BxD1VPYUQ7UIw==
155 | dependencies:
156 | "@babel/helper-validator-identifier" "^7.22.5"
157 | chalk "^2.0.0"
158 | js-tokens "^4.0.0"
159 |
160 | "@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.20.7", "@babel/parser@^7.22.5":
161 | version "7.22.5"
162 | resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.22.5.tgz#721fd042f3ce1896238cf1b341c77eb7dee7dbea"
163 | integrity sha512-DFZMC9LJUG9PLOclRC32G63UXwzqS2koQC8dkx+PLdmt1xSePYpbT/NbsrJy8Q/muXz7o/h/d4A7Fuyixm559Q==
164 |
165 | "@babel/plugin-syntax-async-generators@^7.8.4":
166 | version "7.8.4"
167 | resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz#a983fb1aeb2ec3f6ed042a210f640e90e786fe0d"
168 | integrity sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==
169 | dependencies:
170 | "@babel/helper-plugin-utils" "^7.8.0"
171 |
172 | "@babel/plugin-syntax-bigint@^7.8.3":
173 | version "7.8.3"
174 | resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz#4c9a6f669f5d0cdf1b90a1671e9a146be5300cea"
175 | integrity sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==
176 | dependencies:
177 | "@babel/helper-plugin-utils" "^7.8.0"
178 |
179 | "@babel/plugin-syntax-class-properties@^7.8.3":
180 | version "7.12.13"
181 | resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz#b5c987274c4a3a82b89714796931a6b53544ae10"
182 | integrity sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==
183 | dependencies:
184 | "@babel/helper-plugin-utils" "^7.12.13"
185 |
186 | "@babel/plugin-syntax-import-meta@^7.8.3":
187 | version "7.10.4"
188 | resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz#ee601348c370fa334d2207be158777496521fd51"
189 | integrity sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==
190 | dependencies:
191 | "@babel/helper-plugin-utils" "^7.10.4"
192 |
193 | "@babel/plugin-syntax-json-strings@^7.8.3":
194 | version "7.8.3"
195 | resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz#01ca21b668cd8218c9e640cb6dd88c5412b2c96a"
196 | integrity sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==
197 | dependencies:
198 | "@babel/helper-plugin-utils" "^7.8.0"
199 |
200 | "@babel/plugin-syntax-jsx@^7.7.2":
201 | version "7.22.5"
202 | resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.22.5.tgz#a6b68e84fb76e759fc3b93e901876ffabbe1d918"
203 | integrity sha512-gvyP4hZrgrs/wWMaocvxZ44Hw0b3W8Pe+cMxc8V1ULQ07oh8VNbIRaoD1LRZVTvD+0nieDKjfgKg89sD7rrKrg==
204 | dependencies:
205 | "@babel/helper-plugin-utils" "^7.22.5"
206 |
207 | "@babel/plugin-syntax-logical-assignment-operators@^7.8.3":
208 | version "7.10.4"
209 | resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz#ca91ef46303530448b906652bac2e9fe9941f699"
210 | integrity sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==
211 | dependencies:
212 | "@babel/helper-plugin-utils" "^7.10.4"
213 |
214 | "@babel/plugin-syntax-nullish-coalescing-operator@^7.8.3":
215 | version "7.8.3"
216 | resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz#167ed70368886081f74b5c36c65a88c03b66d1a9"
217 | integrity sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==
218 | dependencies:
219 | "@babel/helper-plugin-utils" "^7.8.0"
220 |
221 | "@babel/plugin-syntax-numeric-separator@^7.8.3":
222 | version "7.10.4"
223 | resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz#b9b070b3e33570cd9fd07ba7fa91c0dd37b9af97"
224 | integrity sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==
225 | dependencies:
226 | "@babel/helper-plugin-utils" "^7.10.4"
227 |
228 | "@babel/plugin-syntax-object-rest-spread@^7.8.3":
229 | version "7.8.3"
230 | resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz#60e225edcbd98a640332a2e72dd3e66f1af55871"
231 | integrity sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==
232 | dependencies:
233 | "@babel/helper-plugin-utils" "^7.8.0"
234 |
235 | "@babel/plugin-syntax-optional-catch-binding@^7.8.3":
236 | version "7.8.3"
237 | resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz#6111a265bcfb020eb9efd0fdfd7d26402b9ed6c1"
238 | integrity sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==
239 | dependencies:
240 | "@babel/helper-plugin-utils" "^7.8.0"
241 |
242 | "@babel/plugin-syntax-optional-chaining@^7.8.3":
243 | version "7.8.3"
244 | resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz#4f69c2ab95167e0180cd5336613f8c5788f7d48a"
245 | integrity sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==
246 | dependencies:
247 | "@babel/helper-plugin-utils" "^7.8.0"
248 |
249 | "@babel/plugin-syntax-top-level-await@^7.8.3":
250 | version "7.14.5"
251 | resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz#c1cfdadc35a646240001f06138247b741c34d94c"
252 | integrity sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==
253 | dependencies:
254 | "@babel/helper-plugin-utils" "^7.14.5"
255 |
256 | "@babel/plugin-syntax-typescript@^7.7.2":
257 | version "7.22.5"
258 | resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.22.5.tgz#aac8d383b062c5072c647a31ef990c1d0af90272"
259 | integrity sha512-1mS2o03i7t1c6VzH6fdQ3OA8tcEIxwG18zIPRp+UY1Ihv6W+XZzBCVxExF9upussPXJ0xE9XRHwMoNs1ep/nRQ==
260 | dependencies:
261 | "@babel/helper-plugin-utils" "^7.22.5"
262 |
263 | "@babel/template@^7.22.5", "@babel/template@^7.3.3":
264 | version "7.22.5"
265 | resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.22.5.tgz#0c8c4d944509875849bd0344ff0050756eefc6ec"
266 | integrity sha512-X7yV7eiwAxdj9k94NEylvbVHLiVG1nvzCV2EAowhxLTwODV1jl9UzZ48leOC0sH7OnuHrIkllaBgneUykIcZaw==
267 | dependencies:
268 | "@babel/code-frame" "^7.22.5"
269 | "@babel/parser" "^7.22.5"
270 | "@babel/types" "^7.22.5"
271 |
272 | "@babel/traverse@^7.22.5", "@babel/traverse@^7.7.2":
273 | version "7.22.5"
274 | resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.22.5.tgz#44bd276690db6f4940fdb84e1cb4abd2f729ccd1"
275 | integrity sha512-7DuIjPgERaNo6r+PZwItpjCZEa5vyw4eJGufeLxrPdBXBoLcCJCIasvK6pK/9DVNrLZTLFhUGqaC6X/PA007TQ==
276 | dependencies:
277 | "@babel/code-frame" "^7.22.5"
278 | "@babel/generator" "^7.22.5"
279 | "@babel/helper-environment-visitor" "^7.22.5"
280 | "@babel/helper-function-name" "^7.22.5"
281 | "@babel/helper-hoist-variables" "^7.22.5"
282 | "@babel/helper-split-export-declaration" "^7.22.5"
283 | "@babel/parser" "^7.22.5"
284 | "@babel/types" "^7.22.5"
285 | debug "^4.1.0"
286 | globals "^11.1.0"
287 |
288 | "@babel/types@^7.0.0", "@babel/types@^7.20.7", "@babel/types@^7.22.5", "@babel/types@^7.3.3":
289 | version "7.22.5"
290 | resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.22.5.tgz#cd93eeaab025880a3a47ec881f4b096a5b786fbe"
291 | integrity sha512-zo3MIHGOkPOfoRXitsgHLjEXmlDaD/5KU1Uzuc9GNiZPhSqVxVRtxuPaSBZDsYZ9qV88AjtMtWW7ww98loJ9KA==
292 | dependencies:
293 | "@babel/helper-string-parser" "^7.22.5"
294 | "@babel/helper-validator-identifier" "^7.22.5"
295 | to-fast-properties "^2.0.0"
296 |
297 | "@bcoe/v8-coverage@^0.2.3":
298 | version "0.2.3"
299 | resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39"
300 | integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==
301 |
302 | "@istanbuljs/load-nyc-config@^1.0.0":
303 | version "1.1.0"
304 | resolved "https://registry.yarnpkg.com/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz#fd3db1d59ecf7cf121e80650bb86712f9b55eced"
305 | integrity sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==
306 | dependencies:
307 | camelcase "^5.3.1"
308 | find-up "^4.1.0"
309 | get-package-type "^0.1.0"
310 | js-yaml "^3.13.1"
311 | resolve-from "^5.0.0"
312 |
313 | "@istanbuljs/schema@^0.1.2":
314 | version "0.1.3"
315 | resolved "https://registry.yarnpkg.com/@istanbuljs/schema/-/schema-0.1.3.tgz#e45e384e4b8ec16bce2fd903af78450f6bf7ec98"
316 | integrity sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==
317 |
318 | "@jest/console@^29.5.0":
319 | version "29.5.0"
320 | resolved "https://registry.yarnpkg.com/@jest/console/-/console-29.5.0.tgz#593a6c5c0d3f75689835f1b3b4688c4f8544cb57"
321 | integrity sha512-NEpkObxPwyw/XxZVLPmAGKE89IQRp4puc6IQRPru6JKd1M3fW9v1xM1AnzIJE65hbCkzQAdnL8P47e9hzhiYLQ==
322 | dependencies:
323 | "@jest/types" "^29.5.0"
324 | "@types/node" "*"
325 | chalk "^4.0.0"
326 | jest-message-util "^29.5.0"
327 | jest-util "^29.5.0"
328 | slash "^3.0.0"
329 |
330 | "@jest/core@^29.5.0":
331 | version "29.5.0"
332 | resolved "https://registry.yarnpkg.com/@jest/core/-/core-29.5.0.tgz#76674b96904484e8214614d17261cc491e5f1f03"
333 | integrity sha512-28UzQc7ulUrOQw1IsN/kv1QES3q2kkbl/wGslyhAclqZ/8cMdB5M68BffkIdSJgKBUt50d3hbwJ92XESlE7LiQ==
334 | dependencies:
335 | "@jest/console" "^29.5.0"
336 | "@jest/reporters" "^29.5.0"
337 | "@jest/test-result" "^29.5.0"
338 | "@jest/transform" "^29.5.0"
339 | "@jest/types" "^29.5.0"
340 | "@types/node" "*"
341 | ansi-escapes "^4.2.1"
342 | chalk "^4.0.0"
343 | ci-info "^3.2.0"
344 | exit "^0.1.2"
345 | graceful-fs "^4.2.9"
346 | jest-changed-files "^29.5.0"
347 | jest-config "^29.5.0"
348 | jest-haste-map "^29.5.0"
349 | jest-message-util "^29.5.0"
350 | jest-regex-util "^29.4.3"
351 | jest-resolve "^29.5.0"
352 | jest-resolve-dependencies "^29.5.0"
353 | jest-runner "^29.5.0"
354 | jest-runtime "^29.5.0"
355 | jest-snapshot "^29.5.0"
356 | jest-util "^29.5.0"
357 | jest-validate "^29.5.0"
358 | jest-watcher "^29.5.0"
359 | micromatch "^4.0.4"
360 | pretty-format "^29.5.0"
361 | slash "^3.0.0"
362 | strip-ansi "^6.0.0"
363 |
364 | "@jest/environment@^29.5.0":
365 | version "29.5.0"
366 | resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-29.5.0.tgz#9152d56317c1fdb1af389c46640ba74ef0bb4c65"
367 | integrity sha512-5FXw2+wD29YU1d4I2htpRX7jYnAyTRjP2CsXQdo9SAM8g3ifxWPSV0HnClSn71xwctr0U3oZIIH+dtbfmnbXVQ==
368 | dependencies:
369 | "@jest/fake-timers" "^29.5.0"
370 | "@jest/types" "^29.5.0"
371 | "@types/node" "*"
372 | jest-mock "^29.5.0"
373 |
374 | "@jest/expect-utils@^29.5.0":
375 | version "29.5.0"
376 | resolved "https://registry.yarnpkg.com/@jest/expect-utils/-/expect-utils-29.5.0.tgz#f74fad6b6e20f924582dc8ecbf2cb800fe43a036"
377 | integrity sha512-fmKzsidoXQT2KwnrwE0SQq3uj8Z763vzR8LnLBwC2qYWEFpjX8daRsk6rHUM1QvNlEW/UJXNXm59ztmJJWs2Mg==
378 | dependencies:
379 | jest-get-type "^29.4.3"
380 |
381 | "@jest/expect@^29.5.0":
382 | version "29.5.0"
383 | resolved "https://registry.yarnpkg.com/@jest/expect/-/expect-29.5.0.tgz#80952f5316b23c483fbca4363ce822af79c38fba"
384 | integrity sha512-PueDR2HGihN3ciUNGr4uelropW7rqUfTiOn+8u0leg/42UhblPxHkfoh0Ruu3I9Y1962P3u2DY4+h7GVTSVU6g==
385 | dependencies:
386 | expect "^29.5.0"
387 | jest-snapshot "^29.5.0"
388 |
389 | "@jest/fake-timers@^29.5.0":
390 | version "29.5.0"
391 | resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-29.5.0.tgz#d4d09ec3286b3d90c60bdcd66ed28d35f1b4dc2c"
392 | integrity sha512-9ARvuAAQcBwDAqOnglWq2zwNIRUDtk/SCkp/ToGEhFv5r86K21l+VEs0qNTaXtyiY0lEePl3kylijSYJQqdbDg==
393 | dependencies:
394 | "@jest/types" "^29.5.0"
395 | "@sinonjs/fake-timers" "^10.0.2"
396 | "@types/node" "*"
397 | jest-message-util "^29.5.0"
398 | jest-mock "^29.5.0"
399 | jest-util "^29.5.0"
400 |
401 | "@jest/globals@^29.5.0":
402 | version "29.5.0"
403 | resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-29.5.0.tgz#6166c0bfc374c58268677539d0c181f9c1833298"
404 | integrity sha512-S02y0qMWGihdzNbUiqSAiKSpSozSuHX5UYc7QbnHP+D9Lyw8DgGGCinrN9uSuHPeKgSSzvPom2q1nAtBvUsvPQ==
405 | dependencies:
406 | "@jest/environment" "^29.5.0"
407 | "@jest/expect" "^29.5.0"
408 | "@jest/types" "^29.5.0"
409 | jest-mock "^29.5.0"
410 |
411 | "@jest/reporters@^29.5.0":
412 | version "29.5.0"
413 | resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-29.5.0.tgz#985dfd91290cd78ddae4914ba7921bcbabe8ac9b"
414 | integrity sha512-D05STXqj/M8bP9hQNSICtPqz97u7ffGzZu+9XLucXhkOFBqKcXe04JLZOgIekOxdb73MAoBUFnqvf7MCpKk5OA==
415 | dependencies:
416 | "@bcoe/v8-coverage" "^0.2.3"
417 | "@jest/console" "^29.5.0"
418 | "@jest/test-result" "^29.5.0"
419 | "@jest/transform" "^29.5.0"
420 | "@jest/types" "^29.5.0"
421 | "@jridgewell/trace-mapping" "^0.3.15"
422 | "@types/node" "*"
423 | chalk "^4.0.0"
424 | collect-v8-coverage "^1.0.0"
425 | exit "^0.1.2"
426 | glob "^7.1.3"
427 | graceful-fs "^4.2.9"
428 | istanbul-lib-coverage "^3.0.0"
429 | istanbul-lib-instrument "^5.1.0"
430 | istanbul-lib-report "^3.0.0"
431 | istanbul-lib-source-maps "^4.0.0"
432 | istanbul-reports "^3.1.3"
433 | jest-message-util "^29.5.0"
434 | jest-util "^29.5.0"
435 | jest-worker "^29.5.0"
436 | slash "^3.0.0"
437 | string-length "^4.0.1"
438 | strip-ansi "^6.0.0"
439 | v8-to-istanbul "^9.0.1"
440 |
441 | "@jest/schemas@^29.4.3":
442 | version "29.4.3"
443 | resolved "https://registry.yarnpkg.com/@jest/schemas/-/schemas-29.4.3.tgz#39cf1b8469afc40b6f5a2baaa146e332c4151788"
444 | integrity sha512-VLYKXQmtmuEz6IxJsrZwzG9NvtkQsWNnWMsKxqWNu3+CnfzJQhp0WDDKWLVV9hLKr0l3SLLFRqcYHjhtyuDVxg==
445 | dependencies:
446 | "@sinclair/typebox" "^0.25.16"
447 |
448 | "@jest/source-map@^29.4.3":
449 | version "29.4.3"
450 | resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-29.4.3.tgz#ff8d05cbfff875d4a791ab679b4333df47951d20"
451 | integrity sha512-qyt/mb6rLyd9j1jUts4EQncvS6Yy3PM9HghnNv86QBlV+zdL2inCdK1tuVlL+J+lpiw2BI67qXOrX3UurBqQ1w==
452 | dependencies:
453 | "@jridgewell/trace-mapping" "^0.3.15"
454 | callsites "^3.0.0"
455 | graceful-fs "^4.2.9"
456 |
457 | "@jest/test-result@^29.5.0":
458 | version "29.5.0"
459 | resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-29.5.0.tgz#7c856a6ca84f45cc36926a4e9c6b57f1973f1408"
460 | integrity sha512-fGl4rfitnbfLsrfx1uUpDEESS7zM8JdgZgOCQuxQvL1Sn/I6ijeAVQWGfXI9zb1i9Mzo495cIpVZhA0yr60PkQ==
461 | dependencies:
462 | "@jest/console" "^29.5.0"
463 | "@jest/types" "^29.5.0"
464 | "@types/istanbul-lib-coverage" "^2.0.0"
465 | collect-v8-coverage "^1.0.0"
466 |
467 | "@jest/test-sequencer@^29.5.0":
468 | version "29.5.0"
469 | resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-29.5.0.tgz#34d7d82d3081abd523dbddc038a3ddcb9f6d3cc4"
470 | integrity sha512-yPafQEcKjkSfDXyvtgiV4pevSeyuA6MQr6ZIdVkWJly9vkqjnFfcfhRQqpD5whjoU8EORki752xQmjaqoFjzMQ==
471 | dependencies:
472 | "@jest/test-result" "^29.5.0"
473 | graceful-fs "^4.2.9"
474 | jest-haste-map "^29.5.0"
475 | slash "^3.0.0"
476 |
477 | "@jest/transform@^29.5.0":
478 | version "29.5.0"
479 | resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-29.5.0.tgz#cf9c872d0965f0cbd32f1458aa44a2b1988b00f9"
480 | integrity sha512-8vbeZWqLJOvHaDfeMuoHITGKSz5qWc9u04lnWrQE3VyuSw604PzQM824ZeX9XSjUCeDiE3GuxZe5UKa8J61NQw==
481 | dependencies:
482 | "@babel/core" "^7.11.6"
483 | "@jest/types" "^29.5.0"
484 | "@jridgewell/trace-mapping" "^0.3.15"
485 | babel-plugin-istanbul "^6.1.1"
486 | chalk "^4.0.0"
487 | convert-source-map "^2.0.0"
488 | fast-json-stable-stringify "^2.1.0"
489 | graceful-fs "^4.2.9"
490 | jest-haste-map "^29.5.0"
491 | jest-regex-util "^29.4.3"
492 | jest-util "^29.5.0"
493 | micromatch "^4.0.4"
494 | pirates "^4.0.4"
495 | slash "^3.0.0"
496 | write-file-atomic "^4.0.2"
497 |
498 | "@jest/types@^29.5.0":
499 | version "29.5.0"
500 | resolved "https://registry.yarnpkg.com/@jest/types/-/types-29.5.0.tgz#f59ef9b031ced83047c67032700d8c807d6e1593"
501 | integrity sha512-qbu7kN6czmVRc3xWFQcAN03RAUamgppVUdXrvl1Wr3jlNF93o9mJbGcDWrwGB6ht44u7efB1qCFgVQmca24Uog==
502 | dependencies:
503 | "@jest/schemas" "^29.4.3"
504 | "@types/istanbul-lib-coverage" "^2.0.0"
505 | "@types/istanbul-reports" "^3.0.0"
506 | "@types/node" "*"
507 | "@types/yargs" "^17.0.8"
508 | chalk "^4.0.0"
509 |
510 | "@jridgewell/gen-mapping@^0.3.0", "@jridgewell/gen-mapping@^0.3.2":
511 | version "0.3.3"
512 | resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz#7e02e6eb5df901aaedb08514203b096614024098"
513 | integrity sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==
514 | dependencies:
515 | "@jridgewell/set-array" "^1.0.1"
516 | "@jridgewell/sourcemap-codec" "^1.4.10"
517 | "@jridgewell/trace-mapping" "^0.3.9"
518 |
519 | "@jridgewell/resolve-uri@3.1.0":
520 | version "3.1.0"
521 | resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz#2203b118c157721addfe69d47b70465463066d78"
522 | integrity sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==
523 |
524 | "@jridgewell/set-array@^1.0.1":
525 | version "1.1.2"
526 | resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.1.2.tgz#7c6cf998d6d20b914c0a55a91ae928ff25965e72"
527 | integrity sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==
528 |
529 | "@jridgewell/sourcemap-codec@1.4.14":
530 | version "1.4.14"
531 | resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz#add4c98d341472a289190b424efbdb096991bb24"
532 | integrity sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==
533 |
534 | "@jridgewell/sourcemap-codec@^1.4.10":
535 | version "1.4.15"
536 | resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz#d7c6e6755c78567a951e04ab52ef0fd26de59f32"
537 | integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==
538 |
539 | "@jridgewell/trace-mapping@^0.3.12", "@jridgewell/trace-mapping@^0.3.15", "@jridgewell/trace-mapping@^0.3.17", "@jridgewell/trace-mapping@^0.3.9":
540 | version "0.3.18"
541 | resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.18.tgz#25783b2086daf6ff1dcb53c9249ae480e4dd4cd6"
542 | integrity sha512-w+niJYzMHdd7USdiH2U6869nqhD2nbfZXND5Yp93qIbEmnDNk7PD48o+YchRVpzMU7M6jVCbenTR7PA1FLQ9pA==
543 | dependencies:
544 | "@jridgewell/resolve-uri" "3.1.0"
545 | "@jridgewell/sourcemap-codec" "1.4.14"
546 |
547 | "@sinclair/typebox@^0.25.16":
548 | version "0.25.24"
549 | resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.25.24.tgz#8c7688559979f7079aacaf31aa881c3aa410b718"
550 | integrity sha512-XJfwUVUKDHF5ugKwIcxEgc9k8b7HbznCp6eUfWgu710hMPNIO4aw4/zB5RogDQz8nd6gyCDpU9O/m6qYEWY6yQ==
551 |
552 | "@sinonjs/commons@^3.0.0":
553 | version "3.0.0"
554 | resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-3.0.0.tgz#beb434fe875d965265e04722ccfc21df7f755d72"
555 | integrity sha512-jXBtWAF4vmdNmZgD5FoKsVLv3rPgDnLgPbU84LIJ3otV44vJlDRokVng5v8NFJdCf/da9legHcKaRuZs4L7faA==
556 | dependencies:
557 | type-detect "4.0.8"
558 |
559 | "@sinonjs/fake-timers@^10.0.2":
560 | version "10.2.0"
561 | resolved "https://registry.yarnpkg.com/@sinonjs/fake-timers/-/fake-timers-10.2.0.tgz#b3e322a34c5f26e3184e7f6115695f299c1b1194"
562 | integrity sha512-OPwQlEdg40HAj5KNF8WW6q2KG4Z+cBCZb3m4ninfTZKaBmbIJodviQsDBoYMPHkOyJJMHnOJo5j2+LKDOhOACg==
563 | dependencies:
564 | "@sinonjs/commons" "^3.0.0"
565 |
566 | "@types/babel__core@^7.1.14":
567 | version "7.20.1"
568 | resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.20.1.tgz#916ecea274b0c776fec721e333e55762d3a9614b"
569 | integrity sha512-aACu/U/omhdk15O4Nfb+fHgH/z3QsfQzpnvRZhYhThms83ZnAOZz7zZAWO7mn2yyNQaA4xTO8GLK3uqFU4bYYw==
570 | dependencies:
571 | "@babel/parser" "^7.20.7"
572 | "@babel/types" "^7.20.7"
573 | "@types/babel__generator" "*"
574 | "@types/babel__template" "*"
575 | "@types/babel__traverse" "*"
576 |
577 | "@types/babel__generator@*":
578 | version "7.6.4"
579 | resolved "https://registry.yarnpkg.com/@types/babel__generator/-/babel__generator-7.6.4.tgz#1f20ce4c5b1990b37900b63f050182d28c2439b7"
580 | integrity sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg==
581 | dependencies:
582 | "@babel/types" "^7.0.0"
583 |
584 | "@types/babel__template@*":
585 | version "7.4.1"
586 | resolved "https://registry.yarnpkg.com/@types/babel__template/-/babel__template-7.4.1.tgz#3d1a48fd9d6c0edfd56f2ff578daed48f36c8969"
587 | integrity sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g==
588 | dependencies:
589 | "@babel/parser" "^7.1.0"
590 | "@babel/types" "^7.0.0"
591 |
592 | "@types/babel__traverse@*", "@types/babel__traverse@^7.0.6":
593 | version "7.20.1"
594 | resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.20.1.tgz#dd6f1d2411ae677dcb2db008c962598be31d6acf"
595 | integrity sha512-MitHFXnhtgwsGZWtT68URpOvLN4EREih1u3QtQiN4VdAxWKRVvGCSvw/Qth0M0Qq3pJpnGOu5JaM/ydK7OGbqg==
596 | dependencies:
597 | "@babel/types" "^7.20.7"
598 |
599 | "@types/graceful-fs@^4.1.3":
600 | version "4.1.6"
601 | resolved "https://registry.yarnpkg.com/@types/graceful-fs/-/graceful-fs-4.1.6.tgz#e14b2576a1c25026b7f02ede1de3b84c3a1efeae"
602 | integrity sha512-Sig0SNORX9fdW+bQuTEovKj3uHcUL6LQKbCrrqb1X7J6/ReAbhCXRAhc+SMejhLELFj2QcyuxmUooZ4bt5ReSw==
603 | dependencies:
604 | "@types/node" "*"
605 |
606 | "@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0", "@types/istanbul-lib-coverage@^2.0.1":
607 | version "2.0.4"
608 | resolved "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz#8467d4b3c087805d63580480890791277ce35c44"
609 | integrity sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==
610 |
611 | "@types/istanbul-lib-report@*":
612 | version "3.0.0"
613 | resolved "https://registry.yarnpkg.com/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz#c14c24f18ea8190c118ee7562b7ff99a36552686"
614 | integrity sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==
615 | dependencies:
616 | "@types/istanbul-lib-coverage" "*"
617 |
618 | "@types/istanbul-reports@^3.0.0":
619 | version "3.0.1"
620 | resolved "https://registry.yarnpkg.com/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz#9153fe98bba2bd565a63add9436d6f0d7f8468ff"
621 | integrity sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==
622 | dependencies:
623 | "@types/istanbul-lib-report" "*"
624 |
625 | "@types/node@*":
626 | version "20.3.0"
627 | resolved "https://registry.yarnpkg.com/@types/node/-/node-20.3.0.tgz#719498898d5defab83c3560f45d8498f58d11938"
628 | integrity sha512-cumHmIAf6On83X7yP+LrsEyUOf/YlociZelmpRYaGFydoaPdxdt80MAbu6vWerQT2COCp2nPvHdsbD7tHn/YlQ==
629 |
630 | "@types/prettier@^2.1.5":
631 | version "2.7.3"
632 | resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.7.3.tgz#3e51a17e291d01d17d3fc61422015a933af7a08f"
633 | integrity sha512-+68kP9yzs4LMp7VNh8gdzMSPZFL44MLGqiHWvttYJe+6qnuVr4Ek9wSBQoveqY/r+LwjCcU29kNVkidwim+kYA==
634 |
635 | "@types/stack-utils@^2.0.0":
636 | version "2.0.1"
637 | resolved "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-2.0.1.tgz#20f18294f797f2209b5f65c8e3b5c8e8261d127c"
638 | integrity sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==
639 |
640 | "@types/yargs-parser@*":
641 | version "21.0.0"
642 | resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-21.0.0.tgz#0c60e537fa790f5f9472ed2776c2b71ec117351b"
643 | integrity sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==
644 |
645 | "@types/yargs@^17.0.8":
646 | version "17.0.24"
647 | resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-17.0.24.tgz#b3ef8d50ad4aa6aecf6ddc97c580a00f5aa11902"
648 | integrity sha512-6i0aC7jV6QzQB8ne1joVZ0eSFIstHsCrobmOtghM11yGlH0j43FKL2UhWdELkyps0zuf7qVTUVCCR+tgSlyLLw==
649 | dependencies:
650 | "@types/yargs-parser" "*"
651 |
652 | ansi-escapes@^4.2.1:
653 | version "4.3.2"
654 | resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.2.tgz#6b2291d1db7d98b6521d5f1efa42d0f3a9feb65e"
655 | integrity sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==
656 | dependencies:
657 | type-fest "^0.21.3"
658 |
659 | ansi-regex@^5.0.1:
660 | version "5.0.1"
661 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304"
662 | integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==
663 |
664 | ansi-styles@^3.2.1:
665 | version "3.2.1"
666 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d"
667 | integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==
668 | dependencies:
669 | color-convert "^1.9.0"
670 |
671 | ansi-styles@^4.0.0, ansi-styles@^4.1.0:
672 | version "4.3.0"
673 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937"
674 | integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==
675 | dependencies:
676 | color-convert "^2.0.1"
677 |
678 | ansi-styles@^5.0.0:
679 | version "5.2.0"
680 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-5.2.0.tgz#07449690ad45777d1924ac2abb2fc8895dba836b"
681 | integrity sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==
682 |
683 | anymatch@^3.0.3:
684 | version "3.1.3"
685 | resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.3.tgz#790c58b19ba1720a84205b57c618d5ad8524973e"
686 | integrity sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==
687 | dependencies:
688 | normalize-path "^3.0.0"
689 | picomatch "^2.0.4"
690 |
691 | argparse@^1.0.7:
692 | version "1.0.10"
693 | resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911"
694 | integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==
695 | dependencies:
696 | sprintf-js "~1.0.2"
697 |
698 | babel-jest@^29.5.0:
699 | version "29.5.0"
700 | resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-29.5.0.tgz#3fe3ddb109198e78b1c88f9ebdecd5e4fc2f50a5"
701 | integrity sha512-mA4eCDh5mSo2EcA9xQjVTpmbbNk32Zb3Q3QFQsNhaK56Q+yoXowzFodLux30HRgyOho5rsQ6B0P9QpMkvvnJ0Q==
702 | dependencies:
703 | "@jest/transform" "^29.5.0"
704 | "@types/babel__core" "^7.1.14"
705 | babel-plugin-istanbul "^6.1.1"
706 | babel-preset-jest "^29.5.0"
707 | chalk "^4.0.0"
708 | graceful-fs "^4.2.9"
709 | slash "^3.0.0"
710 |
711 | babel-plugin-istanbul@^6.1.1:
712 | version "6.1.1"
713 | resolved "https://registry.yarnpkg.com/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz#fa88ec59232fd9b4e36dbbc540a8ec9a9b47da73"
714 | integrity sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==
715 | dependencies:
716 | "@babel/helper-plugin-utils" "^7.0.0"
717 | "@istanbuljs/load-nyc-config" "^1.0.0"
718 | "@istanbuljs/schema" "^0.1.2"
719 | istanbul-lib-instrument "^5.0.4"
720 | test-exclude "^6.0.0"
721 |
722 | babel-plugin-jest-hoist@^29.5.0:
723 | version "29.5.0"
724 | resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.5.0.tgz#a97db437936f441ec196990c9738d4b88538618a"
725 | integrity sha512-zSuuuAlTMT4mzLj2nPnUm6fsE6270vdOfnpbJ+RmruU75UhLFvL0N2NgI7xpeS7NaB6hGqmd5pVpGTDYvi4Q3w==
726 | dependencies:
727 | "@babel/template" "^7.3.3"
728 | "@babel/types" "^7.3.3"
729 | "@types/babel__core" "^7.1.14"
730 | "@types/babel__traverse" "^7.0.6"
731 |
732 | babel-preset-current-node-syntax@^1.0.0:
733 | version "1.0.1"
734 | resolved "https://registry.yarnpkg.com/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz#b4399239b89b2a011f9ddbe3e4f401fc40cff73b"
735 | integrity sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==
736 | dependencies:
737 | "@babel/plugin-syntax-async-generators" "^7.8.4"
738 | "@babel/plugin-syntax-bigint" "^7.8.3"
739 | "@babel/plugin-syntax-class-properties" "^7.8.3"
740 | "@babel/plugin-syntax-import-meta" "^7.8.3"
741 | "@babel/plugin-syntax-json-strings" "^7.8.3"
742 | "@babel/plugin-syntax-logical-assignment-operators" "^7.8.3"
743 | "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3"
744 | "@babel/plugin-syntax-numeric-separator" "^7.8.3"
745 | "@babel/plugin-syntax-object-rest-spread" "^7.8.3"
746 | "@babel/plugin-syntax-optional-catch-binding" "^7.8.3"
747 | "@babel/plugin-syntax-optional-chaining" "^7.8.3"
748 | "@babel/plugin-syntax-top-level-await" "^7.8.3"
749 |
750 | babel-preset-jest@^29.5.0:
751 | version "29.5.0"
752 | resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-29.5.0.tgz#57bc8cc88097af7ff6a5ab59d1cd29d52a5916e2"
753 | integrity sha512-JOMloxOqdiBSxMAzjRaH023/vvcaSaec49zvg+2LmNsktC7ei39LTJGw02J+9uUtTZUq6xbLyJ4dxe9sSmIuAg==
754 | dependencies:
755 | babel-plugin-jest-hoist "^29.5.0"
756 | babel-preset-current-node-syntax "^1.0.0"
757 |
758 | balanced-match@^1.0.0:
759 | version "1.0.2"
760 | resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee"
761 | integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==
762 |
763 | brace-expansion@^1.1.7:
764 | version "1.1.11"
765 | resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd"
766 | integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==
767 | dependencies:
768 | balanced-match "^1.0.0"
769 | concat-map "0.0.1"
770 |
771 | braces@^3.0.2:
772 | version "3.0.2"
773 | resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107"
774 | integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==
775 | dependencies:
776 | fill-range "^7.0.1"
777 |
778 | browserslist@^4.21.3:
779 | version "4.21.7"
780 | resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.21.7.tgz#e2b420947e5fb0a58e8f4668ae6e23488127e551"
781 | integrity sha512-BauCXrQ7I2ftSqd2mvKHGo85XR0u7Ru3C/Hxsy/0TkfCtjrmAbPdzLGasmoiBxplpDXlPvdjX9u7srIMfgasNA==
782 | dependencies:
783 | caniuse-lite "^1.0.30001489"
784 | electron-to-chromium "^1.4.411"
785 | node-releases "^2.0.12"
786 | update-browserslist-db "^1.0.11"
787 |
788 | bser@2.1.1:
789 | version "2.1.1"
790 | resolved "https://registry.yarnpkg.com/bser/-/bser-2.1.1.tgz#e6787da20ece9d07998533cfd9de6f5c38f4bc05"
791 | integrity sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==
792 | dependencies:
793 | node-int64 "^0.4.0"
794 |
795 | buffer-from@^1.0.0:
796 | version "1.1.2"
797 | resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5"
798 | integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==
799 |
800 | callsites@^3.0.0:
801 | version "3.1.0"
802 | resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73"
803 | integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==
804 |
805 | camelcase@^5.3.1:
806 | version "5.3.1"
807 | resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320"
808 | integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==
809 |
810 | camelcase@^6.2.0:
811 | version "6.3.0"
812 | resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a"
813 | integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==
814 |
815 | caniuse-lite@^1.0.30001489:
816 | version "1.0.30001499"
817 | resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001499.tgz#0235c127d9795c82aaf0a7f43e24018549dac659"
818 | integrity sha512-IhoQqRrW6WiecFcfZgoJS1YLEN1/HR1vHP5WNgjCARRW7KUNToHHTX3FrwCM+y4zkRa48D9rE90WFYc2IWhDWQ==
819 |
820 | chalk@^2.0.0:
821 | version "2.4.2"
822 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424"
823 | integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==
824 | dependencies:
825 | ansi-styles "^3.2.1"
826 | escape-string-regexp "^1.0.5"
827 | supports-color "^5.3.0"
828 |
829 | chalk@^4.0.0:
830 | version "4.1.2"
831 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01"
832 | integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==
833 | dependencies:
834 | ansi-styles "^4.1.0"
835 | supports-color "^7.1.0"
836 |
837 | char-regex@^1.0.2:
838 | version "1.0.2"
839 | resolved "https://registry.yarnpkg.com/char-regex/-/char-regex-1.0.2.tgz#d744358226217f981ed58f479b1d6bcc29545dcf"
840 | integrity sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==
841 |
842 | ci-info@^3.2.0:
843 | version "3.8.0"
844 | resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.8.0.tgz#81408265a5380c929f0bc665d62256628ce9ef91"
845 | integrity sha512-eXTggHWSooYhq49F2opQhuHWgzucfF2YgODK4e1566GQs5BIfP30B0oenwBJHfWxAs2fyPB1s7Mg949zLf61Yw==
846 |
847 | cjs-module-lexer@^1.0.0:
848 | version "1.2.3"
849 | resolved "https://registry.yarnpkg.com/cjs-module-lexer/-/cjs-module-lexer-1.2.3.tgz#6c370ab19f8a3394e318fe682686ec0ac684d107"
850 | integrity sha512-0TNiGstbQmCFwt4akjjBg5pLRTSyj/PkWQ1ZoO2zntmg9yLqSRxwEa4iCfQLGjqhiqBfOJa7W/E8wfGrTDmlZQ==
851 |
852 | cliui@^8.0.1:
853 | version "8.0.1"
854 | resolved "https://registry.yarnpkg.com/cliui/-/cliui-8.0.1.tgz#0c04b075db02cbfe60dc8e6cf2f5486b1a3608aa"
855 | integrity sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==
856 | dependencies:
857 | string-width "^4.2.0"
858 | strip-ansi "^6.0.1"
859 | wrap-ansi "^7.0.0"
860 |
861 | co@^4.6.0:
862 | version "4.6.0"
863 | resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184"
864 | integrity sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==
865 |
866 | collect-v8-coverage@^1.0.0:
867 | version "1.0.1"
868 | resolved "https://registry.yarnpkg.com/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz#cc2c8e94fc18bbdffe64d6534570c8a673b27f59"
869 | integrity sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg==
870 |
871 | color-convert@^1.9.0:
872 | version "1.9.3"
873 | resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8"
874 | integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==
875 | dependencies:
876 | color-name "1.1.3"
877 |
878 | color-convert@^2.0.1:
879 | version "2.0.1"
880 | resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3"
881 | integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==
882 | dependencies:
883 | color-name "~1.1.4"
884 |
885 | color-name@1.1.3:
886 | version "1.1.3"
887 | resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25"
888 | integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==
889 |
890 | color-name@~1.1.4:
891 | version "1.1.4"
892 | resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2"
893 | integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==
894 |
895 | concat-map@0.0.1:
896 | version "0.0.1"
897 | resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
898 | integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==
899 |
900 | convert-source-map@^1.6.0, convert-source-map@^1.7.0:
901 | version "1.9.0"
902 | resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.9.0.tgz#7faae62353fb4213366d0ca98358d22e8368b05f"
903 | integrity sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==
904 |
905 | convert-source-map@^2.0.0:
906 | version "2.0.0"
907 | resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-2.0.0.tgz#4b560f649fc4e918dd0ab75cf4961e8bc882d82a"
908 | integrity sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==
909 |
910 | cross-spawn@^7.0.3:
911 | version "7.0.3"
912 | resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6"
913 | integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==
914 | dependencies:
915 | path-key "^3.1.0"
916 | shebang-command "^2.0.0"
917 | which "^2.0.1"
918 |
919 | debug@^4.1.0, debug@^4.1.1:
920 | version "4.3.4"
921 | resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865"
922 | integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==
923 | dependencies:
924 | ms "2.1.2"
925 |
926 | dedent@^0.7.0:
927 | version "0.7.0"
928 | resolved "https://registry.yarnpkg.com/dedent/-/dedent-0.7.0.tgz#2495ddbaf6eb874abb0e1be9df22d2e5a544326c"
929 | integrity sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==
930 |
931 | deepmerge@^4.2.2:
932 | version "4.3.1"
933 | resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.3.1.tgz#44b5f2147cd3b00d4b56137685966f26fd25dd4a"
934 | integrity sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==
935 |
936 | detect-newline@^3.0.0:
937 | version "3.1.0"
938 | resolved "https://registry.yarnpkg.com/detect-newline/-/detect-newline-3.1.0.tgz#576f5dfc63ae1a192ff192d8ad3af6308991b651"
939 | integrity sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==
940 |
941 | diff-sequences@^29.4.3:
942 | version "29.4.3"
943 | resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-29.4.3.tgz#9314bc1fabe09267ffeca9cbafc457d8499a13f2"
944 | integrity sha512-ofrBgwpPhCD85kMKtE9RYFFq6OC1A89oW2vvgWZNCwxrUpRUILopY7lsYyMDSjc8g6U6aiO0Qubg6r4Wgt5ZnA==
945 |
946 | electron-to-chromium@^1.4.411:
947 | version "1.4.427"
948 | resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.427.tgz#67e8069f7a864fc092fe2e09f196e68af5cb88a1"
949 | integrity sha512-HK3r9l+Jm8dYAm1ctXEWIC+hV60zfcjS9UA5BDlYvnI5S7PU/yytjpvSrTNrSSRRkuu3tDyZhdkwIczh+0DWaw==
950 |
951 | emittery@^0.13.1:
952 | version "0.13.1"
953 | resolved "https://registry.yarnpkg.com/emittery/-/emittery-0.13.1.tgz#c04b8c3457490e0847ae51fced3af52d338e3dad"
954 | integrity sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==
955 |
956 | emoji-regex@^8.0.0:
957 | version "8.0.0"
958 | resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37"
959 | integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==
960 |
961 | error-ex@^1.3.1:
962 | version "1.3.2"
963 | resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf"
964 | integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==
965 | dependencies:
966 | is-arrayish "^0.2.1"
967 |
968 | escalade@^3.1.1:
969 | version "3.1.1"
970 | resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40"
971 | integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==
972 |
973 | escape-string-regexp@^1.0.5:
974 | version "1.0.5"
975 | resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"
976 | integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==
977 |
978 | escape-string-regexp@^2.0.0:
979 | version "2.0.0"
980 | resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz#a30304e99daa32e23b2fd20f51babd07cffca344"
981 | integrity sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==
982 |
983 | esprima@^4.0.0:
984 | version "4.0.1"
985 | resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71"
986 | integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==
987 |
988 | execa@^5.0.0:
989 | version "5.1.1"
990 | resolved "https://registry.yarnpkg.com/execa/-/execa-5.1.1.tgz#f80ad9cbf4298f7bd1d4c9555c21e93741c411dd"
991 | integrity sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==
992 | dependencies:
993 | cross-spawn "^7.0.3"
994 | get-stream "^6.0.0"
995 | human-signals "^2.1.0"
996 | is-stream "^2.0.0"
997 | merge-stream "^2.0.0"
998 | npm-run-path "^4.0.1"
999 | onetime "^5.1.2"
1000 | signal-exit "^3.0.3"
1001 | strip-final-newline "^2.0.0"
1002 |
1003 | exit@^0.1.2:
1004 | version "0.1.2"
1005 | resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c"
1006 | integrity sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==
1007 |
1008 | expect@^29.5.0:
1009 | version "29.5.0"
1010 | resolved "https://registry.yarnpkg.com/expect/-/expect-29.5.0.tgz#68c0509156cb2a0adb8865d413b137eeaae682f7"
1011 | integrity sha512-yM7xqUrCO2JdpFo4XpM82t+PJBFybdqoQuJLDGeDX2ij8NZzqRHyu3Hp188/JX7SWqud+7t4MUdvcgGBICMHZg==
1012 | dependencies:
1013 | "@jest/expect-utils" "^29.5.0"
1014 | jest-get-type "^29.4.3"
1015 | jest-matcher-utils "^29.5.0"
1016 | jest-message-util "^29.5.0"
1017 | jest-util "^29.5.0"
1018 |
1019 | fast-json-stable-stringify@^2.1.0:
1020 | version "2.1.0"
1021 | resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633"
1022 | integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==
1023 |
1024 | fb-watchman@^2.0.0:
1025 | version "2.0.2"
1026 | resolved "https://registry.yarnpkg.com/fb-watchman/-/fb-watchman-2.0.2.tgz#e9524ee6b5c77e9e5001af0f85f3adbb8623255c"
1027 | integrity sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==
1028 | dependencies:
1029 | bser "2.1.1"
1030 |
1031 | fill-range@^7.0.1:
1032 | version "7.0.1"
1033 | resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40"
1034 | integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==
1035 | dependencies:
1036 | to-regex-range "^5.0.1"
1037 |
1038 | find-up@^4.0.0, find-up@^4.1.0:
1039 | version "4.1.0"
1040 | resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19"
1041 | integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==
1042 | dependencies:
1043 | locate-path "^5.0.0"
1044 | path-exists "^4.0.0"
1045 |
1046 | fs.realpath@^1.0.0:
1047 | version "1.0.0"
1048 | resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f"
1049 | integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==
1050 |
1051 | fsevents@^2.3.2:
1052 | version "2.3.2"
1053 | resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a"
1054 | integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==
1055 |
1056 | function-bind@^1.1.1:
1057 | version "1.1.1"
1058 | resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d"
1059 | integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==
1060 |
1061 | gensync@^1.0.0-beta.2:
1062 | version "1.0.0-beta.2"
1063 | resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0"
1064 | integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==
1065 |
1066 | get-caller-file@^2.0.5:
1067 | version "2.0.5"
1068 | resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e"
1069 | integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==
1070 |
1071 | get-package-type@^0.1.0:
1072 | version "0.1.0"
1073 | resolved "https://registry.yarnpkg.com/get-package-type/-/get-package-type-0.1.0.tgz#8de2d803cff44df3bc6c456e6668b36c3926e11a"
1074 | integrity sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==
1075 |
1076 | get-stream@^6.0.0:
1077 | version "6.0.1"
1078 | resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7"
1079 | integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==
1080 |
1081 | glob@^7.1.3, glob@^7.1.4:
1082 | version "7.2.3"
1083 | resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b"
1084 | integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==
1085 | dependencies:
1086 | fs.realpath "^1.0.0"
1087 | inflight "^1.0.4"
1088 | inherits "2"
1089 | minimatch "^3.1.1"
1090 | once "^1.3.0"
1091 | path-is-absolute "^1.0.0"
1092 |
1093 | globals@^11.1.0:
1094 | version "11.12.0"
1095 | resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e"
1096 | integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==
1097 |
1098 | graceful-fs@^4.2.9:
1099 | version "4.2.11"
1100 | resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3"
1101 | integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==
1102 |
1103 | has-flag@^3.0.0:
1104 | version "3.0.0"
1105 | resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd"
1106 | integrity sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==
1107 |
1108 | has-flag@^4.0.0:
1109 | version "4.0.0"
1110 | resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b"
1111 | integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==
1112 |
1113 | has@^1.0.3:
1114 | version "1.0.3"
1115 | resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796"
1116 | integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==
1117 | dependencies:
1118 | function-bind "^1.1.1"
1119 |
1120 | html-escaper@^2.0.0:
1121 | version "2.0.2"
1122 | resolved "https://registry.yarnpkg.com/html-escaper/-/html-escaper-2.0.2.tgz#dfd60027da36a36dfcbe236262c00a5822681453"
1123 | integrity sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==
1124 |
1125 | human-signals@^2.1.0:
1126 | version "2.1.0"
1127 | resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0"
1128 | integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==
1129 |
1130 | import-local@^3.0.2:
1131 | version "3.1.0"
1132 | resolved "https://registry.yarnpkg.com/import-local/-/import-local-3.1.0.tgz#b4479df8a5fd44f6cdce24070675676063c95cb4"
1133 | integrity sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==
1134 | dependencies:
1135 | pkg-dir "^4.2.0"
1136 | resolve-cwd "^3.0.0"
1137 |
1138 | imurmurhash@^0.1.4:
1139 | version "0.1.4"
1140 | resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea"
1141 | integrity sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==
1142 |
1143 | inflight@^1.0.4:
1144 | version "1.0.6"
1145 | resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9"
1146 | integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==
1147 | dependencies:
1148 | once "^1.3.0"
1149 | wrappy "1"
1150 |
1151 | inherits@2:
1152 | version "2.0.4"
1153 | resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c"
1154 | integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==
1155 |
1156 | is-arrayish@^0.2.1:
1157 | version "0.2.1"
1158 | resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d"
1159 | integrity sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==
1160 |
1161 | is-core-module@^2.11.0:
1162 | version "2.12.1"
1163 | resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.12.1.tgz#0c0b6885b6f80011c71541ce15c8d66cf5a4f9fd"
1164 | integrity sha512-Q4ZuBAe2FUsKtyQJoQHlvP8OvBERxO3jEmy1I7hcRXcJBGGHFh/aJBswbXuS9sgrDH2QUO8ilkwNPHvHMd8clg==
1165 | dependencies:
1166 | has "^1.0.3"
1167 |
1168 | is-fullwidth-code-point@^3.0.0:
1169 | version "3.0.0"
1170 | resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d"
1171 | integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==
1172 |
1173 | is-generator-fn@^2.0.0:
1174 | version "2.1.0"
1175 | resolved "https://registry.yarnpkg.com/is-generator-fn/-/is-generator-fn-2.1.0.tgz#7d140adc389aaf3011a8f2a2a4cfa6faadffb118"
1176 | integrity sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==
1177 |
1178 | is-number@^7.0.0:
1179 | version "7.0.0"
1180 | resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b"
1181 | integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==
1182 |
1183 | is-stream@^2.0.0:
1184 | version "2.0.1"
1185 | resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077"
1186 | integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==
1187 |
1188 | isexe@^2.0.0:
1189 | version "2.0.0"
1190 | resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10"
1191 | integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==
1192 |
1193 | istanbul-lib-coverage@^3.0.0, istanbul-lib-coverage@^3.2.0:
1194 | version "3.2.0"
1195 | resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz#189e7909d0a39fa5a3dfad5b03f71947770191d3"
1196 | integrity sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==
1197 |
1198 | istanbul-lib-instrument@^5.0.4, istanbul-lib-instrument@^5.1.0:
1199 | version "5.2.1"
1200 | resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz#d10c8885c2125574e1c231cacadf955675e1ce3d"
1201 | integrity sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==
1202 | dependencies:
1203 | "@babel/core" "^7.12.3"
1204 | "@babel/parser" "^7.14.7"
1205 | "@istanbuljs/schema" "^0.1.2"
1206 | istanbul-lib-coverage "^3.2.0"
1207 | semver "^6.3.0"
1208 |
1209 | istanbul-lib-report@^3.0.0:
1210 | version "3.0.0"
1211 | resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz#7518fe52ea44de372f460a76b5ecda9ffb73d8a6"
1212 | integrity sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==
1213 | dependencies:
1214 | istanbul-lib-coverage "^3.0.0"
1215 | make-dir "^3.0.0"
1216 | supports-color "^7.1.0"
1217 |
1218 | istanbul-lib-source-maps@^4.0.0:
1219 | version "4.0.1"
1220 | resolved "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz#895f3a709fcfba34c6de5a42939022f3e4358551"
1221 | integrity sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==
1222 | dependencies:
1223 | debug "^4.1.1"
1224 | istanbul-lib-coverage "^3.0.0"
1225 | source-map "^0.6.1"
1226 |
1227 | istanbul-reports@^3.1.3:
1228 | version "3.1.5"
1229 | resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-3.1.5.tgz#cc9a6ab25cb25659810e4785ed9d9fb742578bae"
1230 | integrity sha512-nUsEMa9pBt/NOHqbcbeJEgqIlY/K7rVWUX6Lql2orY5e9roQOthbR3vtY4zzf2orPELg80fnxxk9zUyPlgwD1w==
1231 | dependencies:
1232 | html-escaper "^2.0.0"
1233 | istanbul-lib-report "^3.0.0"
1234 |
1235 | jest-changed-files@^29.5.0:
1236 | version "29.5.0"
1237 | resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-29.5.0.tgz#e88786dca8bf2aa899ec4af7644e16d9dcf9b23e"
1238 | integrity sha512-IFG34IUMUaNBIxjQXF/iu7g6EcdMrGRRxaUSw92I/2g2YC6vCdTltl4nHvt7Ci5nSJwXIkCu8Ka1DKF+X7Z1Ag==
1239 | dependencies:
1240 | execa "^5.0.0"
1241 | p-limit "^3.1.0"
1242 |
1243 | jest-circus@^29.5.0:
1244 | version "29.5.0"
1245 | resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-29.5.0.tgz#b5926989449e75bff0d59944bae083c9d7fb7317"
1246 | integrity sha512-gq/ongqeQKAplVxqJmbeUOJJKkW3dDNPY8PjhJ5G0lBRvu0e3EWGxGy5cI4LAGA7gV2UHCtWBI4EMXK8c9nQKA==
1247 | dependencies:
1248 | "@jest/environment" "^29.5.0"
1249 | "@jest/expect" "^29.5.0"
1250 | "@jest/test-result" "^29.5.0"
1251 | "@jest/types" "^29.5.0"
1252 | "@types/node" "*"
1253 | chalk "^4.0.0"
1254 | co "^4.6.0"
1255 | dedent "^0.7.0"
1256 | is-generator-fn "^2.0.0"
1257 | jest-each "^29.5.0"
1258 | jest-matcher-utils "^29.5.0"
1259 | jest-message-util "^29.5.0"
1260 | jest-runtime "^29.5.0"
1261 | jest-snapshot "^29.5.0"
1262 | jest-util "^29.5.0"
1263 | p-limit "^3.1.0"
1264 | pretty-format "^29.5.0"
1265 | pure-rand "^6.0.0"
1266 | slash "^3.0.0"
1267 | stack-utils "^2.0.3"
1268 |
1269 | jest-cli@^29.5.0:
1270 | version "29.5.0"
1271 | resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-29.5.0.tgz#b34c20a6d35968f3ee47a7437ff8e53e086b4a67"
1272 | integrity sha512-L1KcP1l4HtfwdxXNFCL5bmUbLQiKrakMUriBEcc1Vfz6gx31ORKdreuWvmQVBit+1ss9NNR3yxjwfwzZNdQXJw==
1273 | dependencies:
1274 | "@jest/core" "^29.5.0"
1275 | "@jest/test-result" "^29.5.0"
1276 | "@jest/types" "^29.5.0"
1277 | chalk "^4.0.0"
1278 | exit "^0.1.2"
1279 | graceful-fs "^4.2.9"
1280 | import-local "^3.0.2"
1281 | jest-config "^29.5.0"
1282 | jest-util "^29.5.0"
1283 | jest-validate "^29.5.0"
1284 | prompts "^2.0.1"
1285 | yargs "^17.3.1"
1286 |
1287 | jest-config@^29.5.0:
1288 | version "29.5.0"
1289 | resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-29.5.0.tgz#3cc972faec8c8aaea9ae158c694541b79f3748da"
1290 | integrity sha512-kvDUKBnNJPNBmFFOhDbm59iu1Fii1Q6SxyhXfvylq3UTHbg6o7j/g8k2dZyXWLvfdKB1vAPxNZnMgtKJcmu3kA==
1291 | dependencies:
1292 | "@babel/core" "^7.11.6"
1293 | "@jest/test-sequencer" "^29.5.0"
1294 | "@jest/types" "^29.5.0"
1295 | babel-jest "^29.5.0"
1296 | chalk "^4.0.0"
1297 | ci-info "^3.2.0"
1298 | deepmerge "^4.2.2"
1299 | glob "^7.1.3"
1300 | graceful-fs "^4.2.9"
1301 | jest-circus "^29.5.0"
1302 | jest-environment-node "^29.5.0"
1303 | jest-get-type "^29.4.3"
1304 | jest-regex-util "^29.4.3"
1305 | jest-resolve "^29.5.0"
1306 | jest-runner "^29.5.0"
1307 | jest-util "^29.5.0"
1308 | jest-validate "^29.5.0"
1309 | micromatch "^4.0.4"
1310 | parse-json "^5.2.0"
1311 | pretty-format "^29.5.0"
1312 | slash "^3.0.0"
1313 | strip-json-comments "^3.1.1"
1314 |
1315 | jest-diff@^29.5.0:
1316 | version "29.5.0"
1317 | resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-29.5.0.tgz#e0d83a58eb5451dcc1fa61b1c3ee4e8f5a290d63"
1318 | integrity sha512-LtxijLLZBduXnHSniy0WMdaHjmQnt3g5sa16W4p0HqukYTTsyTW3GD1q41TyGl5YFXj/5B2U6dlh5FM1LIMgxw==
1319 | dependencies:
1320 | chalk "^4.0.0"
1321 | diff-sequences "^29.4.3"
1322 | jest-get-type "^29.4.3"
1323 | pretty-format "^29.5.0"
1324 |
1325 | jest-docblock@^29.4.3:
1326 | version "29.4.3"
1327 | resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-29.4.3.tgz#90505aa89514a1c7dceeac1123df79e414636ea8"
1328 | integrity sha512-fzdTftThczeSD9nZ3fzA/4KkHtnmllawWrXO69vtI+L9WjEIuXWs4AmyME7lN5hU7dB0sHhuPfcKofRsUb/2Fg==
1329 | dependencies:
1330 | detect-newline "^3.0.0"
1331 |
1332 | jest-each@^29.5.0:
1333 | version "29.5.0"
1334 | resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-29.5.0.tgz#fc6e7014f83eac68e22b7195598de8554c2e5c06"
1335 | integrity sha512-HM5kIJ1BTnVt+DQZ2ALp3rzXEl+g726csObrW/jpEGl+CDSSQpOJJX2KE/vEg8cxcMXdyEPu6U4QX5eruQv5hA==
1336 | dependencies:
1337 | "@jest/types" "^29.5.0"
1338 | chalk "^4.0.0"
1339 | jest-get-type "^29.4.3"
1340 | jest-util "^29.5.0"
1341 | pretty-format "^29.5.0"
1342 |
1343 | jest-environment-node@^29.5.0:
1344 | version "29.5.0"
1345 | resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-29.5.0.tgz#f17219d0f0cc0e68e0727c58b792c040e332c967"
1346 | integrity sha512-ExxuIK/+yQ+6PRGaHkKewYtg6hto2uGCgvKdb2nfJfKXgZ17DfXjvbZ+jA1Qt9A8EQSfPnt5FKIfnOO3u1h9qw==
1347 | dependencies:
1348 | "@jest/environment" "^29.5.0"
1349 | "@jest/fake-timers" "^29.5.0"
1350 | "@jest/types" "^29.5.0"
1351 | "@types/node" "*"
1352 | jest-mock "^29.5.0"
1353 | jest-util "^29.5.0"
1354 |
1355 | jest-get-type@^29.4.3:
1356 | version "29.4.3"
1357 | resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-29.4.3.tgz#1ab7a5207c995161100b5187159ca82dd48b3dd5"
1358 | integrity sha512-J5Xez4nRRMjk8emnTpWrlkyb9pfRQQanDrvWHhsR1+VUfbwxi30eVcZFlcdGInRibU4G5LwHXpI7IRHU0CY+gg==
1359 |
1360 | jest-haste-map@^29.5.0:
1361 | version "29.5.0"
1362 | resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-29.5.0.tgz#69bd67dc9012d6e2723f20a945099e972b2e94de"
1363 | integrity sha512-IspOPnnBro8YfVYSw6yDRKh/TiCdRngjxeacCps1cQ9cgVN6+10JUcuJ1EabrgYLOATsIAigxA0rLR9x/YlrSA==
1364 | dependencies:
1365 | "@jest/types" "^29.5.0"
1366 | "@types/graceful-fs" "^4.1.3"
1367 | "@types/node" "*"
1368 | anymatch "^3.0.3"
1369 | fb-watchman "^2.0.0"
1370 | graceful-fs "^4.2.9"
1371 | jest-regex-util "^29.4.3"
1372 | jest-util "^29.5.0"
1373 | jest-worker "^29.5.0"
1374 | micromatch "^4.0.4"
1375 | walker "^1.0.8"
1376 | optionalDependencies:
1377 | fsevents "^2.3.2"
1378 |
1379 | jest-leak-detector@^29.5.0:
1380 | version "29.5.0"
1381 | resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-29.5.0.tgz#cf4bdea9615c72bac4a3a7ba7e7930f9c0610c8c"
1382 | integrity sha512-u9YdeeVnghBUtpN5mVxjID7KbkKE1QU4f6uUwuxiY0vYRi9BUCLKlPEZfDGR67ofdFmDz9oPAy2G92Ujrntmow==
1383 | dependencies:
1384 | jest-get-type "^29.4.3"
1385 | pretty-format "^29.5.0"
1386 |
1387 | jest-matcher-utils@^29.5.0:
1388 | version "29.5.0"
1389 | resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-29.5.0.tgz#d957af7f8c0692c5453666705621ad4abc2c59c5"
1390 | integrity sha512-lecRtgm/rjIK0CQ7LPQwzCs2VwW6WAahA55YBuI+xqmhm7LAaxokSB8C97yJeYyT+HvQkH741StzpU41wohhWw==
1391 | dependencies:
1392 | chalk "^4.0.0"
1393 | jest-diff "^29.5.0"
1394 | jest-get-type "^29.4.3"
1395 | pretty-format "^29.5.0"
1396 |
1397 | jest-message-util@^29.5.0:
1398 | version "29.5.0"
1399 | resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-29.5.0.tgz#1f776cac3aca332ab8dd2e3b41625435085c900e"
1400 | integrity sha512-Kijeg9Dag6CKtIDA7O21zNTACqD5MD/8HfIV8pdD94vFyFuer52SigdC3IQMhab3vACxXMiFk+yMHNdbqtyTGA==
1401 | dependencies:
1402 | "@babel/code-frame" "^7.12.13"
1403 | "@jest/types" "^29.5.0"
1404 | "@types/stack-utils" "^2.0.0"
1405 | chalk "^4.0.0"
1406 | graceful-fs "^4.2.9"
1407 | micromatch "^4.0.4"
1408 | pretty-format "^29.5.0"
1409 | slash "^3.0.0"
1410 | stack-utils "^2.0.3"
1411 |
1412 | jest-mock@^29.5.0:
1413 | version "29.5.0"
1414 | resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-29.5.0.tgz#26e2172bcc71d8b0195081ff1f146ac7e1518aed"
1415 | integrity sha512-GqOzvdWDE4fAV2bWQLQCkujxYWL7RxjCnj71b5VhDAGOevB3qj3Ovg26A5NI84ZpODxyzaozXLOh2NCgkbvyaw==
1416 | dependencies:
1417 | "@jest/types" "^29.5.0"
1418 | "@types/node" "*"
1419 | jest-util "^29.5.0"
1420 |
1421 | jest-pnp-resolver@^1.2.2:
1422 | version "1.2.3"
1423 | resolved "https://registry.yarnpkg.com/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz#930b1546164d4ad5937d5540e711d4d38d4cad2e"
1424 | integrity sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==
1425 |
1426 | jest-regex-util@^29.4.3:
1427 | version "29.4.3"
1428 | resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-29.4.3.tgz#a42616141e0cae052cfa32c169945d00c0aa0bb8"
1429 | integrity sha512-O4FglZaMmWXbGHSQInfXewIsd1LMn9p3ZXB/6r4FOkyhX2/iP/soMG98jGvk/A3HAN78+5VWcBGO0BJAPRh4kg==
1430 |
1431 | jest-resolve-dependencies@^29.5.0:
1432 | version "29.5.0"
1433 | resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-29.5.0.tgz#f0ea29955996f49788bf70996052aa98e7befee4"
1434 | integrity sha512-sjV3GFr0hDJMBpYeUuGduP+YeCRbd7S/ck6IvL3kQ9cpySYKqcqhdLLC2rFwrcL7tz5vYibomBrsFYWkIGGjOg==
1435 | dependencies:
1436 | jest-regex-util "^29.4.3"
1437 | jest-snapshot "^29.5.0"
1438 |
1439 | jest-resolve@^29.5.0:
1440 | version "29.5.0"
1441 | resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-29.5.0.tgz#b053cc95ad1d5f6327f0ac8aae9f98795475ecdc"
1442 | integrity sha512-1TzxJ37FQq7J10jPtQjcc+MkCkE3GBpBecsSUWJ0qZNJpmg6m0D9/7II03yJulm3H/fvVjgqLh/k2eYg+ui52w==
1443 | dependencies:
1444 | chalk "^4.0.0"
1445 | graceful-fs "^4.2.9"
1446 | jest-haste-map "^29.5.0"
1447 | jest-pnp-resolver "^1.2.2"
1448 | jest-util "^29.5.0"
1449 | jest-validate "^29.5.0"
1450 | resolve "^1.20.0"
1451 | resolve.exports "^2.0.0"
1452 | slash "^3.0.0"
1453 |
1454 | jest-runner@^29.5.0:
1455 | version "29.5.0"
1456 | resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-29.5.0.tgz#6a57c282eb0ef749778d444c1d758c6a7693b6f8"
1457 | integrity sha512-m7b6ypERhFghJsslMLhydaXBiLf7+jXy8FwGRHO3BGV1mcQpPbwiqiKUR2zU2NJuNeMenJmlFZCsIqzJCTeGLQ==
1458 | dependencies:
1459 | "@jest/console" "^29.5.0"
1460 | "@jest/environment" "^29.5.0"
1461 | "@jest/test-result" "^29.5.0"
1462 | "@jest/transform" "^29.5.0"
1463 | "@jest/types" "^29.5.0"
1464 | "@types/node" "*"
1465 | chalk "^4.0.0"
1466 | emittery "^0.13.1"
1467 | graceful-fs "^4.2.9"
1468 | jest-docblock "^29.4.3"
1469 | jest-environment-node "^29.5.0"
1470 | jest-haste-map "^29.5.0"
1471 | jest-leak-detector "^29.5.0"
1472 | jest-message-util "^29.5.0"
1473 | jest-resolve "^29.5.0"
1474 | jest-runtime "^29.5.0"
1475 | jest-util "^29.5.0"
1476 | jest-watcher "^29.5.0"
1477 | jest-worker "^29.5.0"
1478 | p-limit "^3.1.0"
1479 | source-map-support "0.5.13"
1480 |
1481 | jest-runtime@^29.5.0:
1482 | version "29.5.0"
1483 | resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-29.5.0.tgz#c83f943ee0c1da7eb91fa181b0811ebd59b03420"
1484 | integrity sha512-1Hr6Hh7bAgXQP+pln3homOiEZtCDZFqwmle7Ew2j8OlbkIu6uE3Y/etJQG8MLQs3Zy90xrp2C0BRrtPHG4zryw==
1485 | dependencies:
1486 | "@jest/environment" "^29.5.0"
1487 | "@jest/fake-timers" "^29.5.0"
1488 | "@jest/globals" "^29.5.0"
1489 | "@jest/source-map" "^29.4.3"
1490 | "@jest/test-result" "^29.5.0"
1491 | "@jest/transform" "^29.5.0"
1492 | "@jest/types" "^29.5.0"
1493 | "@types/node" "*"
1494 | chalk "^4.0.0"
1495 | cjs-module-lexer "^1.0.0"
1496 | collect-v8-coverage "^1.0.0"
1497 | glob "^7.1.3"
1498 | graceful-fs "^4.2.9"
1499 | jest-haste-map "^29.5.0"
1500 | jest-message-util "^29.5.0"
1501 | jest-mock "^29.5.0"
1502 | jest-regex-util "^29.4.3"
1503 | jest-resolve "^29.5.0"
1504 | jest-snapshot "^29.5.0"
1505 | jest-util "^29.5.0"
1506 | slash "^3.0.0"
1507 | strip-bom "^4.0.0"
1508 |
1509 | jest-snapshot@^29.5.0:
1510 | version "29.5.0"
1511 | resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-29.5.0.tgz#c9c1ce0331e5b63cd444e2f95a55a73b84b1e8ce"
1512 | integrity sha512-x7Wolra5V0tt3wRs3/ts3S6ciSQVypgGQlJpz2rsdQYoUKxMxPNaoHMGJN6qAuPJqS+2iQ1ZUn5kl7HCyls84g==
1513 | dependencies:
1514 | "@babel/core" "^7.11.6"
1515 | "@babel/generator" "^7.7.2"
1516 | "@babel/plugin-syntax-jsx" "^7.7.2"
1517 | "@babel/plugin-syntax-typescript" "^7.7.2"
1518 | "@babel/traverse" "^7.7.2"
1519 | "@babel/types" "^7.3.3"
1520 | "@jest/expect-utils" "^29.5.0"
1521 | "@jest/transform" "^29.5.0"
1522 | "@jest/types" "^29.5.0"
1523 | "@types/babel__traverse" "^7.0.6"
1524 | "@types/prettier" "^2.1.5"
1525 | babel-preset-current-node-syntax "^1.0.0"
1526 | chalk "^4.0.0"
1527 | expect "^29.5.0"
1528 | graceful-fs "^4.2.9"
1529 | jest-diff "^29.5.0"
1530 | jest-get-type "^29.4.3"
1531 | jest-matcher-utils "^29.5.0"
1532 | jest-message-util "^29.5.0"
1533 | jest-util "^29.5.0"
1534 | natural-compare "^1.4.0"
1535 | pretty-format "^29.5.0"
1536 | semver "^7.3.5"
1537 |
1538 | jest-util@^29.5.0:
1539 | version "29.5.0"
1540 | resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-29.5.0.tgz#24a4d3d92fc39ce90425311b23c27a6e0ef16b8f"
1541 | integrity sha512-RYMgG/MTadOr5t8KdhejfvUU82MxsCu5MF6KuDUHl+NuwzUt+Sm6jJWxTJVrDR1j5M/gJVCPKQEpWXY+yIQ6lQ==
1542 | dependencies:
1543 | "@jest/types" "^29.5.0"
1544 | "@types/node" "*"
1545 | chalk "^4.0.0"
1546 | ci-info "^3.2.0"
1547 | graceful-fs "^4.2.9"
1548 | picomatch "^2.2.3"
1549 |
1550 | jest-validate@^29.5.0:
1551 | version "29.5.0"
1552 | resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-29.5.0.tgz#8e5a8f36178d40e47138dc00866a5f3bd9916ffc"
1553 | integrity sha512-pC26etNIi+y3HV8A+tUGr/lph9B18GnzSRAkPaaZJIE1eFdiYm6/CewuiJQ8/RlfHd1u/8Ioi8/sJ+CmbA+zAQ==
1554 | dependencies:
1555 | "@jest/types" "^29.5.0"
1556 | camelcase "^6.2.0"
1557 | chalk "^4.0.0"
1558 | jest-get-type "^29.4.3"
1559 | leven "^3.1.0"
1560 | pretty-format "^29.5.0"
1561 |
1562 | jest-watcher@^29.5.0:
1563 | version "29.5.0"
1564 | resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-29.5.0.tgz#cf7f0f949828ba65ddbbb45c743a382a4d911363"
1565 | integrity sha512-KmTojKcapuqYrKDpRwfqcQ3zjMlwu27SYext9pt4GlF5FUgB+7XE1mcCnSm6a4uUpFyQIkb6ZhzZvHl+jiBCiA==
1566 | dependencies:
1567 | "@jest/test-result" "^29.5.0"
1568 | "@jest/types" "^29.5.0"
1569 | "@types/node" "*"
1570 | ansi-escapes "^4.2.1"
1571 | chalk "^4.0.0"
1572 | emittery "^0.13.1"
1573 | jest-util "^29.5.0"
1574 | string-length "^4.0.1"
1575 |
1576 | jest-worker@^29.5.0:
1577 | version "29.5.0"
1578 | resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-29.5.0.tgz#bdaefb06811bd3384d93f009755014d8acb4615d"
1579 | integrity sha512-NcrQnevGoSp4b5kg+akIpthoAFHxPBcb5P6mYPY0fUNT+sSvmtu6jlkEle3anczUKIKEbMxFimk9oTP/tpIPgA==
1580 | dependencies:
1581 | "@types/node" "*"
1582 | jest-util "^29.5.0"
1583 | merge-stream "^2.0.0"
1584 | supports-color "^8.0.0"
1585 |
1586 | jest@^29.5.0:
1587 | version "29.5.0"
1588 | resolved "https://registry.yarnpkg.com/jest/-/jest-29.5.0.tgz#f75157622f5ce7ad53028f2f8888ab53e1f1f24e"
1589 | integrity sha512-juMg3he2uru1QoXX078zTa7pO85QyB9xajZc6bU+d9yEGwrKX6+vGmJQ3UdVZsvTEUARIdObzH68QItim6OSSQ==
1590 | dependencies:
1591 | "@jest/core" "^29.5.0"
1592 | "@jest/types" "^29.5.0"
1593 | import-local "^3.0.2"
1594 | jest-cli "^29.5.0"
1595 |
1596 | js-tokens@^4.0.0:
1597 | version "4.0.0"
1598 | resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499"
1599 | integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==
1600 |
1601 | js-yaml@^3.13.1:
1602 | version "3.14.1"
1603 | resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.1.tgz#dae812fdb3825fa306609a8717383c50c36a0537"
1604 | integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==
1605 | dependencies:
1606 | argparse "^1.0.7"
1607 | esprima "^4.0.0"
1608 |
1609 | jsesc@^2.5.1:
1610 | version "2.5.2"
1611 | resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4"
1612 | integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==
1613 |
1614 | json-parse-even-better-errors@^2.3.0:
1615 | version "2.3.1"
1616 | resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d"
1617 | integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==
1618 |
1619 | json5@^2.2.2:
1620 | version "2.2.3"
1621 | resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283"
1622 | integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==
1623 |
1624 | kleur@^3.0.3:
1625 | version "3.0.3"
1626 | resolved "https://registry.yarnpkg.com/kleur/-/kleur-3.0.3.tgz#a79c9ecc86ee1ce3fa6206d1216c501f147fc07e"
1627 | integrity sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==
1628 |
1629 | leven@^3.1.0:
1630 | version "3.1.0"
1631 | resolved "https://registry.yarnpkg.com/leven/-/leven-3.1.0.tgz#77891de834064cccba82ae7842bb6b14a13ed7f2"
1632 | integrity sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==
1633 |
1634 | lines-and-columns@^1.1.6:
1635 | version "1.2.4"
1636 | resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632"
1637 | integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==
1638 |
1639 | locate-path@^5.0.0:
1640 | version "5.0.0"
1641 | resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0"
1642 | integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==
1643 | dependencies:
1644 | p-locate "^4.1.0"
1645 |
1646 | lru-cache@^5.1.1:
1647 | version "5.1.1"
1648 | resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920"
1649 | integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==
1650 | dependencies:
1651 | yallist "^3.0.2"
1652 |
1653 | lru-cache@^6.0.0:
1654 | version "6.0.0"
1655 | resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94"
1656 | integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==
1657 | dependencies:
1658 | yallist "^4.0.0"
1659 |
1660 | make-dir@^3.0.0:
1661 | version "3.1.0"
1662 | resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f"
1663 | integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==
1664 | dependencies:
1665 | semver "^6.0.0"
1666 |
1667 | makeerror@1.0.12:
1668 | version "1.0.12"
1669 | resolved "https://registry.yarnpkg.com/makeerror/-/makeerror-1.0.12.tgz#3e5dd2079a82e812e983cc6610c4a2cb0eaa801a"
1670 | integrity sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==
1671 | dependencies:
1672 | tmpl "1.0.5"
1673 |
1674 | merge-stream@^2.0.0:
1675 | version "2.0.0"
1676 | resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60"
1677 | integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==
1678 |
1679 | micromatch@^4.0.4:
1680 | version "4.0.5"
1681 | resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.5.tgz#bc8999a7cbbf77cdc89f132f6e467051b49090c6"
1682 | integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==
1683 | dependencies:
1684 | braces "^3.0.2"
1685 | picomatch "^2.3.1"
1686 |
1687 | mimic-fn@^2.1.0:
1688 | version "2.1.0"
1689 | resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b"
1690 | integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==
1691 |
1692 | minimatch@^3.0.4, minimatch@^3.1.1:
1693 | version "3.1.2"
1694 | resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b"
1695 | integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==
1696 | dependencies:
1697 | brace-expansion "^1.1.7"
1698 |
1699 | ms@2.1.2:
1700 | version "2.1.2"
1701 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009"
1702 | integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==
1703 |
1704 | natural-compare@^1.4.0:
1705 | version "1.4.0"
1706 | resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7"
1707 | integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==
1708 |
1709 | node-int64@^0.4.0:
1710 | version "0.4.0"
1711 | resolved "https://registry.yarnpkg.com/node-int64/-/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b"
1712 | integrity sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==
1713 |
1714 | node-releases@^2.0.12:
1715 | version "2.0.12"
1716 | resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.12.tgz#35627cc224a23bfb06fb3380f2b3afaaa7eb1039"
1717 | integrity sha512-QzsYKWhXTWx8h1kIvqfnC++o0pEmpRQA/aenALsL2F4pqNVr7YzcdMlDij5WBnwftRbJCNJL/O7zdKaxKPHqgQ==
1718 |
1719 | normalize-path@^3.0.0:
1720 | version "3.0.0"
1721 | resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65"
1722 | integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==
1723 |
1724 | npm-run-path@^4.0.1:
1725 | version "4.0.1"
1726 | resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea"
1727 | integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==
1728 | dependencies:
1729 | path-key "^3.0.0"
1730 |
1731 | once@^1.3.0:
1732 | version "1.4.0"
1733 | resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"
1734 | integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==
1735 | dependencies:
1736 | wrappy "1"
1737 |
1738 | onetime@^5.1.2:
1739 | version "5.1.2"
1740 | resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e"
1741 | integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==
1742 | dependencies:
1743 | mimic-fn "^2.1.0"
1744 |
1745 | p-limit@^2.2.0:
1746 | version "2.3.0"
1747 | resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1"
1748 | integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==
1749 | dependencies:
1750 | p-try "^2.0.0"
1751 |
1752 | p-limit@^3.1.0:
1753 | version "3.1.0"
1754 | resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b"
1755 | integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==
1756 | dependencies:
1757 | yocto-queue "^0.1.0"
1758 |
1759 | p-locate@^4.1.0:
1760 | version "4.1.0"
1761 | resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07"
1762 | integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==
1763 | dependencies:
1764 | p-limit "^2.2.0"
1765 |
1766 | p-try@^2.0.0:
1767 | version "2.2.0"
1768 | resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6"
1769 | integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==
1770 |
1771 | parse-json@^5.2.0:
1772 | version "5.2.0"
1773 | resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.2.0.tgz#c76fc66dee54231c962b22bcc8a72cf2f99753cd"
1774 | integrity sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==
1775 | dependencies:
1776 | "@babel/code-frame" "^7.0.0"
1777 | error-ex "^1.3.1"
1778 | json-parse-even-better-errors "^2.3.0"
1779 | lines-and-columns "^1.1.6"
1780 |
1781 | path-exists@^4.0.0:
1782 | version "4.0.0"
1783 | resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3"
1784 | integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==
1785 |
1786 | path-is-absolute@^1.0.0:
1787 | version "1.0.1"
1788 | resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"
1789 | integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==
1790 |
1791 | path-key@^3.0.0, path-key@^3.1.0:
1792 | version "3.1.1"
1793 | resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375"
1794 | integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==
1795 |
1796 | path-parse@^1.0.7:
1797 | version "1.0.7"
1798 | resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735"
1799 | integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==
1800 |
1801 | picocolors@^1.0.0:
1802 | version "1.0.0"
1803 | resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c"
1804 | integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==
1805 |
1806 | picomatch@^2.0.4, picomatch@^2.2.3, picomatch@^2.3.1:
1807 | version "2.3.1"
1808 | resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42"
1809 | integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==
1810 |
1811 | pirates@^4.0.4:
1812 | version "4.0.5"
1813 | resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.5.tgz#feec352ea5c3268fb23a37c702ab1699f35a5f3b"
1814 | integrity sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==
1815 |
1816 | pkg-dir@^4.2.0:
1817 | version "4.2.0"
1818 | resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3"
1819 | integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==
1820 | dependencies:
1821 | find-up "^4.0.0"
1822 |
1823 | pretty-format@^29.5.0:
1824 | version "29.5.0"
1825 | resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-29.5.0.tgz#283134e74f70e2e3e7229336de0e4fce94ccde5a"
1826 | integrity sha512-V2mGkI31qdttvTFX7Mt4efOqHXqJWMu4/r66Xh3Z3BwZaPfPJgp6/gbwoujRpPUtfEF6AUUWx3Jim3GCw5g/Qw==
1827 | dependencies:
1828 | "@jest/schemas" "^29.4.3"
1829 | ansi-styles "^5.0.0"
1830 | react-is "^18.0.0"
1831 |
1832 | prompts@^2.0.1:
1833 | version "2.4.2"
1834 | resolved "https://registry.yarnpkg.com/prompts/-/prompts-2.4.2.tgz#7b57e73b3a48029ad10ebd44f74b01722a4cb069"
1835 | integrity sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==
1836 | dependencies:
1837 | kleur "^3.0.3"
1838 | sisteransi "^1.0.5"
1839 |
1840 | pure-rand@^6.0.0:
1841 | version "6.0.2"
1842 | resolved "https://registry.yarnpkg.com/pure-rand/-/pure-rand-6.0.2.tgz#a9c2ddcae9b68d736a8163036f088a2781c8b306"
1843 | integrity sha512-6Yg0ekpKICSjPswYOuC5sku/TSWaRYlA0qsXqJgM/d/4pLPHPuTxK7Nbf7jFKzAeedUhR8C7K9Uv63FBsSo8xQ==
1844 |
1845 | react-is@^18.0.0:
1846 | version "18.2.0"
1847 | resolved "https://registry.yarnpkg.com/react-is/-/react-is-18.2.0.tgz#199431eeaaa2e09f86427efbb4f1473edb47609b"
1848 | integrity sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==
1849 |
1850 | require-directory@^2.1.1:
1851 | version "2.1.1"
1852 | resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42"
1853 | integrity sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==
1854 |
1855 | resolve-cwd@^3.0.0:
1856 | version "3.0.0"
1857 | resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-3.0.0.tgz#0f0075f1bb2544766cf73ba6a6e2adfebcb13f2d"
1858 | integrity sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==
1859 | dependencies:
1860 | resolve-from "^5.0.0"
1861 |
1862 | resolve-from@^5.0.0:
1863 | version "5.0.0"
1864 | resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69"
1865 | integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==
1866 |
1867 | resolve.exports@^2.0.0:
1868 | version "2.0.2"
1869 | resolved "https://registry.yarnpkg.com/resolve.exports/-/resolve.exports-2.0.2.tgz#f8c934b8e6a13f539e38b7098e2e36134f01e800"
1870 | integrity sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==
1871 |
1872 | resolve@^1.20.0:
1873 | version "1.22.2"
1874 | resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.2.tgz#0ed0943d4e301867955766c9f3e1ae6d01c6845f"
1875 | integrity sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==
1876 | dependencies:
1877 | is-core-module "^2.11.0"
1878 | path-parse "^1.0.7"
1879 | supports-preserve-symlinks-flag "^1.0.0"
1880 |
1881 | semver@^6.0.0, semver@^6.3.0:
1882 | version "6.3.0"
1883 | resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d"
1884 | integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==
1885 |
1886 | semver@^7.3.5:
1887 | version "7.5.1"
1888 | resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.1.tgz#c90c4d631cf74720e46b21c1d37ea07edfab91ec"
1889 | integrity sha512-Wvss5ivl8TMRZXXESstBA4uR5iXgEN/VC5/sOcuXdVLzcdkz4HWetIoRfG5gb5X+ij/G9rw9YoGn3QoQ8OCSpw==
1890 | dependencies:
1891 | lru-cache "^6.0.0"
1892 |
1893 | shebang-command@^2.0.0:
1894 | version "2.0.0"
1895 | resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea"
1896 | integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==
1897 | dependencies:
1898 | shebang-regex "^3.0.0"
1899 |
1900 | shebang-regex@^3.0.0:
1901 | version "3.0.0"
1902 | resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172"
1903 | integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==
1904 |
1905 | signal-exit@^3.0.3, signal-exit@^3.0.7:
1906 | version "3.0.7"
1907 | resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9"
1908 | integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==
1909 |
1910 | sisteransi@^1.0.5:
1911 | version "1.0.5"
1912 | resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.5.tgz#134d681297756437cc05ca01370d3a7a571075ed"
1913 | integrity sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==
1914 |
1915 | slash@^3.0.0:
1916 | version "3.0.0"
1917 | resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634"
1918 | integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==
1919 |
1920 | source-map-support@0.5.13:
1921 | version "0.5.13"
1922 | resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.13.tgz#31b24a9c2e73c2de85066c0feb7d44767ed52932"
1923 | integrity sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==
1924 | dependencies:
1925 | buffer-from "^1.0.0"
1926 | source-map "^0.6.0"
1927 |
1928 | source-map@^0.6.0, source-map@^0.6.1:
1929 | version "0.6.1"
1930 | resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263"
1931 | integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==
1932 |
1933 | sprintf-js@~1.0.2:
1934 | version "1.0.3"
1935 | resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c"
1936 | integrity sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==
1937 |
1938 | stack-utils@^2.0.3:
1939 | version "2.0.6"
1940 | resolved "https://registry.yarnpkg.com/stack-utils/-/stack-utils-2.0.6.tgz#aaf0748169c02fc33c8232abccf933f54a1cc34f"
1941 | integrity sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==
1942 | dependencies:
1943 | escape-string-regexp "^2.0.0"
1944 |
1945 | string-length@^4.0.1:
1946 | version "4.0.2"
1947 | resolved "https://registry.yarnpkg.com/string-length/-/string-length-4.0.2.tgz#a8a8dc7bd5c1a82b9b3c8b87e125f66871b6e57a"
1948 | integrity sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==
1949 | dependencies:
1950 | char-regex "^1.0.2"
1951 | strip-ansi "^6.0.0"
1952 |
1953 | string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3:
1954 | version "4.2.3"
1955 | resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010"
1956 | integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==
1957 | dependencies:
1958 | emoji-regex "^8.0.0"
1959 | is-fullwidth-code-point "^3.0.0"
1960 | strip-ansi "^6.0.1"
1961 |
1962 | strip-ansi@^6.0.0, strip-ansi@^6.0.1:
1963 | version "6.0.1"
1964 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9"
1965 | integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==
1966 | dependencies:
1967 | ansi-regex "^5.0.1"
1968 |
1969 | strip-bom@^4.0.0:
1970 | version "4.0.0"
1971 | resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-4.0.0.tgz#9c3505c1db45bcedca3d9cf7a16f5c5aa3901878"
1972 | integrity sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==
1973 |
1974 | strip-final-newline@^2.0.0:
1975 | version "2.0.0"
1976 | resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad"
1977 | integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==
1978 |
1979 | strip-json-comments@^3.1.1:
1980 | version "3.1.1"
1981 | resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006"
1982 | integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==
1983 |
1984 | supports-color@^5.3.0:
1985 | version "5.5.0"
1986 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f"
1987 | integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==
1988 | dependencies:
1989 | has-flag "^3.0.0"
1990 |
1991 | supports-color@^7.1.0:
1992 | version "7.2.0"
1993 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da"
1994 | integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==
1995 | dependencies:
1996 | has-flag "^4.0.0"
1997 |
1998 | supports-color@^8.0.0:
1999 | version "8.1.1"
2000 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c"
2001 | integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==
2002 | dependencies:
2003 | has-flag "^4.0.0"
2004 |
2005 | supports-preserve-symlinks-flag@^1.0.0:
2006 | version "1.0.0"
2007 | resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09"
2008 | integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==
2009 |
2010 | test-exclude@^6.0.0:
2011 | version "6.0.0"
2012 | resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-6.0.0.tgz#04a8698661d805ea6fa293b6cb9e63ac044ef15e"
2013 | integrity sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==
2014 | dependencies:
2015 | "@istanbuljs/schema" "^0.1.2"
2016 | glob "^7.1.4"
2017 | minimatch "^3.0.4"
2018 |
2019 | tmpl@1.0.5:
2020 | version "1.0.5"
2021 | resolved "https://registry.yarnpkg.com/tmpl/-/tmpl-1.0.5.tgz#8683e0b902bb9c20c4f726e3c0b69f36518c07cc"
2022 | integrity sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==
2023 |
2024 | to-fast-properties@^2.0.0:
2025 | version "2.0.0"
2026 | resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e"
2027 | integrity sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==
2028 |
2029 | to-regex-range@^5.0.1:
2030 | version "5.0.1"
2031 | resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4"
2032 | integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==
2033 | dependencies:
2034 | is-number "^7.0.0"
2035 |
2036 | type-detect@4.0.8:
2037 | version "4.0.8"
2038 | resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c"
2039 | integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==
2040 |
2041 | type-fest@^0.21.3:
2042 | version "0.21.3"
2043 | resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.21.3.tgz#d260a24b0198436e133fa26a524a6d65fa3b2e37"
2044 | integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==
2045 |
2046 | update-browserslist-db@^1.0.11:
2047 | version "1.0.11"
2048 | resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz#9a2a641ad2907ae7b3616506f4b977851db5b940"
2049 | integrity sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA==
2050 | dependencies:
2051 | escalade "^3.1.1"
2052 | picocolors "^1.0.0"
2053 |
2054 | v8-to-istanbul@^9.0.1:
2055 | version "9.1.0"
2056 | resolved "https://registry.yarnpkg.com/v8-to-istanbul/-/v8-to-istanbul-9.1.0.tgz#1b83ed4e397f58c85c266a570fc2558b5feb9265"
2057 | integrity sha512-6z3GW9x8G1gd+JIIgQQQxXuiJtCXeAjp6RaPEPLv62mH3iPHPxV6W3robxtCzNErRo6ZwTmzWhsbNvjyEBKzKA==
2058 | dependencies:
2059 | "@jridgewell/trace-mapping" "^0.3.12"
2060 | "@types/istanbul-lib-coverage" "^2.0.1"
2061 | convert-source-map "^1.6.0"
2062 |
2063 | walker@^1.0.8:
2064 | version "1.0.8"
2065 | resolved "https://registry.yarnpkg.com/walker/-/walker-1.0.8.tgz#bd498db477afe573dc04185f011d3ab8a8d7653f"
2066 | integrity sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==
2067 | dependencies:
2068 | makeerror "1.0.12"
2069 |
2070 | which@^2.0.1:
2071 | version "2.0.2"
2072 | resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1"
2073 | integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==
2074 | dependencies:
2075 | isexe "^2.0.0"
2076 |
2077 | wrap-ansi@^7.0.0:
2078 | version "7.0.0"
2079 | resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43"
2080 | integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==
2081 | dependencies:
2082 | ansi-styles "^4.0.0"
2083 | string-width "^4.1.0"
2084 | strip-ansi "^6.0.0"
2085 |
2086 | wrappy@1:
2087 | version "1.0.2"
2088 | resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
2089 | integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==
2090 |
2091 | write-file-atomic@^4.0.2:
2092 | version "4.0.2"
2093 | resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-4.0.2.tgz#a9df01ae5b77858a027fd2e80768ee433555fcfd"
2094 | integrity sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==
2095 | dependencies:
2096 | imurmurhash "^0.1.4"
2097 | signal-exit "^3.0.7"
2098 |
2099 | y18n@^5.0.5:
2100 | version "5.0.8"
2101 | resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55"
2102 | integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==
2103 |
2104 | yallist@^3.0.2:
2105 | version "3.1.1"
2106 | resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd"
2107 | integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==
2108 |
2109 | yallist@^4.0.0:
2110 | version "4.0.0"
2111 | resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72"
2112 | integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==
2113 |
2114 | yargs-parser@^21.1.1:
2115 | version "21.1.1"
2116 | resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.1.1.tgz#9096bceebf990d21bb31fa9516e0ede294a77d35"
2117 | integrity sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==
2118 |
2119 | yargs@^17.3.1:
2120 | version "17.7.2"
2121 | resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.7.2.tgz#991df39aca675a192b816e1e0363f9d75d2aa269"
2122 | integrity sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==
2123 | dependencies:
2124 | cliui "^8.0.1"
2125 | escalade "^3.1.1"
2126 | get-caller-file "^2.0.5"
2127 | require-directory "^2.1.1"
2128 | string-width "^4.2.3"
2129 | y18n "^5.0.5"
2130 | yargs-parser "^21.1.1"
2131 |
2132 | yocto-queue@^0.1.0:
2133 | version "0.1.0"
2134 | resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b"
2135 | integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==
2136 |
--------------------------------------------------------------------------------