├── .github
└── workflows
│ └── ci.yml
├── .gitignore
├── LICENSE
├── README.md
├── cypress.json
├── cypress
├── integration
│ └── multiselect.js
└── support
│ ├── commands.js
│ └── index.js
├── examples
├── cars.json
├── index.html
├── preload.html
├── search.html
├── static.html
├── stimulus-multiselect.css
└── stimulus-multiselect.js
├── package-lock.json
├── package.json
├── src
├── multiselect.css
└── multiselect.js
└── yarn.lock
/.github/workflows/ci.yml:
--------------------------------------------------------------------------------
1 | name: Tests
2 | on: [push, pull_request]
3 | jobs:
4 | cypress-run:
5 | runs-on: ubuntu-latest
6 | steps:
7 | - name: Checkout
8 | uses: actions/checkout@v3
9 |
10 | - name: Run tests
11 | uses: cypress-io/github-action@v3
12 | with:
13 | command: yarn run test
14 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | .DS_Store
2 | /node_modules
3 | yarn-error.log
4 | cypress/screenshots/
5 | cypress/videos/
6 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2022 Vernes
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 | # Stimulus Multiselect controller
2 | Multiselect component built on the back of stimulus and html select tag. Works with static imbedded json inside html, preloaded items from server and searching remotely.
3 |
4 | 
5 |
6 | ## Installation
7 |
8 | If you are using a js bundler with `node_modules` support (such as esbuild, rollup.js or Webpack) install the package from npm:
9 |
10 | ```plain
11 | yarn add @wizardhealth/stimulus-multiselect
12 | ```
13 |
14 | If you're using [importmap-rails](https://github.com/rails/importmap-rails), you'll need to pin `@wizardhealth/stimulus-multiselect`:
15 |
16 | ```plain
17 | ./bin/importmap pin @wizardhealth/stimulus-multiselect
18 | ```
19 |
20 | ## Usage
21 |
22 | Load your stimulus application as usual and the register the multiselect
23 | controller with it:
24 |
25 | ```javascript
26 | import { Application } from '@hotwired/stimulus'
27 | import { Multiselect } from '@wizardhealth/stimulus-multiselect'
28 |
29 | const application = Application.start()
30 | application.register('multiselect', Multiselect)
31 | ```
32 |
33 | ### Remote search
34 |
35 | Fetches the data from the server by specifying endpoint url in `data-multiselect-search-url` attribute.
36 | This is useful when you have a lot of data to load and you don't want to load it all at once.
37 |
38 | Example:
39 | ```html
40 |
41 |
42 |
43 | ```
44 |
45 | The component makes a request to the `data-multiselect-search-url` to fetch results for the contents of the input field. The server must answer with a json array:
46 |
47 | ```json
48 | [
49 | {
50 | "value": "toyota",
51 | "text": "Jaris 🚗"
52 | },
53 | {
54 | "value": "ambulance",
55 | "text": "Ambulance 🚑"
56 | },
57 | {
58 | "value": "police",
59 | "text": "Police 🚓"
60 | },
61 | {
62 | "value": "taxi",
63 | "text": "Taxi 🚕"
64 | },
65 | {
66 | "value": "truck",
67 | "text": "Truck 🚚"
68 | }
69 | ]
70 | ```
71 |
72 | **Note**: each object has to contain `value` and `text`. The server will receive a `q` query param that represents the search term. Another query param sent while searching is the `preselects` param that contains a set of already selected values in the multiselect (a string separated by a comma ",").
73 |
74 | ### Preload
75 |
76 | Fetches the data from the server when the page renders by specifying endpoint url in `data-preload-preload-url` attribute.
77 | This is useful for small to medium size datasets that will not slow the page load.
78 |
79 | Example:
80 | ```html
81 |
82 |
83 |
84 | ```
85 |
86 | With this setup the component will search through the already preloaded components. In order to search remotely as well as preloading components we just need to add the `data-multiselect-search-url-value` attribute.
87 |
88 | **Note**: the server response for the preload url needs to provide a json array just like in the example above.
89 |
90 | ### Static collection
91 |
92 | It is possible to use the `data-multiselect-items-value` attribute to load static json data. This is especially useful when your html is being preprocessed before being served (Rails ERB or as a React snippet - `data-multiselect-items-value="<%= @cars.to_json %>"`).
93 |
94 | ```html
95 |
96 |
97 |
98 | ```
99 |
100 | ## Good to know
101 |
102 | - The initial html markup contains a hidden select which serves as a hook for any forms that contain the multiselect. This select will reflect all changes on the multiselect. As an additional helper, if the multiselect is used outside of Stimulus scope, it is possible to get all the selected values via the `values` property:
103 |
104 | ```js
105 | document.getElementById("multiselect_id").values
106 | ```
107 |
108 | - The multiselect comes with a .css file with some styles but feel free to change it when using it in your app.
109 |
110 | ### Accessibility
111 |
112 | - Arrow navigation on the elements in the dropdown
113 | - Selecting elements with Enter key
114 | - Close dropdown on Escape
115 | - If search is empty Backspace deletes the last item
116 |
117 |
118 | ## Events
119 |
120 | - `multiselect-change` whenever an element is added or removed
121 | - `multiselect-removed` whenever an element is removed. This event contains the value of the removed element in the events `detail` under `id`:
122 |
123 | ```javascript
124 | myFunction(event) {
125 | console.log(event.detail.id) // Should print the value of the item removed - 13
126 | }
127 | ```
128 |
129 | - `multiselect-added` whenever an element is added. This event contains the added object in the events `detail` under `item`:
130 |
131 | ```javascript
132 | myFunction(event) {
133 | console.log(event.detail.item) // Should print the added object - { "value": "test", "text": "Test" }
134 | }
135 | ```
136 | - `multiselect-addable` If the addable url is added to the multiselect when the search provides no results a link appears. Pressing this link fires this event. You can use this event as a hook to decide how you want to handle adding a non-existing element to the multiselect.
137 |
138 | ## Examples
139 |
140 | The current examples are contained in the [examples folder](https://github.com/WizardComputer/stimulus-multiselect/tree/main/examples). You can use the included http-server to test the examples.
141 |
142 | ## Contributing
143 |
144 | Bug reports and pull requests are welcome on GitHub at https://github.com/WizardComputer/stimulus-multiselect. Any contributions or suggestions are wellcome and will be considered. Please read the [Contributor Covenant code of conduct](https://www.contributor-covenant.org/).
145 |
146 |
147 | ## TODO
148 | * Explain addable
149 | * Explain preselecting
150 |
151 |
152 | ## Releasing
153 |
154 | 1. Update the version number in `package.json`. Try to follow semantic versioning guidelines as much as possible.
155 |
156 | 2. Publish the package to npmjs.com with `yarn run release`
157 |
158 | ## License
159 |
160 | This package is available as open source under the terms of the MIT License.
161 |
--------------------------------------------------------------------------------
/cypress.json:
--------------------------------------------------------------------------------
1 | {
2 | "baseUrl": "http://localhost:3300",
3 | "pluginsFile": false
4 | }
--------------------------------------------------------------------------------
/cypress/integration/multiselect.js:
--------------------------------------------------------------------------------
1 | describe("Stimulus multiselect", () => {
2 | const resultsListSelector = "[data-multiselect-target='list'] li"
3 |
4 | it("displays results on click", () => {
5 | cy.visitPage()
6 | cy.clickOnSelect()
7 | cy.get(resultsListSelector).should("have.length", 3)
8 | })
9 |
10 | it("filters results on base on the search term", () => {
11 | cy.visitPage()
12 |
13 | cy.enterSearchTerm("Roost")
14 | cy.get(resultsListSelector).should("have.length", 1)
15 |
16 | cy.enterSearchTerm("no-results")
17 | cy.get(resultsListSelector).should('not.exist')
18 | })
19 | })
--------------------------------------------------------------------------------
/cypress/support/commands.js:
--------------------------------------------------------------------------------
1 | const resultsListSelector = "[data-multiselect-target='list'] li"
2 | const input = "[data-multiselect-target='search']"
3 |
4 | Cypress.Commands.add("visitPage", (path = "/") => {
5 | cy.visit(path)
6 | })
7 |
8 | Cypress.Commands.add("enterSearchTerm", (term) => {
9 | cy.get(input).type(term)
10 | })
11 |
12 | Cypress.Commands.add("clickOnSelect", () => {
13 | const element = cy.get(".multiselect__container")
14 | element.click()
15 | })
16 |
--------------------------------------------------------------------------------
/cypress/support/index.js:
--------------------------------------------------------------------------------
1 | import './commands'
2 |
3 |
--------------------------------------------------------------------------------
/examples/cars.json:
--------------------------------------------------------------------------------
1 | [
2 | { "value": "toyota", "text": "Jaris 🚗" },
3 | { "value": "ambulance", "text": "Ambulance 🚑" },
4 | { "value": "police", "text": "Police 🚓" },
5 | { "value": "taxi", "text": "Taxi 🚕" },
6 | { "value": "truck", "text": "Truck 🚚" }
7 | ]
--------------------------------------------------------------------------------
/examples/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | Stimulus Multiselect
7 |
8 |
9 |
10 |
11 |
12 |
19 |
20 |
27 |
28 |
29 |
30 |
31 |
Stimulus multiselect example
32 |
33 |
38 |
39 |
40 |
41 |
--------------------------------------------------------------------------------
/examples/preload.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | Stimulus Multiselect
7 |
8 |
9 |
10 |
11 |
12 |
19 |
20 |
27 |
28 |
29 |
30 |
31 |
Stimulus multiselect example
32 |
33 |
38 |
39 |
40 |
41 |
--------------------------------------------------------------------------------
/examples/search.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | Stimulus Multiselect
7 |
8 |
9 |
10 |
11 |
12 |
19 |
20 |
27 |
28 |
29 |
30 |
31 |
Stimulus multiselect example
32 |
The search will show all items since this http-server doesnt have an actual backend to filter out the results
33 |
38 |
39 |
40 |
41 |
--------------------------------------------------------------------------------
/examples/static.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | Stimulus Multiselect
7 |
8 |
9 |
10 |
11 |
12 |
20 |
21 |
28 |
29 |
30 |
31 |
32 |
Stimulus multiselect example
33 |
34 |
39 |
40 |
41 |
42 |
--------------------------------------------------------------------------------
/examples/stimulus-multiselect.css:
--------------------------------------------------------------------------------
1 | ../src/multiselect.css
--------------------------------------------------------------------------------
/examples/stimulus-multiselect.js:
--------------------------------------------------------------------------------
1 | ../src/multiselect.js
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "stimulus-multiselect",
3 | "version": "3.0.2",
4 | "description": "Multiselect component built on the back of stimulus and html select tag",
5 | "type": "module",
6 | "main": "src/multiselect.js",
7 | "exports": "./src/multiselect.js",
8 | "source": "src/multiselect.js",
9 | "author": "Vernes Pendić ",
10 | "license": "MIT",
11 | "private": false,
12 | "keywords": [
13 | "stimulus",
14 | "multiselect",
15 | "controller",
16 | "components"
17 | ],
18 | "repository": {
19 | "type": "git",
20 | "url": "https://github.com/BakiVernes/stimulus-multiselect"
21 | },
22 | "bugs": {
23 | "url": "https://github.com/BakiVernes/stimulus-multiselect/issues"
24 | },
25 | "homepage": "https://github.com/BakiVernes/stimulus-multiselect",
26 | "peerDependencies": {
27 | "@hotwired/stimulus": "^3.1.0"
28 | },
29 | "devDependencies": {
30 | "@hotwired/stimulus": "^3.1.0",
31 | "cypress": "^9.2.0",
32 | "http-server": "^14.0.0",
33 | "start-server-and-test": "^1.14.0"
34 | },
35 | "scripts": {
36 | "start": "http-server ./examples -p 3300",
37 | "cy:run": "cypress run",
38 | "test": "start-server-and-test start http://localhost:3300 cy:run",
39 | "postversion": "git push && git push --tags",
40 | "release": "yarn test && yarn version && npm adduser && npm publish"
41 | }
42 | }
43 |
--------------------------------------------------------------------------------
/src/multiselect.css:
--------------------------------------------------------------------------------
1 | .multiselect__container {
2 | font-family: sans-serif;
3 | padding-top: 0.4rem;
4 | padding-bottom: 0.4rem;
5 | padding-right: 1.75rem;
6 | padding-left: 0.5rem;
7 | background: url("data:image/svg+xml;utf8, ") no-repeat right #ddd;
8 | background-color: transparent;
9 | border-radius: 0.25rem;
10 | appearance: none;
11 | border: 1px solid rgb(218 218 218);
12 | outline-offset: 2px;
13 | outline: transparent solid 2px;
14 | color: rgb(55 61 63);
15 | line-height: 1.5;
16 | font-style: normal;
17 | font-weight: 400;
18 | font-size: 0.875rem;
19 | cursor: pointer;
20 | }
21 |
22 | .multiselect__no-result {
23 | color: rgb(112 112 112);
24 | padding: 0.75rem;
25 | font-size: 0.875rem;
26 | }
27 |
28 | .multiselect__addable-button {
29 | padding: 0.5rem;
30 | text-decoration-line: underline;
31 | color: rgb(55 61 63);
32 | cursor: pointer;
33 | }
34 |
35 | .multiselect__addable-button:hover {
36 | color: rgb(29 115 186);
37 | }
38 |
39 | .multiselect__container:focus-within {
40 | border-color: rgb(44 141 222);
41 | --tw-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);
42 | --tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -1px var(--tw-shadow-color);
43 | box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
44 | }
45 |
46 | .multiselect__container--disabled {
47 | background-color: rgb(240 240 240);
48 | cursor: not-allowed;
49 | }
50 |
51 | .multiselect__container:hover {
52 | --tw-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px 0 rgba(0, 0, 0, 0.06);
53 | --tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px 0 var(--tw-shadow-color);
54 | box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
55 | }
56 |
57 | .multiselect__hidden {
58 | display: none;
59 | }
60 |
61 | .multiselect__preview {
62 | width: -webkit-fill-available;
63 | width: -moz-available;
64 | width: -webkit-fill-available;
65 | gap: 0.5rem;
66 | font-size: 0.875rem;
67 | display: flex;
68 | flex-wrap: wrap;
69 | }
70 |
71 | .multiselect__pill {
72 | max-width: fill-available;
73 | color: rgb(55 61 63);
74 | font-size: 0.75rem;
75 | padding-left: 0.5rem;
76 | background-color: rgb(250 249 244);
77 | border: 1px solid #f0f0f0;
78 | border-radius: 0.25rem;
79 | display: flex;
80 | }
81 |
82 | .multiselect__pill-delete {
83 | padding: 0.25rem 0.5rem 0.25rem 0.5rem;
84 | border-top-right-radius: 0.25rem;
85 | border-bottom-right-radius: 0.25rem;
86 | align-items: center;
87 | display: flex;
88 | margin-left: 0.25rem;
89 | }
90 |
91 | .multiselect__pill-delete:hover {
92 | background-color: rgb(254 178 178);
93 | }
94 |
95 | .multiselect__pill:hover svg{
96 | fill: rgb(246, 71, 71);
97 | }
98 |
99 | .multiselect__pill-text {
100 | text-overflow: ellipsis;
101 | white-space: nowrap;
102 | overflow: hidden;
103 | padding-top: 0.25rem;
104 | padding-bottom: 0.25rem;
105 | }
106 |
107 | .multiselect__input-container {
108 | display: flex;
109 | }
110 |
111 | .multiselect__focused {
112 | background-color: #f4fbff;
113 | }
114 |
115 | .multiselect__placeholder {
116 | color: rgb(174 174 174);
117 | font-style: italic;
118 | padding-left: 0.25rem;
119 | opacity: 1;
120 | }
121 |
122 | .multiselect__addable {
123 | text-decoration-line: underline;
124 | color: rgb(112 112 112);
125 | text-align: center;
126 | }
127 |
128 | .multiselect__addable:hover {
129 | color: rgb(55 61 63);
130 | }
131 |
132 | .multiselect__search {
133 | width: 100%;
134 | outline: 2px solid transparent;
135 | outline-offset: 2px;
136 | border: transparent;
137 | color: rgb(55 61 63);
138 | font-size: 0.875rem;
139 | padding-left: 0.25rem;
140 | }
141 |
142 | .multiselect__search:focus::placeholder {
143 | color: rgb(112 112 112);
144 | }
145 |
146 | .multiselect__search:disabled {
147 | background-color: rgb(240 240 240);
148 | cursor: not-allowed;
149 | }
150 |
151 | .multiselect__search::placeholder {
152 | font-style: italic;
153 | opacity: 1;
154 | color: rgb(174 174 174);
155 | }
156 |
157 | .multiselect__list {
158 | max-height: 400px;
159 | overflow-y: auto;
160 | list-style-type: none;
161 | margin: 0;
162 | padding: 0;
163 | }
164 |
165 | .multiselect__list li {
166 | display: block;
167 | align-items: center;
168 | font-size: 0.875rem;
169 | color: rgb(112 112 112);
170 | border-top-width: 1;
171 | }
172 |
173 |
174 | .multiselect__list li:first {
175 | border-top-width: 0;
176 | }
177 |
178 | .multiselect__list li:hover {
179 | background-color: rgb(244 251 255);
180 | }
181 |
182 | .multiselect__list li label {
183 | padding: 0.75rem;
184 | align-items: center;
185 | cursor: pointer;
186 | display: flex;
187 | }
188 |
189 | .multiselect__list li:first-child {
190 | border-top-left-radius: 0.25rem;
191 | border-top-right-radius: 0.25rem;
192 | }
193 |
194 | .multiselect__list li:last-child {
195 | border-bottom-left-radius: 0.25rem;
196 | border-bottom-right-radius: 0.25rem;
197 | }
198 |
199 | .multiselect__list li input {
200 | margin-right: 0.75rem;
201 | }
202 |
203 | .multiselect__dropdown {
204 | --tw-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);
205 | --tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -1px var(--tw-shadow-color);
206 | box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
207 | background-color: rgb(255 255 255);
208 | border: 1px solid rgb(218 218 218);
209 | width: 100%;
210 | border-radius: 0.25rem;
211 | display: none;
212 | margin-top: 0.5rem;
213 | z-index: 50;
214 | position: absolute;
215 | }
216 |
217 | .multiselect__dropdown--open {
218 | display: block;
219 | }
220 |
--------------------------------------------------------------------------------
/src/multiselect.js:
--------------------------------------------------------------------------------
1 | const activeSelector = "[aria-selected='true']"
2 |
3 | import { Controller } from "@hotwired/stimulus"
4 |
5 | export default class Multiselect extends Controller {
6 | static targets = ["hidden", "list", "search", "preview", "dropdown", "item", "addable", "inputContainer"]
7 |
8 | static values = {
9 | items: Array,
10 | selected: Array,
11 | searchUrl: String,
12 | searchRemote: { type: Boolean, default: false },
13 | preloadUrl: String,
14 | addableUrl: String,
15 | disabled: { type: Boolean, default: false }
16 | }
17 |
18 | connect() {
19 | this.hiddenTarget.insertAdjacentHTML("afterend", this.template)
20 | if (this.selectedValue.length) this.selectedValueChanged()
21 | this.search = debounce(this.search.bind(this), 300)
22 | this.enhanceHiddenSelect()
23 | if (this.preloadUrlValue) this.preload()
24 | }
25 |
26 | // Allows selecting the hidden select field from html and extracting selected id values:
27 | // document.getElementById("selectId").values - [2, 4, 23]
28 | enhanceHiddenSelect() {
29 | Object.defineProperty(this.hiddenTarget, "values", {
30 | get: () => {
31 | if (this.selectedValue.length <= 0) return []
32 |
33 | return this.selectedValue.map(item => item.value)
34 | }
35 | })
36 | }
37 |
38 | search() {
39 | if (this.searchRemoteValue) return this.searchRemote()
40 |
41 | this.searchLocal()
42 | }
43 |
44 | async searchRemote() {
45 | if (this.searchTarget.value === "") return
46 |
47 | const response = await fetch(this.searchUrlValue + "?" + new URLSearchParams({
48 | q: this.searchTarget.value,
49 | preselects: this.selectedValue.map(x => x.value).join(",")
50 | }))
51 |
52 | const searchedItems = await response.json()
53 |
54 | this.itemsValue = searchedItems
55 | this.dropdownTarget.classList.add("multiselect__dropdown--open")
56 | }
57 |
58 | searchLocal() {
59 | this.dropdownTarget.classList.add("multiselect__dropdown--open")
60 | if (this.searchTarget.value === "") {
61 | let theRestOfTheItems = this.itemsValue.filter(x => !this.selectedValue.map(y => y.value).includes(x.value))
62 | this.listTarget.innerHTML = this.selectedItems
63 | this.listTarget.insertAdjacentHTML("beforeend", this.items(theRestOfTheItems))
64 | }
65 |
66 | let searched = this.itemsValue.filter(item => {
67 | return item.text.toLowerCase().includes(this.searchTarget.value.toLowerCase())
68 | })
69 |
70 | let selectedSearched = this.selectedValue.filter(item => {
71 | return item.text.toLowerCase().includes(this.searchTarget.value.toLowerCase())
72 | })
73 |
74 | searched = searched.filter(x => !selectedSearched.map(y => y.value).includes(x.value))
75 |
76 | if (searched.length === 0 && this.addableUrlValue) {
77 | return this.listTarget.innerHTML = this.noResultsTemplate
78 | }
79 |
80 | if (searched.length === 0) this.dropdownTarget.classList.remove("multiselect__dropdown--open")
81 | this.listTarget.innerHTML = this.items(selectedSearched, true)
82 | this.listTarget.insertAdjacentHTML("beforeend", this.items(searched))
83 | }
84 |
85 | async preload() {
86 | const response = await fetch(this.preloadUrlValue)
87 |
88 | const items = await response.json()
89 | this.itemsValue = items
90 | }
91 |
92 | toggleDropdown() {
93 | if (this.dropdownTarget.classList.contains("multiselect__dropdown--open")) {
94 | this.dropdownTarget.classList.remove("multiselect__dropdown--open")
95 | if (this.selectedValue.length > 0) this.inputContainerTarget.style.display = "none"
96 | this.searchTarget.blur()
97 | } else {
98 | if (this.itemsValue.length) this.dropdownTarget.classList.add("multiselect__dropdown--open")
99 | this.searchTarget.focus()
100 | }
101 | }
102 |
103 | closeOnClickOutside({ target }) {
104 | if (this.element.contains(target)) return
105 |
106 | this.dropdownTarget.classList.remove("multiselect__dropdown--open")
107 | if (this.selectedValue.length > 0) this.inputContainerTarget.style.display = "none"
108 | this.searchTarget.value = ""
109 | if (!this.searchRemoteValue) {
110 | this.listTarget.innerHTML = this.allItems
111 | this.selectedValue.forEach(selected => {
112 | this.checkItem(selected.value)
113 | })
114 | }
115 | }
116 |
117 | searchUrlValueChanged() {
118 | if (this.searchUrlValue) this.searchRemoteValue = true
119 | }
120 |
121 | itemsValueChanged() {
122 | if (!this.hasListTarget) return
123 |
124 | if (this.itemsValue.length) {
125 | this.listTarget.innerHTML = this.items(this.itemsValue)
126 | } else {
127 | this.listTarget.innerHTML = this.noResultsTemplate
128 | }
129 | }
130 |
131 | selectedValueChanged() {
132 | if (!this.hasPreviewTarget) return
133 |
134 | while (this.hiddenTarget.options.length) this.hiddenTarget.remove(0)
135 |
136 | if (this.selectedValue.length > 0) {
137 | this.previewTarget.innerHTML = this.pills
138 | this.searchTarget.style.paddingTop = "0.5rem"
139 |
140 | this.selectedValue.forEach(selected => {
141 | const option = document.createElement("option")
142 | option.text = selected.text
143 | option.value = selected.value
144 | option.setAttribute("selected", true)
145 | this.hiddenTarget.add(option)
146 | })
147 |
148 | if (!this.searchRemoteValue) {
149 | this.selectedValue.forEach(selected => {
150 | this.checkItem(selected.value)
151 | })
152 | }
153 | } else {
154 | this.searchTarget.style.paddingTop = "0"
155 | this.inputContainerTarget.style.display = ""
156 | this.previewTarget.innerHTML = ""
157 | }
158 |
159 | this.element.dispatchEvent(new Event("multiselect-change"))
160 | }
161 |
162 | removeItem(e) {
163 | e.stopPropagation()
164 |
165 | const itemToRemove = e.currentTarget.parentNode
166 |
167 | this.selectedValue = this.selectedValue.filter(x => x.value.toString() !== itemToRemove.dataset.value)
168 | this.uncheckItem(itemToRemove.dataset.value)
169 | this.element.dispatchEvent(new CustomEvent("multiselect-removed", { detail: { id: itemToRemove.dataset.value } }))
170 | }
171 |
172 | uncheckItem(value) {
173 | const itemToUncheck = this.listTarget.querySelector(`input[data-value="${value}"]`)
174 |
175 | if (itemToUncheck) itemToUncheck.checked = false
176 | }
177 |
178 | checkItem(value) {
179 | const itemToCheck = this.listTarget.querySelector(`input[data-value="${value}"]`)
180 |
181 | if (itemToCheck) itemToCheck.checked = true
182 | }
183 |
184 | toggleItem(input) {
185 | const item = {
186 | text: input.dataset.text,
187 | value: input.dataset.value
188 | }
189 | let newSelectedArray = this.selectedValue
190 |
191 | if (input.checked) {
192 | newSelectedArray.push(item)
193 |
194 | if (this.focusedItem) {
195 | this.focusedItem.closest("li").classList.remove("multiselect__focused")
196 | this.focusedItem.removeAttribute("aria-selected")
197 | }
198 |
199 | input.setAttribute("aria-selected", "true")
200 | input.closest("li").classList.add("multiselect__focused")
201 | this.element.dispatchEvent(new CustomEvent("multiselect-added", { detail: { item: item } }))
202 | } else {
203 | newSelectedArray = newSelectedArray.filter(selected => selected.value.toString() !== item.value)
204 | this.element.dispatchEvent(new CustomEvent("multiselect-removed", { detail: { id: item.value } }))
205 | }
206 |
207 | this.selectedValue = newSelectedArray
208 | }
209 |
210 | onKeyDown(e) {
211 | const handler = this[`on${e.key}Keydown`]
212 | if (handler) handler(e)
213 | }
214 |
215 | onArrowDownKeydown = (event) => {
216 | const item = this.sibling(true)
217 | if (item) this.navigate(item)
218 | event.preventDefault()
219 | }
220 |
221 | onArrowUpKeydown = (event) => {
222 | const item = this.sibling(false)
223 | if (item) this.navigate(item)
224 | event.preventDefault()
225 | }
226 |
227 | onBackspaceKeydown = () => {
228 | if (this.searchTarget.value !== "") return
229 | if (!this.selectedValue.length) return
230 |
231 | const selected = this.selectedValue
232 | const value = selected.pop().value
233 |
234 | this.uncheckItem(value)
235 | this.selectedValue = selected
236 | this.element.dispatchEvent(new CustomEvent("multiselect-removed", { detail: { id: value } }))
237 | }
238 |
239 | onEnterKeydown = (e) => {
240 | if (this.focusedItem) this.focusedItem.click()
241 | }
242 |
243 | onEscapeKeydown = () => {
244 | if (this.searchTarget.value !== "") {
245 | this.searchTarget.value = ""
246 | return this.search()
247 | }
248 |
249 | this.toggleDropdown()
250 | }
251 |
252 | sibling(next) {
253 | const options = this.itemTargets
254 | const selected = this.focusedItem
255 | const index = options.indexOf(selected)
256 | const sibling = next ? options[index + 1] : options[index - 1]
257 | const def = next ? options[0] : options[options.length - 1]
258 | return sibling || def
259 | }
260 |
261 | async addable(e) {
262 | e.preventDefault()
263 | const query = this.searchTarget.value
264 |
265 | if (query === "" || this.itemsValue.some(item => item.text === query)) return
266 |
267 | const response = await fetch(this.addableUrlValue, {
268 | method: "POST",
269 | body: JSON.stringify({ addable: query })
270 | })
271 | if (response.ok) {
272 | const addedItem = await response.json()
273 |
274 | this.addAddableItem(addedItem)
275 | }
276 | }
277 |
278 | addAddableItem(addedItem) {
279 | this.itemsValue = this.itemsValue.concat(addedItem)
280 | this.selectedValue = this.selectedValue.concat(addedItem)
281 | this.searchTarget.value = ""
282 | this.element.dispatchEvent(new CustomEvent("multiselect-added", { detail: { item: addedItem } }))
283 | }
284 |
285 | navigate(target) {
286 | const previouslySelected = this.focusedItem
287 | if (previouslySelected) {
288 | previouslySelected.removeAttribute("aria-selected")
289 | previouslySelected.closest("li").classList.remove("multiselect__focused")
290 | }
291 |
292 | target.setAttribute("aria-selected", "true")
293 | target.closest("li").classList.add("multiselect__focused")
294 | target.scrollIntoView({ behavior: "smooth", block: "nearest" })
295 | }
296 |
297 | get focusedItem() {
298 | return this.listTarget.querySelector(activeSelector)
299 | }
300 |
301 | focusSearch() {
302 | this.inputContainerTarget.style.display = ""
303 | this.searchTarget.focus()
304 | }
305 |
306 | addableEvent() {
307 | document.dispatchEvent(new CustomEvent("multiselect-addable"))
308 | }
309 |
310 | get template() {
311 | return `
312 |
313 |
314 |
315 |
${this.inputTemplate}
316 |
317 |
318 |
319 |
320 | ${this.allItems}
321 |
322 |
323 |
324 | `
325 | }
326 |
327 | get noResultsTemplate() {
328 | if (!this.addableUrlValue) return `${this.element.dataset.noResultsMessage}
`
329 | return `
330 |
331 |
332 | ${this.element.dataset.addablePlaceholder}
333 |
334 |
335 | `
336 | }
337 |
338 | get inputTemplate() {
339 | return `
340 |
343 | `
344 | }
345 |
346 | items(items, selected = false) {
347 | const checked = selected ? "checked" : ""
348 | let itemsTemplate = ""
349 |
350 | items.forEach(item => itemsTemplate += this.itemTemplate(item, checked))
351 |
352 | return itemsTemplate
353 | }
354 |
355 | get pills() {
356 | let itemsTemplate = ""
357 |
358 | this.selectedValue.forEach(item => itemsTemplate += this.pillTemplate(item))
359 |
360 | return itemsTemplate
361 | }
362 |
363 | get selectedItems() {
364 | return this.items(this.selectedValue, true)
365 | }
366 |
367 | get allItems() {
368 | return this.items(this.itemsValue)
369 | }
370 |
371 | itemTemplate(item, selected = "") {
372 | return `
373 |
374 |
375 |
377 | ${item.text}
378 |
379 |
380 | `
381 | }
382 |
383 | checkBoxChange(event) {
384 | event.preventDefault()
385 | this.searchTarget.focus()
386 | this.toggleItem(event.currentTarget)
387 | }
388 |
389 | pillTemplate(item) {
390 | if (this.disabledValue) {
391 | return `
392 | ${item.text}
393 |
`
394 | } else {
395 | return `
396 |
${item.text}
397 |
398 |
399 |
400 |
401 |
402 |
403 |
`
404 | }
405 | }
406 | }
407 |
408 | function debounce(fn, delay) {
409 | let timeoutId = null
410 |
411 | return (...args) => {
412 | const callback = () => fn.apply(this, args)
413 | clearTimeout(timeoutId)
414 | timeoutId = setTimeout(callback, delay)
415 | }
416 | }
417 |
418 | export { Multiselect }
--------------------------------------------------------------------------------
/yarn.lock:
--------------------------------------------------------------------------------
1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
2 | # yarn lockfile v1
3 |
4 |
5 | "@colors/colors@1.5.0":
6 | version "1.5.0"
7 | resolved "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz"
8 | integrity sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==
9 |
10 | "@cypress/request@^2.88.10":
11 | version "2.88.10"
12 | resolved "https://registry.npmjs.org/@cypress/request/-/request-2.88.10.tgz"
13 | integrity sha512-Zp7F+R93N0yZyG34GutyTNr+okam7s/Fzc1+i3kcqOP8vk6OuajuE9qZJ6Rs+10/1JFtXFYMdyarnU1rZuJesg==
14 | dependencies:
15 | aws-sign2 "~0.7.0"
16 | aws4 "^1.8.0"
17 | caseless "~0.12.0"
18 | combined-stream "~1.0.6"
19 | extend "~3.0.2"
20 | forever-agent "~0.6.1"
21 | form-data "~2.3.2"
22 | http-signature "~1.3.6"
23 | is-typedarray "~1.0.0"
24 | isstream "~0.1.2"
25 | json-stringify-safe "~5.0.1"
26 | mime-types "~2.1.19"
27 | performance-now "^2.1.0"
28 | qs "~6.5.2"
29 | safe-buffer "^5.1.2"
30 | tough-cookie "~2.5.0"
31 | tunnel-agent "^0.6.0"
32 | uuid "^8.3.2"
33 |
34 | "@cypress/xvfb@^1.2.4":
35 | version "1.2.4"
36 | resolved "https://registry.npmjs.org/@cypress/xvfb/-/xvfb-1.2.4.tgz"
37 | integrity sha512-skbBzPggOVYCbnGgV+0dmBdW/s77ZkAOXIC1knS8NagwDjBrNC1LuXtQJeiN6l+m7lzmHtaoUw/ctJKdqkG57Q==
38 | dependencies:
39 | debug "^3.1.0"
40 | lodash.once "^4.1.1"
41 |
42 | "@hapi/hoek@^9.0.0":
43 | version "9.3.0"
44 | resolved "https://registry.yarnpkg.com/@hapi/hoek/-/hoek-9.3.0.tgz#8368869dcb735be2e7f5cb7647de78e167a251fb"
45 | integrity sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ==
46 |
47 | "@hapi/topo@^5.0.0":
48 | version "5.1.0"
49 | resolved "https://registry.yarnpkg.com/@hapi/topo/-/topo-5.1.0.tgz#dc448e332c6c6e37a4dc02fd84ba8d44b9afb012"
50 | integrity sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==
51 | dependencies:
52 | "@hapi/hoek" "^9.0.0"
53 |
54 | "@hotwired/stimulus@^3.1.0":
55 | version "3.1.0"
56 | resolved "https://registry.npmjs.org/@hotwired/stimulus/-/stimulus-3.1.0.tgz"
57 | integrity sha512-iDMHUhiEJ1xFeicyHcZQQgBzhtk5mPR0QZO3L6wtqzMsJEk2TKECuCQTGKjm+KJTHVY0dKq1dOOAWvODjpd2Mg==
58 |
59 | "@sideway/address@^4.1.3":
60 | version "4.1.4"
61 | resolved "https://registry.yarnpkg.com/@sideway/address/-/address-4.1.4.tgz#03dccebc6ea47fdc226f7d3d1ad512955d4783f0"
62 | integrity sha512-7vwq+rOHVWjyXxVlR76Agnvhy8I9rpzjosTESvmhNeXOXdZZB15Fl+TI9x1SiHZH5Jv2wTGduSxFDIaq0m3DUw==
63 | dependencies:
64 | "@hapi/hoek" "^9.0.0"
65 |
66 | "@sideway/formula@^3.0.0":
67 | version "3.0.0"
68 | resolved "https://registry.yarnpkg.com/@sideway/formula/-/formula-3.0.0.tgz#fe158aee32e6bd5de85044be615bc08478a0a13c"
69 | integrity sha512-vHe7wZ4NOXVfkoRb8T5otiENVlT7a3IAiw7H5M2+GO+9CDgcVUUsX1zalAztCmwyOr2RUTGJdgB+ZvSVqmdHmg==
70 |
71 | "@sideway/pinpoint@^2.0.0":
72 | version "2.0.0"
73 | resolved "https://registry.yarnpkg.com/@sideway/pinpoint/-/pinpoint-2.0.0.tgz#cff8ffadc372ad29fd3f78277aeb29e632cc70df"
74 | integrity sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==
75 |
76 | "@types/node@*":
77 | version "18.11.3"
78 | resolved "https://registry.npmjs.org/@types/node/-/node-18.11.3.tgz"
79 | integrity sha512-fNjDQzzOsZeKZu5NATgXUPsaFaTxeRgFXoosrHivTl8RGeV733OLawXsGfEk9a8/tySyZUyiZ6E8LcjPFZ2y1A==
80 |
81 | "@types/node@^14.14.31":
82 | version "14.18.32"
83 | resolved "https://registry.npmjs.org/@types/node/-/node-14.18.32.tgz"
84 | integrity sha512-Y6S38pFr04yb13qqHf8uk1nHE3lXgQ30WZbv1mLliV9pt0NjvqdWttLcrOYLnXbOafknVYRHZGoMSpR9UwfYow==
85 |
86 | "@types/sinonjs__fake-timers@8.1.1":
87 | version "8.1.1"
88 | resolved "https://registry.npmjs.org/@types/sinonjs__fake-timers/-/sinonjs__fake-timers-8.1.1.tgz"
89 | integrity sha512-0kSuKjAS0TrGLJ0M/+8MaFkGsQhZpB6pxOmvS3K8FYI72K//YmdfoW9X2qPsAKh1mkwxGD5zib9s1FIFed6E8g==
90 |
91 | "@types/sizzle@^2.3.2":
92 | version "2.3.3"
93 | resolved "https://registry.npmjs.org/@types/sizzle/-/sizzle-2.3.3.tgz"
94 | integrity sha512-JYM8x9EGF163bEyhdJBpR2QX1R5naCJHC8ucJylJ3w9/CVBaskdQ8WqBf8MmQrd1kRvp/a4TS8HJ+bxzR7ZJYQ==
95 |
96 | "@types/yauzl@^2.9.1":
97 | version "2.10.0"
98 | resolved "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.0.tgz"
99 | integrity sha512-Cn6WYCm0tXv8p6k+A8PvbDG763EDpBoTzHdA+Q/MF6H3sapGjCm9NzoaJncJS9tUKSuCoDs9XHxYYsQDgxR6kw==
100 | dependencies:
101 | "@types/node" "*"
102 |
103 | aggregate-error@^3.0.0:
104 | version "3.1.0"
105 | resolved "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz"
106 | integrity sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==
107 | dependencies:
108 | clean-stack "^2.0.0"
109 | indent-string "^4.0.0"
110 |
111 | ansi-colors@^4.1.1:
112 | version "4.1.3"
113 | resolved "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz"
114 | integrity sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==
115 |
116 | ansi-escapes@^4.3.0:
117 | version "4.3.2"
118 | resolved "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz"
119 | integrity sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==
120 | dependencies:
121 | type-fest "^0.21.3"
122 |
123 | ansi-regex@^5.0.1:
124 | version "5.0.1"
125 | resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz"
126 | integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==
127 |
128 | ansi-styles@^4.0.0, ansi-styles@^4.1.0:
129 | version "4.3.0"
130 | resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz"
131 | integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==
132 | dependencies:
133 | color-convert "^2.0.1"
134 |
135 | arch@^2.2.0:
136 | version "2.2.0"
137 | resolved "https://registry.npmjs.org/arch/-/arch-2.2.0.tgz"
138 | integrity sha512-Of/R0wqp83cgHozfIYLbBMnej79U/SVGOOyuB3VVFv1NRM/PSFMK12x9KVtiYzJqmnU5WR2qp0Z5rHb7sWGnFQ==
139 |
140 | asn1@~0.2.3:
141 | version "0.2.6"
142 | resolved "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz"
143 | integrity sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==
144 | dependencies:
145 | safer-buffer "~2.1.0"
146 |
147 | assert-plus@1.0.0, assert-plus@^1.0.0:
148 | version "1.0.0"
149 | resolved "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz"
150 | integrity sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==
151 |
152 | astral-regex@^2.0.0:
153 | version "2.0.0"
154 | resolved "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz"
155 | integrity sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==
156 |
157 | async@^2.6.4:
158 | version "2.6.4"
159 | resolved "https://registry.npmjs.org/async/-/async-2.6.4.tgz"
160 | integrity sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==
161 | dependencies:
162 | lodash "^4.17.14"
163 |
164 | async@^3.2.0:
165 | version "3.2.4"
166 | resolved "https://registry.npmjs.org/async/-/async-3.2.4.tgz"
167 | integrity sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==
168 |
169 | asynckit@^0.4.0:
170 | version "0.4.0"
171 | resolved "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz"
172 | integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==
173 |
174 | at-least-node@^1.0.0:
175 | version "1.0.0"
176 | resolved "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz"
177 | integrity sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==
178 |
179 | aws-sign2@~0.7.0:
180 | version "0.7.0"
181 | resolved "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz"
182 | integrity sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==
183 |
184 | aws4@^1.8.0:
185 | version "1.11.0"
186 | resolved "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz"
187 | integrity sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==
188 |
189 | axios@^0.21.1:
190 | version "0.21.4"
191 | resolved "https://registry.yarnpkg.com/axios/-/axios-0.21.4.tgz#c67b90dc0568e5c1cf2b0b858c43ba28e2eda575"
192 | integrity sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==
193 | dependencies:
194 | follow-redirects "^1.14.0"
195 |
196 | balanced-match@^1.0.0:
197 | version "1.0.2"
198 | resolved "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz"
199 | integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==
200 |
201 | base64-js@^1.3.1:
202 | version "1.5.1"
203 | resolved "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz"
204 | integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==
205 |
206 | basic-auth@^2.0.1:
207 | version "2.0.1"
208 | resolved "https://registry.npmjs.org/basic-auth/-/basic-auth-2.0.1.tgz"
209 | integrity sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg==
210 | dependencies:
211 | safe-buffer "5.1.2"
212 |
213 | bcrypt-pbkdf@^1.0.0:
214 | version "1.0.2"
215 | resolved "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz"
216 | integrity sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==
217 | dependencies:
218 | tweetnacl "^0.14.3"
219 |
220 | blob-util@^2.0.2:
221 | version "2.0.2"
222 | resolved "https://registry.npmjs.org/blob-util/-/blob-util-2.0.2.tgz"
223 | integrity sha512-T7JQa+zsXXEa6/8ZhHcQEW1UFfVM49Ts65uBkFL6fz2QmrElqmbajIDJvuA0tEhRe5eIjpV9ZF+0RfZR9voJFQ==
224 |
225 | bluebird@3.7.2, bluebird@^3.7.2:
226 | version "3.7.2"
227 | resolved "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz"
228 | integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==
229 |
230 | brace-expansion@^1.1.7:
231 | version "1.1.11"
232 | resolved "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz"
233 | integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==
234 | dependencies:
235 | balanced-match "^1.0.0"
236 | concat-map "0.0.1"
237 |
238 | buffer-crc32@~0.2.3:
239 | version "0.2.13"
240 | resolved "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz"
241 | integrity sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==
242 |
243 | buffer@^5.6.0:
244 | version "5.7.1"
245 | resolved "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz"
246 | integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==
247 | dependencies:
248 | base64-js "^1.3.1"
249 | ieee754 "^1.1.13"
250 |
251 | cachedir@^2.3.0:
252 | version "2.3.0"
253 | resolved "https://registry.npmjs.org/cachedir/-/cachedir-2.3.0.tgz"
254 | integrity sha512-A+Fezp4zxnit6FanDmv9EqXNAi3vt9DWp51/71UEhXukb7QUuvtv9344h91dyAxuTLoSYJFU299qzR3tzwPAhw==
255 |
256 | call-bind@^1.0.0:
257 | version "1.0.2"
258 | resolved "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz"
259 | integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==
260 | dependencies:
261 | function-bind "^1.1.1"
262 | get-intrinsic "^1.0.2"
263 |
264 | caseless@~0.12.0:
265 | version "0.12.0"
266 | resolved "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz"
267 | integrity sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==
268 |
269 | chalk@^4.1.0, chalk@^4.1.2:
270 | version "4.1.2"
271 | resolved "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz"
272 | integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==
273 | dependencies:
274 | ansi-styles "^4.1.0"
275 | supports-color "^7.1.0"
276 |
277 | check-more-types@2.24.0, check-more-types@^2.24.0:
278 | version "2.24.0"
279 | resolved "https://registry.npmjs.org/check-more-types/-/check-more-types-2.24.0.tgz"
280 | integrity sha512-Pj779qHxV2tuapviy1bSZNEL1maXr13bPYpsvSDB68HlYcYuhlDrmGd63i0JHMCLKzc7rUSNIrpdJlhVlNwrxA==
281 |
282 | ci-info@^3.2.0:
283 | version "3.5.0"
284 | resolved "https://registry.npmjs.org/ci-info/-/ci-info-3.5.0.tgz"
285 | integrity sha512-yH4RezKOGlOhxkmhbeNuC4eYZKAUsEaGtBuBzDDP1eFUKiccDWzBABxBfOx31IDwDIXMTxWuwAxUGModvkbuVw==
286 |
287 | clean-stack@^2.0.0:
288 | version "2.2.0"
289 | resolved "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz"
290 | integrity sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==
291 |
292 | cli-cursor@^3.1.0:
293 | version "3.1.0"
294 | resolved "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz"
295 | integrity sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==
296 | dependencies:
297 | restore-cursor "^3.1.0"
298 |
299 | cli-table3@~0.6.1:
300 | version "0.6.3"
301 | resolved "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.3.tgz"
302 | integrity sha512-w5Jac5SykAeZJKntOxJCrm63Eg5/4dhMWIcuTbo9rpE+brgaSZo0RuNJZeOyMgsUdhDeojvgyQLmjI+K50ZGyg==
303 | dependencies:
304 | string-width "^4.2.0"
305 | optionalDependencies:
306 | "@colors/colors" "1.5.0"
307 |
308 | cli-truncate@^2.1.0:
309 | version "2.1.0"
310 | resolved "https://registry.npmjs.org/cli-truncate/-/cli-truncate-2.1.0.tgz"
311 | integrity sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==
312 | dependencies:
313 | slice-ansi "^3.0.0"
314 | string-width "^4.2.0"
315 |
316 | color-convert@^2.0.1:
317 | version "2.0.1"
318 | resolved "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz"
319 | integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==
320 | dependencies:
321 | color-name "~1.1.4"
322 |
323 | color-name@~1.1.4:
324 | version "1.1.4"
325 | resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz"
326 | integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==
327 |
328 | colorette@^2.0.16:
329 | version "2.0.19"
330 | resolved "https://registry.npmjs.org/colorette/-/colorette-2.0.19.tgz"
331 | integrity sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ==
332 |
333 | combined-stream@^1.0.6, combined-stream@~1.0.6:
334 | version "1.0.8"
335 | resolved "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz"
336 | integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==
337 | dependencies:
338 | delayed-stream "~1.0.0"
339 |
340 | commander@^5.1.0:
341 | version "5.1.0"
342 | resolved "https://registry.npmjs.org/commander/-/commander-5.1.0.tgz"
343 | integrity sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==
344 |
345 | common-tags@^1.8.0:
346 | version "1.8.2"
347 | resolved "https://registry.npmjs.org/common-tags/-/common-tags-1.8.2.tgz"
348 | integrity sha512-gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA==
349 |
350 | concat-map@0.0.1:
351 | version "0.0.1"
352 | resolved "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz"
353 | integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==
354 |
355 | core-util-is@1.0.2:
356 | version "1.0.2"
357 | resolved "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz"
358 | integrity sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==
359 |
360 | corser@^2.0.1:
361 | version "2.0.1"
362 | resolved "https://registry.npmjs.org/corser/-/corser-2.0.1.tgz"
363 | integrity sha512-utCYNzRSQIZNPIcGZdQc92UVJYAhtGAteCFg0yRaFm8f0P+CPtyGyHXJcGXnffjCybUCEx3FQ2G7U3/o9eIkVQ==
364 |
365 | cross-spawn@^7.0.0, cross-spawn@^7.0.3:
366 | version "7.0.3"
367 | resolved "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz"
368 | integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==
369 | dependencies:
370 | path-key "^3.1.0"
371 | shebang-command "^2.0.0"
372 | which "^2.0.1"
373 |
374 | cypress@^9.2.0:
375 | version "9.7.0"
376 | resolved "https://registry.yarnpkg.com/cypress/-/cypress-9.7.0.tgz#bf55b2afd481f7a113ef5604aa8b693564b5e744"
377 | integrity sha512-+1EE1nuuuwIt/N1KXRR2iWHU+OiIt7H28jJDyyI4tiUftId/DrXYEwoDa5+kH2pki1zxnA0r6HrUGHV5eLbF5Q==
378 | dependencies:
379 | "@cypress/request" "^2.88.10"
380 | "@cypress/xvfb" "^1.2.4"
381 | "@types/node" "^14.14.31"
382 | "@types/sinonjs__fake-timers" "8.1.1"
383 | "@types/sizzle" "^2.3.2"
384 | arch "^2.2.0"
385 | blob-util "^2.0.2"
386 | bluebird "^3.7.2"
387 | buffer "^5.6.0"
388 | cachedir "^2.3.0"
389 | chalk "^4.1.0"
390 | check-more-types "^2.24.0"
391 | cli-cursor "^3.1.0"
392 | cli-table3 "~0.6.1"
393 | commander "^5.1.0"
394 | common-tags "^1.8.0"
395 | dayjs "^1.10.4"
396 | debug "^4.3.2"
397 | enquirer "^2.3.6"
398 | eventemitter2 "^6.4.3"
399 | execa "4.1.0"
400 | executable "^4.1.1"
401 | extract-zip "2.0.1"
402 | figures "^3.2.0"
403 | fs-extra "^9.1.0"
404 | getos "^3.2.1"
405 | is-ci "^3.0.0"
406 | is-installed-globally "~0.4.0"
407 | lazy-ass "^1.6.0"
408 | listr2 "^3.8.3"
409 | lodash "^4.17.21"
410 | log-symbols "^4.0.0"
411 | minimist "^1.2.6"
412 | ospath "^1.2.2"
413 | pretty-bytes "^5.6.0"
414 | proxy-from-env "1.0.0"
415 | request-progress "^3.0.0"
416 | semver "^7.3.2"
417 | supports-color "^8.1.1"
418 | tmp "~0.2.1"
419 | untildify "^4.0.0"
420 | yauzl "^2.10.0"
421 |
422 | dashdash@^1.12.0:
423 | version "1.14.1"
424 | resolved "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz"
425 | integrity sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==
426 | dependencies:
427 | assert-plus "^1.0.0"
428 |
429 | dayjs@^1.10.4:
430 | version "1.11.6"
431 | resolved "https://registry.npmjs.org/dayjs/-/dayjs-1.11.6.tgz"
432 | integrity sha512-zZbY5giJAinCG+7AGaw0wIhNZ6J8AhWuSXKvuc1KAyMiRsvGQWqh4L+MomvhdAYjN+lqvVCMq1I41e3YHvXkyQ==
433 |
434 | debug@4.3.2:
435 | version "4.3.2"
436 | resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.2.tgz#f0a49c18ac8779e31d4a0c6029dfb76873c7428b"
437 | integrity sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==
438 | dependencies:
439 | ms "2.1.2"
440 |
441 | debug@^3.1.0, debug@^3.2.7:
442 | version "3.2.7"
443 | resolved "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz"
444 | integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==
445 | dependencies:
446 | ms "^2.1.1"
447 |
448 | debug@^4.1.1, debug@^4.3.2:
449 | version "4.3.4"
450 | resolved "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz"
451 | integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==
452 | dependencies:
453 | ms "2.1.2"
454 |
455 | delayed-stream@~1.0.0:
456 | version "1.0.0"
457 | resolved "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz"
458 | integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==
459 |
460 | duplexer@~0.1.1:
461 | version "0.1.2"
462 | resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.2.tgz#3abe43aef3835f8ae077d136ddce0f276b0400e6"
463 | integrity sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==
464 |
465 | ecc-jsbn@~0.1.1:
466 | version "0.1.2"
467 | resolved "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz"
468 | integrity sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==
469 | dependencies:
470 | jsbn "~0.1.0"
471 | safer-buffer "^2.1.0"
472 |
473 | emoji-regex@^8.0.0:
474 | version "8.0.0"
475 | resolved "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz"
476 | integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==
477 |
478 | end-of-stream@^1.1.0:
479 | version "1.4.4"
480 | resolved "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz"
481 | integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==
482 | dependencies:
483 | once "^1.4.0"
484 |
485 | enquirer@^2.3.6:
486 | version "2.3.6"
487 | resolved "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz"
488 | integrity sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==
489 | dependencies:
490 | ansi-colors "^4.1.1"
491 |
492 | escape-string-regexp@^1.0.5:
493 | version "1.0.5"
494 | resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz"
495 | integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==
496 |
497 | event-stream@=3.3.4:
498 | version "3.3.4"
499 | resolved "https://registry.yarnpkg.com/event-stream/-/event-stream-3.3.4.tgz#4ab4c9a0f5a54db9338b4c34d86bfce8f4b35571"
500 | integrity sha512-QHpkERcGsR0T7Qm3HNJSyXKEEj8AHNxkY3PK8TS2KJvQ7NiSHe3DDpwVKKtoYprL/AreyzFBeIkBIWChAqn60g==
501 | dependencies:
502 | duplexer "~0.1.1"
503 | from "~0"
504 | map-stream "~0.1.0"
505 | pause-stream "0.0.11"
506 | split "0.3"
507 | stream-combiner "~0.0.4"
508 | through "~2.3.1"
509 |
510 | eventemitter2@^6.4.3:
511 | version "6.4.9"
512 | resolved "https://registry.yarnpkg.com/eventemitter2/-/eventemitter2-6.4.9.tgz#41f2750781b4230ed58827bc119d293471ecb125"
513 | integrity sha512-JEPTiaOt9f04oa6NOkc4aH+nVp5I3wEjpHbIPqfgCdD5v5bUzy7xQqwcVO2aDQgOWhI28da57HksMrzK9HlRxg==
514 |
515 | eventemitter3@^4.0.0:
516 | version "4.0.7"
517 | resolved "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz"
518 | integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==
519 |
520 | execa@4.1.0:
521 | version "4.1.0"
522 | resolved "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz"
523 | integrity sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==
524 | dependencies:
525 | cross-spawn "^7.0.0"
526 | get-stream "^5.0.0"
527 | human-signals "^1.1.1"
528 | is-stream "^2.0.0"
529 | merge-stream "^2.0.0"
530 | npm-run-path "^4.0.0"
531 | onetime "^5.1.0"
532 | signal-exit "^3.0.2"
533 | strip-final-newline "^2.0.0"
534 |
535 | execa@5.1.1:
536 | version "5.1.1"
537 | resolved "https://registry.yarnpkg.com/execa/-/execa-5.1.1.tgz#f80ad9cbf4298f7bd1d4c9555c21e93741c411dd"
538 | integrity sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==
539 | dependencies:
540 | cross-spawn "^7.0.3"
541 | get-stream "^6.0.0"
542 | human-signals "^2.1.0"
543 | is-stream "^2.0.0"
544 | merge-stream "^2.0.0"
545 | npm-run-path "^4.0.1"
546 | onetime "^5.1.2"
547 | signal-exit "^3.0.3"
548 | strip-final-newline "^2.0.0"
549 |
550 | executable@^4.1.1:
551 | version "4.1.1"
552 | resolved "https://registry.npmjs.org/executable/-/executable-4.1.1.tgz"
553 | integrity sha512-8iA79xD3uAch729dUG8xaaBBFGaEa0wdD2VkYLFHwlqosEj/jT66AzcreRDSgV7ehnNLBW2WR5jIXwGKjVdTLg==
554 | dependencies:
555 | pify "^2.2.0"
556 |
557 | extend@~3.0.2:
558 | version "3.0.2"
559 | resolved "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz"
560 | integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==
561 |
562 | extract-zip@2.0.1:
563 | version "2.0.1"
564 | resolved "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz"
565 | integrity sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==
566 | dependencies:
567 | debug "^4.1.1"
568 | get-stream "^5.1.0"
569 | yauzl "^2.10.0"
570 | optionalDependencies:
571 | "@types/yauzl" "^2.9.1"
572 |
573 | extsprintf@1.3.0, extsprintf@^1.2.0:
574 | version "1.3.0"
575 | resolved "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz"
576 | integrity sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==
577 |
578 | fd-slicer@~1.1.0:
579 | version "1.1.0"
580 | resolved "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz"
581 | integrity sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==
582 | dependencies:
583 | pend "~1.2.0"
584 |
585 | figures@^3.2.0:
586 | version "3.2.0"
587 | resolved "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz"
588 | integrity sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==
589 | dependencies:
590 | escape-string-regexp "^1.0.5"
591 |
592 | follow-redirects@^1.0.0, follow-redirects@^1.14.0:
593 | version "1.15.2"
594 | resolved "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz"
595 | integrity sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==
596 |
597 | forever-agent@~0.6.1:
598 | version "0.6.1"
599 | resolved "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz"
600 | integrity sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==
601 |
602 | form-data@~2.3.2:
603 | version "2.3.3"
604 | resolved "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz"
605 | integrity sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==
606 | dependencies:
607 | asynckit "^0.4.0"
608 | combined-stream "^1.0.6"
609 | mime-types "^2.1.12"
610 |
611 | from@~0:
612 | version "0.1.7"
613 | resolved "https://registry.yarnpkg.com/from/-/from-0.1.7.tgz#83c60afc58b9c56997007ed1a768b3ab303a44fe"
614 | integrity sha512-twe20eF1OxVxp/ML/kq2p1uc6KvFK/+vs8WjEbeKmV2He22MKm7YF2ANIt+EOqhJ5L3K/SuuPhk0hWQDjOM23g==
615 |
616 | fs-extra@^9.1.0:
617 | version "9.1.0"
618 | resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz"
619 | integrity sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==
620 | dependencies:
621 | at-least-node "^1.0.0"
622 | graceful-fs "^4.2.0"
623 | jsonfile "^6.0.1"
624 | universalify "^2.0.0"
625 |
626 | fs.realpath@^1.0.0:
627 | version "1.0.0"
628 | resolved "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz"
629 | integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==
630 |
631 | function-bind@^1.1.1:
632 | version "1.1.1"
633 | resolved "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz"
634 | integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==
635 |
636 | get-intrinsic@^1.0.2:
637 | version "1.1.3"
638 | resolved "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.3.tgz"
639 | integrity sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==
640 | dependencies:
641 | function-bind "^1.1.1"
642 | has "^1.0.3"
643 | has-symbols "^1.0.3"
644 |
645 | get-stream@^5.0.0, get-stream@^5.1.0:
646 | version "5.2.0"
647 | resolved "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz"
648 | integrity sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==
649 | dependencies:
650 | pump "^3.0.0"
651 |
652 | get-stream@^6.0.0:
653 | version "6.0.1"
654 | resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7"
655 | integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==
656 |
657 | getos@^3.2.1:
658 | version "3.2.1"
659 | resolved "https://registry.npmjs.org/getos/-/getos-3.2.1.tgz"
660 | integrity sha512-U56CfOK17OKgTVqozZjUKNdkfEv6jk5WISBJ8SHoagjE6L69zOwl3Z+O8myjY9MEW3i2HPWQBt/LTbCgcC973Q==
661 | dependencies:
662 | async "^3.2.0"
663 |
664 | getpass@^0.1.1:
665 | version "0.1.7"
666 | resolved "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz"
667 | integrity sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==
668 | dependencies:
669 | assert-plus "^1.0.0"
670 |
671 | glob@^7.1.3:
672 | version "7.2.3"
673 | resolved "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz"
674 | integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==
675 | dependencies:
676 | fs.realpath "^1.0.0"
677 | inflight "^1.0.4"
678 | inherits "2"
679 | minimatch "^3.1.1"
680 | once "^1.3.0"
681 | path-is-absolute "^1.0.0"
682 |
683 | global-dirs@^3.0.0:
684 | version "3.0.0"
685 | resolved "https://registry.npmjs.org/global-dirs/-/global-dirs-3.0.0.tgz"
686 | integrity sha512-v8ho2DS5RiCjftj1nD9NmnfaOzTdud7RRnVd9kFNOjqZbISlx5DQ+OrTkywgd0dIt7oFCvKetZSHoHcP3sDdiA==
687 | dependencies:
688 | ini "2.0.0"
689 |
690 | graceful-fs@^4.1.6, graceful-fs@^4.2.0:
691 | version "4.2.10"
692 | resolved "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz"
693 | integrity sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==
694 |
695 | has-flag@^4.0.0:
696 | version "4.0.0"
697 | resolved "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz"
698 | integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==
699 |
700 | has-symbols@^1.0.3:
701 | version "1.0.3"
702 | resolved "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz"
703 | integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==
704 |
705 | has@^1.0.3:
706 | version "1.0.3"
707 | resolved "https://registry.npmjs.org/has/-/has-1.0.3.tgz"
708 | integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==
709 | dependencies:
710 | function-bind "^1.1.1"
711 |
712 | he@^1.2.0:
713 | version "1.2.0"
714 | resolved "https://registry.npmjs.org/he/-/he-1.2.0.tgz"
715 | integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==
716 |
717 | html-encoding-sniffer@^3.0.0:
718 | version "3.0.0"
719 | resolved "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-3.0.0.tgz"
720 | integrity sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==
721 | dependencies:
722 | whatwg-encoding "^2.0.0"
723 |
724 | http-proxy@^1.18.1:
725 | version "1.18.1"
726 | resolved "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz"
727 | integrity sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==
728 | dependencies:
729 | eventemitter3 "^4.0.0"
730 | follow-redirects "^1.0.0"
731 | requires-port "^1.0.0"
732 |
733 | http-server@^14.0.0:
734 | version "14.1.1"
735 | resolved "https://registry.npmjs.org/http-server/-/http-server-14.1.1.tgz"
736 | integrity sha512-+cbxadF40UXd9T01zUHgA+rlo2Bg1Srer4+B4NwIHdaGxAGGv59nYRnGGDJ9LBk7alpS0US+J+bLLdQOOkJq4A==
737 | dependencies:
738 | basic-auth "^2.0.1"
739 | chalk "^4.1.2"
740 | corser "^2.0.1"
741 | he "^1.2.0"
742 | html-encoding-sniffer "^3.0.0"
743 | http-proxy "^1.18.1"
744 | mime "^1.6.0"
745 | minimist "^1.2.6"
746 | opener "^1.5.1"
747 | portfinder "^1.0.28"
748 | secure-compare "3.0.1"
749 | union "~0.5.0"
750 | url-join "^4.0.1"
751 |
752 | http-signature@~1.3.6:
753 | version "1.3.6"
754 | resolved "https://registry.npmjs.org/http-signature/-/http-signature-1.3.6.tgz"
755 | integrity sha512-3adrsD6zqo4GsTqtO7FyrejHNv+NgiIfAfv68+jVlFmSr9OGy7zrxONceFRLKvnnZA5jbxQBX1u9PpB6Wi32Gw==
756 | dependencies:
757 | assert-plus "^1.0.0"
758 | jsprim "^2.0.2"
759 | sshpk "^1.14.1"
760 |
761 | human-signals@^1.1.1:
762 | version "1.1.1"
763 | resolved "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz"
764 | integrity sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==
765 |
766 | human-signals@^2.1.0:
767 | version "2.1.0"
768 | resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0"
769 | integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==
770 |
771 | iconv-lite@0.6.3:
772 | version "0.6.3"
773 | resolved "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz"
774 | integrity sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==
775 | dependencies:
776 | safer-buffer ">= 2.1.2 < 3.0.0"
777 |
778 | ieee754@^1.1.13:
779 | version "1.2.1"
780 | resolved "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz"
781 | integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==
782 |
783 | indent-string@^4.0.0:
784 | version "4.0.0"
785 | resolved "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz"
786 | integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==
787 |
788 | inflight@^1.0.4:
789 | version "1.0.6"
790 | resolved "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz"
791 | integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==
792 | dependencies:
793 | once "^1.3.0"
794 | wrappy "1"
795 |
796 | inherits@2:
797 | version "2.0.4"
798 | resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz"
799 | integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==
800 |
801 | ini@2.0.0:
802 | version "2.0.0"
803 | resolved "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz"
804 | integrity sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==
805 |
806 | is-ci@^3.0.0:
807 | version "3.0.1"
808 | resolved "https://registry.npmjs.org/is-ci/-/is-ci-3.0.1.tgz"
809 | integrity sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==
810 | dependencies:
811 | ci-info "^3.2.0"
812 |
813 | is-fullwidth-code-point@^3.0.0:
814 | version "3.0.0"
815 | resolved "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz"
816 | integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==
817 |
818 | is-installed-globally@~0.4.0:
819 | version "0.4.0"
820 | resolved "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.4.0.tgz"
821 | integrity sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==
822 | dependencies:
823 | global-dirs "^3.0.0"
824 | is-path-inside "^3.0.2"
825 |
826 | is-path-inside@^3.0.2:
827 | version "3.0.3"
828 | resolved "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz"
829 | integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==
830 |
831 | is-stream@^2.0.0:
832 | version "2.0.1"
833 | resolved "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz"
834 | integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==
835 |
836 | is-typedarray@~1.0.0:
837 | version "1.0.0"
838 | resolved "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz"
839 | integrity sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==
840 |
841 | is-unicode-supported@^0.1.0:
842 | version "0.1.0"
843 | resolved "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz"
844 | integrity sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==
845 |
846 | isexe@^2.0.0:
847 | version "2.0.0"
848 | resolved "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz"
849 | integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==
850 |
851 | isstream@~0.1.2:
852 | version "0.1.2"
853 | resolved "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz"
854 | integrity sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==
855 |
856 | joi@^17.4.0:
857 | version "17.6.4"
858 | resolved "https://registry.yarnpkg.com/joi/-/joi-17.6.4.tgz#4d9536a059ef0762c718ae98673016b3ec151abd"
859 | integrity sha512-tPzkTJHZQjSFCc842QpdVpOZ9LI2txApboNUbW70qgnRB14Lzl+oWQOPdF2N4yqyiY14wBGe8lc7f/2hZxbGmw==
860 | dependencies:
861 | "@hapi/hoek" "^9.0.0"
862 | "@hapi/topo" "^5.0.0"
863 | "@sideway/address" "^4.1.3"
864 | "@sideway/formula" "^3.0.0"
865 | "@sideway/pinpoint" "^2.0.0"
866 |
867 | jsbn@~0.1.0:
868 | version "0.1.1"
869 | resolved "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz"
870 | integrity sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==
871 |
872 | json-schema@0.4.0:
873 | version "0.4.0"
874 | resolved "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz"
875 | integrity sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==
876 |
877 | json-stringify-safe@~5.0.1:
878 | version "5.0.1"
879 | resolved "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz"
880 | integrity sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==
881 |
882 | jsonfile@^6.0.1:
883 | version "6.1.0"
884 | resolved "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz"
885 | integrity sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==
886 | dependencies:
887 | universalify "^2.0.0"
888 | optionalDependencies:
889 | graceful-fs "^4.1.6"
890 |
891 | jsprim@^2.0.2:
892 | version "2.0.2"
893 | resolved "https://registry.npmjs.org/jsprim/-/jsprim-2.0.2.tgz"
894 | integrity sha512-gqXddjPqQ6G40VdnI6T6yObEC+pDNvyP95wdQhkWkg7crHH3km5qP1FsOXEkzEQwnz6gz5qGTn1c2Y52wP3OyQ==
895 | dependencies:
896 | assert-plus "1.0.0"
897 | extsprintf "1.3.0"
898 | json-schema "0.4.0"
899 | verror "1.10.0"
900 |
901 | lazy-ass@1.6.0, lazy-ass@^1.6.0:
902 | version "1.6.0"
903 | resolved "https://registry.npmjs.org/lazy-ass/-/lazy-ass-1.6.0.tgz"
904 | integrity sha512-cc8oEVoctTvsFZ/Oje/kGnHbpWHYBe8IAJe4C0QNc3t8uM/0Y8+erSz/7Y1ALuXTEZTMvxXwO6YbX1ey3ujiZw==
905 |
906 | listr2@^3.8.3:
907 | version "3.14.0"
908 | resolved "https://registry.npmjs.org/listr2/-/listr2-3.14.0.tgz"
909 | integrity sha512-TyWI8G99GX9GjE54cJ+RrNMcIFBfwMPxc3XTFiAYGN4s10hWROGtOg7+O6u6LE3mNkyld7RSLE6nrKBvTfcs3g==
910 | dependencies:
911 | cli-truncate "^2.1.0"
912 | colorette "^2.0.16"
913 | log-update "^4.0.0"
914 | p-map "^4.0.0"
915 | rfdc "^1.3.0"
916 | rxjs "^7.5.1"
917 | through "^2.3.8"
918 | wrap-ansi "^7.0.0"
919 |
920 | lodash.once@^4.1.1:
921 | version "4.1.1"
922 | resolved "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz"
923 | integrity sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==
924 |
925 | lodash@^4.17.14, lodash@^4.17.21:
926 | version "4.17.21"
927 | resolved "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz"
928 | integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==
929 |
930 | log-symbols@^4.0.0:
931 | version "4.1.0"
932 | resolved "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz"
933 | integrity sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==
934 | dependencies:
935 | chalk "^4.1.0"
936 | is-unicode-supported "^0.1.0"
937 |
938 | log-update@^4.0.0:
939 | version "4.0.0"
940 | resolved "https://registry.npmjs.org/log-update/-/log-update-4.0.0.tgz"
941 | integrity sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg==
942 | dependencies:
943 | ansi-escapes "^4.3.0"
944 | cli-cursor "^3.1.0"
945 | slice-ansi "^4.0.0"
946 | wrap-ansi "^6.2.0"
947 |
948 | lru-cache@^6.0.0:
949 | version "6.0.0"
950 | resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz"
951 | integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==
952 | dependencies:
953 | yallist "^4.0.0"
954 |
955 | map-stream@~0.1.0:
956 | version "0.1.0"
957 | resolved "https://registry.yarnpkg.com/map-stream/-/map-stream-0.1.0.tgz#e56aa94c4c8055a16404a0674b78f215f7c8e194"
958 | integrity sha512-CkYQrPYZfWnu/DAmVCpTSX/xHpKZ80eKh2lAkyA6AJTef6bW+6JpbQZN5rofum7da+SyN1bi5ctTm+lTfcCW3g==
959 |
960 | merge-stream@^2.0.0:
961 | version "2.0.0"
962 | resolved "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz"
963 | integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==
964 |
965 | mime-db@1.52.0:
966 | version "1.52.0"
967 | resolved "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz"
968 | integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==
969 |
970 | mime-types@^2.1.12, mime-types@~2.1.19:
971 | version "2.1.35"
972 | resolved "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz"
973 | integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==
974 | dependencies:
975 | mime-db "1.52.0"
976 |
977 | mime@^1.6.0:
978 | version "1.6.0"
979 | resolved "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz"
980 | integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==
981 |
982 | mimic-fn@^2.1.0:
983 | version "2.1.0"
984 | resolved "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz"
985 | integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==
986 |
987 | minimatch@^3.1.1:
988 | version "3.1.2"
989 | resolved "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz"
990 | integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==
991 | dependencies:
992 | brace-expansion "^1.1.7"
993 |
994 | minimist@^1.2.5, minimist@^1.2.6:
995 | version "1.2.7"
996 | resolved "https://registry.npmjs.org/minimist/-/minimist-1.2.7.tgz"
997 | integrity sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==
998 |
999 | mkdirp@^0.5.6:
1000 | version "0.5.6"
1001 | resolved "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz"
1002 | integrity sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==
1003 | dependencies:
1004 | minimist "^1.2.6"
1005 |
1006 | ms@2.1.2:
1007 | version "2.1.2"
1008 | resolved "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz"
1009 | integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==
1010 |
1011 | ms@^2.1.1:
1012 | version "2.1.3"
1013 | resolved "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz"
1014 | integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==
1015 |
1016 | npm-run-path@^4.0.0, npm-run-path@^4.0.1:
1017 | version "4.0.1"
1018 | resolved "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz"
1019 | integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==
1020 | dependencies:
1021 | path-key "^3.0.0"
1022 |
1023 | object-inspect@^1.9.0:
1024 | version "1.12.2"
1025 | resolved "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz"
1026 | integrity sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==
1027 |
1028 | once@^1.3.0, once@^1.3.1, once@^1.4.0:
1029 | version "1.4.0"
1030 | resolved "https://registry.npmjs.org/once/-/once-1.4.0.tgz"
1031 | integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==
1032 | dependencies:
1033 | wrappy "1"
1034 |
1035 | onetime@^5.1.0, onetime@^5.1.2:
1036 | version "5.1.2"
1037 | resolved "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz"
1038 | integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==
1039 | dependencies:
1040 | mimic-fn "^2.1.0"
1041 |
1042 | opener@^1.5.1:
1043 | version "1.5.2"
1044 | resolved "https://registry.npmjs.org/opener/-/opener-1.5.2.tgz"
1045 | integrity sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==
1046 |
1047 | ospath@^1.2.2:
1048 | version "1.2.2"
1049 | resolved "https://registry.npmjs.org/ospath/-/ospath-1.2.2.tgz"
1050 | integrity sha512-o6E5qJV5zkAbIDNhGSIlyOhScKXgQrSRMilfph0clDfM0nEnBOlKlH4sWDmG95BW/CvwNz0vmm7dJVtU2KlMiA==
1051 |
1052 | p-map@^4.0.0:
1053 | version "4.0.0"
1054 | resolved "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz"
1055 | integrity sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==
1056 | dependencies:
1057 | aggregate-error "^3.0.0"
1058 |
1059 | path-is-absolute@^1.0.0:
1060 | version "1.0.1"
1061 | resolved "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz"
1062 | integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==
1063 |
1064 | path-key@^3.0.0, path-key@^3.1.0:
1065 | version "3.1.1"
1066 | resolved "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz"
1067 | integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==
1068 |
1069 | pause-stream@0.0.11:
1070 | version "0.0.11"
1071 | resolved "https://registry.yarnpkg.com/pause-stream/-/pause-stream-0.0.11.tgz#fe5a34b0cbce12b5aa6a2b403ee2e73b602f1445"
1072 | integrity sha512-e3FBlXLmN/D1S+zHzanP4E/4Z60oFAa3O051qt1pxa7DEJWKAyil6upYVXCWadEnuoqa4Pkc9oUx9zsxYeRv8A==
1073 | dependencies:
1074 | through "~2.3"
1075 |
1076 | pend@~1.2.0:
1077 | version "1.2.0"
1078 | resolved "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz"
1079 | integrity sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==
1080 |
1081 | performance-now@^2.1.0:
1082 | version "2.1.0"
1083 | resolved "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz"
1084 | integrity sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==
1085 |
1086 | pify@^2.2.0:
1087 | version "2.3.0"
1088 | resolved "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz"
1089 | integrity sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==
1090 |
1091 | portfinder@^1.0.28:
1092 | version "1.0.32"
1093 | resolved "https://registry.npmjs.org/portfinder/-/portfinder-1.0.32.tgz"
1094 | integrity sha512-on2ZJVVDXRADWE6jnQaX0ioEylzgBpQk8r55NE4wjXW1ZxO+BgDlY6DXwj20i0V8eB4SenDQ00WEaxfiIQPcxg==
1095 | dependencies:
1096 | async "^2.6.4"
1097 | debug "^3.2.7"
1098 | mkdirp "^0.5.6"
1099 |
1100 | pretty-bytes@^5.6.0:
1101 | version "5.6.0"
1102 | resolved "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.6.0.tgz"
1103 | integrity sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==
1104 |
1105 | proxy-from-env@1.0.0:
1106 | version "1.0.0"
1107 | resolved "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.0.0.tgz"
1108 | integrity sha512-F2JHgJQ1iqwnHDcQjVBsq3n/uoaFL+iPW/eAeL7kVxy/2RrWaN4WroKjjvbsoRtv0ftelNyC01bjRhn/bhcf4A==
1109 |
1110 | ps-tree@1.2.0:
1111 | version "1.2.0"
1112 | resolved "https://registry.yarnpkg.com/ps-tree/-/ps-tree-1.2.0.tgz#5e7425b89508736cdd4f2224d028f7bb3f722ebd"
1113 | integrity sha512-0VnamPPYHl4uaU/nSFeZZpR21QAWRz+sRv4iW9+v/GS/J5U5iZB5BNN6J0RMoOvdx2gWM2+ZFMIm58q24e4UYA==
1114 | dependencies:
1115 | event-stream "=3.3.4"
1116 |
1117 | psl@^1.1.28:
1118 | version "1.9.0"
1119 | resolved "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz"
1120 | integrity sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==
1121 |
1122 | pump@^3.0.0:
1123 | version "3.0.0"
1124 | resolved "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz"
1125 | integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==
1126 | dependencies:
1127 | end-of-stream "^1.1.0"
1128 | once "^1.3.1"
1129 |
1130 | punycode@^2.1.1:
1131 | version "2.1.1"
1132 | resolved "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz"
1133 | integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==
1134 |
1135 | qs@^6.4.0:
1136 | version "6.11.0"
1137 | resolved "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz"
1138 | integrity sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==
1139 | dependencies:
1140 | side-channel "^1.0.4"
1141 |
1142 | qs@~6.5.2:
1143 | version "6.5.3"
1144 | resolved "https://registry.npmjs.org/qs/-/qs-6.5.3.tgz"
1145 | integrity sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==
1146 |
1147 | request-progress@^3.0.0:
1148 | version "3.0.0"
1149 | resolved "https://registry.npmjs.org/request-progress/-/request-progress-3.0.0.tgz"
1150 | integrity sha512-MnWzEHHaxHO2iWiQuHrUPBi/1WeBf5PkxQqNyNvLl9VAYSdXkP8tQ3pBSeCPD+yw0v0Aq1zosWLz0BdeXpWwZg==
1151 | dependencies:
1152 | throttleit "^1.0.0"
1153 |
1154 | requires-port@^1.0.0:
1155 | version "1.0.0"
1156 | resolved "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz"
1157 | integrity sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==
1158 |
1159 | restore-cursor@^3.1.0:
1160 | version "3.1.0"
1161 | resolved "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz"
1162 | integrity sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==
1163 | dependencies:
1164 | onetime "^5.1.0"
1165 | signal-exit "^3.0.2"
1166 |
1167 | rfdc@^1.3.0:
1168 | version "1.3.0"
1169 | resolved "https://registry.npmjs.org/rfdc/-/rfdc-1.3.0.tgz"
1170 | integrity sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==
1171 |
1172 | rimraf@^3.0.0:
1173 | version "3.0.2"
1174 | resolved "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz"
1175 | integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==
1176 | dependencies:
1177 | glob "^7.1.3"
1178 |
1179 | rxjs@^7.1.0, rxjs@^7.5.1:
1180 | version "7.5.7"
1181 | resolved "https://registry.npmjs.org/rxjs/-/rxjs-7.5.7.tgz"
1182 | integrity sha512-z9MzKh/UcOqB3i20H6rtrlaE/CgjLOvheWK/9ILrbhROGTweAi1BaFsTT9FbwZi5Trr1qNRs+MXkhmR06awzQA==
1183 | dependencies:
1184 | tslib "^2.1.0"
1185 |
1186 | safe-buffer@5.1.2, safe-buffer@^5.0.1, safe-buffer@^5.1.2:
1187 | version "5.1.2"
1188 | resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz"
1189 | integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==
1190 |
1191 | "safer-buffer@>= 2.1.2 < 3.0.0", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0:
1192 | version "2.1.2"
1193 | resolved "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz"
1194 | integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==
1195 |
1196 | secure-compare@3.0.1:
1197 | version "3.0.1"
1198 | resolved "https://registry.npmjs.org/secure-compare/-/secure-compare-3.0.1.tgz"
1199 | integrity sha512-AckIIV90rPDcBcglUwXPF3kg0P0qmPsPXAj6BBEENQE1p5yA1xfmDJzfi1Tappj37Pv2mVbKpL3Z1T+Nn7k1Qw==
1200 |
1201 | semver@^7.3.2:
1202 | version "7.3.8"
1203 | resolved "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz"
1204 | integrity sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==
1205 | dependencies:
1206 | lru-cache "^6.0.0"
1207 |
1208 | shebang-command@^2.0.0:
1209 | version "2.0.0"
1210 | resolved "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz"
1211 | integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==
1212 | dependencies:
1213 | shebang-regex "^3.0.0"
1214 |
1215 | shebang-regex@^3.0.0:
1216 | version "3.0.0"
1217 | resolved "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz"
1218 | integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==
1219 |
1220 | side-channel@^1.0.4:
1221 | version "1.0.4"
1222 | resolved "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz"
1223 | integrity sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==
1224 | dependencies:
1225 | call-bind "^1.0.0"
1226 | get-intrinsic "^1.0.2"
1227 | object-inspect "^1.9.0"
1228 |
1229 | signal-exit@^3.0.2, signal-exit@^3.0.3:
1230 | version "3.0.7"
1231 | resolved "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz"
1232 | integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==
1233 |
1234 | slice-ansi@^3.0.0:
1235 | version "3.0.0"
1236 | resolved "https://registry.npmjs.org/slice-ansi/-/slice-ansi-3.0.0.tgz"
1237 | integrity sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==
1238 | dependencies:
1239 | ansi-styles "^4.0.0"
1240 | astral-regex "^2.0.0"
1241 | is-fullwidth-code-point "^3.0.0"
1242 |
1243 | slice-ansi@^4.0.0:
1244 | version "4.0.0"
1245 | resolved "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz"
1246 | integrity sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==
1247 | dependencies:
1248 | ansi-styles "^4.0.0"
1249 | astral-regex "^2.0.0"
1250 | is-fullwidth-code-point "^3.0.0"
1251 |
1252 | split@0.3:
1253 | version "0.3.3"
1254 | resolved "https://registry.yarnpkg.com/split/-/split-0.3.3.tgz#cd0eea5e63a211dfff7eb0f091c4133e2d0dd28f"
1255 | integrity sha512-wD2AeVmxXRBoX44wAycgjVpMhvbwdI2aZjCkvfNcH1YqHQvJVa1duWc73OyVGJUc05fhFaTZeQ/PYsrmyH0JVA==
1256 | dependencies:
1257 | through "2"
1258 |
1259 | sshpk@^1.14.1:
1260 | version "1.17.0"
1261 | resolved "https://registry.npmjs.org/sshpk/-/sshpk-1.17.0.tgz"
1262 | integrity sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ==
1263 | dependencies:
1264 | asn1 "~0.2.3"
1265 | assert-plus "^1.0.0"
1266 | bcrypt-pbkdf "^1.0.0"
1267 | dashdash "^1.12.0"
1268 | ecc-jsbn "~0.1.1"
1269 | getpass "^0.1.1"
1270 | jsbn "~0.1.0"
1271 | safer-buffer "^2.0.2"
1272 | tweetnacl "~0.14.0"
1273 |
1274 | start-server-and-test@^1.14.0:
1275 | version "1.14.0"
1276 | resolved "https://registry.yarnpkg.com/start-server-and-test/-/start-server-and-test-1.14.0.tgz#c57f04f73eac15dd51733b551d775b40837fdde3"
1277 | integrity sha512-on5ELuxO2K0t8EmNj9MtVlFqwBMxfWOhu4U7uZD1xccVpFlOQKR93CSe0u98iQzfNxRyaNTb/CdadbNllplTsw==
1278 | dependencies:
1279 | bluebird "3.7.2"
1280 | check-more-types "2.24.0"
1281 | debug "4.3.2"
1282 | execa "5.1.1"
1283 | lazy-ass "1.6.0"
1284 | ps-tree "1.2.0"
1285 | wait-on "6.0.0"
1286 |
1287 | stream-combiner@~0.0.4:
1288 | version "0.0.4"
1289 | resolved "https://registry.yarnpkg.com/stream-combiner/-/stream-combiner-0.0.4.tgz#4d5e433c185261dde623ca3f44c586bcf5c4ad14"
1290 | integrity sha512-rT00SPnTVyRsaSz5zgSPma/aHSOic5U1prhYdRy5HS2kTZviFpmDgzilbtsJsxiroqACmayynDN/9VzIbX5DOw==
1291 | dependencies:
1292 | duplexer "~0.1.1"
1293 |
1294 | string-width@^4.1.0, string-width@^4.2.0:
1295 | version "4.2.3"
1296 | resolved "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz"
1297 | integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==
1298 | dependencies:
1299 | emoji-regex "^8.0.0"
1300 | is-fullwidth-code-point "^3.0.0"
1301 | strip-ansi "^6.0.1"
1302 |
1303 | strip-ansi@^6.0.0, strip-ansi@^6.0.1:
1304 | version "6.0.1"
1305 | resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz"
1306 | integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==
1307 | dependencies:
1308 | ansi-regex "^5.0.1"
1309 |
1310 | strip-final-newline@^2.0.0:
1311 | version "2.0.0"
1312 | resolved "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz"
1313 | integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==
1314 |
1315 | supports-color@^7.1.0:
1316 | version "7.2.0"
1317 | resolved "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz"
1318 | integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==
1319 | dependencies:
1320 | has-flag "^4.0.0"
1321 |
1322 | supports-color@^8.1.1:
1323 | version "8.1.1"
1324 | resolved "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz"
1325 | integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==
1326 | dependencies:
1327 | has-flag "^4.0.0"
1328 |
1329 | throttleit@^1.0.0:
1330 | version "1.0.0"
1331 | resolved "https://registry.npmjs.org/throttleit/-/throttleit-1.0.0.tgz"
1332 | integrity sha512-rkTVqu6IjfQ/6+uNuuc3sZek4CEYxTJom3IktzgdSxcZqdARuebbA/f4QmAxMQIxqq9ZLEUkSYqvuk1I6VKq4g==
1333 |
1334 | through@2, through@^2.3.8, through@~2.3, through@~2.3.1:
1335 | version "2.3.8"
1336 | resolved "https://registry.npmjs.org/through/-/through-2.3.8.tgz"
1337 | integrity sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==
1338 |
1339 | tmp@~0.2.1:
1340 | version "0.2.1"
1341 | resolved "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz"
1342 | integrity sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==
1343 | dependencies:
1344 | rimraf "^3.0.0"
1345 |
1346 | tough-cookie@~2.5.0:
1347 | version "2.5.0"
1348 | resolved "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz"
1349 | integrity sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==
1350 | dependencies:
1351 | psl "^1.1.28"
1352 | punycode "^2.1.1"
1353 |
1354 | tslib@^2.1.0:
1355 | version "2.4.0"
1356 | resolved "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz"
1357 | integrity sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==
1358 |
1359 | tunnel-agent@^0.6.0:
1360 | version "0.6.0"
1361 | resolved "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz"
1362 | integrity sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==
1363 | dependencies:
1364 | safe-buffer "^5.0.1"
1365 |
1366 | tweetnacl@^0.14.3, tweetnacl@~0.14.0:
1367 | version "0.14.5"
1368 | resolved "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz"
1369 | integrity sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==
1370 |
1371 | type-fest@^0.21.3:
1372 | version "0.21.3"
1373 | resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz"
1374 | integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==
1375 |
1376 | union@~0.5.0:
1377 | version "0.5.0"
1378 | resolved "https://registry.npmjs.org/union/-/union-0.5.0.tgz"
1379 | integrity sha512-N6uOhuW6zO95P3Mel2I2zMsbsanvvtgn6jVqJv4vbVcz/JN0OkL9suomjQGmWtxJQXOCqUJvquc1sMeNz/IwlA==
1380 | dependencies:
1381 | qs "^6.4.0"
1382 |
1383 | universalify@^2.0.0:
1384 | version "2.0.0"
1385 | resolved "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz"
1386 | integrity sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==
1387 |
1388 | untildify@^4.0.0:
1389 | version "4.0.0"
1390 | resolved "https://registry.npmjs.org/untildify/-/untildify-4.0.0.tgz"
1391 | integrity sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==
1392 |
1393 | url-join@^4.0.1:
1394 | version "4.0.1"
1395 | resolved "https://registry.npmjs.org/url-join/-/url-join-4.0.1.tgz"
1396 | integrity sha512-jk1+QP6ZJqyOiuEI9AEWQfju/nB2Pw466kbA0LEZljHwKeMgd9WrAEgEGxjPDD2+TNbbb37rTyhEfrCXfuKXnA==
1397 |
1398 | uuid@^8.3.2:
1399 | version "8.3.2"
1400 | resolved "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz"
1401 | integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==
1402 |
1403 | verror@1.10.0:
1404 | version "1.10.0"
1405 | resolved "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz"
1406 | integrity sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==
1407 | dependencies:
1408 | assert-plus "^1.0.0"
1409 | core-util-is "1.0.2"
1410 | extsprintf "^1.2.0"
1411 |
1412 | wait-on@6.0.0:
1413 | version "6.0.0"
1414 | resolved "https://registry.yarnpkg.com/wait-on/-/wait-on-6.0.0.tgz#7e9bf8e3d7fe2daecbb7a570ac8ca41e9311c7e7"
1415 | integrity sha512-tnUJr9p5r+bEYXPUdRseolmz5XqJTTj98JgOsfBn7Oz2dxfE2g3zw1jE+Mo8lopM3j3et/Mq1yW7kKX6qw7RVw==
1416 | dependencies:
1417 | axios "^0.21.1"
1418 | joi "^17.4.0"
1419 | lodash "^4.17.21"
1420 | minimist "^1.2.5"
1421 | rxjs "^7.1.0"
1422 |
1423 | whatwg-encoding@^2.0.0:
1424 | version "2.0.0"
1425 | resolved "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-2.0.0.tgz"
1426 | integrity sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==
1427 | dependencies:
1428 | iconv-lite "0.6.3"
1429 |
1430 | which@^2.0.1:
1431 | version "2.0.2"
1432 | resolved "https://registry.npmjs.org/which/-/which-2.0.2.tgz"
1433 | integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==
1434 | dependencies:
1435 | isexe "^2.0.0"
1436 |
1437 | wrap-ansi@^6.2.0:
1438 | version "6.2.0"
1439 | resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz"
1440 | integrity sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==
1441 | dependencies:
1442 | ansi-styles "^4.0.0"
1443 | string-width "^4.1.0"
1444 | strip-ansi "^6.0.0"
1445 |
1446 | wrap-ansi@^7.0.0:
1447 | version "7.0.0"
1448 | resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz"
1449 | integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==
1450 | dependencies:
1451 | ansi-styles "^4.0.0"
1452 | string-width "^4.1.0"
1453 | strip-ansi "^6.0.0"
1454 |
1455 | wrappy@1:
1456 | version "1.0.2"
1457 | resolved "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz"
1458 | integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==
1459 |
1460 | yallist@^4.0.0:
1461 | version "4.0.0"
1462 | resolved "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz"
1463 | integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==
1464 |
1465 | yauzl@^2.10.0:
1466 | version "2.10.0"
1467 | resolved "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz"
1468 | integrity sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==
1469 | dependencies:
1470 | buffer-crc32 "~0.2.3"
1471 | fd-slicer "~1.1.0"
1472 |
--------------------------------------------------------------------------------