├── .github
└── workflows
│ └── test.yml
├── .gitignore
├── .npmrc
├── CONTRIBUTING.md
├── LICENSE
├── README.md
├── docs
├── assets
│ ├── css
│ │ ├── docs.css
│ │ └── old.css
│ └── js
│ │ └── docs.js
├── dist
│ ├── input-spinner.css
│ ├── input-spinner.js
│ ├── input-spinner.min.css
│ ├── input-spinner.min.css.map
│ └── input-spinner.min.js
├── example.html
└── index.html
├── package-lock.json
├── package.json
├── src
├── input-spinner.js
└── input-spinner.less
└── tests
├── index.html
├── karma.conf.js
└── unit
└── unit.js
/.github/workflows/test.yml:
--------------------------------------------------------------------------------
1 | name: Test
2 |
3 | on: [push]
4 |
5 | jobs:
6 | run:
7 | name: Run tests
8 | runs-on: ubuntu-latest
9 |
10 | steps:
11 | - name: Clone repository
12 | uses: actions/checkout@v4
13 |
14 | - name: Setup Node.js
15 | uses: actions/setup-node@v4
16 | with:
17 | node-version: 22
18 |
19 | - name: Install npm dependencies
20 | run: npm ci
21 |
22 | - name: Run tests
23 | run: npm run test
24 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | /node_modules/
2 | /dist/
3 | /*-dist.zip
4 |
--------------------------------------------------------------------------------
/.npmrc:
--------------------------------------------------------------------------------
1 | ignore-prepublish=true
2 | lockfile-version=3
--------------------------------------------------------------------------------
/CONTRIBUTING.md:
--------------------------------------------------------------------------------
1 | # Contributing
2 |
3 | ## Important notes
4 | Please don't edit files in the `dist` subdirectory as they are generated via Grunt. You'll find source code in the `src` subdirectory!
5 |
6 | ### Code style
7 | Regarding code style like indentation and whitespace, **follow the conventions you see used in the source already.**
8 |
9 | ## Modifying the code
10 | First, ensure that you have the latest [Node.js](https://nodejs.org) and [npm](https://npmjs.com) installed.
11 |
12 |
13 | 1. Fork and clone the repo
14 | 1. Run `npm install` to install all dependencies
15 | 1. Run `npm run test`
16 |
17 | ## Submitting pull requests
18 |
19 | 1. Create a new branch, please don't work in your `master` branch directly.
20 | 1. Add failing tests for the change you want to make. Run `npm run test` to see the tests fail.
21 | 1. Fix stuff.
22 | 1. Run `npm run test` to see if the tests pass. Repeat steps 2-4 until done.
23 | 1. Open `tests/index.html` unit test file(s) in actual browser to ensure tests pass everywhere.
24 | 1. Update the documentation to reflect any changes.
25 | 1. Push to your fork and submit a pull request.
26 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright Vasilii A., 2015-2018
4 | Copyright xixilive, 2013-2015
5 |
6 | Permission is hereby granted, free of charge, to any person obtaining a copy of
7 | this software and associated documentation files (the "Software"), to deal in
8 | the Software without restriction, including without limitation the rights to
9 | use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
10 | the Software, and to permit persons to whom the Software is furnished to do so,
11 | subject to the following conditions:
12 |
13 | The above copyright notice and this permission notice shall be included in all
14 | copies or substantial portions of the Software.
15 |
16 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
18 | FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
19 | COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
20 | IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
21 | CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
22 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # [Input Spinner](https://vsn4ik.github.io/input-spinner/)
2 |
3 | [](LICENSE)
4 | [](https://github.com/vsn4ik/input-spinner/actions/workflows/test.yml)
5 |
6 |
7 | A Number-Spinner, Support keyboard operations and continuous changing.
8 |
9 | ## Basic usage, it's very simple
10 | ```html
11 |
12 |
13 |
14 |
15 |
16 | +
17 |
18 | -
19 |
20 | ```
21 |
22 | ## Getting Started
23 | Download the [production version][production] or the [development version][development].
24 |
25 | In your web page:
26 |
27 | ```html
28 |
29 |
30 |
40 |
41 |
42 | +
43 |
44 | -
45 |
46 | ```
47 |
48 | ## Documentation
49 | ### Spinner options
50 |
51 | #### delay
52 | > delay to fire changed event in millisecond, default is 500.
53 |
54 | #### changed
55 | > changed event handler, the changed event is a lazy-mode event, default is null.
56 |
57 | #### changing
58 | > changing event handler, the changing event will be fired immediately, default is null.
59 |
60 | ### Spinning Options(setup via data-api)
61 | #### min
62 | > the minimum value, default is null.
63 |
64 | #### max
65 | > the maximum value, default is null.
66 |
67 | #### step
68 | > the changing-value of per-step, if passed as a function, the function will be called within the spinner object scope.
69 |
70 | #### precision
71 | > the precision of value
72 |
73 | ### Built-in rules
74 | ```javascript
75 | currency: { min: 0.00, max: null, step: 0.01, precision: 2 },
76 | quantity: { min: 1, max: 999, step: 1, precision:0 },
77 | percent: { min: 1, max: 100, step: 1, precision:0 },
78 | month: { min: 1, max: 12, step: 1, precision:0 },
79 | day: { min: 1, max: 31, step: 1, precision:0 },
80 | hour: { min: 0, max: 23, step: 1, precision:0 },
81 | minute: { min: 1, max: 59, step: 1, precision:0 },
82 | second: { min: 1, max: 59, step: 1, precision:0 }
83 | ```
84 | Usage:
85 | ```html
86 |
87 | ```
88 |
89 | ## Examples
90 |
91 | ### Work with Bootstrap and Font Awesome
92 |
93 | ```html
94 |
95 |
96 |
103 | ```
104 |
105 | ### Customize
106 |
107 | #### specify a field
108 |
109 | ```html
110 |
111 |
112 |
113 |
114 | ```
115 |
116 | #### Use hidden field
117 |
118 | ```html
119 |
120 |
121 |
122 |
-
123 |
+
124 |
125 |
126 |
131 | ```
132 |
133 | #### pass step options as a function
134 | ```javascript
135 | // To skip 0
136 | $('#spinner').spinner({
137 | step: function(dir) {
138 | // 'this' references to the spinner object
139 | if ((this.oldValue === 1 && dir === 'down') || (this.oldValue === -1 && dir === 'up')) {
140 | return 2;
141 | }
142 | return 1;
143 | }
144 | });
145 |
146 | // or use API syntax
147 | $('#spinner').spinner('step', function(dir) {
148 | // your logic here
149 | });
150 | ```
151 |
152 |
153 | ## Copyright and license
154 |
155 | Copyright Vasilii A., 2015–2018
156 | Copyright xixilive, 2013–2015
157 |
158 | Licensed under [the MIT License][license].
159 |
160 | [license]: https://github.com/vsn4ik/input-spinner/blob/master/LICENSE
161 | [development]: https://raw.githubusercontent.com/vsn4ik/input-spinner/master/dist/input-spinner.min.js
162 | [production]: https://raw.githubusercontent.com/vsn4ik/input-spinner/master/dist/input-spinner.js
163 |
--------------------------------------------------------------------------------
/docs/assets/css/docs.css:
--------------------------------------------------------------------------------
1 | .gap-2 {
2 | gap: 0.5rem;
3 | }
4 |
5 | @property --stargazers {
6 | syntax: "";
7 | initial-value: 0;
8 | inherits: false;
9 | }
10 |
11 | .stargazers-count {
12 | transition: --stargazers 1s;
13 | counter-reset: stargazers var(--stargazers);
14 | }
15 |
16 | .stargazers-count::after {
17 | content: counter(stargazers);
18 | }
19 |
--------------------------------------------------------------------------------
/docs/assets/css/old.css:
--------------------------------------------------------------------------------
1 | /*@import url(https://fonts.googleapis.com/css?family=Arvo:400,700,400italic);*/
2 |
3 | /* MeyerWeb Reset */
4 |
5 | html, body, div, span, applet, object, iframe,
6 | h1, h2, h3, h4, h5, h6, p, blockquote, pre,
7 | a, abbr, acronym, address, big, cite, code,
8 | del, dfn, em, img, ins, kbd, q, s, samp,
9 | small, strike, strong, sub, sup, tt, var,
10 | b, u, i, center,
11 | dl, dt, dd, ol, ul, li,
12 | fieldset, form, label, legend,
13 | table, caption, tbody, tfoot, thead, tr, th, td,
14 | article, aside, canvas, details, embed,
15 | figure, figcaption, footer, header, hgroup,
16 | menu, nav, output, ruby, section, summary,
17 | time, mark, audio, video {
18 | margin: 0;
19 | padding: 0;
20 | border: 0;
21 | font: inherit;
22 | vertical-align: baseline;
23 | }
24 |
25 |
26 | /* Base text styles */
27 |
28 | body {
29 | font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
30 | font-size: 14px;
31 | color: #232323;
32 | background-color: #FBFAF7;
33 | line-height: 1.8em;
34 | -webkit-font-smoothing: antialiased;
35 | }
36 |
37 | h1, h2, h3, h4, h5, h6 {
38 | color: #232323;
39 | margin: 36px 0 10px;
40 | }
41 |
42 | header p, ul, ol, table, dl {
43 | margin: 0 0 22px;
44 | }
45 |
46 | h1, h2, h3 {
47 | font-family: Arvo, Monaco, serif;
48 | line-height: 1.3;
49 | font-weight: normal;
50 | }
51 |
52 | h1, h2, h3 {
53 | display: block;
54 | border-bottom: 1px solid #ccc;
55 | padding-bottom: 5px;
56 | }
57 |
58 | h1 {
59 | font-size: 30px;
60 | }
61 |
62 | h2 {
63 | font-size: 24px;
64 | }
65 |
66 | h3 {
67 | font-size: 18px;
68 | }
69 |
70 | h4, h5, h6 {
71 | font-family: Arvo, Monaco, serif;
72 | font-weight: 700;
73 | }
74 |
75 | a {
76 | color: #C30000;
77 | font-weight: 200;
78 | text-decoration: none;
79 | }
80 |
81 | a:hover {
82 | text-decoration: underline;
83 | }
84 |
85 | a small {
86 | font-size: 12px;
87 | }
88 |
89 | em {
90 | font-style: italic;
91 | }
92 |
93 | strong {
94 | font-weight: 700;
95 | }
96 |
97 | ul li {
98 | list-style: inside;
99 | padding-left: 25px;
100 | }
101 |
102 | ol li {
103 | list-style: decimal inside;
104 | padding-left: 20px;
105 | }
106 |
107 | blockquote {
108 | margin: 0;
109 | padding: 0 0 0 20px;
110 | font-style: italic;
111 | }
112 |
113 | dl, dt, dd, dl p {
114 | font-color: #444;
115 | }
116 |
117 | dl dt {
118 | font-weight: bold;
119 | }
120 |
121 | dl dd {
122 | padding-left: 20px;
123 | font-style: italic;
124 | }
125 |
126 | dl p {
127 | padding-left: 20px;
128 | font-style: italic;
129 | }
130 |
131 | hr {
132 | border: 0;
133 | background: #ccc;
134 | height: 1px;
135 | margin: 0 0 24px;
136 | }
137 |
138 | /* Tables */
139 |
140 | table {
141 | width: 100%;
142 | }
143 |
144 | table {
145 | border: 1px solid #ccc;
146 | margin-bottom: 32px;
147 | text-align: left;
148 | }
149 |
150 | th {
151 | font-family: 'Arvo', Helvetica, Arial, sans-serif;
152 | font-size: 18px;
153 | font-weight: normal;
154 | padding: 10px;
155 | background: #232323;
156 | color: #FDFEFB;
157 | }
158 |
159 | td {
160 | padding: 10px;
161 | background: #ccc;
162 | }
163 |
164 |
165 | /* Wrapper */
166 | .wrapper {
167 | display: flex;
168 | align-items: baseline;
169 | /* width: 960px; */
170 | }
171 |
172 |
173 | /* Header */
174 |
175 | header {
176 | background-color: #171717;
177 | color: #FDFDFB;
178 | width: 320px;
179 | position: sticky;
180 | top: 30px;
181 | border: 1px solid #000;
182 | border-top-right-radius: 4px;
183 | border-bottom-right-radius: 4px;
184 | padding: 34px 25px 22px 50px;
185 | margin: 30px 25px 0 0;
186 | -webkit-font-smoothing: antialiased;
187 | }
188 |
189 | p.header {
190 | font-size: 16px;
191 | }
192 |
193 | h1.header {
194 | font-family: Arvo, sans-serif;
195 | font-size: 30px;
196 | font-weight: 300;
197 | line-height: 1.3em;
198 | border-bottom: none;
199 | margin-top: 0;
200 | }
201 |
202 | header a, h1.header {
203 | color: #fff;
204 | }
205 |
206 | header ul {
207 | list-style: none;
208 | padding: 0;
209 | }
210 |
211 | header li {
212 | list-style-type: none;
213 | width: 132px;
214 | height: 15px;
215 | margin-bottom: 12px;
216 | line-height: 1em;
217 | padding: 6px 6px 6px 7px;
218 |
219 | background: #AF0011;
220 | background: linear-gradient(top, #AF0011 0%,#820011 100%);
221 |
222 | border-radius: 4px;
223 | border: 1px solid #0D0D0D;
224 |
225 | -webkit-box-shadow: inset 0px 1px 1px 0 rgba(233,2,38, 1);
226 | box-shadow: inset 0px 1px 1px 0 rgba(233,2,38, 1);
227 | }
228 |
229 | header li:hover {
230 | background: #C3001D;
231 | background: linear-gradient(top, #C3001D 0%,#950119 100%);
232 | }
233 |
234 |
235 | /* Section - for main page content */
236 |
237 | section {
238 | width: 650px;
239 | padding-bottom: 50px;
240 | }
241 |
242 | @media print, screen and (max-width: 960px) {
243 | div.wrapper {
244 | flex-direction: column;
245 | }
246 |
247 | header, section {
248 | position: static;
249 | width: auto;
250 | }
251 |
252 | section {
253 | padding: 20px 84px 20px 50px;
254 | margin: 0 0 20px;
255 | }
256 |
257 | header a small {
258 | display: inline;
259 | }
260 |
261 | header ul {
262 | position: absolute;
263 | right: 130px;
264 | top: 84px;
265 | }
266 | }
267 |
268 | @media print, screen and (max-width: 720px) {
269 | body {
270 | word-wrap: break-word;
271 | }
272 |
273 | header {
274 | padding: 20px;
275 | margin-right: 0;
276 | }
277 |
278 | section {
279 | padding: 10px 0 10px 20px;
280 | margin: 0 0 30px;
281 | }
282 |
283 | header ul, header p.view {
284 | position: static;
285 | }
286 | }
287 |
288 | @media print, screen and (max-width: 480px) {
289 | header ul li.download {
290 | display: none;
291 | }
292 | }
293 |
294 | @media print {
295 | body {
296 | padding: 0.4in;
297 | font-size: 12pt;
298 | color: #444;
299 | }
300 | }
301 |
--------------------------------------------------------------------------------
/docs/assets/js/docs.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 |
3 | var exec = function() {
4 | fetch('https://api.github.com/repos/vsn4ik/input-spinner')
5 | .then(function(response) {
6 | return response.json();
7 | })
8 | .then(function(response) {
9 | // NOTE: XSS check
10 | if (typeof response.stargazers_count !== 'number') {
11 | return;
12 | }
13 |
14 | document.querySelector('.js-stargazers-count').style.setProperty('--stargazers', response.stargazers_count);
15 | });
16 |
17 | $('#customize-spinner').spinner('changed', function(event, newVal, oldVal) {
18 | $('#old-val').text(oldVal);
19 | $('#new-val').text(newVal);
20 | });
21 |
22 | $('[data-trigger="spinner"]').spinner('changing', function(event, newVal, oldVal) {
23 | $(event.currentTarget).closest('.well').find('small').text('Old = ' + oldVal + ', New = ' + newVal);
24 | });
25 |
26 | $('#step-spinner').spinner({
27 | step: function(dir) {
28 | if ((this.oldValue === 1 && dir === 'down') || (this.oldValue === -1 && dir === 'up')) {
29 | return 2;
30 | }
31 | return 1;
32 | }
33 | });
34 | };
35 |
36 | if (document.readyState === 'loading') {
37 | document.addEventListener('DOMContentLoaded', exec);
38 | } else {
39 | exec();
40 | }
--------------------------------------------------------------------------------
/docs/dist/input-spinner.css:
--------------------------------------------------------------------------------
1 | /* bootstrap@4 */
2 | .input-group.spinner .input-group-text {
3 | flex-direction: column;
4 | justify-content: center;
5 | padding-top: 0;
6 | padding-bottom: 0;
7 | }
8 | .input-group.spinner .input-group-text .spin-up,
9 | .input-group.spinner .input-group-text .spin-down {
10 | display: flex;
11 | background: none;
12 | border: none;
13 | padding: 0;
14 | color: #999;
15 | }
16 | .input-group.spinner .input-group-text .spin-up:hover,
17 | .input-group.spinner .input-group-text .spin-down:hover,
18 | .input-group.spinner .input-group-text .spin-up:focus,
19 | .input-group.spinner .input-group-text .spin-down:focus {
20 | color: #555;
21 | }
22 | /* bootstrap@3 */
23 | .spinner.input-group .input-group-addon .spin-up,
24 | .spinner.input-group .input-group-addon .spin-down {
25 | height: 10px;
26 | width: 10px;
27 | overflow: hidden;
28 | display: block;
29 | text-align: center;
30 | color: #999;
31 | }
32 | .spinner.input-group .input-group-addon .spin-up:hover,
33 | .spinner.input-group .input-group-addon .spin-down:hover {
34 | color: #555;
35 | }
36 | .spinner.input-group .input-group-addon .spin-up .fas,
37 | .spinner.input-group .input-group-addon .spin-down .fas {
38 | margin-top: -6px;
39 | vertical-align: middle;
40 | }
41 | .spinner.input-group .input-group-addon .spin-up .glyphicon,
42 | .spinner.input-group .input-group-addon .spin-down .glyphicon {
43 | font-size: 10px;
44 | top: -2px;
45 | }
46 | .spinner.input-group .input-group-addon a.spin-up,
47 | .spinner.input-group .input-group-addon a.spin-down {
48 | text-decoration: none;
49 | }
50 | .spinner.input-group .input-group-addon button.spin-up,
51 | .spinner.input-group .input-group-addon button.spin-down {
52 | background: none;
53 | border: none;
54 | padding: 0;
55 | }
56 | .spinner.input-group.input-group-sm .input-group-addon .spin-up,
57 | .spinner.input-group.input-group-sm .input-group-addon .spin-down {
58 | height: 8px;
59 | }
60 | .spinner.input-group.input-group-sm .input-group-addon .spin-up .fas,
61 | .spinner.input-group.input-group-sm .input-group-addon .spin-down .fas {
62 | margin-top: -10px;
63 | }
64 | .spinner.input-group.input-group-sm .input-group-addon .spin-up .glyphicon,
65 | .spinner.input-group.input-group-sm .input-group-addon .spin-down .glyphicon {
66 | font-size: 8px;
67 | top: -5px;
68 | }
69 | .spinner.input-group.input-group-lg .input-group-addon .spin-up,
70 | .spinner.input-group.input-group-lg .input-group-addon .spin-down {
71 | height: 12px;
72 | width: 12px;
73 | }
74 | .spinner.input-group.input-group-lg .input-group-addon .spin-up .fas,
75 | .spinner.input-group.input-group-lg .input-group-addon .spin-down .fas {
76 | margin-top: -16px;
77 | }
78 | .spinner.input-group.input-group-lg .input-group-addon .spin-up .glyphicon,
79 | .spinner.input-group.input-group-lg .input-group-addon .spin-down .glyphicon {
80 | font-size: 12px;
81 | top: -6px;
82 | }
83 |
--------------------------------------------------------------------------------
/docs/dist/input-spinner.js:
--------------------------------------------------------------------------------
1 | /*
2 | * input-spinner
3 | * https://github.com/vsn4ik/input-spinner
4 | * Copyright Vasilii A., 2015–2018
5 | * Copyright xixilive, 2013–2015
6 | * Licensed under the MIT license
7 | */
8 |
9 | 'use strict';
10 |
11 | (function(factory) {
12 | if (typeof define === 'function' && define.amd) {
13 | // AMD. Register as an anonymous module
14 | define(['jquery'], factory);
15 | } else if (typeof exports === 'object') {
16 | // Node/CommonJS
17 | module.exports = factory(require('jquery'));
18 | } else {
19 | // Browser globals
20 | factory(jQuery);
21 | }
22 | })(function($) {
23 | var Spinner;
24 | var Spinning = function($element, options) {
25 | this.$el = $element;
26 | this.options = Object.assign({}, Spinning.rules.defaults, Spinning.rules[options.rule] || {}, options);
27 | this.min = Number(this.options.min) || 0;
28 | this.max = Number(this.options.max) || 0;
29 | this.spinningTimer = null;
30 |
31 | this.$el.on({
32 | 'focus.spinner': (function(e) {
33 | e.preventDefault();
34 | $(this.$el).trigger('mouseup.spinner');
35 | this.oldValue = this.value();
36 | }).bind(this),
37 | 'change.spinner': (function(e) {
38 | e.preventDefault();
39 | this.value(this.$el.val());
40 | }).bind(this),
41 | 'keydown.spinner': (function(e) {
42 | var dir = {
43 | 38: 'up',
44 | 40: 'down'
45 | }[e.keyCode];
46 |
47 | if (dir) {
48 | e.preventDefault();
49 | this.spin(dir);
50 | }
51 | }).bind(this)
52 | });
53 |
54 | //init input value
55 | this.oldValue = this.value();
56 | this.value(this.$el.val());
57 | return this;
58 | };
59 |
60 | Spinning.rules = {
61 | defaults: { min: null, max: null, step: 1, precision: 0 },
62 | currency: { min: 0.00, max: null, step: 0.01, precision: 2 },
63 | quantity: { min: 1, max: 999, step: 1, precision: 0 },
64 | percent: { min: 1, max: 100, step: 1, precision: 0 },
65 | month: { min: 1, max: 12, step: 1, precision: 0 },
66 | day: { min: 1, max: 31, step: 1, precision: 0 },
67 | hour: { min: 0, max: 23, step: 1, precision: 0 },
68 | minute: { min: 1, max: 59, step: 1, precision: 0 },
69 | second: { min: 1, max: 59, step: 1, precision: 0 }
70 | };
71 |
72 | Spinning.prototype = {
73 | spin: function(dir) {
74 | if (this.$el.prop('disabled')) {
75 | return;
76 | }
77 |
78 | this.oldValue = this.value();
79 | var step = typeof this.options.step === 'function' ? this.options.step.call(this, dir) : this.options.step;
80 | var multipler = dir === 'up' ? 1 : -1;
81 |
82 | this.value(this.oldValue + Number(step) * multipler);
83 | },
84 |
85 | value: function(v) {
86 | if (v === null || v === undefined) {
87 | return this.numeric(this.$el.val());
88 | }
89 | v = this.numeric(v);
90 |
91 | var valid = this.validate(v);
92 | if (valid !== 0) {
93 | v = valid === -1 ? this.min : this.max;
94 | }
95 | this.$el.val(v.toFixed(this.options.precision));
96 |
97 | if (this.oldValue !== this.value()) {
98 | // changing.spinner
99 | this.$el.trigger('changing.spinner', [this.value(), this.oldValue]);
100 |
101 | // lazy changed.spinner
102 | clearTimeout(this.spinningTimer);
103 | this.spinningTimer = setTimeout((function() {
104 | this.$el.trigger('changed.spinner', [this.value(), this.oldValue]);
105 | }).bind(this), Spinner.delay);
106 | }
107 | },
108 |
109 | numeric: function(v) {
110 | v = this.options.precision > 0 ? parseFloat(v, 10) : parseInt(v, 10);
111 |
112 | // If the variable is a number
113 | if (isFinite(v)) {
114 | return v;
115 | }
116 |
117 | return v || this.options.min || 0;
118 | },
119 |
120 | validate: function(val) {
121 | if (this.options.min !== null && val < this.min) {
122 | return -1;
123 | }
124 |
125 | if (this.options.max !== null && val > this.max) {
126 | return 1;
127 | }
128 |
129 | return 0;
130 | }
131 | };
132 |
133 | Spinner = function(element, options) {
134 | this.$el = $(element);
135 | this.$spinning = this.$el.find('[data-spin="spinner"]');
136 |
137 | if (this.$spinning.length === 0) {
138 | this.$spinning = this.$el.find('input[type="text"]');
139 | }
140 |
141 | options = Object.assign({}, options, this.$spinning.data());
142 |
143 | this.spinning = new Spinning(this.$spinning, options);
144 |
145 | this.$el
146 | .on('click.spinner', '[data-spin="up"], [data-spin="down"]', this.spin.bind(this))
147 | .on('mousedown.spinner', '[data-spin="up"], [data-spin="down"]', this.spin.bind(this))
148 | .on('mouseup.spinner', '[data-spin="up"], [data-spin="down"]', this.spin.bind(this));
149 |
150 | if (options.delay) {
151 | this.delay(options.delay);
152 | }
153 |
154 | if (options.changed) {
155 | this.changed(options.changed);
156 | }
157 |
158 | if (options.changing) {
159 | this.changing(options.changing);
160 | }
161 | };
162 |
163 | Spinner.delay = 500;
164 |
165 | Spinner.prototype = {
166 | constructor: Spinner,
167 |
168 | spin: function(e) {
169 | var dir = $(e.currentTarget).data('spin');
170 |
171 | switch (e.type) {
172 | case 'click':
173 | e.preventDefault();
174 | this.spinning.spin(dir);
175 | break;
176 | case 'mousedown':
177 | if (e.keyCode === 1) {
178 | this.spinTimeout = setTimeout(this.beginSpin.bind(this, dir), 300);
179 | }
180 | break;
181 | case 'mouseup':
182 | clearTimeout(this.spinTimeout);
183 | clearInterval(this.spinInterval);
184 | break;
185 | }
186 | },
187 |
188 | delay: function(ms) {
189 | var delay = Number(ms);
190 |
191 | if (delay >= 0) {
192 | this.constructor.delay = delay + 100;
193 | }
194 | },
195 |
196 | value: function() {
197 | return this.spinning.value();
198 | },
199 |
200 | changed: function(fn) {
201 | this.bindHandler('changed.spinner', fn);
202 | },
203 |
204 | changing: function(fn) {
205 | this.bindHandler('changing.spinner', fn);
206 | },
207 |
208 | bindHandler: function(t, fn) {
209 | if (typeof fn === 'function') {
210 | this.$spinning.on(t, fn);
211 | } else {
212 | this.$spinning.off(t);
213 | }
214 | },
215 |
216 | beginSpin: function(dir) {
217 | this.spinInterval = setInterval(this.spinning.spin.bind(this.spinning, dir), 100);
218 | }
219 | };
220 |
221 | var old = $.fn.spinner;
222 |
223 | $.fn.spinner = function(options, value) {
224 | return this.each(function() {
225 | var data = $.data(this, 'spinner');
226 |
227 | if (!data) {
228 | data = new Spinner(this, options);
229 |
230 | $.data(this, 'spinner', data);
231 | }
232 | if (options === 'delay' || options === 'changed' || options === 'changing') {
233 | data[options](value);
234 | } else if (options === 'step' && value) {
235 | data.spinning.step = value;
236 | } else if (options === 'spin' && value) {
237 | data.spinning.spin(value);
238 | }
239 | });
240 | };
241 |
242 | $.fn.spinner.Constructor = Spinner;
243 | $.fn.spinner.noConflict = function() {
244 | $.fn.spinner = old;
245 | return this;
246 | };
247 |
248 | $(function() {
249 | $('[data-trigger="spinner"]').spinner();
250 | });
251 |
252 | return $.fn.spinner;
253 | });
254 |
--------------------------------------------------------------------------------
/docs/dist/input-spinner.min.css:
--------------------------------------------------------------------------------
1 | .input-group.spinner .input-group-text{flex-direction:column;justify-content:center;padding-top:0;padding-bottom:0}.input-group.spinner .input-group-text .spin-down,.input-group.spinner .input-group-text .spin-up{display:flex;background:0 0;border:none;padding:0;color:#999}.input-group.spinner .input-group-text .spin-down:focus,.input-group.spinner .input-group-text .spin-down:hover,.input-group.spinner .input-group-text .spin-up:focus,.input-group.spinner .input-group-text .spin-up:hover{color:#555}.spinner.input-group .input-group-addon .spin-down,.spinner.input-group .input-group-addon .spin-up{height:10px;width:10px;overflow:hidden;display:block;text-align:center;color:#999}.spinner.input-group .input-group-addon .spin-down:hover,.spinner.input-group .input-group-addon .spin-up:hover{color:#555}.spinner.input-group .input-group-addon .spin-down .fas,.spinner.input-group .input-group-addon .spin-up .fas{margin-top:-6px;vertical-align:middle}.spinner.input-group .input-group-addon .spin-down .glyphicon,.spinner.input-group .input-group-addon .spin-up .glyphicon{font-size:10px;top:-2px}.spinner.input-group .input-group-addon a.spin-down,.spinner.input-group .input-group-addon a.spin-up{text-decoration:none}.spinner.input-group .input-group-addon button.spin-down,.spinner.input-group .input-group-addon button.spin-up{background:0 0;border:none;padding:0}.spinner.input-group.input-group-sm .input-group-addon .spin-down,.spinner.input-group.input-group-sm .input-group-addon .spin-up{height:8px}.spinner.input-group.input-group-sm .input-group-addon .spin-down .fas,.spinner.input-group.input-group-sm .input-group-addon .spin-up .fas{margin-top:-10px}.spinner.input-group.input-group-sm .input-group-addon .spin-down .glyphicon,.spinner.input-group.input-group-sm .input-group-addon .spin-up .glyphicon{font-size:8px;top:-5px}.spinner.input-group.input-group-lg .input-group-addon .spin-down,.spinner.input-group.input-group-lg .input-group-addon .spin-up{height:12px;width:12px}.spinner.input-group.input-group-lg .input-group-addon .spin-down .fas,.spinner.input-group.input-group-lg .input-group-addon .spin-up .fas{margin-top:-16px}.spinner.input-group.input-group-lg .input-group-addon .spin-down .glyphicon,.spinner.input-group.input-group-lg .input-group-addon .spin-up .glyphicon{font-size:12px;top:-6px}
2 | /*# sourceMappingURL=input-spinner.min.css.map */
--------------------------------------------------------------------------------
/docs/dist/input-spinner.min.css.map:
--------------------------------------------------------------------------------
1 | {"version":3,"sources":["dist/input-spinner.css"],"names":[],"mappings":"AACA,uCACE,eAAgB,OAChB,gBAAiB,OACjB,YAAa,EACb,eAAgB,EAGlB,kDADA,gDAEE,QAAS,KACT,WAAY,IACZ,OAAQ,KACR,QAAS,EACT,MAAO,KAKT,wDAFA,wDACA,sDAFA,sDAIE,MAAO,KAIT,mDADA,iDAEE,OAAQ,KACR,MAAO,KACP,SAAU,OACV,QAAS,MACT,WAAY,OACZ,MAAO,KAGT,yDADA,uDAEE,MAAO,KAGT,wDADA,sDAEE,WAAY,KACZ,eAAgB,OAGlB,8DADA,4DAEE,UAAW,KACX,IAAK,KAGP,oDADA,kDAEE,gBAAiB,KAGnB,yDADA,uDAEE,WAAY,IACZ,OAAQ,KACR,QAAS,EAGX,kEADA,gEAEE,OAAQ,IAGV,uEADA,qEAEE,WAAY,MAGd,6EADA,2EAEE,UAAW,IACX,IAAK,KAGP,kEADA,gEAEE,OAAQ,KACR,MAAO,KAGT,uEADA,qEAEE,WAAY,MAGd,6EADA,2EAEE,UAAW,KACX,IAAK","sourcesContent":["/* bootstrap@4 */\n.input-group.spinner .input-group-text {\n flex-direction: column;\n justify-content: center;\n padding-top: 0;\n padding-bottom: 0;\n}\n.input-group.spinner .input-group-text .spin-up,\n.input-group.spinner .input-group-text .spin-down {\n display: flex;\n background: none;\n border: none;\n padding: 0;\n color: #999;\n}\n.input-group.spinner .input-group-text .spin-up:hover,\n.input-group.spinner .input-group-text .spin-down:hover,\n.input-group.spinner .input-group-text .spin-up:focus,\n.input-group.spinner .input-group-text .spin-down:focus {\n color: #555;\n}\n/* bootstrap@3 */\n.spinner.input-group .input-group-addon .spin-up,\n.spinner.input-group .input-group-addon .spin-down {\n height: 10px;\n width: 10px;\n overflow: hidden;\n display: block;\n text-align: center;\n color: #999;\n}\n.spinner.input-group .input-group-addon .spin-up:hover,\n.spinner.input-group .input-group-addon .spin-down:hover {\n color: #555;\n}\n.spinner.input-group .input-group-addon .spin-up .fas,\n.spinner.input-group .input-group-addon .spin-down .fas {\n margin-top: -6px;\n vertical-align: middle;\n}\n.spinner.input-group .input-group-addon .spin-up .glyphicon,\n.spinner.input-group .input-group-addon .spin-down .glyphicon {\n font-size: 10px;\n top: -2px;\n}\n.spinner.input-group .input-group-addon a.spin-up,\n.spinner.input-group .input-group-addon a.spin-down {\n text-decoration: none;\n}\n.spinner.input-group .input-group-addon button.spin-up,\n.spinner.input-group .input-group-addon button.spin-down {\n background: none;\n border: none;\n padding: 0;\n}\n.spinner.input-group.input-group-sm .input-group-addon .spin-up,\n.spinner.input-group.input-group-sm .input-group-addon .spin-down {\n height: 8px;\n}\n.spinner.input-group.input-group-sm .input-group-addon .spin-up .fas,\n.spinner.input-group.input-group-sm .input-group-addon .spin-down .fas {\n margin-top: -10px;\n}\n.spinner.input-group.input-group-sm .input-group-addon .spin-up .glyphicon,\n.spinner.input-group.input-group-sm .input-group-addon .spin-down .glyphicon {\n font-size: 8px;\n top: -5px;\n}\n.spinner.input-group.input-group-lg .input-group-addon .spin-up,\n.spinner.input-group.input-group-lg .input-group-addon .spin-down {\n height: 12px;\n width: 12px;\n}\n.spinner.input-group.input-group-lg .input-group-addon .spin-up .fas,\n.spinner.input-group.input-group-lg .input-group-addon .spin-down .fas {\n margin-top: -16px;\n}\n.spinner.input-group.input-group-lg .input-group-addon .spin-up .glyphicon,\n.spinner.input-group.input-group-lg .input-group-addon .spin-down .glyphicon {\n font-size: 12px;\n top: -6px;\n}\n"]}
--------------------------------------------------------------------------------
/docs/dist/input-spinner.min.js:
--------------------------------------------------------------------------------
1 | "use strict";!function(factory){"function"==typeof define&&define.amd?define(["jquery"],factory):"object"==typeof exports?module.exports=factory(require("jquery")):factory(jQuery)}((function($){var Spinner,Spinning=function($element,options){return this.$el=$element,this.options=Object.assign({},Spinning.rules.defaults,Spinning.rules[options.rule]||{},options),this.min=Number(this.options.min)||0,this.max=Number(this.options.max)||0,this.spinningTimer=null,this.$el.on({"focus.spinner":function(e){e.preventDefault(),$(this.$el).trigger("mouseup.spinner"),this.oldValue=this.value()}.bind(this),"change.spinner":function(e){e.preventDefault(),this.value(this.$el.val())}.bind(this),"keydown.spinner":function(e){var dir={38:"up",40:"down"}[e.keyCode];dir&&(e.preventDefault(),this.spin(dir))}.bind(this)}),this.oldValue=this.value(),this.value(this.$el.val()),this};Spinning.rules={defaults:{min:null,max:null,step:1,precision:0},currency:{min:0,max:null,step:.01,precision:2},quantity:{min:1,max:999,step:1,precision:0},percent:{min:1,max:100,step:1,precision:0},month:{min:1,max:12,step:1,precision:0},day:{min:1,max:31,step:1,precision:0},hour:{min:0,max:23,step:1,precision:0},minute:{min:1,max:59,step:1,precision:0},second:{min:1,max:59,step:1,precision:0}},Spinning.prototype={spin:function(dir){if(!this.$el.prop("disabled")){this.oldValue=this.value();var step="function"==typeof this.options.step?this.options.step.call(this,dir):this.options.step,multipler="up"===dir?1:-1;this.value(this.oldValue+Number(step)*multipler)}},value:function(v){if(null==v)return this.numeric(this.$el.val());v=this.numeric(v);var valid=this.validate(v);0!==valid&&(v=-1===valid?this.min:this.max),this.$el.val(v.toFixed(this.options.precision)),this.oldValue!==this.value()&&(this.$el.trigger("changing.spinner",[this.value(),this.oldValue]),clearTimeout(this.spinningTimer),this.spinningTimer=setTimeout(function(){this.$el.trigger("changed.spinner",[this.value(),this.oldValue])}.bind(this),Spinner.delay))},numeric:function(v){return v=this.options.precision>0?parseFloat(v,10):parseInt(v,10),isFinite(v)?v:v||this.options.min||0},validate:function(val){return null!==this.options.min&&valthis.max?1:0}},(Spinner=function(element,options){this.$el=$(element),this.$spinning=this.$el.find('[data-spin="spinner"]'),0===this.$spinning.length&&(this.$spinning=this.$el.find('input[type="text"]')),options=Object.assign({},options,this.$spinning.data()),this.spinning=new Spinning(this.$spinning,options),this.$el.on("click.spinner",'[data-spin="up"], [data-spin="down"]',this.spin.bind(this)).on("mousedown.spinner",'[data-spin="up"], [data-spin="down"]',this.spin.bind(this)).on("mouseup.spinner",'[data-spin="up"], [data-spin="down"]',this.spin.bind(this)),options.delay&&this.delay(options.delay),options.changed&&this.changed(options.changed),options.changing&&this.changing(options.changing)}).delay=500,Spinner.prototype={constructor:Spinner,spin:function(e){var dir=$(e.currentTarget).data("spin");switch(e.type){case"click":e.preventDefault(),this.spinning.spin(dir);break;case"mousedown":1===e.keyCode&&(this.spinTimeout=setTimeout(this.beginSpin.bind(this,dir),300));break;case"mouseup":clearTimeout(this.spinTimeout),clearInterval(this.spinInterval)}},delay:function(ms){var delay=Number(ms);delay>=0&&(this.constructor.delay=delay+100)},value:function(){return this.spinning.value()},changed:function(fn){this.bindHandler("changed.spinner",fn)},changing:function(fn){this.bindHandler("changing.spinner",fn)},bindHandler:function(t,fn){"function"==typeof fn?this.$spinning.on(t,fn):this.$spinning.off(t)},beginSpin:function(dir){this.spinInterval=setInterval(this.spinning.spin.bind(this.spinning,dir),100)}};var old=$.fn.spinner;return $.fn.spinner=function(options,value){return this.each((function(){var data=$.data(this,"spinner");data||(data=new Spinner(this,options),$.data(this,"spinner",data)),"delay"===options||"changed"===options||"changing"===options?data[options](value):"step"===options&&value?data.spinning.step=value:"spin"===options&&value&&data.spinning.spin(value)}))},$.fn.spinner.Constructor=Spinner,$.fn.spinner.noConflict=function(){return $.fn.spinner=old,this},$((function(){$('[data-trigger="spinner"]').spinner()})),$.fn.spinner}));
--------------------------------------------------------------------------------
/docs/example.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | Input Spinner - Example
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
23 |
24 |
25 |
26 |
Examples
27 |
28 | Arrow-up for increment
29 | Arrow-down for decrement
30 | Press Arrows or Left-mouse cause continuous changing
31 |
32 |
33 |
46 |
47 |
60 |
61 |
74 |
75 |
88 |
89 |
90 |
Customize (even number less than 200):
91 |
101 |
Event handler: changed
102 |
103 | Old = , New =
104 |
105 |
106 |
107 |
108 |
Disabled input:
109 |
119 |
120 |
121 |
122 |
Control sizing:
123 |
133 |
134 |
135 |
136 |
146 |
147 |
148 |
149 |
150 |
--------------------------------------------------------------------------------
/docs/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | Input Spinner
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
47 |
48 |
49 | Examples
50 |
51 | Arrow-up for increment
52 | Arrow-down for decrement
53 | Press Arrows or Left-mouse cause continuous changing
54 |
55 |
56 |
69 |
70 |
83 |
84 |
97 |
98 |
111 |
112 |
125 |
126 | Customize
127 |
128 |
even number less than 200
129 |
139 |
Event handler: changed
140 |
141 | Old = , New =
142 |
143 |
144 |
145 |
146 |
Pass step option as a function
147 |
To skip 0 for this example
148 |
158 |
159 |
160 |
161 |
162 |
163 |
--------------------------------------------------------------------------------
/package-lock.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "input-spinner",
3 | "version": "1.0.0",
4 | "lockfileVersion": 3,
5 | "requires": true,
6 | "packages": {
7 | "": {
8 | "name": "input-spinner",
9 | "version": "1.0.0",
10 | "license": "MIT",
11 | "devDependencies": {
12 | "clean-css-cli": "^5.6.2",
13 | "jquery": "^3.5.1",
14 | "karma": "^6.4.1",
15 | "karma-chrome-launcher": "^3.1.0",
16 | "karma-qunit": "^4.1.1",
17 | "less": "^4.1.3",
18 | "puppeteer": "^19.7.2",
19 | "qunit": "^2.10.1",
20 | "serve": "^14.2.1",
21 | "terser": "^5.0.0"
22 | }
23 | },
24 | "node_modules/@babel/code-frame": {
25 | "version": "7.18.6",
26 | "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz",
27 | "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==",
28 | "dev": true,
29 | "dependencies": {
30 | "@babel/highlight": "^7.18.6"
31 | },
32 | "engines": {
33 | "node": ">=6.9.0"
34 | }
35 | },
36 | "node_modules/@babel/helper-validator-identifier": {
37 | "version": "7.19.1",
38 | "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz",
39 | "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==",
40 | "dev": true,
41 | "engines": {
42 | "node": ">=6.9.0"
43 | }
44 | },
45 | "node_modules/@babel/highlight": {
46 | "version": "7.18.6",
47 | "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz",
48 | "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==",
49 | "dev": true,
50 | "dependencies": {
51 | "@babel/helper-validator-identifier": "^7.18.6",
52 | "chalk": "^2.0.0",
53 | "js-tokens": "^4.0.0"
54 | },
55 | "engines": {
56 | "node": ">=6.9.0"
57 | }
58 | },
59 | "node_modules/@babel/highlight/node_modules/ansi-styles": {
60 | "version": "3.2.1",
61 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
62 | "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
63 | "dev": true,
64 | "dependencies": {
65 | "color-convert": "^1.9.0"
66 | },
67 | "engines": {
68 | "node": ">=4"
69 | }
70 | },
71 | "node_modules/@babel/highlight/node_modules/chalk": {
72 | "version": "2.4.2",
73 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
74 | "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
75 | "dev": true,
76 | "dependencies": {
77 | "ansi-styles": "^3.2.1",
78 | "escape-string-regexp": "^1.0.5",
79 | "supports-color": "^5.3.0"
80 | },
81 | "engines": {
82 | "node": ">=4"
83 | }
84 | },
85 | "node_modules/@babel/highlight/node_modules/color-convert": {
86 | "version": "1.9.3",
87 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
88 | "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
89 | "dev": true,
90 | "dependencies": {
91 | "color-name": "1.1.3"
92 | }
93 | },
94 | "node_modules/@babel/highlight/node_modules/color-name": {
95 | "version": "1.1.3",
96 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
97 | "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==",
98 | "dev": true
99 | },
100 | "node_modules/@babel/highlight/node_modules/has-flag": {
101 | "version": "3.0.0",
102 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
103 | "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
104 | "dev": true,
105 | "engines": {
106 | "node": ">=4"
107 | }
108 | },
109 | "node_modules/@babel/highlight/node_modules/supports-color": {
110 | "version": "5.5.0",
111 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
112 | "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
113 | "dev": true,
114 | "dependencies": {
115 | "has-flag": "^3.0.0"
116 | },
117 | "engines": {
118 | "node": ">=4"
119 | }
120 | },
121 | "node_modules/@colors/colors": {
122 | "version": "1.5.0",
123 | "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz",
124 | "integrity": "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==",
125 | "dev": true,
126 | "engines": {
127 | "node": ">=0.1.90"
128 | }
129 | },
130 | "node_modules/@jridgewell/gen-mapping": {
131 | "version": "0.3.2",
132 | "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz",
133 | "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==",
134 | "dev": true,
135 | "dependencies": {
136 | "@jridgewell/set-array": "^1.0.1",
137 | "@jridgewell/sourcemap-codec": "^1.4.10",
138 | "@jridgewell/trace-mapping": "^0.3.9"
139 | },
140 | "engines": {
141 | "node": ">=6.0.0"
142 | }
143 | },
144 | "node_modules/@jridgewell/resolve-uri": {
145 | "version": "3.1.0",
146 | "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz",
147 | "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==",
148 | "dev": true,
149 | "engines": {
150 | "node": ">=6.0.0"
151 | }
152 | },
153 | "node_modules/@jridgewell/set-array": {
154 | "version": "1.1.2",
155 | "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz",
156 | "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==",
157 | "dev": true,
158 | "engines": {
159 | "node": ">=6.0.0"
160 | }
161 | },
162 | "node_modules/@jridgewell/source-map": {
163 | "version": "0.3.2",
164 | "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.2.tgz",
165 | "integrity": "sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw==",
166 | "dev": true,
167 | "dependencies": {
168 | "@jridgewell/gen-mapping": "^0.3.0",
169 | "@jridgewell/trace-mapping": "^0.3.9"
170 | }
171 | },
172 | "node_modules/@jridgewell/sourcemap-codec": {
173 | "version": "1.4.14",
174 | "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz",
175 | "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==",
176 | "dev": true
177 | },
178 | "node_modules/@jridgewell/trace-mapping": {
179 | "version": "0.3.17",
180 | "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz",
181 | "integrity": "sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==",
182 | "dev": true,
183 | "dependencies": {
184 | "@jridgewell/resolve-uri": "3.1.0",
185 | "@jridgewell/sourcemap-codec": "1.4.14"
186 | }
187 | },
188 | "node_modules/@socket.io/component-emitter": {
189 | "version": "3.1.0",
190 | "resolved": "https://registry.npmjs.org/@socket.io/component-emitter/-/component-emitter-3.1.0.tgz",
191 | "integrity": "sha512-+9jVqKhRSpsc591z5vX+X5Yyw+he/HCB4iQ/RYxw35CEPaY1gnsNE43nf9n9AaYjAQrTiI/mOwKUKdUs9vf7Xg==",
192 | "dev": true
193 | },
194 | "node_modules/@types/cookie": {
195 | "version": "0.4.1",
196 | "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.4.1.tgz",
197 | "integrity": "sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q==",
198 | "dev": true
199 | },
200 | "node_modules/@types/cors": {
201 | "version": "2.8.13",
202 | "resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.13.tgz",
203 | "integrity": "sha512-RG8AStHlUiV5ysZQKq97copd2UmVYw3/pRMLefISZ3S1hK104Cwm7iLQ3fTKx+lsUH2CE8FlLaYeEA2LSeqYUA==",
204 | "dev": true,
205 | "dependencies": {
206 | "@types/node": "*"
207 | }
208 | },
209 | "node_modules/@types/node": {
210 | "version": "18.14.1",
211 | "resolved": "https://registry.npmjs.org/@types/node/-/node-18.14.1.tgz",
212 | "integrity": "sha512-QH+37Qds3E0eDlReeboBxfHbX9omAcBCXEzswCu6jySP642jiM3cYSIkU/REqwhCUqXdonHFuBfJDiAJxMNhaQ==",
213 | "dev": true
214 | },
215 | "node_modules/@types/yauzl": {
216 | "version": "2.10.0",
217 | "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.0.tgz",
218 | "integrity": "sha512-Cn6WYCm0tXv8p6k+A8PvbDG763EDpBoTzHdA+Q/MF6H3sapGjCm9NzoaJncJS9tUKSuCoDs9XHxYYsQDgxR6kw==",
219 | "dev": true,
220 | "optional": true,
221 | "dependencies": {
222 | "@types/node": "*"
223 | }
224 | },
225 | "node_modules/@zeit/schemas": {
226 | "version": "2.29.0",
227 | "resolved": "https://registry.npmjs.org/@zeit/schemas/-/schemas-2.29.0.tgz",
228 | "integrity": "sha512-g5QiLIfbg3pLuYUJPlisNKY+epQJTcMDsOnVNkscrDP1oi7vmJnzOANYJI/1pZcVJ6umUkBv3aFtlg1UvUHGzA==",
229 | "dev": true
230 | },
231 | "node_modules/accepts": {
232 | "version": "1.3.8",
233 | "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz",
234 | "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==",
235 | "dev": true,
236 | "dependencies": {
237 | "mime-types": "~2.1.34",
238 | "negotiator": "0.6.3"
239 | },
240 | "engines": {
241 | "node": ">= 0.6"
242 | }
243 | },
244 | "node_modules/acorn": {
245 | "version": "8.8.2",
246 | "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz",
247 | "integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==",
248 | "dev": true,
249 | "bin": {
250 | "acorn": "bin/acorn"
251 | },
252 | "engines": {
253 | "node": ">=0.4.0"
254 | }
255 | },
256 | "node_modules/agent-base": {
257 | "version": "6.0.2",
258 | "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz",
259 | "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==",
260 | "dev": true,
261 | "dependencies": {
262 | "debug": "4"
263 | },
264 | "engines": {
265 | "node": ">= 6.0.0"
266 | }
267 | },
268 | "node_modules/agent-base/node_modules/debug": {
269 | "version": "4.3.4",
270 | "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
271 | "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
272 | "dev": true,
273 | "dependencies": {
274 | "ms": "2.1.2"
275 | },
276 | "engines": {
277 | "node": ">=6.0"
278 | },
279 | "peerDependenciesMeta": {
280 | "supports-color": {
281 | "optional": true
282 | }
283 | }
284 | },
285 | "node_modules/agent-base/node_modules/ms": {
286 | "version": "2.1.2",
287 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
288 | "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
289 | "dev": true
290 | },
291 | "node_modules/ajv": {
292 | "version": "8.11.0",
293 | "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz",
294 | "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==",
295 | "dev": true,
296 | "dependencies": {
297 | "fast-deep-equal": "^3.1.1",
298 | "json-schema-traverse": "^1.0.0",
299 | "require-from-string": "^2.0.2",
300 | "uri-js": "^4.2.2"
301 | },
302 | "funding": {
303 | "type": "github",
304 | "url": "https://github.com/sponsors/epoberezkin"
305 | }
306 | },
307 | "node_modules/ansi-align": {
308 | "version": "3.0.1",
309 | "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz",
310 | "integrity": "sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==",
311 | "dev": true,
312 | "dependencies": {
313 | "string-width": "^4.1.0"
314 | }
315 | },
316 | "node_modules/ansi-align/node_modules/ansi-regex": {
317 | "version": "5.0.1",
318 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
319 | "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
320 | "dev": true,
321 | "engines": {
322 | "node": ">=8"
323 | }
324 | },
325 | "node_modules/ansi-align/node_modules/string-width": {
326 | "version": "4.2.3",
327 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
328 | "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
329 | "dev": true,
330 | "dependencies": {
331 | "emoji-regex": "^8.0.0",
332 | "is-fullwidth-code-point": "^3.0.0",
333 | "strip-ansi": "^6.0.1"
334 | },
335 | "engines": {
336 | "node": ">=8"
337 | }
338 | },
339 | "node_modules/ansi-align/node_modules/strip-ansi": {
340 | "version": "6.0.1",
341 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
342 | "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
343 | "dev": true,
344 | "dependencies": {
345 | "ansi-regex": "^5.0.1"
346 | },
347 | "engines": {
348 | "node": ">=8"
349 | }
350 | },
351 | "node_modules/ansi-regex": {
352 | "version": "6.0.1",
353 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz",
354 | "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==",
355 | "dev": true,
356 | "engines": {
357 | "node": ">=12"
358 | },
359 | "funding": {
360 | "url": "https://github.com/chalk/ansi-regex?sponsor=1"
361 | }
362 | },
363 | "node_modules/ansi-styles": {
364 | "version": "6.2.1",
365 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz",
366 | "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==",
367 | "dev": true,
368 | "engines": {
369 | "node": ">=12"
370 | },
371 | "funding": {
372 | "url": "https://github.com/chalk/ansi-styles?sponsor=1"
373 | }
374 | },
375 | "node_modules/anymatch": {
376 | "version": "3.1.3",
377 | "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz",
378 | "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==",
379 | "dev": true,
380 | "dependencies": {
381 | "normalize-path": "^3.0.0",
382 | "picomatch": "^2.0.4"
383 | },
384 | "engines": {
385 | "node": ">= 8"
386 | }
387 | },
388 | "node_modules/arch": {
389 | "version": "2.2.0",
390 | "resolved": "https://registry.npmjs.org/arch/-/arch-2.2.0.tgz",
391 | "integrity": "sha512-Of/R0wqp83cgHozfIYLbBMnej79U/SVGOOyuB3VVFv1NRM/PSFMK12x9KVtiYzJqmnU5WR2qp0Z5rHb7sWGnFQ==",
392 | "dev": true,
393 | "funding": [
394 | {
395 | "type": "github",
396 | "url": "https://github.com/sponsors/feross"
397 | },
398 | {
399 | "type": "patreon",
400 | "url": "https://www.patreon.com/feross"
401 | },
402 | {
403 | "type": "consulting",
404 | "url": "https://feross.org/support"
405 | }
406 | ]
407 | },
408 | "node_modules/arg": {
409 | "version": "5.0.2",
410 | "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz",
411 | "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==",
412 | "dev": true
413 | },
414 | "node_modules/argparse": {
415 | "version": "2.0.1",
416 | "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
417 | "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==",
418 | "dev": true
419 | },
420 | "node_modules/balanced-match": {
421 | "version": "1.0.2",
422 | "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
423 | "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
424 | "dev": true
425 | },
426 | "node_modules/base64-js": {
427 | "version": "1.5.1",
428 | "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz",
429 | "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==",
430 | "dev": true,
431 | "funding": [
432 | {
433 | "type": "github",
434 | "url": "https://github.com/sponsors/feross"
435 | },
436 | {
437 | "type": "patreon",
438 | "url": "https://www.patreon.com/feross"
439 | },
440 | {
441 | "type": "consulting",
442 | "url": "https://feross.org/support"
443 | }
444 | ]
445 | },
446 | "node_modules/base64id": {
447 | "version": "2.0.0",
448 | "resolved": "https://registry.npmjs.org/base64id/-/base64id-2.0.0.tgz",
449 | "integrity": "sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog==",
450 | "dev": true,
451 | "engines": {
452 | "node": "^4.5.0 || >= 5.9"
453 | }
454 | },
455 | "node_modules/binary-extensions": {
456 | "version": "2.2.0",
457 | "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz",
458 | "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==",
459 | "dev": true,
460 | "engines": {
461 | "node": ">=8"
462 | }
463 | },
464 | "node_modules/bl": {
465 | "version": "4.1.0",
466 | "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz",
467 | "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==",
468 | "dev": true,
469 | "dependencies": {
470 | "buffer": "^5.5.0",
471 | "inherits": "^2.0.4",
472 | "readable-stream": "^3.4.0"
473 | }
474 | },
475 | "node_modules/body-parser": {
476 | "version": "1.20.2",
477 | "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.2.tgz",
478 | "integrity": "sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==",
479 | "dev": true,
480 | "dependencies": {
481 | "bytes": "3.1.2",
482 | "content-type": "~1.0.5",
483 | "debug": "2.6.9",
484 | "depd": "2.0.0",
485 | "destroy": "1.2.0",
486 | "http-errors": "2.0.0",
487 | "iconv-lite": "0.4.24",
488 | "on-finished": "2.4.1",
489 | "qs": "6.11.0",
490 | "raw-body": "2.5.2",
491 | "type-is": "~1.6.18",
492 | "unpipe": "1.0.0"
493 | },
494 | "engines": {
495 | "node": ">= 0.8",
496 | "npm": "1.2.8000 || >= 1.4.16"
497 | }
498 | },
499 | "node_modules/boxen": {
500 | "version": "7.0.0",
501 | "resolved": "https://registry.npmjs.org/boxen/-/boxen-7.0.0.tgz",
502 | "integrity": "sha512-j//dBVuyacJbvW+tvZ9HuH03fZ46QcaKvvhZickZqtB271DxJ7SNRSNxrV/dZX0085m7hISRZWbzWlJvx/rHSg==",
503 | "dev": true,
504 | "dependencies": {
505 | "ansi-align": "^3.0.1",
506 | "camelcase": "^7.0.0",
507 | "chalk": "^5.0.1",
508 | "cli-boxes": "^3.0.0",
509 | "string-width": "^5.1.2",
510 | "type-fest": "^2.13.0",
511 | "widest-line": "^4.0.1",
512 | "wrap-ansi": "^8.0.1"
513 | },
514 | "engines": {
515 | "node": ">=14.16"
516 | },
517 | "funding": {
518 | "url": "https://github.com/sponsors/sindresorhus"
519 | }
520 | },
521 | "node_modules/boxen/node_modules/wrap-ansi": {
522 | "version": "8.1.0",
523 | "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz",
524 | "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==",
525 | "dev": true,
526 | "dependencies": {
527 | "ansi-styles": "^6.1.0",
528 | "string-width": "^5.0.1",
529 | "strip-ansi": "^7.0.1"
530 | },
531 | "engines": {
532 | "node": ">=12"
533 | },
534 | "funding": {
535 | "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
536 | }
537 | },
538 | "node_modules/brace-expansion": {
539 | "version": "1.1.11",
540 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
541 | "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
542 | "dev": true,
543 | "dependencies": {
544 | "balanced-match": "^1.0.0",
545 | "concat-map": "0.0.1"
546 | }
547 | },
548 | "node_modules/braces": {
549 | "version": "3.0.2",
550 | "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
551 | "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
552 | "dev": true,
553 | "dependencies": {
554 | "fill-range": "^7.0.1"
555 | },
556 | "engines": {
557 | "node": ">=8"
558 | }
559 | },
560 | "node_modules/buffer": {
561 | "version": "5.7.1",
562 | "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz",
563 | "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==",
564 | "dev": true,
565 | "funding": [
566 | {
567 | "type": "github",
568 | "url": "https://github.com/sponsors/feross"
569 | },
570 | {
571 | "type": "patreon",
572 | "url": "https://www.patreon.com/feross"
573 | },
574 | {
575 | "type": "consulting",
576 | "url": "https://feross.org/support"
577 | }
578 | ],
579 | "dependencies": {
580 | "base64-js": "^1.3.1",
581 | "ieee754": "^1.1.13"
582 | }
583 | },
584 | "node_modules/buffer-crc32": {
585 | "version": "0.2.13",
586 | "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz",
587 | "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==",
588 | "dev": true,
589 | "engines": {
590 | "node": "*"
591 | }
592 | },
593 | "node_modules/buffer-from": {
594 | "version": "1.1.2",
595 | "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz",
596 | "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==",
597 | "dev": true
598 | },
599 | "node_modules/bytes": {
600 | "version": "3.1.2",
601 | "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz",
602 | "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==",
603 | "dev": true,
604 | "engines": {
605 | "node": ">= 0.8"
606 | }
607 | },
608 | "node_modules/call-bind": {
609 | "version": "1.0.2",
610 | "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz",
611 | "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==",
612 | "dev": true,
613 | "dependencies": {
614 | "function-bind": "^1.1.1",
615 | "get-intrinsic": "^1.0.2"
616 | },
617 | "funding": {
618 | "url": "https://github.com/sponsors/ljharb"
619 | }
620 | },
621 | "node_modules/callsites": {
622 | "version": "3.1.0",
623 | "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
624 | "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==",
625 | "dev": true,
626 | "engines": {
627 | "node": ">=6"
628 | }
629 | },
630 | "node_modules/camelcase": {
631 | "version": "7.0.1",
632 | "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-7.0.1.tgz",
633 | "integrity": "sha512-xlx1yCK2Oc1APsPXDL2LdlNP6+uu8OCDdhOBSVT279M/S+y75O30C2VuD8T2ogdePBBl7PfPF4504tnLgX3zfw==",
634 | "dev": true,
635 | "engines": {
636 | "node": ">=14.16"
637 | },
638 | "funding": {
639 | "url": "https://github.com/sponsors/sindresorhus"
640 | }
641 | },
642 | "node_modules/chalk": {
643 | "version": "5.0.1",
644 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.0.1.tgz",
645 | "integrity": "sha512-Fo07WOYGqMfCWHOzSXOt2CxDbC6skS/jO9ynEcmpANMoPrD+W1r1K6Vx7iNm+AQmETU1Xr2t+n8nzkV9t6xh3w==",
646 | "dev": true,
647 | "engines": {
648 | "node": "^12.17.0 || ^14.13 || >=16.0.0"
649 | },
650 | "funding": {
651 | "url": "https://github.com/chalk/chalk?sponsor=1"
652 | }
653 | },
654 | "node_modules/chalk-template": {
655 | "version": "0.4.0",
656 | "resolved": "https://registry.npmjs.org/chalk-template/-/chalk-template-0.4.0.tgz",
657 | "integrity": "sha512-/ghrgmhfY8RaSdeo43hNXxpoHAtxdbskUHjPpfqUWGttFgycUhYPGx3YZBCnUCvOa7Doivn1IZec3DEGFoMgLg==",
658 | "dev": true,
659 | "dependencies": {
660 | "chalk": "^4.1.2"
661 | },
662 | "engines": {
663 | "node": ">=12"
664 | },
665 | "funding": {
666 | "url": "https://github.com/chalk/chalk-template?sponsor=1"
667 | }
668 | },
669 | "node_modules/chalk-template/node_modules/ansi-styles": {
670 | "version": "4.3.0",
671 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
672 | "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
673 | "dev": true,
674 | "dependencies": {
675 | "color-convert": "^2.0.1"
676 | },
677 | "engines": {
678 | "node": ">=8"
679 | },
680 | "funding": {
681 | "url": "https://github.com/chalk/ansi-styles?sponsor=1"
682 | }
683 | },
684 | "node_modules/chalk-template/node_modules/chalk": {
685 | "version": "4.1.2",
686 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
687 | "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
688 | "dev": true,
689 | "dependencies": {
690 | "ansi-styles": "^4.1.0",
691 | "supports-color": "^7.1.0"
692 | },
693 | "engines": {
694 | "node": ">=10"
695 | },
696 | "funding": {
697 | "url": "https://github.com/chalk/chalk?sponsor=1"
698 | }
699 | },
700 | "node_modules/chokidar": {
701 | "version": "3.5.3",
702 | "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz",
703 | "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==",
704 | "dev": true,
705 | "funding": [
706 | {
707 | "type": "individual",
708 | "url": "https://paulmillr.com/funding/"
709 | }
710 | ],
711 | "dependencies": {
712 | "anymatch": "~3.1.2",
713 | "braces": "~3.0.2",
714 | "glob-parent": "~5.1.2",
715 | "is-binary-path": "~2.1.0",
716 | "is-glob": "~4.0.1",
717 | "normalize-path": "~3.0.0",
718 | "readdirp": "~3.6.0"
719 | },
720 | "engines": {
721 | "node": ">= 8.10.0"
722 | },
723 | "optionalDependencies": {
724 | "fsevents": "~2.3.2"
725 | }
726 | },
727 | "node_modules/chownr": {
728 | "version": "1.1.4",
729 | "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz",
730 | "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==",
731 | "dev": true
732 | },
733 | "node_modules/chromium-bidi": {
734 | "version": "0.4.4",
735 | "resolved": "https://registry.npmjs.org/chromium-bidi/-/chromium-bidi-0.4.4.tgz",
736 | "integrity": "sha512-4BX5cSaponuvVT1+SbLYTOAgDoVtX/Khoc9UsbFJ/AsPVUeFAM3RiIDFI6XFhLYMi9WmVJqh1ZH+dRpNKkKwiQ==",
737 | "dev": true,
738 | "dependencies": {
739 | "mitt": "3.0.0"
740 | },
741 | "peerDependencies": {
742 | "devtools-protocol": "*"
743 | }
744 | },
745 | "node_modules/clean-css": {
746 | "version": "5.3.2",
747 | "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-5.3.2.tgz",
748 | "integrity": "sha512-JVJbM+f3d3Q704rF4bqQ5UUyTtuJ0JRKNbTKVEeujCCBoMdkEi+V+e8oktO9qGQNSvHrFTM6JZRXrUvGR1czww==",
749 | "dev": true,
750 | "dependencies": {
751 | "source-map": "~0.6.0"
752 | },
753 | "engines": {
754 | "node": ">= 10.0"
755 | }
756 | },
757 | "node_modules/clean-css-cli": {
758 | "version": "5.6.2",
759 | "resolved": "https://registry.npmjs.org/clean-css-cli/-/clean-css-cli-5.6.2.tgz",
760 | "integrity": "sha512-GDQkr6zVqHJhO3yWTy3sA22sMCT6iUqaJuBdqZMW6oI25MtiJ2iZXDmWzErpjoRotsB+TYPTpuZSNSgaC1n4lA==",
761 | "dev": true,
762 | "dependencies": {
763 | "chokidar": "^3.5.2",
764 | "clean-css": "^5.3.2",
765 | "commander": "7.x",
766 | "glob": "^7.1.6"
767 | },
768 | "bin": {
769 | "cleancss": "bin/cleancss"
770 | },
771 | "engines": {
772 | "node": ">= 10.12.0"
773 | }
774 | },
775 | "node_modules/clean-css-cli/node_modules/commander": {
776 | "version": "7.2.0",
777 | "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz",
778 | "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==",
779 | "dev": true,
780 | "engines": {
781 | "node": ">= 10"
782 | }
783 | },
784 | "node_modules/cli-boxes": {
785 | "version": "3.0.0",
786 | "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-3.0.0.tgz",
787 | "integrity": "sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g==",
788 | "dev": true,
789 | "engines": {
790 | "node": ">=10"
791 | },
792 | "funding": {
793 | "url": "https://github.com/sponsors/sindresorhus"
794 | }
795 | },
796 | "node_modules/clipboardy": {
797 | "version": "3.0.0",
798 | "resolved": "https://registry.npmjs.org/clipboardy/-/clipboardy-3.0.0.tgz",
799 | "integrity": "sha512-Su+uU5sr1jkUy1sGRpLKjKrvEOVXgSgiSInwa/qeID6aJ07yh+5NWc3h2QfjHjBnfX4LhtFcuAWKUsJ3r+fjbg==",
800 | "dev": true,
801 | "dependencies": {
802 | "arch": "^2.2.0",
803 | "execa": "^5.1.1",
804 | "is-wsl": "^2.2.0"
805 | },
806 | "engines": {
807 | "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
808 | },
809 | "funding": {
810 | "url": "https://github.com/sponsors/sindresorhus"
811 | }
812 | },
813 | "node_modules/cliui": {
814 | "version": "7.0.4",
815 | "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz",
816 | "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==",
817 | "dev": true,
818 | "dependencies": {
819 | "string-width": "^4.2.0",
820 | "strip-ansi": "^6.0.0",
821 | "wrap-ansi": "^7.0.0"
822 | }
823 | },
824 | "node_modules/cliui/node_modules/ansi-regex": {
825 | "version": "5.0.1",
826 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
827 | "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
828 | "dev": true,
829 | "engines": {
830 | "node": ">=8"
831 | }
832 | },
833 | "node_modules/cliui/node_modules/string-width": {
834 | "version": "4.2.3",
835 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
836 | "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
837 | "dev": true,
838 | "dependencies": {
839 | "emoji-regex": "^8.0.0",
840 | "is-fullwidth-code-point": "^3.0.0",
841 | "strip-ansi": "^6.0.1"
842 | },
843 | "engines": {
844 | "node": ">=8"
845 | }
846 | },
847 | "node_modules/cliui/node_modules/strip-ansi": {
848 | "version": "6.0.1",
849 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
850 | "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
851 | "dev": true,
852 | "dependencies": {
853 | "ansi-regex": "^5.0.1"
854 | },
855 | "engines": {
856 | "node": ">=8"
857 | }
858 | },
859 | "node_modules/color-convert": {
860 | "version": "2.0.1",
861 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
862 | "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
863 | "dev": true,
864 | "dependencies": {
865 | "color-name": "~1.1.4"
866 | },
867 | "engines": {
868 | "node": ">=7.0.0"
869 | }
870 | },
871 | "node_modules/color-name": {
872 | "version": "1.1.4",
873 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
874 | "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
875 | "dev": true
876 | },
877 | "node_modules/commander": {
878 | "version": "2.20.3",
879 | "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz",
880 | "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==",
881 | "dev": true
882 | },
883 | "node_modules/compressible": {
884 | "version": "2.0.18",
885 | "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz",
886 | "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==",
887 | "dev": true,
888 | "dependencies": {
889 | "mime-db": ">= 1.43.0 < 2"
890 | },
891 | "engines": {
892 | "node": ">= 0.6"
893 | }
894 | },
895 | "node_modules/compression": {
896 | "version": "1.7.4",
897 | "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz",
898 | "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==",
899 | "dev": true,
900 | "dependencies": {
901 | "accepts": "~1.3.5",
902 | "bytes": "3.0.0",
903 | "compressible": "~2.0.16",
904 | "debug": "2.6.9",
905 | "on-headers": "~1.0.2",
906 | "safe-buffer": "5.1.2",
907 | "vary": "~1.1.2"
908 | },
909 | "engines": {
910 | "node": ">= 0.8.0"
911 | }
912 | },
913 | "node_modules/compression/node_modules/bytes": {
914 | "version": "3.0.0",
915 | "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz",
916 | "integrity": "sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==",
917 | "dev": true,
918 | "engines": {
919 | "node": ">= 0.8"
920 | }
921 | },
922 | "node_modules/concat-map": {
923 | "version": "0.0.1",
924 | "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
925 | "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==",
926 | "dev": true
927 | },
928 | "node_modules/connect": {
929 | "version": "3.7.0",
930 | "resolved": "https://registry.npmjs.org/connect/-/connect-3.7.0.tgz",
931 | "integrity": "sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ==",
932 | "dev": true,
933 | "dependencies": {
934 | "debug": "2.6.9",
935 | "finalhandler": "1.1.2",
936 | "parseurl": "~1.3.3",
937 | "utils-merge": "1.0.1"
938 | },
939 | "engines": {
940 | "node": ">= 0.10.0"
941 | }
942 | },
943 | "node_modules/content-disposition": {
944 | "version": "0.5.2",
945 | "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.2.tgz",
946 | "integrity": "sha512-kRGRZw3bLlFISDBgwTSA1TMBFN6J6GWDeubmDE3AF+3+yXL8hTWv8r5rkLbqYXY4RjPk/EzHnClI3zQf1cFmHA==",
947 | "dev": true,
948 | "engines": {
949 | "node": ">= 0.6"
950 | }
951 | },
952 | "node_modules/content-type": {
953 | "version": "1.0.5",
954 | "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz",
955 | "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==",
956 | "dev": true,
957 | "engines": {
958 | "node": ">= 0.6"
959 | }
960 | },
961 | "node_modules/cookie": {
962 | "version": "0.4.2",
963 | "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz",
964 | "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==",
965 | "dev": true,
966 | "engines": {
967 | "node": ">= 0.6"
968 | }
969 | },
970 | "node_modules/copy-anything": {
971 | "version": "2.0.6",
972 | "resolved": "https://registry.npmjs.org/copy-anything/-/copy-anything-2.0.6.tgz",
973 | "integrity": "sha512-1j20GZTsvKNkc4BY3NpMOM8tt///wY3FpIzozTOFO2ffuZcV61nojHXVKIy3WM+7ADCy5FVhdZYHYDdgTU0yJw==",
974 | "dev": true,
975 | "dependencies": {
976 | "is-what": "^3.14.1"
977 | },
978 | "funding": {
979 | "url": "https://github.com/sponsors/mesqueeb"
980 | }
981 | },
982 | "node_modules/cors": {
983 | "version": "2.8.5",
984 | "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz",
985 | "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==",
986 | "dev": true,
987 | "dependencies": {
988 | "object-assign": "^4",
989 | "vary": "^1"
990 | },
991 | "engines": {
992 | "node": ">= 0.10"
993 | }
994 | },
995 | "node_modules/cosmiconfig": {
996 | "version": "8.0.0",
997 | "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.0.0.tgz",
998 | "integrity": "sha512-da1EafcpH6b/TD8vDRaWV7xFINlHlF6zKsGwS1TsuVJTZRkquaS5HTMq7uq6h31619QjbsYl21gVDOm32KM1vQ==",
999 | "dev": true,
1000 | "dependencies": {
1001 | "import-fresh": "^3.2.1",
1002 | "js-yaml": "^4.1.0",
1003 | "parse-json": "^5.0.0",
1004 | "path-type": "^4.0.0"
1005 | },
1006 | "engines": {
1007 | "node": ">=14"
1008 | }
1009 | },
1010 | "node_modules/cross-fetch": {
1011 | "version": "3.1.5",
1012 | "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.5.tgz",
1013 | "integrity": "sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw==",
1014 | "dev": true,
1015 | "dependencies": {
1016 | "node-fetch": "2.6.7"
1017 | }
1018 | },
1019 | "node_modules/cross-spawn": {
1020 | "version": "7.0.3",
1021 | "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
1022 | "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==",
1023 | "dev": true,
1024 | "dependencies": {
1025 | "path-key": "^3.1.0",
1026 | "shebang-command": "^2.0.0",
1027 | "which": "^2.0.1"
1028 | },
1029 | "engines": {
1030 | "node": ">= 8"
1031 | }
1032 | },
1033 | "node_modules/cross-spawn/node_modules/which": {
1034 | "version": "2.0.2",
1035 | "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
1036 | "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
1037 | "dev": true,
1038 | "dependencies": {
1039 | "isexe": "^2.0.0"
1040 | },
1041 | "bin": {
1042 | "node-which": "bin/node-which"
1043 | },
1044 | "engines": {
1045 | "node": ">= 8"
1046 | }
1047 | },
1048 | "node_modules/custom-event": {
1049 | "version": "1.0.1",
1050 | "resolved": "https://registry.npmjs.org/custom-event/-/custom-event-1.0.1.tgz",
1051 | "integrity": "sha512-GAj5FOq0Hd+RsCGVJxZuKaIDXDf3h6GQoNEjFgbLLI/trgtavwUbSnZ5pVfg27DVCaWjIohryS0JFwIJyT2cMg==",
1052 | "dev": true
1053 | },
1054 | "node_modules/date-format": {
1055 | "version": "4.0.14",
1056 | "resolved": "https://registry.npmjs.org/date-format/-/date-format-4.0.14.tgz",
1057 | "integrity": "sha512-39BOQLs9ZjKh0/patS9nrT8wc3ioX3/eA/zgbKNopnF2wCqJEoxywwwElATYvRsXdnOxA/OQeQoFZ3rFjVajhg==",
1058 | "dev": true,
1059 | "engines": {
1060 | "node": ">=4.0"
1061 | }
1062 | },
1063 | "node_modules/debug": {
1064 | "version": "2.6.9",
1065 | "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
1066 | "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
1067 | "dev": true,
1068 | "dependencies": {
1069 | "ms": "2.0.0"
1070 | }
1071 | },
1072 | "node_modules/deep-extend": {
1073 | "version": "0.6.0",
1074 | "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz",
1075 | "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==",
1076 | "dev": true,
1077 | "engines": {
1078 | "node": ">=4.0.0"
1079 | }
1080 | },
1081 | "node_modules/depd": {
1082 | "version": "2.0.0",
1083 | "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz",
1084 | "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==",
1085 | "dev": true,
1086 | "engines": {
1087 | "node": ">= 0.8"
1088 | }
1089 | },
1090 | "node_modules/destroy": {
1091 | "version": "1.2.0",
1092 | "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz",
1093 | "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==",
1094 | "dev": true,
1095 | "engines": {
1096 | "node": ">= 0.8",
1097 | "npm": "1.2.8000 || >= 1.4.16"
1098 | }
1099 | },
1100 | "node_modules/devtools-protocol": {
1101 | "version": "0.0.1094867",
1102 | "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.1094867.tgz",
1103 | "integrity": "sha512-pmMDBKiRVjh0uKK6CT1WqZmM3hBVSgD+N2MrgyV1uNizAZMw4tx6i/RTc+/uCsKSCmg0xXx7arCP/OFcIwTsiQ==",
1104 | "dev": true
1105 | },
1106 | "node_modules/di": {
1107 | "version": "0.0.1",
1108 | "resolved": "https://registry.npmjs.org/di/-/di-0.0.1.tgz",
1109 | "integrity": "sha512-uJaamHkagcZtHPqCIHZxnFrXlunQXgBOsZSUOWwFw31QJCAbyTBoHMW75YOTur5ZNx8pIeAKgf6GWIgaqqiLhA==",
1110 | "dev": true
1111 | },
1112 | "node_modules/dom-serialize": {
1113 | "version": "2.2.1",
1114 | "resolved": "https://registry.npmjs.org/dom-serialize/-/dom-serialize-2.2.1.tgz",
1115 | "integrity": "sha512-Yra4DbvoW7/Z6LBN560ZwXMjoNOSAN2wRsKFGc4iBeso+mpIA6qj1vfdf9HpMaKAqG6wXTy+1SYEzmNpKXOSsQ==",
1116 | "dev": true,
1117 | "dependencies": {
1118 | "custom-event": "~1.0.0",
1119 | "ent": "~2.2.0",
1120 | "extend": "^3.0.0",
1121 | "void-elements": "^2.0.0"
1122 | }
1123 | },
1124 | "node_modules/eastasianwidth": {
1125 | "version": "0.2.0",
1126 | "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz",
1127 | "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==",
1128 | "dev": true
1129 | },
1130 | "node_modules/ee-first": {
1131 | "version": "1.1.1",
1132 | "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
1133 | "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==",
1134 | "dev": true
1135 | },
1136 | "node_modules/emoji-regex": {
1137 | "version": "8.0.0",
1138 | "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
1139 | "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
1140 | "dev": true
1141 | },
1142 | "node_modules/encodeurl": {
1143 | "version": "1.0.2",
1144 | "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
1145 | "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==",
1146 | "dev": true,
1147 | "engines": {
1148 | "node": ">= 0.8"
1149 | }
1150 | },
1151 | "node_modules/end-of-stream": {
1152 | "version": "1.4.4",
1153 | "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz",
1154 | "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==",
1155 | "dev": true,
1156 | "dependencies": {
1157 | "once": "^1.4.0"
1158 | }
1159 | },
1160 | "node_modules/engine.io": {
1161 | "version": "6.4.1",
1162 | "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-6.4.1.tgz",
1163 | "integrity": "sha512-JFYQurD/nbsA5BSPmbaOSLa3tSVj8L6o4srSwXXY3NqE+gGUNmmPTbhn8tjzcCtSqhFgIeqef81ngny8JM25hw==",
1164 | "dev": true,
1165 | "dependencies": {
1166 | "@types/cookie": "^0.4.1",
1167 | "@types/cors": "^2.8.12",
1168 | "@types/node": ">=10.0.0",
1169 | "accepts": "~1.3.4",
1170 | "base64id": "2.0.0",
1171 | "cookie": "~0.4.1",
1172 | "cors": "~2.8.5",
1173 | "debug": "~4.3.1",
1174 | "engine.io-parser": "~5.0.3",
1175 | "ws": "~8.11.0"
1176 | },
1177 | "engines": {
1178 | "node": ">=10.0.0"
1179 | }
1180 | },
1181 | "node_modules/engine.io-parser": {
1182 | "version": "5.0.6",
1183 | "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.0.6.tgz",
1184 | "integrity": "sha512-tjuoZDMAdEhVnSFleYPCtdL2GXwVTGtNjoeJd9IhIG3C1xs9uwxqRNEu5WpnDZCaozwVlK/nuQhpodhXSIMaxw==",
1185 | "dev": true,
1186 | "engines": {
1187 | "node": ">=10.0.0"
1188 | }
1189 | },
1190 | "node_modules/engine.io/node_modules/debug": {
1191 | "version": "4.3.4",
1192 | "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
1193 | "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
1194 | "dev": true,
1195 | "dependencies": {
1196 | "ms": "2.1.2"
1197 | },
1198 | "engines": {
1199 | "node": ">=6.0"
1200 | },
1201 | "peerDependenciesMeta": {
1202 | "supports-color": {
1203 | "optional": true
1204 | }
1205 | }
1206 | },
1207 | "node_modules/engine.io/node_modules/ms": {
1208 | "version": "2.1.2",
1209 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
1210 | "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
1211 | "dev": true
1212 | },
1213 | "node_modules/ent": {
1214 | "version": "2.2.0",
1215 | "resolved": "https://registry.npmjs.org/ent/-/ent-2.2.0.tgz",
1216 | "integrity": "sha512-GHrMyVZQWvTIdDtpiEXdHZnFQKzeO09apj8Cbl4pKWy4i0Oprcq17usfDt5aO63swf0JOeMWjWQE/LzgSRuWpA==",
1217 | "dev": true
1218 | },
1219 | "node_modules/errno": {
1220 | "version": "0.1.8",
1221 | "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz",
1222 | "integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==",
1223 | "dev": true,
1224 | "optional": true,
1225 | "dependencies": {
1226 | "prr": "~1.0.1"
1227 | },
1228 | "bin": {
1229 | "errno": "cli.js"
1230 | }
1231 | },
1232 | "node_modules/error-ex": {
1233 | "version": "1.3.2",
1234 | "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz",
1235 | "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==",
1236 | "dev": true,
1237 | "dependencies": {
1238 | "is-arrayish": "^0.2.1"
1239 | }
1240 | },
1241 | "node_modules/escalade": {
1242 | "version": "3.1.1",
1243 | "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz",
1244 | "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==",
1245 | "dev": true,
1246 | "engines": {
1247 | "node": ">=6"
1248 | }
1249 | },
1250 | "node_modules/escape-html": {
1251 | "version": "1.0.3",
1252 | "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
1253 | "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==",
1254 | "dev": true
1255 | },
1256 | "node_modules/escape-string-regexp": {
1257 | "version": "1.0.5",
1258 | "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
1259 | "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==",
1260 | "dev": true,
1261 | "engines": {
1262 | "node": ">=0.8.0"
1263 | }
1264 | },
1265 | "node_modules/eventemitter3": {
1266 | "version": "4.0.7",
1267 | "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz",
1268 | "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==",
1269 | "dev": true
1270 | },
1271 | "node_modules/execa": {
1272 | "version": "5.1.1",
1273 | "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz",
1274 | "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==",
1275 | "dev": true,
1276 | "dependencies": {
1277 | "cross-spawn": "^7.0.3",
1278 | "get-stream": "^6.0.0",
1279 | "human-signals": "^2.1.0",
1280 | "is-stream": "^2.0.0",
1281 | "merge-stream": "^2.0.0",
1282 | "npm-run-path": "^4.0.1",
1283 | "onetime": "^5.1.2",
1284 | "signal-exit": "^3.0.3",
1285 | "strip-final-newline": "^2.0.0"
1286 | },
1287 | "engines": {
1288 | "node": ">=10"
1289 | },
1290 | "funding": {
1291 | "url": "https://github.com/sindresorhus/execa?sponsor=1"
1292 | }
1293 | },
1294 | "node_modules/execa/node_modules/get-stream": {
1295 | "version": "6.0.1",
1296 | "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz",
1297 | "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==",
1298 | "dev": true,
1299 | "engines": {
1300 | "node": ">=10"
1301 | },
1302 | "funding": {
1303 | "url": "https://github.com/sponsors/sindresorhus"
1304 | }
1305 | },
1306 | "node_modules/extend": {
1307 | "version": "3.0.2",
1308 | "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz",
1309 | "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==",
1310 | "dev": true
1311 | },
1312 | "node_modules/extract-zip": {
1313 | "version": "2.0.1",
1314 | "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz",
1315 | "integrity": "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==",
1316 | "dev": true,
1317 | "dependencies": {
1318 | "debug": "^4.1.1",
1319 | "get-stream": "^5.1.0",
1320 | "yauzl": "^2.10.0"
1321 | },
1322 | "bin": {
1323 | "extract-zip": "cli.js"
1324 | },
1325 | "engines": {
1326 | "node": ">= 10.17.0"
1327 | },
1328 | "optionalDependencies": {
1329 | "@types/yauzl": "^2.9.1"
1330 | }
1331 | },
1332 | "node_modules/extract-zip/node_modules/debug": {
1333 | "version": "4.3.4",
1334 | "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
1335 | "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
1336 | "dev": true,
1337 | "dependencies": {
1338 | "ms": "2.1.2"
1339 | },
1340 | "engines": {
1341 | "node": ">=6.0"
1342 | },
1343 | "peerDependenciesMeta": {
1344 | "supports-color": {
1345 | "optional": true
1346 | }
1347 | }
1348 | },
1349 | "node_modules/extract-zip/node_modules/ms": {
1350 | "version": "2.1.2",
1351 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
1352 | "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
1353 | "dev": true
1354 | },
1355 | "node_modules/fast-deep-equal": {
1356 | "version": "3.1.3",
1357 | "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
1358 | "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==",
1359 | "dev": true
1360 | },
1361 | "node_modules/fast-url-parser": {
1362 | "version": "1.1.3",
1363 | "resolved": "https://registry.npmjs.org/fast-url-parser/-/fast-url-parser-1.1.3.tgz",
1364 | "integrity": "sha512-5jOCVXADYNuRkKFzNJ0dCCewsZiYo0dz8QNYljkOpFC6r2U4OBmKtvm/Tsuh4w1YYdDqDb31a8TVhBJ2OJKdqQ==",
1365 | "dev": true,
1366 | "dependencies": {
1367 | "punycode": "^1.3.2"
1368 | }
1369 | },
1370 | "node_modules/fd-slicer": {
1371 | "version": "1.1.0",
1372 | "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz",
1373 | "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==",
1374 | "dev": true,
1375 | "dependencies": {
1376 | "pend": "~1.2.0"
1377 | }
1378 | },
1379 | "node_modules/fill-range": {
1380 | "version": "7.0.1",
1381 | "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
1382 | "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
1383 | "dev": true,
1384 | "dependencies": {
1385 | "to-regex-range": "^5.0.1"
1386 | },
1387 | "engines": {
1388 | "node": ">=8"
1389 | }
1390 | },
1391 | "node_modules/finalhandler": {
1392 | "version": "1.1.2",
1393 | "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz",
1394 | "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==",
1395 | "dev": true,
1396 | "dependencies": {
1397 | "debug": "2.6.9",
1398 | "encodeurl": "~1.0.2",
1399 | "escape-html": "~1.0.3",
1400 | "on-finished": "~2.3.0",
1401 | "parseurl": "~1.3.3",
1402 | "statuses": "~1.5.0",
1403 | "unpipe": "~1.0.0"
1404 | },
1405 | "engines": {
1406 | "node": ">= 0.8"
1407 | }
1408 | },
1409 | "node_modules/finalhandler/node_modules/on-finished": {
1410 | "version": "2.3.0",
1411 | "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz",
1412 | "integrity": "sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==",
1413 | "dev": true,
1414 | "dependencies": {
1415 | "ee-first": "1.1.1"
1416 | },
1417 | "engines": {
1418 | "node": ">= 0.8"
1419 | }
1420 | },
1421 | "node_modules/flatted": {
1422 | "version": "3.2.7",
1423 | "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz",
1424 | "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==",
1425 | "dev": true
1426 | },
1427 | "node_modules/follow-redirects": {
1428 | "version": "1.15.2",
1429 | "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz",
1430 | "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==",
1431 | "dev": true,
1432 | "funding": [
1433 | {
1434 | "type": "individual",
1435 | "url": "https://github.com/sponsors/RubenVerborgh"
1436 | }
1437 | ],
1438 | "engines": {
1439 | "node": ">=4.0"
1440 | },
1441 | "peerDependenciesMeta": {
1442 | "debug": {
1443 | "optional": true
1444 | }
1445 | }
1446 | },
1447 | "node_modules/fs-constants": {
1448 | "version": "1.0.0",
1449 | "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz",
1450 | "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==",
1451 | "dev": true
1452 | },
1453 | "node_modules/fs-extra": {
1454 | "version": "8.1.0",
1455 | "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz",
1456 | "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==",
1457 | "dev": true,
1458 | "dependencies": {
1459 | "graceful-fs": "^4.2.0",
1460 | "jsonfile": "^4.0.0",
1461 | "universalify": "^0.1.0"
1462 | },
1463 | "engines": {
1464 | "node": ">=6 <7 || >=8"
1465 | }
1466 | },
1467 | "node_modules/fs.realpath": {
1468 | "version": "1.0.0",
1469 | "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
1470 | "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==",
1471 | "dev": true
1472 | },
1473 | "node_modules/function-bind": {
1474 | "version": "1.1.1",
1475 | "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
1476 | "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==",
1477 | "dev": true
1478 | },
1479 | "node_modules/get-caller-file": {
1480 | "version": "2.0.5",
1481 | "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
1482 | "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==",
1483 | "dev": true,
1484 | "engines": {
1485 | "node": "6.* || 8.* || >= 10.*"
1486 | }
1487 | },
1488 | "node_modules/get-intrinsic": {
1489 | "version": "1.2.0",
1490 | "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.0.tgz",
1491 | "integrity": "sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q==",
1492 | "dev": true,
1493 | "dependencies": {
1494 | "function-bind": "^1.1.1",
1495 | "has": "^1.0.3",
1496 | "has-symbols": "^1.0.3"
1497 | },
1498 | "funding": {
1499 | "url": "https://github.com/sponsors/ljharb"
1500 | }
1501 | },
1502 | "node_modules/get-stream": {
1503 | "version": "5.2.0",
1504 | "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz",
1505 | "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==",
1506 | "dev": true,
1507 | "dependencies": {
1508 | "pump": "^3.0.0"
1509 | },
1510 | "engines": {
1511 | "node": ">=8"
1512 | },
1513 | "funding": {
1514 | "url": "https://github.com/sponsors/sindresorhus"
1515 | }
1516 | },
1517 | "node_modules/glob": {
1518 | "version": "7.2.3",
1519 | "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
1520 | "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
1521 | "dev": true,
1522 | "dependencies": {
1523 | "fs.realpath": "^1.0.0",
1524 | "inflight": "^1.0.4",
1525 | "inherits": "2",
1526 | "minimatch": "^3.1.1",
1527 | "once": "^1.3.0",
1528 | "path-is-absolute": "^1.0.0"
1529 | },
1530 | "engines": {
1531 | "node": "*"
1532 | },
1533 | "funding": {
1534 | "url": "https://github.com/sponsors/isaacs"
1535 | }
1536 | },
1537 | "node_modules/glob-parent": {
1538 | "version": "5.1.2",
1539 | "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
1540 | "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
1541 | "dev": true,
1542 | "dependencies": {
1543 | "is-glob": "^4.0.1"
1544 | },
1545 | "engines": {
1546 | "node": ">= 6"
1547 | }
1548 | },
1549 | "node_modules/globalyzer": {
1550 | "version": "0.1.0",
1551 | "resolved": "https://registry.npmjs.org/globalyzer/-/globalyzer-0.1.0.tgz",
1552 | "integrity": "sha512-40oNTM9UfG6aBmuKxk/giHn5nQ8RVz/SS4Ir6zgzOv9/qC3kKZ9v4etGTcJbEl/NyVQH7FGU7d+X1egr57Md2Q==",
1553 | "dev": true
1554 | },
1555 | "node_modules/globrex": {
1556 | "version": "0.1.2",
1557 | "resolved": "https://registry.npmjs.org/globrex/-/globrex-0.1.2.tgz",
1558 | "integrity": "sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==",
1559 | "dev": true
1560 | },
1561 | "node_modules/graceful-fs": {
1562 | "version": "4.2.10",
1563 | "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz",
1564 | "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==",
1565 | "dev": true
1566 | },
1567 | "node_modules/has": {
1568 | "version": "1.0.3",
1569 | "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
1570 | "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
1571 | "dev": true,
1572 | "dependencies": {
1573 | "function-bind": "^1.1.1"
1574 | },
1575 | "engines": {
1576 | "node": ">= 0.4.0"
1577 | }
1578 | },
1579 | "node_modules/has-flag": {
1580 | "version": "4.0.0",
1581 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
1582 | "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
1583 | "dev": true,
1584 | "engines": {
1585 | "node": ">=8"
1586 | }
1587 | },
1588 | "node_modules/has-symbols": {
1589 | "version": "1.0.3",
1590 | "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz",
1591 | "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==",
1592 | "dev": true,
1593 | "engines": {
1594 | "node": ">= 0.4"
1595 | },
1596 | "funding": {
1597 | "url": "https://github.com/sponsors/ljharb"
1598 | }
1599 | },
1600 | "node_modules/http-errors": {
1601 | "version": "2.0.0",
1602 | "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz",
1603 | "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==",
1604 | "dev": true,
1605 | "dependencies": {
1606 | "depd": "2.0.0",
1607 | "inherits": "2.0.4",
1608 | "setprototypeof": "1.2.0",
1609 | "statuses": "2.0.1",
1610 | "toidentifier": "1.0.1"
1611 | },
1612 | "engines": {
1613 | "node": ">= 0.8"
1614 | }
1615 | },
1616 | "node_modules/http-errors/node_modules/statuses": {
1617 | "version": "2.0.1",
1618 | "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz",
1619 | "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==",
1620 | "dev": true,
1621 | "engines": {
1622 | "node": ">= 0.8"
1623 | }
1624 | },
1625 | "node_modules/http-proxy": {
1626 | "version": "1.18.1",
1627 | "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz",
1628 | "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==",
1629 | "dev": true,
1630 | "dependencies": {
1631 | "eventemitter3": "^4.0.0",
1632 | "follow-redirects": "^1.0.0",
1633 | "requires-port": "^1.0.0"
1634 | },
1635 | "engines": {
1636 | "node": ">=8.0.0"
1637 | }
1638 | },
1639 | "node_modules/https-proxy-agent": {
1640 | "version": "5.0.1",
1641 | "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz",
1642 | "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==",
1643 | "dev": true,
1644 | "dependencies": {
1645 | "agent-base": "6",
1646 | "debug": "4"
1647 | },
1648 | "engines": {
1649 | "node": ">= 6"
1650 | }
1651 | },
1652 | "node_modules/https-proxy-agent/node_modules/debug": {
1653 | "version": "4.3.4",
1654 | "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
1655 | "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
1656 | "dev": true,
1657 | "dependencies": {
1658 | "ms": "2.1.2"
1659 | },
1660 | "engines": {
1661 | "node": ">=6.0"
1662 | },
1663 | "peerDependenciesMeta": {
1664 | "supports-color": {
1665 | "optional": true
1666 | }
1667 | }
1668 | },
1669 | "node_modules/https-proxy-agent/node_modules/ms": {
1670 | "version": "2.1.2",
1671 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
1672 | "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
1673 | "dev": true
1674 | },
1675 | "node_modules/human-signals": {
1676 | "version": "2.1.0",
1677 | "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz",
1678 | "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==",
1679 | "dev": true,
1680 | "engines": {
1681 | "node": ">=10.17.0"
1682 | }
1683 | },
1684 | "node_modules/iconv-lite": {
1685 | "version": "0.4.24",
1686 | "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
1687 | "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
1688 | "dev": true,
1689 | "dependencies": {
1690 | "safer-buffer": ">= 2.1.2 < 3"
1691 | },
1692 | "engines": {
1693 | "node": ">=0.10.0"
1694 | }
1695 | },
1696 | "node_modules/ieee754": {
1697 | "version": "1.2.1",
1698 | "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz",
1699 | "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==",
1700 | "dev": true,
1701 | "funding": [
1702 | {
1703 | "type": "github",
1704 | "url": "https://github.com/sponsors/feross"
1705 | },
1706 | {
1707 | "type": "patreon",
1708 | "url": "https://www.patreon.com/feross"
1709 | },
1710 | {
1711 | "type": "consulting",
1712 | "url": "https://feross.org/support"
1713 | }
1714 | ]
1715 | },
1716 | "node_modules/image-size": {
1717 | "version": "0.5.5",
1718 | "resolved": "https://registry.npmjs.org/image-size/-/image-size-0.5.5.tgz",
1719 | "integrity": "sha512-6TDAlDPZxUFCv+fuOkIoXT/V/f3Qbq8e37p+YOiYrUv3v9cc3/6x78VdfPgFVaB9dZYeLUfKgHRebpkm/oP2VQ==",
1720 | "dev": true,
1721 | "optional": true,
1722 | "bin": {
1723 | "image-size": "bin/image-size.js"
1724 | },
1725 | "engines": {
1726 | "node": ">=0.10.0"
1727 | }
1728 | },
1729 | "node_modules/import-fresh": {
1730 | "version": "3.3.0",
1731 | "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz",
1732 | "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==",
1733 | "dev": true,
1734 | "dependencies": {
1735 | "parent-module": "^1.0.0",
1736 | "resolve-from": "^4.0.0"
1737 | },
1738 | "engines": {
1739 | "node": ">=6"
1740 | },
1741 | "funding": {
1742 | "url": "https://github.com/sponsors/sindresorhus"
1743 | }
1744 | },
1745 | "node_modules/inflight": {
1746 | "version": "1.0.6",
1747 | "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
1748 | "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==",
1749 | "dev": true,
1750 | "dependencies": {
1751 | "once": "^1.3.0",
1752 | "wrappy": "1"
1753 | }
1754 | },
1755 | "node_modules/inherits": {
1756 | "version": "2.0.4",
1757 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
1758 | "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
1759 | "dev": true
1760 | },
1761 | "node_modules/ini": {
1762 | "version": "1.3.8",
1763 | "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz",
1764 | "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==",
1765 | "dev": true
1766 | },
1767 | "node_modules/is-arrayish": {
1768 | "version": "0.2.1",
1769 | "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz",
1770 | "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==",
1771 | "dev": true
1772 | },
1773 | "node_modules/is-binary-path": {
1774 | "version": "2.1.0",
1775 | "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",
1776 | "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==",
1777 | "dev": true,
1778 | "dependencies": {
1779 | "binary-extensions": "^2.0.0"
1780 | },
1781 | "engines": {
1782 | "node": ">=8"
1783 | }
1784 | },
1785 | "node_modules/is-docker": {
1786 | "version": "2.2.1",
1787 | "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz",
1788 | "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==",
1789 | "dev": true,
1790 | "bin": {
1791 | "is-docker": "cli.js"
1792 | },
1793 | "engines": {
1794 | "node": ">=8"
1795 | },
1796 | "funding": {
1797 | "url": "https://github.com/sponsors/sindresorhus"
1798 | }
1799 | },
1800 | "node_modules/is-extglob": {
1801 | "version": "2.1.1",
1802 | "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
1803 | "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==",
1804 | "dev": true,
1805 | "engines": {
1806 | "node": ">=0.10.0"
1807 | }
1808 | },
1809 | "node_modules/is-fullwidth-code-point": {
1810 | "version": "3.0.0",
1811 | "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
1812 | "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
1813 | "dev": true,
1814 | "engines": {
1815 | "node": ">=8"
1816 | }
1817 | },
1818 | "node_modules/is-glob": {
1819 | "version": "4.0.3",
1820 | "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
1821 | "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
1822 | "dev": true,
1823 | "dependencies": {
1824 | "is-extglob": "^2.1.1"
1825 | },
1826 | "engines": {
1827 | "node": ">=0.10.0"
1828 | }
1829 | },
1830 | "node_modules/is-number": {
1831 | "version": "7.0.0",
1832 | "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
1833 | "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
1834 | "dev": true,
1835 | "engines": {
1836 | "node": ">=0.12.0"
1837 | }
1838 | },
1839 | "node_modules/is-port-reachable": {
1840 | "version": "4.0.0",
1841 | "resolved": "https://registry.npmjs.org/is-port-reachable/-/is-port-reachable-4.0.0.tgz",
1842 | "integrity": "sha512-9UoipoxYmSk6Xy7QFgRv2HDyaysmgSG75TFQs6S+3pDM7ZhKTF/bskZV+0UlABHzKjNVhPjYCLfeZUEg1wXxig==",
1843 | "dev": true,
1844 | "engines": {
1845 | "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
1846 | },
1847 | "funding": {
1848 | "url": "https://github.com/sponsors/sindresorhus"
1849 | }
1850 | },
1851 | "node_modules/is-stream": {
1852 | "version": "2.0.1",
1853 | "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz",
1854 | "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==",
1855 | "dev": true,
1856 | "engines": {
1857 | "node": ">=8"
1858 | },
1859 | "funding": {
1860 | "url": "https://github.com/sponsors/sindresorhus"
1861 | }
1862 | },
1863 | "node_modules/is-what": {
1864 | "version": "3.14.1",
1865 | "resolved": "https://registry.npmjs.org/is-what/-/is-what-3.14.1.tgz",
1866 | "integrity": "sha512-sNxgpk9793nzSs7bA6JQJGeIuRBQhAaNGG77kzYQgMkrID+lS6SlK07K5LaptscDlSaIgH+GPFzf+d75FVxozA==",
1867 | "dev": true
1868 | },
1869 | "node_modules/is-wsl": {
1870 | "version": "2.2.0",
1871 | "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz",
1872 | "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==",
1873 | "dev": true,
1874 | "dependencies": {
1875 | "is-docker": "^2.0.0"
1876 | },
1877 | "engines": {
1878 | "node": ">=8"
1879 | }
1880 | },
1881 | "node_modules/isbinaryfile": {
1882 | "version": "4.0.10",
1883 | "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-4.0.10.tgz",
1884 | "integrity": "sha512-iHrqe5shvBUcFbmZq9zOQHBoeOhZJu6RQGrDpBgenUm/Am+F3JM2MgQj+rK3Z601fzrL5gLZWtAPH2OBaSVcyw==",
1885 | "dev": true,
1886 | "engines": {
1887 | "node": ">= 8.0.0"
1888 | },
1889 | "funding": {
1890 | "url": "https://github.com/sponsors/gjtorikian/"
1891 | }
1892 | },
1893 | "node_modules/isexe": {
1894 | "version": "2.0.0",
1895 | "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
1896 | "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==",
1897 | "dev": true
1898 | },
1899 | "node_modules/jquery": {
1900 | "version": "3.6.3",
1901 | "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.6.3.tgz",
1902 | "integrity": "sha512-bZ5Sy3YzKo9Fyc8wH2iIQK4JImJ6R0GWI9kL1/k7Z91ZBNgkRXE6U0JfHIizZbort8ZunhSI3jw9I6253ahKfg==",
1903 | "dev": true
1904 | },
1905 | "node_modules/js-tokens": {
1906 | "version": "4.0.0",
1907 | "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
1908 | "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
1909 | "dev": true
1910 | },
1911 | "node_modules/js-yaml": {
1912 | "version": "4.1.0",
1913 | "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
1914 | "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
1915 | "dev": true,
1916 | "dependencies": {
1917 | "argparse": "^2.0.1"
1918 | },
1919 | "bin": {
1920 | "js-yaml": "bin/js-yaml.js"
1921 | }
1922 | },
1923 | "node_modules/json-parse-even-better-errors": {
1924 | "version": "2.3.1",
1925 | "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz",
1926 | "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==",
1927 | "dev": true
1928 | },
1929 | "node_modules/json-schema-traverse": {
1930 | "version": "1.0.0",
1931 | "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz",
1932 | "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==",
1933 | "dev": true
1934 | },
1935 | "node_modules/jsonfile": {
1936 | "version": "4.0.0",
1937 | "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz",
1938 | "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==",
1939 | "dev": true,
1940 | "optionalDependencies": {
1941 | "graceful-fs": "^4.1.6"
1942 | }
1943 | },
1944 | "node_modules/karma": {
1945 | "version": "6.4.1",
1946 | "resolved": "https://registry.npmjs.org/karma/-/karma-6.4.1.tgz",
1947 | "integrity": "sha512-Cj57NKOskK7wtFWSlMvZf459iX+kpYIPXmkNUzP2WAFcA7nhr/ALn5R7sw3w+1udFDcpMx/tuB8d5amgm3ijaA==",
1948 | "dev": true,
1949 | "dependencies": {
1950 | "@colors/colors": "1.5.0",
1951 | "body-parser": "^1.19.0",
1952 | "braces": "^3.0.2",
1953 | "chokidar": "^3.5.1",
1954 | "connect": "^3.7.0",
1955 | "di": "^0.0.1",
1956 | "dom-serialize": "^2.2.1",
1957 | "glob": "^7.1.7",
1958 | "graceful-fs": "^4.2.6",
1959 | "http-proxy": "^1.18.1",
1960 | "isbinaryfile": "^4.0.8",
1961 | "lodash": "^4.17.21",
1962 | "log4js": "^6.4.1",
1963 | "mime": "^2.5.2",
1964 | "minimatch": "^3.0.4",
1965 | "mkdirp": "^0.5.5",
1966 | "qjobs": "^1.2.0",
1967 | "range-parser": "^1.2.1",
1968 | "rimraf": "^3.0.2",
1969 | "socket.io": "^4.4.1",
1970 | "source-map": "^0.6.1",
1971 | "tmp": "^0.2.1",
1972 | "ua-parser-js": "^0.7.30",
1973 | "yargs": "^16.1.1"
1974 | },
1975 | "bin": {
1976 | "karma": "bin/karma"
1977 | },
1978 | "engines": {
1979 | "node": ">= 10"
1980 | }
1981 | },
1982 | "node_modules/karma-chrome-launcher": {
1983 | "version": "3.1.1",
1984 | "resolved": "https://registry.npmjs.org/karma-chrome-launcher/-/karma-chrome-launcher-3.1.1.tgz",
1985 | "integrity": "sha512-hsIglcq1vtboGPAN+DGCISCFOxW+ZVnIqhDQcCMqqCp+4dmJ0Qpq5QAjkbA0X2L9Mi6OBkHi2Srrbmm7pUKkzQ==",
1986 | "dev": true,
1987 | "dependencies": {
1988 | "which": "^1.2.1"
1989 | }
1990 | },
1991 | "node_modules/karma-qunit": {
1992 | "version": "4.1.2",
1993 | "resolved": "https://registry.npmjs.org/karma-qunit/-/karma-qunit-4.1.2.tgz",
1994 | "integrity": "sha512-taTPqBeHCOlkeKTSzQgIKzAUb79vw3rfbCph+xwwh63tyGjNtljwx91VArhIM9DzIIR3gB9G214wQg+oXI9ycw==",
1995 | "dev": true,
1996 | "peerDependencies": {
1997 | "karma": "^4.0.0 || ^5.0.0 || ^6.0.0",
1998 | "qunit": "^2.0.0"
1999 | }
2000 | },
2001 | "node_modules/less": {
2002 | "version": "4.1.3",
2003 | "resolved": "https://registry.npmjs.org/less/-/less-4.1.3.tgz",
2004 | "integrity": "sha512-w16Xk/Ta9Hhyei0Gpz9m7VS8F28nieJaL/VyShID7cYvP6IL5oHeL6p4TXSDJqZE/lNv0oJ2pGVjJsRkfwm5FA==",
2005 | "dev": true,
2006 | "dependencies": {
2007 | "copy-anything": "^2.0.1",
2008 | "parse-node-version": "^1.0.1",
2009 | "tslib": "^2.3.0"
2010 | },
2011 | "bin": {
2012 | "lessc": "bin/lessc"
2013 | },
2014 | "engines": {
2015 | "node": ">=6"
2016 | },
2017 | "optionalDependencies": {
2018 | "errno": "^0.1.1",
2019 | "graceful-fs": "^4.1.2",
2020 | "image-size": "~0.5.0",
2021 | "make-dir": "^2.1.0",
2022 | "mime": "^1.4.1",
2023 | "needle": "^3.1.0",
2024 | "source-map": "~0.6.0"
2025 | }
2026 | },
2027 | "node_modules/less/node_modules/mime": {
2028 | "version": "1.6.0",
2029 | "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz",
2030 | "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==",
2031 | "dev": true,
2032 | "optional": true,
2033 | "bin": {
2034 | "mime": "cli.js"
2035 | },
2036 | "engines": {
2037 | "node": ">=4"
2038 | }
2039 | },
2040 | "node_modules/lines-and-columns": {
2041 | "version": "1.2.4",
2042 | "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz",
2043 | "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==",
2044 | "dev": true
2045 | },
2046 | "node_modules/lodash": {
2047 | "version": "4.17.21",
2048 | "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
2049 | "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==",
2050 | "dev": true
2051 | },
2052 | "node_modules/log4js": {
2053 | "version": "6.8.0",
2054 | "resolved": "https://registry.npmjs.org/log4js/-/log4js-6.8.0.tgz",
2055 | "integrity": "sha512-g+V8gZyurIexrOvWQ+AcZsIvuK/lBnx2argejZxL4gVZ4Hq02kUYH6WZOnqxgBml+zzQZYdaEoTN84B6Hzm8Fg==",
2056 | "dev": true,
2057 | "dependencies": {
2058 | "date-format": "^4.0.14",
2059 | "debug": "^4.3.4",
2060 | "flatted": "^3.2.7",
2061 | "rfdc": "^1.3.0",
2062 | "streamroller": "^3.1.5"
2063 | },
2064 | "engines": {
2065 | "node": ">=8.0"
2066 | }
2067 | },
2068 | "node_modules/log4js/node_modules/debug": {
2069 | "version": "4.3.4",
2070 | "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
2071 | "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
2072 | "dev": true,
2073 | "dependencies": {
2074 | "ms": "2.1.2"
2075 | },
2076 | "engines": {
2077 | "node": ">=6.0"
2078 | },
2079 | "peerDependenciesMeta": {
2080 | "supports-color": {
2081 | "optional": true
2082 | }
2083 | }
2084 | },
2085 | "node_modules/log4js/node_modules/ms": {
2086 | "version": "2.1.2",
2087 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
2088 | "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
2089 | "dev": true
2090 | },
2091 | "node_modules/make-dir": {
2092 | "version": "2.1.0",
2093 | "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz",
2094 | "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==",
2095 | "dev": true,
2096 | "optional": true,
2097 | "dependencies": {
2098 | "pify": "^4.0.1",
2099 | "semver": "^5.6.0"
2100 | },
2101 | "engines": {
2102 | "node": ">=6"
2103 | }
2104 | },
2105 | "node_modules/media-typer": {
2106 | "version": "0.3.0",
2107 | "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
2108 | "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==",
2109 | "dev": true,
2110 | "engines": {
2111 | "node": ">= 0.6"
2112 | }
2113 | },
2114 | "node_modules/merge-stream": {
2115 | "version": "2.0.0",
2116 | "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz",
2117 | "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==",
2118 | "dev": true
2119 | },
2120 | "node_modules/mime": {
2121 | "version": "2.6.0",
2122 | "resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz",
2123 | "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==",
2124 | "dev": true,
2125 | "bin": {
2126 | "mime": "cli.js"
2127 | },
2128 | "engines": {
2129 | "node": ">=4.0.0"
2130 | }
2131 | },
2132 | "node_modules/mime-db": {
2133 | "version": "1.52.0",
2134 | "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz",
2135 | "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==",
2136 | "dev": true,
2137 | "engines": {
2138 | "node": ">= 0.6"
2139 | }
2140 | },
2141 | "node_modules/mime-types": {
2142 | "version": "2.1.35",
2143 | "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz",
2144 | "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
2145 | "dev": true,
2146 | "dependencies": {
2147 | "mime-db": "1.52.0"
2148 | },
2149 | "engines": {
2150 | "node": ">= 0.6"
2151 | }
2152 | },
2153 | "node_modules/mimic-fn": {
2154 | "version": "2.1.0",
2155 | "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz",
2156 | "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==",
2157 | "dev": true,
2158 | "engines": {
2159 | "node": ">=6"
2160 | }
2161 | },
2162 | "node_modules/minimatch": {
2163 | "version": "3.1.2",
2164 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
2165 | "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
2166 | "dev": true,
2167 | "dependencies": {
2168 | "brace-expansion": "^1.1.7"
2169 | },
2170 | "engines": {
2171 | "node": "*"
2172 | }
2173 | },
2174 | "node_modules/minimist": {
2175 | "version": "1.2.8",
2176 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz",
2177 | "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==",
2178 | "dev": true,
2179 | "funding": {
2180 | "url": "https://github.com/sponsors/ljharb"
2181 | }
2182 | },
2183 | "node_modules/mitt": {
2184 | "version": "3.0.0",
2185 | "resolved": "https://registry.npmjs.org/mitt/-/mitt-3.0.0.tgz",
2186 | "integrity": "sha512-7dX2/10ITVyqh4aOSVI9gdape+t9l2/8QxHrFmUXu4EEUpdlxl6RudZUPZoc+zuY2hk1j7XxVroIVIan/pD/SQ==",
2187 | "dev": true
2188 | },
2189 | "node_modules/mkdirp": {
2190 | "version": "0.5.6",
2191 | "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz",
2192 | "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==",
2193 | "dev": true,
2194 | "dependencies": {
2195 | "minimist": "^1.2.6"
2196 | },
2197 | "bin": {
2198 | "mkdirp": "bin/cmd.js"
2199 | }
2200 | },
2201 | "node_modules/mkdirp-classic": {
2202 | "version": "0.5.3",
2203 | "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz",
2204 | "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==",
2205 | "dev": true
2206 | },
2207 | "node_modules/ms": {
2208 | "version": "2.0.0",
2209 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
2210 | "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
2211 | "dev": true
2212 | },
2213 | "node_modules/needle": {
2214 | "version": "3.2.0",
2215 | "resolved": "https://registry.npmjs.org/needle/-/needle-3.2.0.tgz",
2216 | "integrity": "sha512-oUvzXnyLiVyVGoianLijF9O/RecZUf7TkBfimjGrLM4eQhXyeJwM6GeAWccwfQ9aa4gMCZKqhAOuLaMIcQxajQ==",
2217 | "dev": true,
2218 | "optional": true,
2219 | "dependencies": {
2220 | "debug": "^3.2.6",
2221 | "iconv-lite": "^0.6.3",
2222 | "sax": "^1.2.4"
2223 | },
2224 | "bin": {
2225 | "needle": "bin/needle"
2226 | },
2227 | "engines": {
2228 | "node": ">= 4.4.x"
2229 | }
2230 | },
2231 | "node_modules/needle/node_modules/debug": {
2232 | "version": "3.2.7",
2233 | "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
2234 | "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
2235 | "dev": true,
2236 | "optional": true,
2237 | "dependencies": {
2238 | "ms": "^2.1.1"
2239 | }
2240 | },
2241 | "node_modules/needle/node_modules/iconv-lite": {
2242 | "version": "0.6.3",
2243 | "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz",
2244 | "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==",
2245 | "dev": true,
2246 | "optional": true,
2247 | "dependencies": {
2248 | "safer-buffer": ">= 2.1.2 < 3.0.0"
2249 | },
2250 | "engines": {
2251 | "node": ">=0.10.0"
2252 | }
2253 | },
2254 | "node_modules/needle/node_modules/ms": {
2255 | "version": "2.1.3",
2256 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
2257 | "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
2258 | "dev": true,
2259 | "optional": true
2260 | },
2261 | "node_modules/negotiator": {
2262 | "version": "0.6.3",
2263 | "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz",
2264 | "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==",
2265 | "dev": true,
2266 | "engines": {
2267 | "node": ">= 0.6"
2268 | }
2269 | },
2270 | "node_modules/node-fetch": {
2271 | "version": "2.6.7",
2272 | "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz",
2273 | "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==",
2274 | "dev": true,
2275 | "dependencies": {
2276 | "whatwg-url": "^5.0.0"
2277 | },
2278 | "engines": {
2279 | "node": "4.x || >=6.0.0"
2280 | },
2281 | "peerDependencies": {
2282 | "encoding": "^0.1.0"
2283 | },
2284 | "peerDependenciesMeta": {
2285 | "encoding": {
2286 | "optional": true
2287 | }
2288 | }
2289 | },
2290 | "node_modules/node-watch": {
2291 | "version": "0.7.3",
2292 | "resolved": "https://registry.npmjs.org/node-watch/-/node-watch-0.7.3.tgz",
2293 | "integrity": "sha512-3l4E8uMPY1HdMMryPRUAl+oIHtXtyiTlIiESNSVSNxcPfzAFzeTbXFQkZfAwBbo0B1qMSG8nUABx+Gd+YrbKrQ==",
2294 | "dev": true,
2295 | "engines": {
2296 | "node": ">=6"
2297 | }
2298 | },
2299 | "node_modules/normalize-path": {
2300 | "version": "3.0.0",
2301 | "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
2302 | "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
2303 | "dev": true,
2304 | "engines": {
2305 | "node": ">=0.10.0"
2306 | }
2307 | },
2308 | "node_modules/npm-run-path": {
2309 | "version": "4.0.1",
2310 | "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz",
2311 | "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==",
2312 | "dev": true,
2313 | "dependencies": {
2314 | "path-key": "^3.0.0"
2315 | },
2316 | "engines": {
2317 | "node": ">=8"
2318 | }
2319 | },
2320 | "node_modules/object-assign": {
2321 | "version": "4.1.1",
2322 | "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
2323 | "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==",
2324 | "dev": true,
2325 | "engines": {
2326 | "node": ">=0.10.0"
2327 | }
2328 | },
2329 | "node_modules/object-inspect": {
2330 | "version": "1.12.3",
2331 | "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz",
2332 | "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==",
2333 | "dev": true,
2334 | "funding": {
2335 | "url": "https://github.com/sponsors/ljharb"
2336 | }
2337 | },
2338 | "node_modules/on-finished": {
2339 | "version": "2.4.1",
2340 | "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz",
2341 | "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==",
2342 | "dev": true,
2343 | "dependencies": {
2344 | "ee-first": "1.1.1"
2345 | },
2346 | "engines": {
2347 | "node": ">= 0.8"
2348 | }
2349 | },
2350 | "node_modules/on-headers": {
2351 | "version": "1.0.2",
2352 | "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz",
2353 | "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==",
2354 | "dev": true,
2355 | "engines": {
2356 | "node": ">= 0.8"
2357 | }
2358 | },
2359 | "node_modules/once": {
2360 | "version": "1.4.0",
2361 | "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
2362 | "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",
2363 | "dev": true,
2364 | "dependencies": {
2365 | "wrappy": "1"
2366 | }
2367 | },
2368 | "node_modules/onetime": {
2369 | "version": "5.1.2",
2370 | "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz",
2371 | "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==",
2372 | "dev": true,
2373 | "dependencies": {
2374 | "mimic-fn": "^2.1.0"
2375 | },
2376 | "engines": {
2377 | "node": ">=6"
2378 | },
2379 | "funding": {
2380 | "url": "https://github.com/sponsors/sindresorhus"
2381 | }
2382 | },
2383 | "node_modules/parent-module": {
2384 | "version": "1.0.1",
2385 | "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz",
2386 | "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==",
2387 | "dev": true,
2388 | "dependencies": {
2389 | "callsites": "^3.0.0"
2390 | },
2391 | "engines": {
2392 | "node": ">=6"
2393 | }
2394 | },
2395 | "node_modules/parse-json": {
2396 | "version": "5.2.0",
2397 | "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz",
2398 | "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==",
2399 | "dev": true,
2400 | "dependencies": {
2401 | "@babel/code-frame": "^7.0.0",
2402 | "error-ex": "^1.3.1",
2403 | "json-parse-even-better-errors": "^2.3.0",
2404 | "lines-and-columns": "^1.1.6"
2405 | },
2406 | "engines": {
2407 | "node": ">=8"
2408 | },
2409 | "funding": {
2410 | "url": "https://github.com/sponsors/sindresorhus"
2411 | }
2412 | },
2413 | "node_modules/parse-node-version": {
2414 | "version": "1.0.1",
2415 | "resolved": "https://registry.npmjs.org/parse-node-version/-/parse-node-version-1.0.1.tgz",
2416 | "integrity": "sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==",
2417 | "dev": true,
2418 | "engines": {
2419 | "node": ">= 0.10"
2420 | }
2421 | },
2422 | "node_modules/parseurl": {
2423 | "version": "1.3.3",
2424 | "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz",
2425 | "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==",
2426 | "dev": true,
2427 | "engines": {
2428 | "node": ">= 0.8"
2429 | }
2430 | },
2431 | "node_modules/path-is-absolute": {
2432 | "version": "1.0.1",
2433 | "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
2434 | "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==",
2435 | "dev": true,
2436 | "engines": {
2437 | "node": ">=0.10.0"
2438 | }
2439 | },
2440 | "node_modules/path-is-inside": {
2441 | "version": "1.0.2",
2442 | "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz",
2443 | "integrity": "sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w==",
2444 | "dev": true
2445 | },
2446 | "node_modules/path-key": {
2447 | "version": "3.1.1",
2448 | "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
2449 | "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
2450 | "dev": true,
2451 | "engines": {
2452 | "node": ">=8"
2453 | }
2454 | },
2455 | "node_modules/path-to-regexp": {
2456 | "version": "2.2.1",
2457 | "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-2.2.1.tgz",
2458 | "integrity": "sha512-gu9bD6Ta5bwGrrU8muHzVOBFFREpp2iRkVfhBJahwJ6p6Xw20SjT0MxLnwkjOibQmGSYhiUnf2FLe7k+jcFmGQ==",
2459 | "dev": true
2460 | },
2461 | "node_modules/path-type": {
2462 | "version": "4.0.0",
2463 | "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz",
2464 | "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==",
2465 | "dev": true,
2466 | "engines": {
2467 | "node": ">=8"
2468 | }
2469 | },
2470 | "node_modules/pend": {
2471 | "version": "1.2.0",
2472 | "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz",
2473 | "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==",
2474 | "dev": true
2475 | },
2476 | "node_modules/picomatch": {
2477 | "version": "2.3.1",
2478 | "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
2479 | "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
2480 | "dev": true,
2481 | "engines": {
2482 | "node": ">=8.6"
2483 | },
2484 | "funding": {
2485 | "url": "https://github.com/sponsors/jonschlinkert"
2486 | }
2487 | },
2488 | "node_modules/pify": {
2489 | "version": "4.0.1",
2490 | "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz",
2491 | "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==",
2492 | "dev": true,
2493 | "optional": true,
2494 | "engines": {
2495 | "node": ">=6"
2496 | }
2497 | },
2498 | "node_modules/progress": {
2499 | "version": "2.0.3",
2500 | "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz",
2501 | "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==",
2502 | "dev": true,
2503 | "engines": {
2504 | "node": ">=0.4.0"
2505 | }
2506 | },
2507 | "node_modules/proxy-from-env": {
2508 | "version": "1.1.0",
2509 | "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz",
2510 | "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==",
2511 | "dev": true
2512 | },
2513 | "node_modules/prr": {
2514 | "version": "1.0.1",
2515 | "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz",
2516 | "integrity": "sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==",
2517 | "dev": true,
2518 | "optional": true
2519 | },
2520 | "node_modules/pump": {
2521 | "version": "3.0.0",
2522 | "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz",
2523 | "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==",
2524 | "dev": true,
2525 | "dependencies": {
2526 | "end-of-stream": "^1.1.0",
2527 | "once": "^1.3.1"
2528 | }
2529 | },
2530 | "node_modules/punycode": {
2531 | "version": "1.4.1",
2532 | "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz",
2533 | "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==",
2534 | "dev": true
2535 | },
2536 | "node_modules/puppeteer": {
2537 | "version": "19.7.2",
2538 | "resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-19.7.2.tgz",
2539 | "integrity": "sha512-4Lm7Qpe/LU95Svirei/jDLDvR5oMrl9BPGd7HMY5+Q28n+BhvKuW97gKkR+1LlI86bO8J3g8rG/Ll5kv9J1nlQ==",
2540 | "dev": true,
2541 | "hasInstallScript": true,
2542 | "dependencies": {
2543 | "cosmiconfig": "8.0.0",
2544 | "https-proxy-agent": "5.0.1",
2545 | "progress": "2.0.3",
2546 | "proxy-from-env": "1.1.0",
2547 | "puppeteer-core": "19.7.2"
2548 | },
2549 | "engines": {
2550 | "node": ">=14.1.0"
2551 | }
2552 | },
2553 | "node_modules/puppeteer-core": {
2554 | "version": "19.7.2",
2555 | "resolved": "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-19.7.2.tgz",
2556 | "integrity": "sha512-PvI+fXqgP0uGJxkyZcX51bnzjFA73MODZOAv0fSD35yR7tvbqwtMV3/Y+hxQ0AMMwzxkEebP6c7po/muqxJvmQ==",
2557 | "dev": true,
2558 | "dependencies": {
2559 | "chromium-bidi": "0.4.4",
2560 | "cross-fetch": "3.1.5",
2561 | "debug": "4.3.4",
2562 | "devtools-protocol": "0.0.1094867",
2563 | "extract-zip": "2.0.1",
2564 | "https-proxy-agent": "5.0.1",
2565 | "proxy-from-env": "1.1.0",
2566 | "rimraf": "3.0.2",
2567 | "tar-fs": "2.1.1",
2568 | "unbzip2-stream": "1.4.3",
2569 | "ws": "8.11.0"
2570 | },
2571 | "engines": {
2572 | "node": ">=14.1.0"
2573 | },
2574 | "peerDependencies": {
2575 | "typescript": ">= 4.7.4"
2576 | },
2577 | "peerDependenciesMeta": {
2578 | "typescript": {
2579 | "optional": true
2580 | }
2581 | }
2582 | },
2583 | "node_modules/puppeteer-core/node_modules/debug": {
2584 | "version": "4.3.4",
2585 | "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
2586 | "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
2587 | "dev": true,
2588 | "dependencies": {
2589 | "ms": "2.1.2"
2590 | },
2591 | "engines": {
2592 | "node": ">=6.0"
2593 | },
2594 | "peerDependenciesMeta": {
2595 | "supports-color": {
2596 | "optional": true
2597 | }
2598 | }
2599 | },
2600 | "node_modules/puppeteer-core/node_modules/ms": {
2601 | "version": "2.1.2",
2602 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
2603 | "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
2604 | "dev": true
2605 | },
2606 | "node_modules/qjobs": {
2607 | "version": "1.2.0",
2608 | "resolved": "https://registry.npmjs.org/qjobs/-/qjobs-1.2.0.tgz",
2609 | "integrity": "sha512-8YOJEHtxpySA3fFDyCRxA+UUV+fA+rTWnuWvylOK/NCjhY+b4ocCtmu8TtsWb+mYeU+GCHf/S66KZF/AsteKHg==",
2610 | "dev": true,
2611 | "engines": {
2612 | "node": ">=0.9"
2613 | }
2614 | },
2615 | "node_modules/qs": {
2616 | "version": "6.11.0",
2617 | "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz",
2618 | "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==",
2619 | "dev": true,
2620 | "dependencies": {
2621 | "side-channel": "^1.0.4"
2622 | },
2623 | "engines": {
2624 | "node": ">=0.6"
2625 | },
2626 | "funding": {
2627 | "url": "https://github.com/sponsors/ljharb"
2628 | }
2629 | },
2630 | "node_modules/qunit": {
2631 | "version": "2.19.4",
2632 | "resolved": "https://registry.npmjs.org/qunit/-/qunit-2.19.4.tgz",
2633 | "integrity": "sha512-aqUzzUeCqlleWYKlpgfdHHw9C6KxkB9H3wNfiBg5yHqQMzy0xw/pbCRHYFkjl8MsP/t8qkTQE+JTYL71azgiew==",
2634 | "dev": true,
2635 | "dependencies": {
2636 | "commander": "7.2.0",
2637 | "node-watch": "0.7.3",
2638 | "tiny-glob": "0.2.9"
2639 | },
2640 | "bin": {
2641 | "qunit": "bin/qunit.js"
2642 | },
2643 | "engines": {
2644 | "node": ">=10"
2645 | }
2646 | },
2647 | "node_modules/qunit/node_modules/commander": {
2648 | "version": "7.2.0",
2649 | "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz",
2650 | "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==",
2651 | "dev": true,
2652 | "engines": {
2653 | "node": ">= 10"
2654 | }
2655 | },
2656 | "node_modules/range-parser": {
2657 | "version": "1.2.1",
2658 | "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz",
2659 | "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==",
2660 | "dev": true,
2661 | "engines": {
2662 | "node": ">= 0.6"
2663 | }
2664 | },
2665 | "node_modules/raw-body": {
2666 | "version": "2.5.2",
2667 | "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz",
2668 | "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==",
2669 | "dev": true,
2670 | "dependencies": {
2671 | "bytes": "3.1.2",
2672 | "http-errors": "2.0.0",
2673 | "iconv-lite": "0.4.24",
2674 | "unpipe": "1.0.0"
2675 | },
2676 | "engines": {
2677 | "node": ">= 0.8"
2678 | }
2679 | },
2680 | "node_modules/rc": {
2681 | "version": "1.2.8",
2682 | "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz",
2683 | "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==",
2684 | "dev": true,
2685 | "dependencies": {
2686 | "deep-extend": "^0.6.0",
2687 | "ini": "~1.3.0",
2688 | "minimist": "^1.2.0",
2689 | "strip-json-comments": "~2.0.1"
2690 | },
2691 | "bin": {
2692 | "rc": "cli.js"
2693 | }
2694 | },
2695 | "node_modules/readable-stream": {
2696 | "version": "3.6.1",
2697 | "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.1.tgz",
2698 | "integrity": "sha512-+rQmrWMYGA90yenhTYsLWAsLsqVC8osOw6PKE1HDYiO0gdPeKe/xDHNzIAIn4C91YQ6oenEhfYqqc1883qHbjQ==",
2699 | "dev": true,
2700 | "dependencies": {
2701 | "inherits": "^2.0.3",
2702 | "string_decoder": "^1.1.1",
2703 | "util-deprecate": "^1.0.1"
2704 | },
2705 | "engines": {
2706 | "node": ">= 6"
2707 | }
2708 | },
2709 | "node_modules/readdirp": {
2710 | "version": "3.6.0",
2711 | "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz",
2712 | "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==",
2713 | "dev": true,
2714 | "dependencies": {
2715 | "picomatch": "^2.2.1"
2716 | },
2717 | "engines": {
2718 | "node": ">=8.10.0"
2719 | }
2720 | },
2721 | "node_modules/registry-auth-token": {
2722 | "version": "3.3.2",
2723 | "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-3.3.2.tgz",
2724 | "integrity": "sha512-JL39c60XlzCVgNrO+qq68FoNb56w/m7JYvGR2jT5iR1xBrUA3Mfx5Twk5rqTThPmQKMWydGmq8oFtDlxfrmxnQ==",
2725 | "dev": true,
2726 | "dependencies": {
2727 | "rc": "^1.1.6",
2728 | "safe-buffer": "^5.0.1"
2729 | }
2730 | },
2731 | "node_modules/registry-url": {
2732 | "version": "3.1.0",
2733 | "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-3.1.0.tgz",
2734 | "integrity": "sha512-ZbgR5aZEdf4UKZVBPYIgaglBmSF2Hi94s2PcIHhRGFjKYu+chjJdYfHn4rt3hB6eCKLJ8giVIIfgMa1ehDfZKA==",
2735 | "dev": true,
2736 | "dependencies": {
2737 | "rc": "^1.0.1"
2738 | },
2739 | "engines": {
2740 | "node": ">=0.10.0"
2741 | }
2742 | },
2743 | "node_modules/require-directory": {
2744 | "version": "2.1.1",
2745 | "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
2746 | "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==",
2747 | "dev": true,
2748 | "engines": {
2749 | "node": ">=0.10.0"
2750 | }
2751 | },
2752 | "node_modules/require-from-string": {
2753 | "version": "2.0.2",
2754 | "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz",
2755 | "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==",
2756 | "dev": true,
2757 | "engines": {
2758 | "node": ">=0.10.0"
2759 | }
2760 | },
2761 | "node_modules/requires-port": {
2762 | "version": "1.0.0",
2763 | "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz",
2764 | "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==",
2765 | "dev": true
2766 | },
2767 | "node_modules/resolve-from": {
2768 | "version": "4.0.0",
2769 | "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz",
2770 | "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==",
2771 | "dev": true,
2772 | "engines": {
2773 | "node": ">=4"
2774 | }
2775 | },
2776 | "node_modules/rfdc": {
2777 | "version": "1.3.0",
2778 | "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.3.0.tgz",
2779 | "integrity": "sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==",
2780 | "dev": true
2781 | },
2782 | "node_modules/rimraf": {
2783 | "version": "3.0.2",
2784 | "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
2785 | "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
2786 | "dev": true,
2787 | "dependencies": {
2788 | "glob": "^7.1.3"
2789 | },
2790 | "bin": {
2791 | "rimraf": "bin.js"
2792 | },
2793 | "funding": {
2794 | "url": "https://github.com/sponsors/isaacs"
2795 | }
2796 | },
2797 | "node_modules/safe-buffer": {
2798 | "version": "5.1.2",
2799 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
2800 | "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
2801 | "dev": true
2802 | },
2803 | "node_modules/safer-buffer": {
2804 | "version": "2.1.2",
2805 | "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
2806 | "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==",
2807 | "dev": true
2808 | },
2809 | "node_modules/sax": {
2810 | "version": "1.2.4",
2811 | "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz",
2812 | "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==",
2813 | "dev": true,
2814 | "optional": true
2815 | },
2816 | "node_modules/semver": {
2817 | "version": "5.7.1",
2818 | "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
2819 | "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
2820 | "dev": true,
2821 | "optional": true,
2822 | "bin": {
2823 | "semver": "bin/semver"
2824 | }
2825 | },
2826 | "node_modules/serve": {
2827 | "version": "14.2.1",
2828 | "resolved": "https://registry.npmjs.org/serve/-/serve-14.2.1.tgz",
2829 | "integrity": "sha512-48er5fzHh7GCShLnNyPBRPEjs2I6QBozeGr02gaacROiyS/8ARADlj595j39iZXAqBbJHH/ivJJyPRWY9sQWZA==",
2830 | "dev": true,
2831 | "dependencies": {
2832 | "@zeit/schemas": "2.29.0",
2833 | "ajv": "8.11.0",
2834 | "arg": "5.0.2",
2835 | "boxen": "7.0.0",
2836 | "chalk": "5.0.1",
2837 | "chalk-template": "0.4.0",
2838 | "clipboardy": "3.0.0",
2839 | "compression": "1.7.4",
2840 | "is-port-reachable": "4.0.0",
2841 | "serve-handler": "6.1.5",
2842 | "update-check": "1.5.4"
2843 | },
2844 | "bin": {
2845 | "serve": "build/main.js"
2846 | },
2847 | "engines": {
2848 | "node": ">= 14"
2849 | }
2850 | },
2851 | "node_modules/serve-handler": {
2852 | "version": "6.1.5",
2853 | "resolved": "https://registry.npmjs.org/serve-handler/-/serve-handler-6.1.5.tgz",
2854 | "integrity": "sha512-ijPFle6Hwe8zfmBxJdE+5fta53fdIY0lHISJvuikXB3VYFafRjMRpOffSPvCYsbKyBA7pvy9oYr/BT1O3EArlg==",
2855 | "dev": true,
2856 | "dependencies": {
2857 | "bytes": "3.0.0",
2858 | "content-disposition": "0.5.2",
2859 | "fast-url-parser": "1.1.3",
2860 | "mime-types": "2.1.18",
2861 | "minimatch": "3.1.2",
2862 | "path-is-inside": "1.0.2",
2863 | "path-to-regexp": "2.2.1",
2864 | "range-parser": "1.2.0"
2865 | }
2866 | },
2867 | "node_modules/serve-handler/node_modules/bytes": {
2868 | "version": "3.0.0",
2869 | "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz",
2870 | "integrity": "sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==",
2871 | "dev": true,
2872 | "engines": {
2873 | "node": ">= 0.8"
2874 | }
2875 | },
2876 | "node_modules/serve-handler/node_modules/mime-db": {
2877 | "version": "1.33.0",
2878 | "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.33.0.tgz",
2879 | "integrity": "sha512-BHJ/EKruNIqJf/QahvxwQZXKygOQ256myeN/Ew+THcAa5q+PjyTTMMeNQC4DZw5AwfvelsUrA6B67NKMqXDbzQ==",
2880 | "dev": true,
2881 | "engines": {
2882 | "node": ">= 0.6"
2883 | }
2884 | },
2885 | "node_modules/serve-handler/node_modules/mime-types": {
2886 | "version": "2.1.18",
2887 | "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.18.tgz",
2888 | "integrity": "sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ==",
2889 | "dev": true,
2890 | "dependencies": {
2891 | "mime-db": "~1.33.0"
2892 | },
2893 | "engines": {
2894 | "node": ">= 0.6"
2895 | }
2896 | },
2897 | "node_modules/serve-handler/node_modules/range-parser": {
2898 | "version": "1.2.0",
2899 | "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz",
2900 | "integrity": "sha512-kA5WQoNVo4t9lNx2kQNFCxKeBl5IbbSNBl1M/tLkw9WCn+hxNBAW5Qh8gdhs63CJnhjJ2zQWFoqPJP2sK1AV5A==",
2901 | "dev": true,
2902 | "engines": {
2903 | "node": ">= 0.6"
2904 | }
2905 | },
2906 | "node_modules/setprototypeof": {
2907 | "version": "1.2.0",
2908 | "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz",
2909 | "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==",
2910 | "dev": true
2911 | },
2912 | "node_modules/shebang-command": {
2913 | "version": "2.0.0",
2914 | "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
2915 | "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
2916 | "dev": true,
2917 | "dependencies": {
2918 | "shebang-regex": "^3.0.0"
2919 | },
2920 | "engines": {
2921 | "node": ">=8"
2922 | }
2923 | },
2924 | "node_modules/shebang-regex": {
2925 | "version": "3.0.0",
2926 | "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
2927 | "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
2928 | "dev": true,
2929 | "engines": {
2930 | "node": ">=8"
2931 | }
2932 | },
2933 | "node_modules/side-channel": {
2934 | "version": "1.0.4",
2935 | "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz",
2936 | "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==",
2937 | "dev": true,
2938 | "dependencies": {
2939 | "call-bind": "^1.0.0",
2940 | "get-intrinsic": "^1.0.2",
2941 | "object-inspect": "^1.9.0"
2942 | },
2943 | "funding": {
2944 | "url": "https://github.com/sponsors/ljharb"
2945 | }
2946 | },
2947 | "node_modules/signal-exit": {
2948 | "version": "3.0.7",
2949 | "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz",
2950 | "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==",
2951 | "dev": true
2952 | },
2953 | "node_modules/socket.io": {
2954 | "version": "4.6.1",
2955 | "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-4.6.1.tgz",
2956 | "integrity": "sha512-KMcaAi4l/8+xEjkRICl6ak8ySoxsYG+gG6/XfRCPJPQ/haCRIJBTL4wIl8YCsmtaBovcAXGLOShyVWQ/FG8GZA==",
2957 | "dev": true,
2958 | "dependencies": {
2959 | "accepts": "~1.3.4",
2960 | "base64id": "~2.0.0",
2961 | "debug": "~4.3.2",
2962 | "engine.io": "~6.4.1",
2963 | "socket.io-adapter": "~2.5.2",
2964 | "socket.io-parser": "~4.2.1"
2965 | },
2966 | "engines": {
2967 | "node": ">=10.0.0"
2968 | }
2969 | },
2970 | "node_modules/socket.io-adapter": {
2971 | "version": "2.5.2",
2972 | "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-2.5.2.tgz",
2973 | "integrity": "sha512-87C3LO/NOMc+eMcpcxUBebGjkpMDkNBS9tf7KJqcDsmL936EChtVva71Dw2q4tQcuVC+hAUy4an2NO/sYXmwRA==",
2974 | "dev": true,
2975 | "dependencies": {
2976 | "ws": "~8.11.0"
2977 | }
2978 | },
2979 | "node_modules/socket.io-parser": {
2980 | "version": "4.2.2",
2981 | "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.2.2.tgz",
2982 | "integrity": "sha512-DJtziuKypFkMMHCm2uIshOYC7QaylbtzQwiMYDuCKy3OPkjLzu4B2vAhTlqipRHHzrI0NJeBAizTK7X+6m1jVw==",
2983 | "dev": true,
2984 | "dependencies": {
2985 | "@socket.io/component-emitter": "~3.1.0",
2986 | "debug": "~4.3.1"
2987 | },
2988 | "engines": {
2989 | "node": ">=10.0.0"
2990 | }
2991 | },
2992 | "node_modules/socket.io-parser/node_modules/debug": {
2993 | "version": "4.3.4",
2994 | "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
2995 | "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
2996 | "dev": true,
2997 | "dependencies": {
2998 | "ms": "2.1.2"
2999 | },
3000 | "engines": {
3001 | "node": ">=6.0"
3002 | },
3003 | "peerDependenciesMeta": {
3004 | "supports-color": {
3005 | "optional": true
3006 | }
3007 | }
3008 | },
3009 | "node_modules/socket.io-parser/node_modules/ms": {
3010 | "version": "2.1.2",
3011 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
3012 | "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
3013 | "dev": true
3014 | },
3015 | "node_modules/socket.io/node_modules/debug": {
3016 | "version": "4.3.4",
3017 | "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
3018 | "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
3019 | "dev": true,
3020 | "dependencies": {
3021 | "ms": "2.1.2"
3022 | },
3023 | "engines": {
3024 | "node": ">=6.0"
3025 | },
3026 | "peerDependenciesMeta": {
3027 | "supports-color": {
3028 | "optional": true
3029 | }
3030 | }
3031 | },
3032 | "node_modules/socket.io/node_modules/ms": {
3033 | "version": "2.1.2",
3034 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
3035 | "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
3036 | "dev": true
3037 | },
3038 | "node_modules/source-map": {
3039 | "version": "0.6.1",
3040 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
3041 | "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
3042 | "dev": true,
3043 | "engines": {
3044 | "node": ">=0.10.0"
3045 | }
3046 | },
3047 | "node_modules/source-map-support": {
3048 | "version": "0.5.21",
3049 | "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz",
3050 | "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==",
3051 | "dev": true,
3052 | "dependencies": {
3053 | "buffer-from": "^1.0.0",
3054 | "source-map": "^0.6.0"
3055 | }
3056 | },
3057 | "node_modules/statuses": {
3058 | "version": "1.5.0",
3059 | "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz",
3060 | "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==",
3061 | "dev": true,
3062 | "engines": {
3063 | "node": ">= 0.6"
3064 | }
3065 | },
3066 | "node_modules/streamroller": {
3067 | "version": "3.1.5",
3068 | "resolved": "https://registry.npmjs.org/streamroller/-/streamroller-3.1.5.tgz",
3069 | "integrity": "sha512-KFxaM7XT+irxvdqSP1LGLgNWbYN7ay5owZ3r/8t77p+EtSUAfUgtl7be3xtqtOmGUl9K9YPO2ca8133RlTjvKw==",
3070 | "dev": true,
3071 | "dependencies": {
3072 | "date-format": "^4.0.14",
3073 | "debug": "^4.3.4",
3074 | "fs-extra": "^8.1.0"
3075 | },
3076 | "engines": {
3077 | "node": ">=8.0"
3078 | }
3079 | },
3080 | "node_modules/streamroller/node_modules/debug": {
3081 | "version": "4.3.4",
3082 | "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
3083 | "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
3084 | "dev": true,
3085 | "dependencies": {
3086 | "ms": "2.1.2"
3087 | },
3088 | "engines": {
3089 | "node": ">=6.0"
3090 | },
3091 | "peerDependenciesMeta": {
3092 | "supports-color": {
3093 | "optional": true
3094 | }
3095 | }
3096 | },
3097 | "node_modules/streamroller/node_modules/ms": {
3098 | "version": "2.1.2",
3099 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
3100 | "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
3101 | "dev": true
3102 | },
3103 | "node_modules/string_decoder": {
3104 | "version": "1.3.0",
3105 | "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz",
3106 | "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==",
3107 | "dev": true,
3108 | "dependencies": {
3109 | "safe-buffer": "~5.2.0"
3110 | }
3111 | },
3112 | "node_modules/string_decoder/node_modules/safe-buffer": {
3113 | "version": "5.2.1",
3114 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
3115 | "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
3116 | "dev": true,
3117 | "funding": [
3118 | {
3119 | "type": "github",
3120 | "url": "https://github.com/sponsors/feross"
3121 | },
3122 | {
3123 | "type": "patreon",
3124 | "url": "https://www.patreon.com/feross"
3125 | },
3126 | {
3127 | "type": "consulting",
3128 | "url": "https://feross.org/support"
3129 | }
3130 | ]
3131 | },
3132 | "node_modules/string-width": {
3133 | "version": "5.1.2",
3134 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz",
3135 | "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==",
3136 | "dev": true,
3137 | "dependencies": {
3138 | "eastasianwidth": "^0.2.0",
3139 | "emoji-regex": "^9.2.2",
3140 | "strip-ansi": "^7.0.1"
3141 | },
3142 | "engines": {
3143 | "node": ">=12"
3144 | },
3145 | "funding": {
3146 | "url": "https://github.com/sponsors/sindresorhus"
3147 | }
3148 | },
3149 | "node_modules/string-width/node_modules/emoji-regex": {
3150 | "version": "9.2.2",
3151 | "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz",
3152 | "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==",
3153 | "dev": true
3154 | },
3155 | "node_modules/strip-ansi": {
3156 | "version": "7.0.1",
3157 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.0.1.tgz",
3158 | "integrity": "sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==",
3159 | "dev": true,
3160 | "dependencies": {
3161 | "ansi-regex": "^6.0.1"
3162 | },
3163 | "engines": {
3164 | "node": ">=12"
3165 | },
3166 | "funding": {
3167 | "url": "https://github.com/chalk/strip-ansi?sponsor=1"
3168 | }
3169 | },
3170 | "node_modules/strip-final-newline": {
3171 | "version": "2.0.0",
3172 | "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz",
3173 | "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==",
3174 | "dev": true,
3175 | "engines": {
3176 | "node": ">=6"
3177 | }
3178 | },
3179 | "node_modules/strip-json-comments": {
3180 | "version": "2.0.1",
3181 | "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz",
3182 | "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==",
3183 | "dev": true,
3184 | "engines": {
3185 | "node": ">=0.10.0"
3186 | }
3187 | },
3188 | "node_modules/supports-color": {
3189 | "version": "7.2.0",
3190 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
3191 | "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
3192 | "dev": true,
3193 | "dependencies": {
3194 | "has-flag": "^4.0.0"
3195 | },
3196 | "engines": {
3197 | "node": ">=8"
3198 | }
3199 | },
3200 | "node_modules/tar-fs": {
3201 | "version": "2.1.1",
3202 | "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.1.tgz",
3203 | "integrity": "sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==",
3204 | "dev": true,
3205 | "dependencies": {
3206 | "chownr": "^1.1.1",
3207 | "mkdirp-classic": "^0.5.2",
3208 | "pump": "^3.0.0",
3209 | "tar-stream": "^2.1.4"
3210 | }
3211 | },
3212 | "node_modules/tar-stream": {
3213 | "version": "2.2.0",
3214 | "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz",
3215 | "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==",
3216 | "dev": true,
3217 | "dependencies": {
3218 | "bl": "^4.0.3",
3219 | "end-of-stream": "^1.4.1",
3220 | "fs-constants": "^1.0.0",
3221 | "inherits": "^2.0.3",
3222 | "readable-stream": "^3.1.1"
3223 | },
3224 | "engines": {
3225 | "node": ">=6"
3226 | }
3227 | },
3228 | "node_modules/terser": {
3229 | "version": "5.16.5",
3230 | "resolved": "https://registry.npmjs.org/terser/-/terser-5.16.5.tgz",
3231 | "integrity": "sha512-qcwfg4+RZa3YvlFh0qjifnzBHjKGNbtDo9yivMqMFDy9Q6FSaQWSB/j1xKhsoUFJIqDOM3TsN6D5xbrMrFcHbg==",
3232 | "dev": true,
3233 | "dependencies": {
3234 | "@jridgewell/source-map": "^0.3.2",
3235 | "acorn": "^8.5.0",
3236 | "commander": "^2.20.0",
3237 | "source-map-support": "~0.5.20"
3238 | },
3239 | "bin": {
3240 | "terser": "bin/terser"
3241 | },
3242 | "engines": {
3243 | "node": ">=10"
3244 | }
3245 | },
3246 | "node_modules/through": {
3247 | "version": "2.3.8",
3248 | "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz",
3249 | "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==",
3250 | "dev": true
3251 | },
3252 | "node_modules/tiny-glob": {
3253 | "version": "0.2.9",
3254 | "resolved": "https://registry.npmjs.org/tiny-glob/-/tiny-glob-0.2.9.tgz",
3255 | "integrity": "sha512-g/55ssRPUjShh+xkfx9UPDXqhckHEsHr4Vd9zX55oSdGZc/MD0m3sferOkwWtp98bv+kcVfEHtRJgBVJzelrzg==",
3256 | "dev": true,
3257 | "dependencies": {
3258 | "globalyzer": "0.1.0",
3259 | "globrex": "^0.1.2"
3260 | }
3261 | },
3262 | "node_modules/tmp": {
3263 | "version": "0.2.1",
3264 | "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz",
3265 | "integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==",
3266 | "dev": true,
3267 | "dependencies": {
3268 | "rimraf": "^3.0.0"
3269 | },
3270 | "engines": {
3271 | "node": ">=8.17.0"
3272 | }
3273 | },
3274 | "node_modules/to-regex-range": {
3275 | "version": "5.0.1",
3276 | "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
3277 | "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
3278 | "dev": true,
3279 | "dependencies": {
3280 | "is-number": "^7.0.0"
3281 | },
3282 | "engines": {
3283 | "node": ">=8.0"
3284 | }
3285 | },
3286 | "node_modules/toidentifier": {
3287 | "version": "1.0.1",
3288 | "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz",
3289 | "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==",
3290 | "dev": true,
3291 | "engines": {
3292 | "node": ">=0.6"
3293 | }
3294 | },
3295 | "node_modules/tr46": {
3296 | "version": "0.0.3",
3297 | "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz",
3298 | "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==",
3299 | "dev": true
3300 | },
3301 | "node_modules/tslib": {
3302 | "version": "2.5.0",
3303 | "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz",
3304 | "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==",
3305 | "dev": true
3306 | },
3307 | "node_modules/type-fest": {
3308 | "version": "2.19.0",
3309 | "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz",
3310 | "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==",
3311 | "dev": true,
3312 | "engines": {
3313 | "node": ">=12.20"
3314 | },
3315 | "funding": {
3316 | "url": "https://github.com/sponsors/sindresorhus"
3317 | }
3318 | },
3319 | "node_modules/type-is": {
3320 | "version": "1.6.18",
3321 | "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz",
3322 | "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==",
3323 | "dev": true,
3324 | "dependencies": {
3325 | "media-typer": "0.3.0",
3326 | "mime-types": "~2.1.24"
3327 | },
3328 | "engines": {
3329 | "node": ">= 0.6"
3330 | }
3331 | },
3332 | "node_modules/ua-parser-js": {
3333 | "version": "0.7.33",
3334 | "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.33.tgz",
3335 | "integrity": "sha512-s8ax/CeZdK9R/56Sui0WM6y9OFREJarMRHqLB2EwkovemBxNQ+Bqu8GAsUnVcXKgphb++ghr/B2BZx4mahujPw==",
3336 | "dev": true,
3337 | "funding": [
3338 | {
3339 | "type": "opencollective",
3340 | "url": "https://opencollective.com/ua-parser-js"
3341 | },
3342 | {
3343 | "type": "paypal",
3344 | "url": "https://paypal.me/faisalman"
3345 | }
3346 | ],
3347 | "engines": {
3348 | "node": "*"
3349 | }
3350 | },
3351 | "node_modules/unbzip2-stream": {
3352 | "version": "1.4.3",
3353 | "resolved": "https://registry.npmjs.org/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz",
3354 | "integrity": "sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg==",
3355 | "dev": true,
3356 | "dependencies": {
3357 | "buffer": "^5.2.1",
3358 | "through": "^2.3.8"
3359 | }
3360 | },
3361 | "node_modules/universalify": {
3362 | "version": "0.1.2",
3363 | "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz",
3364 | "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==",
3365 | "dev": true,
3366 | "engines": {
3367 | "node": ">= 4.0.0"
3368 | }
3369 | },
3370 | "node_modules/unpipe": {
3371 | "version": "1.0.0",
3372 | "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
3373 | "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==",
3374 | "dev": true,
3375 | "engines": {
3376 | "node": ">= 0.8"
3377 | }
3378 | },
3379 | "node_modules/update-check": {
3380 | "version": "1.5.4",
3381 | "resolved": "https://registry.npmjs.org/update-check/-/update-check-1.5.4.tgz",
3382 | "integrity": "sha512-5YHsflzHP4t1G+8WGPlvKbJEbAJGCgw+Em+dGR1KmBUbr1J36SJBqlHLjR7oob7sco5hWHGQVcr9B2poIVDDTQ==",
3383 | "dev": true,
3384 | "dependencies": {
3385 | "registry-auth-token": "3.3.2",
3386 | "registry-url": "3.1.0"
3387 | }
3388 | },
3389 | "node_modules/uri-js": {
3390 | "version": "4.4.1",
3391 | "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz",
3392 | "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==",
3393 | "dev": true,
3394 | "dependencies": {
3395 | "punycode": "^2.1.0"
3396 | }
3397 | },
3398 | "node_modules/uri-js/node_modules/punycode": {
3399 | "version": "2.3.0",
3400 | "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz",
3401 | "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==",
3402 | "dev": true,
3403 | "engines": {
3404 | "node": ">=6"
3405 | }
3406 | },
3407 | "node_modules/util-deprecate": {
3408 | "version": "1.0.2",
3409 | "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
3410 | "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==",
3411 | "dev": true
3412 | },
3413 | "node_modules/utils-merge": {
3414 | "version": "1.0.1",
3415 | "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz",
3416 | "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==",
3417 | "dev": true,
3418 | "engines": {
3419 | "node": ">= 0.4.0"
3420 | }
3421 | },
3422 | "node_modules/vary": {
3423 | "version": "1.1.2",
3424 | "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
3425 | "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==",
3426 | "dev": true,
3427 | "engines": {
3428 | "node": ">= 0.8"
3429 | }
3430 | },
3431 | "node_modules/void-elements": {
3432 | "version": "2.0.1",
3433 | "resolved": "https://registry.npmjs.org/void-elements/-/void-elements-2.0.1.tgz",
3434 | "integrity": "sha512-qZKX4RnBzH2ugr8Lxa7x+0V6XD9Sb/ouARtiasEQCHB1EVU4NXtmHsDDrx1dO4ne5fc3J6EW05BP1Dl0z0iung==",
3435 | "dev": true,
3436 | "engines": {
3437 | "node": ">=0.10.0"
3438 | }
3439 | },
3440 | "node_modules/webidl-conversions": {
3441 | "version": "3.0.1",
3442 | "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz",
3443 | "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==",
3444 | "dev": true
3445 | },
3446 | "node_modules/whatwg-url": {
3447 | "version": "5.0.0",
3448 | "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz",
3449 | "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==",
3450 | "dev": true,
3451 | "dependencies": {
3452 | "tr46": "~0.0.3",
3453 | "webidl-conversions": "^3.0.0"
3454 | }
3455 | },
3456 | "node_modules/which": {
3457 | "version": "1.3.1",
3458 | "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz",
3459 | "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==",
3460 | "dev": true,
3461 | "dependencies": {
3462 | "isexe": "^2.0.0"
3463 | },
3464 | "bin": {
3465 | "which": "bin/which"
3466 | }
3467 | },
3468 | "node_modules/widest-line": {
3469 | "version": "4.0.1",
3470 | "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-4.0.1.tgz",
3471 | "integrity": "sha512-o0cyEG0e8GPzT4iGHphIOh0cJOV8fivsXxddQasHPHfoZf1ZexrfeA21w2NaEN1RHE+fXlfISmOE8R9N3u3Qig==",
3472 | "dev": true,
3473 | "dependencies": {
3474 | "string-width": "^5.0.1"
3475 | },
3476 | "engines": {
3477 | "node": ">=12"
3478 | },
3479 | "funding": {
3480 | "url": "https://github.com/sponsors/sindresorhus"
3481 | }
3482 | },
3483 | "node_modules/wrap-ansi": {
3484 | "version": "7.0.0",
3485 | "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
3486 | "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
3487 | "dev": true,
3488 | "dependencies": {
3489 | "ansi-styles": "^4.0.0",
3490 | "string-width": "^4.1.0",
3491 | "strip-ansi": "^6.0.0"
3492 | },
3493 | "engines": {
3494 | "node": ">=10"
3495 | },
3496 | "funding": {
3497 | "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
3498 | }
3499 | },
3500 | "node_modules/wrap-ansi/node_modules/ansi-regex": {
3501 | "version": "5.0.1",
3502 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
3503 | "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
3504 | "dev": true,
3505 | "engines": {
3506 | "node": ">=8"
3507 | }
3508 | },
3509 | "node_modules/wrap-ansi/node_modules/ansi-styles": {
3510 | "version": "4.3.0",
3511 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
3512 | "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
3513 | "dev": true,
3514 | "dependencies": {
3515 | "color-convert": "^2.0.1"
3516 | },
3517 | "engines": {
3518 | "node": ">=8"
3519 | },
3520 | "funding": {
3521 | "url": "https://github.com/chalk/ansi-styles?sponsor=1"
3522 | }
3523 | },
3524 | "node_modules/wrap-ansi/node_modules/string-width": {
3525 | "version": "4.2.3",
3526 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
3527 | "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
3528 | "dev": true,
3529 | "dependencies": {
3530 | "emoji-regex": "^8.0.0",
3531 | "is-fullwidth-code-point": "^3.0.0",
3532 | "strip-ansi": "^6.0.1"
3533 | },
3534 | "engines": {
3535 | "node": ">=8"
3536 | }
3537 | },
3538 | "node_modules/wrap-ansi/node_modules/strip-ansi": {
3539 | "version": "6.0.1",
3540 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
3541 | "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
3542 | "dev": true,
3543 | "dependencies": {
3544 | "ansi-regex": "^5.0.1"
3545 | },
3546 | "engines": {
3547 | "node": ">=8"
3548 | }
3549 | },
3550 | "node_modules/wrappy": {
3551 | "version": "1.0.2",
3552 | "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
3553 | "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==",
3554 | "dev": true
3555 | },
3556 | "node_modules/ws": {
3557 | "version": "8.11.0",
3558 | "resolved": "https://registry.npmjs.org/ws/-/ws-8.11.0.tgz",
3559 | "integrity": "sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg==",
3560 | "dev": true,
3561 | "engines": {
3562 | "node": ">=10.0.0"
3563 | },
3564 | "peerDependencies": {
3565 | "bufferutil": "^4.0.1",
3566 | "utf-8-validate": "^5.0.2"
3567 | },
3568 | "peerDependenciesMeta": {
3569 | "bufferutil": {
3570 | "optional": true
3571 | },
3572 | "utf-8-validate": {
3573 | "optional": true
3574 | }
3575 | }
3576 | },
3577 | "node_modules/y18n": {
3578 | "version": "5.0.8",
3579 | "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz",
3580 | "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==",
3581 | "dev": true,
3582 | "engines": {
3583 | "node": ">=10"
3584 | }
3585 | },
3586 | "node_modules/yargs": {
3587 | "version": "16.2.0",
3588 | "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz",
3589 | "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==",
3590 | "dev": true,
3591 | "dependencies": {
3592 | "cliui": "^7.0.2",
3593 | "escalade": "^3.1.1",
3594 | "get-caller-file": "^2.0.5",
3595 | "require-directory": "^2.1.1",
3596 | "string-width": "^4.2.0",
3597 | "y18n": "^5.0.5",
3598 | "yargs-parser": "^20.2.2"
3599 | },
3600 | "engines": {
3601 | "node": ">=10"
3602 | }
3603 | },
3604 | "node_modules/yargs-parser": {
3605 | "version": "20.2.9",
3606 | "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz",
3607 | "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==",
3608 | "dev": true,
3609 | "engines": {
3610 | "node": ">=10"
3611 | }
3612 | },
3613 | "node_modules/yargs/node_modules/ansi-regex": {
3614 | "version": "5.0.1",
3615 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
3616 | "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
3617 | "dev": true,
3618 | "engines": {
3619 | "node": ">=8"
3620 | }
3621 | },
3622 | "node_modules/yargs/node_modules/string-width": {
3623 | "version": "4.2.3",
3624 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
3625 | "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
3626 | "dev": true,
3627 | "dependencies": {
3628 | "emoji-regex": "^8.0.0",
3629 | "is-fullwidth-code-point": "^3.0.0",
3630 | "strip-ansi": "^6.0.1"
3631 | },
3632 | "engines": {
3633 | "node": ">=8"
3634 | }
3635 | },
3636 | "node_modules/yargs/node_modules/strip-ansi": {
3637 | "version": "6.0.1",
3638 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
3639 | "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
3640 | "dev": true,
3641 | "dependencies": {
3642 | "ansi-regex": "^5.0.1"
3643 | },
3644 | "engines": {
3645 | "node": ">=8"
3646 | }
3647 | },
3648 | "node_modules/yauzl": {
3649 | "version": "2.10.0",
3650 | "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz",
3651 | "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==",
3652 | "dev": true,
3653 | "dependencies": {
3654 | "buffer-crc32": "~0.2.3",
3655 | "fd-slicer": "~1.1.0"
3656 | }
3657 | }
3658 | }
3659 | }
3660 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "input-spinner",
3 | "version": "1.0.0",
4 | "private": true,
5 | "description": "A Number-Spinner, Support keyboard operations and continuous changing",
6 | "keywords": [
7 | "spinner",
8 | "number-steps",
9 | "number-spinner",
10 | "continuous"
11 | ],
12 | "homepage": "https://vsn4ik.github.io/input-spinner/",
13 | "repository": "vsn4ik/input-spinner",
14 | "license": "MIT",
15 | "author": {
16 | "name": "xixilive",
17 | "email": "xixilive@gmail.com",
18 | "url": "https://github.com/xixilive"
19 | },
20 | "contributors": [
21 | {
22 | "name": "Vasilii A.",
23 | "url": "https://github.com/vsn4ik"
24 | }
25 | ],
26 | "main": "dist/input-spinner.js",
27 | "files": [
28 | "dist",
29 | "src"
30 | ],
31 | "scripts": {
32 | "css": "npm run css-compile; npm run css-minify",
33 | "css-compile": "lessc src/$npm_package_name.less dist/$npm_package_name.css",
34 | "css-minify": "cleancss --source-map --source-map-inline-sources --output dist/$npm_package_name.min.css dist/$npm_package_name.css",
35 | "js": "npm run js-compile; npm run js-minify",
36 | "js-compile": "mkdir dist; cp -rf src/*.js dist/",
37 | "js-minify": "terser --compress --output dist/$npm_package_name.min.js dist/$npm_package_name.js",
38 | "release-zip": "rm -rf $npm_package_name-$npm_package_version-dist && cp -r dist/ $npm_package_name-$npm_package_version-dist && zip -r9 $npm_package_name-$npm_package_version-dist.zip $npm_package_name-$npm_package_version-dist && rm -rf $npm_package_name-$npm_package_version-dist",
39 | "test": "npm run css; npm run js; karma start tests/karma.conf.js",
40 | "serve": "serve --listen 5000 --no-clipboard ./docs/"
41 | },
42 | "devDependencies": {
43 | "clean-css-cli": "^5.6.2",
44 | "jquery": "^3.5.1",
45 | "karma": "^6.4.1",
46 | "karma-chrome-launcher": "^3.1.0",
47 | "karma-qunit": "^4.1.1",
48 | "less": "^4.1.3",
49 | "puppeteer": "^19.7.2",
50 | "qunit": "^2.10.1",
51 | "serve": "^14.2.1",
52 | "terser": "^5.0.0"
53 | }
54 | }
55 |
--------------------------------------------------------------------------------
/src/input-spinner.js:
--------------------------------------------------------------------------------
1 | /*
2 | * input-spinner
3 | * https://github.com/vsn4ik/input-spinner
4 | * Copyright Vasilii A., 2015–2018
5 | * Copyright xixilive, 2013–2015
6 | * Licensed under the MIT license
7 | */
8 |
9 | 'use strict';
10 |
11 | (function(factory) {
12 | if (typeof define === 'function' && define.amd) {
13 | // AMD. Register as an anonymous module
14 | define(['jquery'], factory);
15 | } else if (typeof exports === 'object') {
16 | // Node/CommonJS
17 | module.exports = factory(require('jquery'));
18 | } else {
19 | // Browser globals
20 | factory(jQuery);
21 | }
22 | })(function($) {
23 | var Spinner;
24 | var Spinning = function($element, options) {
25 | this.$el = $element;
26 | this.options = Object.assign({}, Spinning.rules.defaults, Spinning.rules[options.rule] || {}, options);
27 | this.min = Number(this.options.min) || 0;
28 | this.max = Number(this.options.max) || 0;
29 | this.spinningTimer = null;
30 |
31 | this.$el.on({
32 | 'focus.spinner': (function(e) {
33 | e.preventDefault();
34 | $(this.$el).trigger('mouseup.spinner');
35 | this.oldValue = this.value();
36 | }).bind(this),
37 | 'change.spinner': (function(e) {
38 | e.preventDefault();
39 | this.value(this.$el.val());
40 | }).bind(this),
41 | 'keydown.spinner': (function(e) {
42 | var dir = {
43 | 38: 'up',
44 | 40: 'down'
45 | }[e.keyCode];
46 |
47 | if (dir) {
48 | e.preventDefault();
49 | this.spin(dir);
50 | }
51 | }).bind(this)
52 | });
53 |
54 | //init input value
55 | this.oldValue = this.value();
56 | this.value(this.$el.val());
57 | return this;
58 | };
59 |
60 | Spinning.rules = {
61 | defaults: { min: null, max: null, step: 1, precision: 0 },
62 | currency: { min: 0.00, max: null, step: 0.01, precision: 2 },
63 | quantity: { min: 1, max: 999, step: 1, precision: 0 },
64 | percent: { min: 1, max: 100, step: 1, precision: 0 },
65 | month: { min: 1, max: 12, step: 1, precision: 0 },
66 | day: { min: 1, max: 31, step: 1, precision: 0 },
67 | hour: { min: 0, max: 23, step: 1, precision: 0 },
68 | minute: { min: 1, max: 59, step: 1, precision: 0 },
69 | second: { min: 1, max: 59, step: 1, precision: 0 }
70 | };
71 |
72 | Spinning.prototype = {
73 | spin: function(dir) {
74 | if (this.$el.prop('disabled')) {
75 | return;
76 | }
77 |
78 | this.oldValue = this.value();
79 | var step = typeof this.options.step === 'function' ? this.options.step.call(this, dir) : this.options.step;
80 | var multipler = dir === 'up' ? 1 : -1;
81 |
82 | this.value(this.oldValue + Number(step) * multipler);
83 | },
84 |
85 | value: function(v) {
86 | if (v === null || v === undefined) {
87 | return this.numeric(this.$el.val());
88 | }
89 | v = this.numeric(v);
90 |
91 | var valid = this.validate(v);
92 | if (valid !== 0) {
93 | v = valid === -1 ? this.min : this.max;
94 | }
95 | this.$el.val(v.toFixed(this.options.precision));
96 |
97 | if (this.oldValue !== this.value()) {
98 | // changing.spinner
99 | this.$el.trigger('changing.spinner', [this.value(), this.oldValue]);
100 |
101 | // lazy changed.spinner
102 | clearTimeout(this.spinningTimer);
103 | this.spinningTimer = setTimeout((function() {
104 | this.$el.trigger('changed.spinner', [this.value(), this.oldValue]);
105 | }).bind(this), Spinner.delay);
106 | }
107 | },
108 |
109 | numeric: function(v) {
110 | v = this.options.precision > 0 ? parseFloat(v, 10) : parseInt(v, 10);
111 |
112 | // If the variable is a number
113 | if (isFinite(v)) {
114 | return v;
115 | }
116 |
117 | return v || this.options.min || 0;
118 | },
119 |
120 | validate: function(val) {
121 | if (this.options.min !== null && val < this.min) {
122 | return -1;
123 | }
124 |
125 | if (this.options.max !== null && val > this.max) {
126 | return 1;
127 | }
128 |
129 | return 0;
130 | }
131 | };
132 |
133 | Spinner = function(element, options) {
134 | this.$el = $(element);
135 | this.$spinning = this.$el.find('[data-spin="spinner"]');
136 |
137 | if (this.$spinning.length === 0) {
138 | this.$spinning = this.$el.find('input[type="text"]');
139 | }
140 |
141 | options = Object.assign({}, options, this.$spinning.data());
142 |
143 | this.spinning = new Spinning(this.$spinning, options);
144 |
145 | this.$el
146 | .on('click.spinner', '[data-spin="up"], [data-spin="down"]', this.spin.bind(this))
147 | .on('mousedown.spinner', '[data-spin="up"], [data-spin="down"]', this.spin.bind(this))
148 | .on('mouseup.spinner', '[data-spin="up"], [data-spin="down"]', this.spin.bind(this));
149 |
150 | if (options.delay) {
151 | this.delay(options.delay);
152 | }
153 |
154 | if (options.changed) {
155 | this.changed(options.changed);
156 | }
157 |
158 | if (options.changing) {
159 | this.changing(options.changing);
160 | }
161 | };
162 |
163 | Spinner.delay = 500;
164 |
165 | Spinner.prototype = {
166 | constructor: Spinner,
167 |
168 | spin: function(e) {
169 | var dir = $(e.currentTarget).data('spin');
170 |
171 | switch (e.type) {
172 | case 'click':
173 | e.preventDefault();
174 | this.spinning.spin(dir);
175 | break;
176 | case 'mousedown':
177 | if (e.keyCode === 1) {
178 | this.spinTimeout = setTimeout(this.beginSpin.bind(this, dir), 300);
179 | }
180 | break;
181 | case 'mouseup':
182 | clearTimeout(this.spinTimeout);
183 | clearInterval(this.spinInterval);
184 | break;
185 | }
186 | },
187 |
188 | delay: function(ms) {
189 | var delay = Number(ms);
190 |
191 | if (delay >= 0) {
192 | this.constructor.delay = delay + 100;
193 | }
194 | },
195 |
196 | value: function() {
197 | return this.spinning.value();
198 | },
199 |
200 | changed: function(fn) {
201 | this.bindHandler('changed.spinner', fn);
202 | },
203 |
204 | changing: function(fn) {
205 | this.bindHandler('changing.spinner', fn);
206 | },
207 |
208 | bindHandler: function(t, fn) {
209 | if (typeof fn === 'function') {
210 | this.$spinning.on(t, fn);
211 | } else {
212 | this.$spinning.off(t);
213 | }
214 | },
215 |
216 | beginSpin: function(dir) {
217 | this.spinInterval = setInterval(this.spinning.spin.bind(this.spinning, dir), 100);
218 | }
219 | };
220 |
221 | var old = $.fn.spinner;
222 |
223 | $.fn.spinner = function(options, value) {
224 | return this.each(function() {
225 | var data = $.data(this, 'spinner');
226 |
227 | if (!data) {
228 | data = new Spinner(this, options);
229 |
230 | $.data(this, 'spinner', data);
231 | }
232 | if (options === 'delay' || options === 'changed' || options === 'changing') {
233 | data[options](value);
234 | } else if (options === 'step' && value) {
235 | data.spinning.step = value;
236 | } else if (options === 'spin' && value) {
237 | data.spinning.spin(value);
238 | }
239 | });
240 | };
241 |
242 | $.fn.spinner.Constructor = Spinner;
243 | $.fn.spinner.noConflict = function() {
244 | $.fn.spinner = old;
245 | return this;
246 | };
247 |
248 | $(function() {
249 | $('[data-trigger="spinner"]').spinner();
250 | });
251 |
252 | return $.fn.spinner;
253 | });
254 |
--------------------------------------------------------------------------------
/src/input-spinner.less:
--------------------------------------------------------------------------------
1 | /* bootstrap@4 */
2 | .input-group.spinner .input-group-text {
3 | flex-direction: column;
4 | justify-content: center;
5 | padding-top: 0;
6 | padding-bottom: 0;
7 |
8 | .spin-up,
9 | .spin-down {
10 | display: flex;
11 | background: none;
12 | border: none;
13 | padding: 0;
14 | color: #999;
15 | }
16 |
17 | .spin-up:hover,
18 | .spin-down:hover,
19 | .spin-up:focus,
20 | .spin-down:focus {
21 | color: #555;
22 | }
23 | }
24 |
25 | /* bootstrap@3 */
26 | .spinner.input-group .input-group-addon {
27 | .spin-up,
28 | .spin-down {
29 | height: 10px;
30 | width: 10px;
31 | overflow: hidden;
32 | display: block;
33 | text-align: center;
34 | color: #999;
35 |
36 | &:hover {
37 | color: #555;
38 | }
39 |
40 | .fas {
41 | margin-top: -6px;
42 | vertical-align: middle;
43 | }
44 |
45 | .glyphicon {
46 | font-size: 10px;
47 | top: -2px;
48 | }
49 | }
50 |
51 | a.spin-up,
52 | a.spin-down {
53 | text-decoration: none;
54 | }
55 |
56 | button.spin-up,
57 | button.spin-down {
58 | background: none;
59 | border: none;
60 | padding: 0;
61 | }
62 | }
63 |
64 | .spinner.input-group.input-group-sm .input-group-addon {
65 | .spin-up,
66 | .spin-down {
67 | height: 8px;
68 |
69 | .fas {
70 | margin-top: -10px;
71 | }
72 |
73 | .glyphicon {
74 | font-size: 8px;
75 | top: -5px;
76 | }
77 | }
78 | }
79 |
80 | .spinner.input-group.input-group-lg .input-group-addon {
81 | .spin-up,
82 | .spin-down {
83 | height: 12px;
84 | width: 12px;
85 |
86 | .fas {
87 | margin-top: -16px;
88 | }
89 |
90 | .glyphicon {
91 | font-size: 12px;
92 | top: -6px;
93 | }
94 | }
95 | }
96 |
--------------------------------------------------------------------------------
/tests/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 | Test Suite
14 |
15 |
16 |
17 |
18 |
19 |
20 |
--------------------------------------------------------------------------------
/tests/karma.conf.js:
--------------------------------------------------------------------------------
1 | // process.env.CHROME_BIN = require('puppeteer').executablePath();
2 |
3 | const conf = {
4 | browsers: [
5 | 'ChromeHeadless'
6 | // 'ChromeHeadlessCustom'
7 | ],
8 | // customLaunchers: {
9 | // ChromeHeadlessCustom: {
10 | // base: 'ChromiumHeadless',
11 | // flags: [
12 | // '--no-sandbox',
13 | // '--headless',
14 | // '--disable-gpu',
15 | // '--disable-translate',
16 | // '--disable-extensions'
17 | // ]
18 | // }
19 | // },
20 | basePath: '..',
21 | colors: true,
22 | frameworks: [
23 | 'qunit'
24 | ],
25 | plugins: [
26 | 'karma-qunit',
27 | 'karma-chrome-launcher'
28 | ],
29 | files: [
30 | 'node_modules/jquery/dist/jquery.slim.js',
31 | 'src/input-spinner.js',
32 | 'tests/unit/unit.js'
33 | ],
34 | autoWatch: false,
35 | singleRun: true,
36 | concurrency: Infinity
37 | };
38 |
39 | module.exports = (config) => {
40 | config.set(conf);
41 | };
42 |
--------------------------------------------------------------------------------
/tests/unit/unit.js:
--------------------------------------------------------------------------------
1 | document.addEventListener('DOMContentLoaded', function() {
2 | 'use strict';
3 |
4 | QUnit.test('should be defined on jquery object', function(assert) {
5 | assert.expect(1);
6 | assert.ok($.fn.spinner, 'spinner method is defined');
7 | });
8 |
9 | QUnit.module('Spinner', {
10 | beforeEach: function() {
11 | this.$el = $(`
12 |
13 | +
14 |
15 | -
16 |
17 | `).spinner();
18 |
19 | this.$spinUp = this.$el.find('[data-spin="up"]');
20 | this.$spinDown = this.$el.find('[data-spin="down"]');
21 | this.spinner = this.$el.data('spinner');
22 | },
23 | afterEach: function() {
24 | this.$el
25 | .spinner('delay', 500)
26 | .spinner('changed', null)
27 | .spinner('changing', null);
28 |
29 | this.spinner.spinning.$el.val(1);
30 | }
31 | });
32 |
33 | QUnit.test('spinner#value', function(assert) {
34 | assert.expect(1);
35 | assert.ok(this.spinner.value() === 1);
36 | });
37 |
38 | QUnit.test('Spinner#delay', function(assert) {
39 | assert.expect(2);
40 | assert.ok(this.spinner.constructor.delay === 600);
41 | this.$el.spinner('delay', 300, 'should plus 100');
42 | assert.ok(this.spinner.constructor.delay === 400);
43 | });
44 |
45 | QUnit.test('Spinner#changed', function(assert) {
46 | var x = this.spinner.value();
47 | var y = 0;
48 |
49 | this.$el.spinner('delay', 50).spinner('changed', function(e, newVal) {
50 | y = newVal;
51 | });
52 | this.$spinUp.trigger('click');
53 | var done = assert.async();
54 | setTimeout(function() {
55 | assert.ok(y === x + 1);
56 | done();
57 | }, 200);
58 | });
59 |
60 | QUnit.test('Spinner#changing', function(assert) {
61 | this.$el.spinner('changing', function(e, newVal) {
62 | assert.ok(newVal === 2);
63 | });
64 | this.$spinUp.trigger('click');
65 | });
66 |
67 | QUnit.test('spin via mouse click', function(assert) {
68 | assert.ok(this.spinner.value() === 1);
69 | this.$spinUp.trigger('click');
70 | assert.ok(this.spinner.value() === 2);
71 | this.$spinDown.trigger('click');
72 | assert.ok(this.spinner.value() === 1);
73 | });
74 |
75 | QUnit.test('pass step as a function', function(assert) {
76 | assert.ok(this.spinner.value() === 1);
77 | this.spinner.spinning.options.step = function(dir) { //to skip 0
78 | if ((this.oldValue === 1 && dir === 'down') || (this.oldValue === -1 && dir === 'up')) {
79 | return 2;
80 | }
81 |
82 | return 1;
83 | };
84 | this.$spinDown.trigger('click');
85 | assert.ok(this.spinner.value() === -1);
86 | this.$spinUp.trigger('click');
87 | assert.ok(this.spinner.value() === 1);
88 | });
89 |
90 | QUnit.test('no spinning on disabled input', function(assert) {
91 | this.spinner.spinning.$el.prop('disabled', true);
92 | assert.ok(this.spinner.value() === 1);
93 | this.$spinUp.trigger('click');
94 | assert.ok(this.spinner.value() === 1);
95 | this.spinner.spinning.$el.val(2);
96 | this.$spinDown.trigger('click');
97 | assert.ok(this.spinner.value() === 2);
98 | this.spinner.spinning.$el.prop('disabled', false);
99 | });
100 | });
101 |
--------------------------------------------------------------------------------