├── .eslintrc.js
├── .github
└── workflows
│ └── ci.yml
├── .gitignore
├── CHANGELOG.md
├── LICENSE
├── README.md
├── example.html
├── package.json
├── src
├── index.js
└── react.js
└── yarn.lock
/.eslintrc.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | env: {
3 | browser: true,
4 | commonjs: true,
5 | },
6 | parserOptions: {
7 | ecmaVersion: 5,
8 | },
9 | extends: 'eslint:recommended',
10 | rules: {
11 | 'func-names': ['error', 'always'],
12 | },
13 | overrides: [
14 | {
15 | files: ['src/react.js'],
16 | parserOptions: {
17 | ecmaVersion: 12,
18 | },
19 | },
20 | ],
21 | };
22 |
--------------------------------------------------------------------------------
/.github/workflows/ci.yml:
--------------------------------------------------------------------------------
1 | name: CI
2 | on: [push, pull_request]
3 | jobs:
4 | checks:
5 | runs-on: ubuntu-latest
6 | strategy:
7 | matrix:
8 | node-version: [14.x]
9 | steps:
10 | - uses: actions/checkout@v2
11 | - name: Use Node.js ${{ matrix.node-version }}
12 | uses: actions/setup-node@v1
13 | with:
14 | node-version: ${{ matrix.node-version }}
15 | - run: yarn --frozen-lockfile
16 | - run: yarn test
17 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | node_modules
2 |
--------------------------------------------------------------------------------
/CHANGELOG.md:
--------------------------------------------------------------------------------
1 | # Changelog
2 |
3 | ## 1.1.1
4 |
5 | Fixed:
6 |
7 | - Fixed an issue where React-component would initialize the datepicker twice
8 |
9 | ## 1.1.0
10 |
11 | Added:
12 |
13 | - `initialValue` option for convenience
14 |
15 | Fixed:
16 |
17 | - Added eslint to enforce ES5 syntax in `src/index.js`
18 |
19 | ## 1.0.2
20 |
21 | This is the first public release of NativeDatepicker.
22 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | Copyright 2020 Martti Laine
2 |
3 | Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.
4 |
5 | THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
6 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # native-datepicker
2 |
3 | > Styleable datepicker utilizing the native ``
4 |
5 | [](https://www.npmjs.com/package/native-datepicker)
6 | [](https://github.com/codeclown/native-datepicker)
7 |
8 | Features:
9 |
10 | - Light-weight, no dependencies
11 | - Includes optional React-component
12 | - Supports datetime strings (only replaces date-portion upon change)
13 | - Simple styling, with BEM classes
14 |
15 | Example/demo:
16 |
17 | - [https://codeclown.github.io/native-datepicker/example.html](https://codeclown.github.io/native-datepicker/example.html)
18 |
19 | ## Browser support
20 |
21 | Supported:
22 |
23 | - Chrome
24 | - Firefox
25 | - Edge
26 | - Safari iOS
27 |
28 | Not supported (datepicker is hidden):
29 |
30 | - Safari MacOS
31 | - IE
32 |
33 | ## Usage
34 |
35 | ### Vanilla JS
36 |
37 | ```js
38 | const NativeDatepicker = require('native-datepicker');
39 | const picker = new NativeDatepicker({
40 | onChange: (newValue) => {
41 | console.log(newValue);
42 | },
43 | });
44 | someElement.appendChild(picker.element);
45 | ```
46 |
47 | See [API](#api).
48 |
49 | See also [`example.html` (source)](./example.html).
50 |
51 | ### React
52 |
53 | ```jsx
54 | const NativeDatepicker = require('native-datepicker/src/react');
55 | const SomeComponent = () => {
56 | const [date, setDate] = useState('2020-11-01');
57 | return (
58 | setDate(newValue)} />
59 | );
60 | };
61 | ```
62 |
63 | See [React API](#react-api).
64 |
65 | ## API
66 |
67 | ### `class NativeDatepicker`
68 |
69 | #### `constructor(options)`
70 |
71 | `options` is an object with the following properties:
72 |
73 | ##### `options.onChange`
74 |
75 | type: `function` default: `(value) => {}`
76 |
77 | Callback function which is called when the user selects a new date.
78 |
79 | Receives the new value as string (e.g. `"2020-11-01"` or `"2020-11-01 13:15:00"`; just the date-portion of the original value is replaced).
80 |
81 | ##### `options.initialValue`
82 |
83 | type: `string` default: `""`
84 |
85 | Set the initial date input value.
86 |
87 | These are equivalent:
88 |
89 | ```js
90 | const datepicker = new NativeDatepicker({
91 | initialValue: '2020-11-09 12:43:00',
92 | });
93 | // or
94 | const datepicker = new NativeDatepicker();
95 | datepicker.setValue('2020-11-09 12:43:00');
96 | ```
97 |
98 | ##### `options.existingElement`
99 |
100 | type: `DOMElement` default: `null`
101 |
102 | If set, existing element will be used instead of creating a new `span` element.
103 |
104 | ##### `options.win`
105 |
106 | type: `Window` default: `window`
107 |
108 | For the rare use case (e.g. using inside a child iframe) when setting `window` is necessary.
109 |
110 | #### `setValue(dateString)`
111 |
112 | Set the value of the datepicker.
113 |
114 | `dateString` should be a string containing a date in `YYYY-MM-DD` format. For example, all of these are valid:
115 |
116 | - `"2020-11-01"`
117 | - `"2020-11-01 13:15:00"`
118 | - `"2020-11-01T13:15:00"`
119 |
120 | Upon changes, NativeDatepicker will replace the date-portion of the string and return the result.
121 |
122 | #### `element`
123 |
124 | Contains a reference to the datepicker element.
125 |
126 | ## React API
127 |
128 | ### `NativeDatepicker` component
129 |
130 | Props:
131 |
132 | ```jsx
133 | {}}
136 | className="customClassName"
137 | >
138 | {optionalChildren}
139 |
140 | ```
141 |
142 | #### `props.value`
143 |
144 | type: `string` default: `""`
145 |
146 | Initial value. Examples:
147 |
148 | - `value="2020-11-01"`
149 | - `value="2020-11-01 13:15:00"`
150 | - `value="2020-11-01T13:15:00"`
151 |
152 | #### `props.onChange`
153 |
154 | type: `function` default: `(value) => {}`
155 |
156 | Callback function which is called when the user selects a new date.
157 |
158 | Receives the new value as string (e.g. `"2020-11-01"` or `"2020-11-01 13:15:00"`; just the date-portion of the original value is replaced).
159 |
160 | #### `props.className`
161 |
162 | type: `string` default: `""`
163 |
164 | Custom className for the created element.
165 |
166 | Example with `className="CustomClass"`:
167 |
168 | ```html
169 |
170 |
171 |
172 | ```
173 |
174 | #### `optionalChildren`
175 |
176 | If `children` are given, they are inserted into the resulting DOM. This can be used for any styling needs.
177 |
178 | Example:
179 |
180 | ```html
181 |
182 |
183 |
184 |
185 | ```
186 |
187 | ## Styling / DOM structure
188 |
189 | The following DOM is created for each datepicker:
190 |
191 | ```html
192 |
193 |
194 |
195 | ```
196 |
197 | The recommended way to style the datepicker is to apply styles (e.g. width/height and a background-image) to the topmost element. Example:
198 |
199 | ```css
200 | .NativeDatepicker {
201 | width: 16px;
202 | height: 16px;
203 | background: transparent url(...) no-repeat center center;
204 | }
205 | ```
206 |
207 | Note: under normal circumstances you should not add any styles to `.NativeDatepicker__input`!
208 |
209 | ## Development
210 |
211 | Source files reside in `src/`. Note that `src/index.js` is not precompiled in any way; it should remain valid ES5 (no worries, though; this is checked by eslint).
212 |
213 | ## Release process (for maintainers)
214 |
215 | Keep [`CHANGELOG.md`](./CHANGELOG.md) up-to-date. Run:
216 |
217 | ```bash
218 | yarn test
219 | # will ask for updated version number
220 | yarn publish
221 | # remember to push commits and tags to remote
222 | git push --follow-tags
223 | ```
224 |
225 | ## License
226 |
227 | [ISC](./LICENSE)
228 |
--------------------------------------------------------------------------------
/example.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | NativeDatepicker example
6 |
14 |
15 |
16 |
17 |
18 |
33 |
34 |
35 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "native-datepicker",
3 | "version": "1.1.1",
4 | "main": "src/index.js",
5 | "repository": "https://github.com/codeclown/native-datepicker",
6 | "author": "Martti Laine ",
7 | "license": "ISC",
8 | "devDependencies": {
9 | "eslint": "^7.13.0"
10 | },
11 | "scripts": {
12 | "test": "eslint src"
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/src/index.js:
--------------------------------------------------------------------------------
1 | /* global define */
2 | (function nativeDatepickerFactory1(factory) {
3 | if (typeof exports === 'object' && typeof module === 'object') {
4 | module.exports = factory();
5 | } else if (typeof define === 'function' && define.amd) {
6 | define(factory);
7 | } else {
8 | window['NativeDatepicker'] = factory();
9 | }
10 | })(function nativeDatepickerFactory2() {
11 | var classNames = {
12 | wrapper: 'NativeDatepicker',
13 | input: 'NativeDatepicker__input',
14 | };
15 |
16 | var dateRegex = /\d{4}-\d{2}-\d{2}/;
17 |
18 | function NativeDatepicker(options) {
19 | this.options = Object.assign(
20 | {
21 | win: typeof window !== 'undefined' ? window : undefined,
22 | existingElement: null,
23 | onChange: function defaultOnChange() {},
24 | initialValue: '',
25 | },
26 | options
27 | );
28 |
29 | this.addStylesheet();
30 | this.buildDom();
31 | this.setValue(this.options.initialValue);
32 | }
33 |
34 | NativeDatepicker.prototype.setValue = function setValue(fullString) {
35 | var match = fullString.match(dateRegex);
36 | if (match) {
37 | this.fullValue = fullString;
38 | this.dateValue = match[0];
39 | this.dateInputElement.value = match[0];
40 | }
41 | };
42 |
43 | NativeDatepicker.prototype.buildDom = function buildDom() {
44 | // DOM structure:
45 | //
46 | //
47 | //
48 |
49 | var element =
50 | this.options.existingElement ||
51 | this.options.win.document.createElement('span');
52 | element.classList.add(classNames.wrapper);
53 | this.element = element;
54 |
55 | if (!this.isSupported()) {
56 | // Not via CSS class because we don't want to mess with
57 | // CSS-set display values, to not mess up user styles
58 | element.style.display = 'none';
59 | }
60 |
61 | var dateInputElement = this.options.win.document.createElement('input');
62 | dateInputElement.type = 'date';
63 | dateInputElement.classList.add(classNames.input);
64 | element.appendChild(dateInputElement);
65 | this.dateInputElement = dateInputElement;
66 |
67 | var self = this;
68 | dateInputElement.addEventListener(
69 | 'change',
70 | function onNativeDatepickerChange() {
71 | var newValue = self.fullValue.replace(
72 | dateRegex,
73 | dateInputElement.value
74 | );
75 | // Regex didn't match, fallback to setting the entire value
76 | if (!newValue.includes(dateInputElement.value)) {
77 | newValue = dateInputElement.value;
78 | }
79 | dateInputElement.value = self.dateValue;
80 | self.options.onChange(newValue);
81 | }
82 | );
83 | };
84 |
85 | NativeDatepicker.prototype.addStylesheet = function addStylesheet() {
86 | var styleId = 'NativeDatepickerStyles';
87 | if (!this.options.win.document.querySelector('style#' + styleId)) {
88 | var style = this.options.win.document.createElement('style');
89 | style.id = styleId;
90 | style.textContent =
91 | '.' +
92 | classNames.wrapper +
93 | ' {' +
94 | ' display: inline-block;' +
95 | ' position: relative;' +
96 | '}' +
97 | '.' +
98 | classNames.input +
99 | ' {' +
100 | ' position: absolute;' +
101 | ' left: 0;' +
102 | ' top: 0;' +
103 | ' width: 100%;' +
104 | ' height: 100%;' +
105 | ' opacity: 0;' +
106 | ' cursor: pointer;' +
107 | ' box-sizing: border-box;' +
108 | '}' +
109 | '.' +
110 | classNames.input +
111 | '::-webkit-calendar-picker-indicator {' +
112 | ' position: absolute;' +
113 | ' left: 0;' +
114 | ' top: 0;' +
115 | ' width: 100%;' +
116 | ' height: 100%;' +
117 | ' margin: 0;' +
118 | ' padding: 0;' +
119 | ' cursor: pointer;' +
120 | '}';
121 | this.options.win.document.head.appendChild(style);
122 | }
123 | };
124 |
125 | NativeDatepicker.prototype.isSupported = function isSupported() {
126 | var input = this.options.win.document.createElement('input');
127 | input.type = 'date';
128 | input.value = 'invalid date value';
129 | return input.value !== 'invalid date value';
130 | };
131 |
132 | return NativeDatepicker;
133 | });
134 |
--------------------------------------------------------------------------------
/src/react.js:
--------------------------------------------------------------------------------
1 | const { createElement: h, useRef, useEffect, useState } = require('react');
2 | const NativeDatepickerClass = require('./index');
3 |
4 | const NativeDatepicker = ({
5 | value = '',
6 | onChange = () => {},
7 | className = '',
8 | children,
9 | }) => {
10 | const spanRef = useRef(null);
11 | const [datepicker, setDatepicker] = useState();
12 | useEffect(() => {
13 | if (spanRef.current && !datepicker) {
14 | const picker = new NativeDatepickerClass({
15 | existingElement: spanRef.current,
16 | initialValue: value,
17 | onChange,
18 | });
19 | setDatepicker(picker);
20 | }
21 | }, [spanRef.current, datepicker]);
22 | useEffect(() => {
23 | if (datepicker) {
24 | datepicker.setValue(value);
25 | }
26 | }, [datepicker, value]);
27 | return h(
28 | 'span',
29 | {
30 | ref: spanRef,
31 | className,
32 | },
33 | children
34 | );
35 | };
36 |
37 | module.exports = NativeDatepicker;
38 |
--------------------------------------------------------------------------------
/yarn.lock:
--------------------------------------------------------------------------------
1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
2 | # yarn lockfile v1
3 |
4 |
5 | "@babel/code-frame@^7.0.0":
6 | version "7.10.4"
7 | resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.10.4.tgz#168da1a36e90da68ae8d49c0f1b48c7c6249213a"
8 | integrity sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==
9 | dependencies:
10 | "@babel/highlight" "^7.10.4"
11 |
12 | "@babel/helper-validator-identifier@^7.10.4":
13 | version "7.10.4"
14 | resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz#a78c7a7251e01f616512d31b10adcf52ada5e0d2"
15 | integrity sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw==
16 |
17 | "@babel/highlight@^7.10.4":
18 | version "7.10.4"
19 | resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.10.4.tgz#7d1bdfd65753538fabe6c38596cdb76d9ac60143"
20 | integrity sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==
21 | dependencies:
22 | "@babel/helper-validator-identifier" "^7.10.4"
23 | chalk "^2.0.0"
24 | js-tokens "^4.0.0"
25 |
26 | "@eslint/eslintrc@^0.2.1":
27 | version "0.2.1"
28 | resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-0.2.1.tgz#f72069c330461a06684d119384435e12a5d76e3c"
29 | integrity sha512-XRUeBZ5zBWLYgSANMpThFddrZZkEbGHgUdt5UJjZfnlN9BGCiUBrf+nvbRupSjMvqzwnQN0qwCmOxITt1cfywA==
30 | dependencies:
31 | ajv "^6.12.4"
32 | debug "^4.1.1"
33 | espree "^7.3.0"
34 | globals "^12.1.0"
35 | ignore "^4.0.6"
36 | import-fresh "^3.2.1"
37 | js-yaml "^3.13.1"
38 | lodash "^4.17.19"
39 | minimatch "^3.0.4"
40 | strip-json-comments "^3.1.1"
41 |
42 | acorn-jsx@^5.2.0:
43 | version "5.3.1"
44 | resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.1.tgz#fc8661e11b7ac1539c47dbfea2e72b3af34d267b"
45 | integrity sha512-K0Ptm/47OKfQRpNQ2J/oIN/3QYiK6FwW+eJbILhsdxh2WTLdl+30o8aGdTbm5JbffpFFAg/g+zi1E+jvJha5ng==
46 |
47 | acorn@^7.4.0:
48 | version "7.4.1"
49 | resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa"
50 | integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==
51 |
52 | ajv@^6.10.0, ajv@^6.10.2, ajv@^6.12.4:
53 | version "6.12.6"
54 | resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4"
55 | integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==
56 | dependencies:
57 | fast-deep-equal "^3.1.1"
58 | fast-json-stable-stringify "^2.0.0"
59 | json-schema-traverse "^0.4.1"
60 | uri-js "^4.2.2"
61 |
62 | ansi-colors@^4.1.1:
63 | version "4.1.1"
64 | resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.1.tgz#cbb9ae256bf750af1eab344f229aa27fe94ba348"
65 | integrity sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==
66 |
67 | ansi-regex@^4.1.0:
68 | version "4.1.0"
69 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.0.tgz#8b9f8f08cf1acb843756a839ca8c7e3168c51997"
70 | integrity sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==
71 |
72 | ansi-regex@^5.0.0:
73 | version "5.0.0"
74 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.0.tgz#388539f55179bf39339c81af30a654d69f87cb75"
75 | integrity sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==
76 |
77 | ansi-styles@^3.2.0, ansi-styles@^3.2.1:
78 | version "3.2.1"
79 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d"
80 | integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==
81 | dependencies:
82 | color-convert "^1.9.0"
83 |
84 | ansi-styles@^4.1.0:
85 | version "4.3.0"
86 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937"
87 | integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==
88 | dependencies:
89 | color-convert "^2.0.1"
90 |
91 | argparse@^1.0.7:
92 | version "1.0.10"
93 | resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911"
94 | integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==
95 | dependencies:
96 | sprintf-js "~1.0.2"
97 |
98 | astral-regex@^1.0.0:
99 | version "1.0.0"
100 | resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-1.0.0.tgz#6c8c3fb827dd43ee3918f27b82782ab7658a6fd9"
101 | integrity sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==
102 |
103 | balanced-match@^1.0.0:
104 | version "1.0.0"
105 | resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767"
106 | integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c=
107 |
108 | brace-expansion@^1.1.7:
109 | version "1.1.11"
110 | resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd"
111 | integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==
112 | dependencies:
113 | balanced-match "^1.0.0"
114 | concat-map "0.0.1"
115 |
116 | callsites@^3.0.0:
117 | version "3.1.0"
118 | resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73"
119 | integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==
120 |
121 | chalk@^2.0.0:
122 | version "2.4.2"
123 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424"
124 | integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==
125 | dependencies:
126 | ansi-styles "^3.2.1"
127 | escape-string-regexp "^1.0.5"
128 | supports-color "^5.3.0"
129 |
130 | chalk@^4.0.0:
131 | version "4.1.0"
132 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.0.tgz#4e14870a618d9e2edd97dd8345fd9d9dc315646a"
133 | integrity sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==
134 | dependencies:
135 | ansi-styles "^4.1.0"
136 | supports-color "^7.1.0"
137 |
138 | color-convert@^1.9.0:
139 | version "1.9.3"
140 | resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8"
141 | integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==
142 | dependencies:
143 | color-name "1.1.3"
144 |
145 | color-convert@^2.0.1:
146 | version "2.0.1"
147 | resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3"
148 | integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==
149 | dependencies:
150 | color-name "~1.1.4"
151 |
152 | color-name@1.1.3:
153 | version "1.1.3"
154 | resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25"
155 | integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=
156 |
157 | color-name@~1.1.4:
158 | version "1.1.4"
159 | resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2"
160 | integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==
161 |
162 | concat-map@0.0.1:
163 | version "0.0.1"
164 | resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
165 | integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=
166 |
167 | cross-spawn@^7.0.2:
168 | version "7.0.3"
169 | resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6"
170 | integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==
171 | dependencies:
172 | path-key "^3.1.0"
173 | shebang-command "^2.0.0"
174 | which "^2.0.1"
175 |
176 | debug@^4.0.1, debug@^4.1.1:
177 | version "4.2.0"
178 | resolved "https://registry.yarnpkg.com/debug/-/debug-4.2.0.tgz#7f150f93920e94c58f5574c2fd01a3110effe7f1"
179 | integrity sha512-IX2ncY78vDTjZMFUdmsvIRFY2Cf4FnD0wRs+nQwJU8Lu99/tPFdb0VybiiMTPe3I6rQmwsqQqRBvxU+bZ/I8sg==
180 | dependencies:
181 | ms "2.1.2"
182 |
183 | deep-is@^0.1.3:
184 | version "0.1.3"
185 | resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34"
186 | integrity sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=
187 |
188 | doctrine@^3.0.0:
189 | version "3.0.0"
190 | resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961"
191 | integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==
192 | dependencies:
193 | esutils "^2.0.2"
194 |
195 | emoji-regex@^7.0.1:
196 | version "7.0.3"
197 | resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156"
198 | integrity sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==
199 |
200 | enquirer@^2.3.5:
201 | version "2.3.6"
202 | resolved "https://registry.yarnpkg.com/enquirer/-/enquirer-2.3.6.tgz#2a7fe5dd634a1e4125a975ec994ff5456dc3734d"
203 | integrity sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==
204 | dependencies:
205 | ansi-colors "^4.1.1"
206 |
207 | escape-string-regexp@^1.0.5:
208 | version "1.0.5"
209 | resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"
210 | integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=
211 |
212 | eslint-scope@^5.1.1:
213 | version "5.1.1"
214 | resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c"
215 | integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==
216 | dependencies:
217 | esrecurse "^4.3.0"
218 | estraverse "^4.1.1"
219 |
220 | eslint-utils@^2.1.0:
221 | version "2.1.0"
222 | resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-2.1.0.tgz#d2de5e03424e707dc10c74068ddedae708741b27"
223 | integrity sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==
224 | dependencies:
225 | eslint-visitor-keys "^1.1.0"
226 |
227 | eslint-visitor-keys@^1.1.0, eslint-visitor-keys@^1.3.0:
228 | version "1.3.0"
229 | resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz#30ebd1ef7c2fdff01c3a4f151044af25fab0523e"
230 | integrity sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==
231 |
232 | eslint-visitor-keys@^2.0.0:
233 | version "2.0.0"
234 | resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.0.0.tgz#21fdc8fbcd9c795cc0321f0563702095751511a8"
235 | integrity sha512-QudtT6av5WXels9WjIM7qz1XD1cWGvX4gGXvp/zBn9nXG02D0utdU3Em2m/QjTnrsk6bBjmCygl3rmj118msQQ==
236 |
237 | eslint@^7.13.0:
238 | version "7.13.0"
239 | resolved "https://registry.yarnpkg.com/eslint/-/eslint-7.13.0.tgz#7f180126c0dcdef327bfb54b211d7802decc08da"
240 | integrity sha512-uCORMuOO8tUzJmsdRtrvcGq5qposf7Rw0LwkTJkoDbOycVQtQjmnhZSuLQnozLE4TmAzlMVV45eCHmQ1OpDKUQ==
241 | dependencies:
242 | "@babel/code-frame" "^7.0.0"
243 | "@eslint/eslintrc" "^0.2.1"
244 | ajv "^6.10.0"
245 | chalk "^4.0.0"
246 | cross-spawn "^7.0.2"
247 | debug "^4.0.1"
248 | doctrine "^3.0.0"
249 | enquirer "^2.3.5"
250 | eslint-scope "^5.1.1"
251 | eslint-utils "^2.1.0"
252 | eslint-visitor-keys "^2.0.0"
253 | espree "^7.3.0"
254 | esquery "^1.2.0"
255 | esutils "^2.0.2"
256 | file-entry-cache "^5.0.1"
257 | functional-red-black-tree "^1.0.1"
258 | glob-parent "^5.0.0"
259 | globals "^12.1.0"
260 | ignore "^4.0.6"
261 | import-fresh "^3.0.0"
262 | imurmurhash "^0.1.4"
263 | is-glob "^4.0.0"
264 | js-yaml "^3.13.1"
265 | json-stable-stringify-without-jsonify "^1.0.1"
266 | levn "^0.4.1"
267 | lodash "^4.17.19"
268 | minimatch "^3.0.4"
269 | natural-compare "^1.4.0"
270 | optionator "^0.9.1"
271 | progress "^2.0.0"
272 | regexpp "^3.1.0"
273 | semver "^7.2.1"
274 | strip-ansi "^6.0.0"
275 | strip-json-comments "^3.1.0"
276 | table "^5.2.3"
277 | text-table "^0.2.0"
278 | v8-compile-cache "^2.0.3"
279 |
280 | espree@^7.3.0:
281 | version "7.3.0"
282 | resolved "https://registry.yarnpkg.com/espree/-/espree-7.3.0.tgz#dc30437cf67947cf576121ebd780f15eeac72348"
283 | integrity sha512-dksIWsvKCixn1yrEXO8UosNSxaDoSYpq9reEjZSbHLpT5hpaCAKTLBwq0RHtLrIr+c0ByiYzWT8KTMRzoRCNlw==
284 | dependencies:
285 | acorn "^7.4.0"
286 | acorn-jsx "^5.2.0"
287 | eslint-visitor-keys "^1.3.0"
288 |
289 | esprima@^4.0.0:
290 | version "4.0.1"
291 | resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71"
292 | integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==
293 |
294 | esquery@^1.2.0:
295 | version "1.3.1"
296 | resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.3.1.tgz#b78b5828aa8e214e29fb74c4d5b752e1c033da57"
297 | integrity sha512-olpvt9QG0vniUBZspVRN6lwB7hOZoTRtT+jzR+tS4ffYx2mzbw+z0XCOk44aaLYKApNX5nMm+E+P6o25ip/DHQ==
298 | dependencies:
299 | estraverse "^5.1.0"
300 |
301 | esrecurse@^4.3.0:
302 | version "4.3.0"
303 | resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921"
304 | integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==
305 | dependencies:
306 | estraverse "^5.2.0"
307 |
308 | estraverse@^4.1.1:
309 | version "4.3.0"
310 | resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d"
311 | integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==
312 |
313 | estraverse@^5.1.0, estraverse@^5.2.0:
314 | version "5.2.0"
315 | resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.2.0.tgz#307df42547e6cc7324d3cf03c155d5cdb8c53880"
316 | integrity sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==
317 |
318 | esutils@^2.0.2:
319 | version "2.0.3"
320 | resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64"
321 | integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==
322 |
323 | fast-deep-equal@^3.1.1:
324 | version "3.1.3"
325 | resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525"
326 | integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==
327 |
328 | fast-json-stable-stringify@^2.0.0:
329 | version "2.1.0"
330 | resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633"
331 | integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==
332 |
333 | fast-levenshtein@^2.0.6:
334 | version "2.0.6"
335 | resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917"
336 | integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=
337 |
338 | file-entry-cache@^5.0.1:
339 | version "5.0.1"
340 | resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-5.0.1.tgz#ca0f6efa6dd3d561333fb14515065c2fafdf439c"
341 | integrity sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g==
342 | dependencies:
343 | flat-cache "^2.0.1"
344 |
345 | flat-cache@^2.0.1:
346 | version "2.0.1"
347 | resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-2.0.1.tgz#5d296d6f04bda44a4630a301413bdbc2ec085ec0"
348 | integrity sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA==
349 | dependencies:
350 | flatted "^2.0.0"
351 | rimraf "2.6.3"
352 | write "1.0.3"
353 |
354 | flatted@^2.0.0:
355 | version "2.0.2"
356 | resolved "https://registry.yarnpkg.com/flatted/-/flatted-2.0.2.tgz#4575b21e2bcee7434aa9be662f4b7b5f9c2b5138"
357 | integrity sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA==
358 |
359 | fs.realpath@^1.0.0:
360 | version "1.0.0"
361 | resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f"
362 | integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8=
363 |
364 | functional-red-black-tree@^1.0.1:
365 | version "1.0.1"
366 | resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327"
367 | integrity sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=
368 |
369 | glob-parent@^5.0.0:
370 | version "5.1.1"
371 | resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.1.tgz#b6c1ef417c4e5663ea498f1c45afac6916bbc229"
372 | integrity sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==
373 | dependencies:
374 | is-glob "^4.0.1"
375 |
376 | glob@^7.1.3:
377 | version "7.1.6"
378 | resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6"
379 | integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==
380 | dependencies:
381 | fs.realpath "^1.0.0"
382 | inflight "^1.0.4"
383 | inherits "2"
384 | minimatch "^3.0.4"
385 | once "^1.3.0"
386 | path-is-absolute "^1.0.0"
387 |
388 | globals@^12.1.0:
389 | version "12.4.0"
390 | resolved "https://registry.yarnpkg.com/globals/-/globals-12.4.0.tgz#a18813576a41b00a24a97e7f815918c2e19925f8"
391 | integrity sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg==
392 | dependencies:
393 | type-fest "^0.8.1"
394 |
395 | has-flag@^3.0.0:
396 | version "3.0.0"
397 | resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd"
398 | integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0=
399 |
400 | has-flag@^4.0.0:
401 | version "4.0.0"
402 | resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b"
403 | integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==
404 |
405 | ignore@^4.0.6:
406 | version "4.0.6"
407 | resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc"
408 | integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==
409 |
410 | import-fresh@^3.0.0, import-fresh@^3.2.1:
411 | version "3.2.2"
412 | resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.2.2.tgz#fc129c160c5d68235507f4331a6baad186bdbc3e"
413 | integrity sha512-cTPNrlvJT6twpYy+YmKUKrTSjWFs3bjYjAhCwm+z4EOCubZxAuO+hHpRN64TqjEaYSHs7tJAE0w1CKMGmsG/lw==
414 | dependencies:
415 | parent-module "^1.0.0"
416 | resolve-from "^4.0.0"
417 |
418 | imurmurhash@^0.1.4:
419 | version "0.1.4"
420 | resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea"
421 | integrity sha1-khi5srkoojixPcT7a21XbyMUU+o=
422 |
423 | inflight@^1.0.4:
424 | version "1.0.6"
425 | resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9"
426 | integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=
427 | dependencies:
428 | once "^1.3.0"
429 | wrappy "1"
430 |
431 | inherits@2:
432 | version "2.0.4"
433 | resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c"
434 | integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==
435 |
436 | is-extglob@^2.1.1:
437 | version "2.1.1"
438 | resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2"
439 | integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=
440 |
441 | is-fullwidth-code-point@^2.0.0:
442 | version "2.0.0"
443 | resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f"
444 | integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=
445 |
446 | is-glob@^4.0.0, is-glob@^4.0.1:
447 | version "4.0.1"
448 | resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc"
449 | integrity sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==
450 | dependencies:
451 | is-extglob "^2.1.1"
452 |
453 | isexe@^2.0.0:
454 | version "2.0.0"
455 | resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10"
456 | integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=
457 |
458 | js-tokens@^4.0.0:
459 | version "4.0.0"
460 | resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499"
461 | integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==
462 |
463 | js-yaml@^3.13.1:
464 | version "3.14.0"
465 | resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.0.tgz#a7a34170f26a21bb162424d8adacb4113a69e482"
466 | integrity sha512-/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A==
467 | dependencies:
468 | argparse "^1.0.7"
469 | esprima "^4.0.0"
470 |
471 | json-schema-traverse@^0.4.1:
472 | version "0.4.1"
473 | resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660"
474 | integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==
475 |
476 | json-stable-stringify-without-jsonify@^1.0.1:
477 | version "1.0.1"
478 | resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651"
479 | integrity sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=
480 |
481 | levn@^0.4.1:
482 | version "0.4.1"
483 | resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade"
484 | integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==
485 | dependencies:
486 | prelude-ls "^1.2.1"
487 | type-check "~0.4.0"
488 |
489 | lodash@^4.17.14, lodash@^4.17.19:
490 | version "4.17.20"
491 | resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.20.tgz#b44a9b6297bcb698f1c51a3545a2b3b368d59c52"
492 | integrity sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==
493 |
494 | minimatch@^3.0.4:
495 | version "3.0.4"
496 | resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083"
497 | integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==
498 | dependencies:
499 | brace-expansion "^1.1.7"
500 |
501 | minimist@^1.2.5:
502 | version "1.2.5"
503 | resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602"
504 | integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==
505 |
506 | mkdirp@^0.5.1:
507 | version "0.5.5"
508 | resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def"
509 | integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==
510 | dependencies:
511 | minimist "^1.2.5"
512 |
513 | ms@2.1.2:
514 | version "2.1.2"
515 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009"
516 | integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==
517 |
518 | natural-compare@^1.4.0:
519 | version "1.4.0"
520 | resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7"
521 | integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=
522 |
523 | once@^1.3.0:
524 | version "1.4.0"
525 | resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"
526 | integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E=
527 | dependencies:
528 | wrappy "1"
529 |
530 | optionator@^0.9.1:
531 | version "0.9.1"
532 | resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.1.tgz#4f236a6373dae0566a6d43e1326674f50c291499"
533 | integrity sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==
534 | dependencies:
535 | deep-is "^0.1.3"
536 | fast-levenshtein "^2.0.6"
537 | levn "^0.4.1"
538 | prelude-ls "^1.2.1"
539 | type-check "^0.4.0"
540 | word-wrap "^1.2.3"
541 |
542 | parent-module@^1.0.0:
543 | version "1.0.1"
544 | resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2"
545 | integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==
546 | dependencies:
547 | callsites "^3.0.0"
548 |
549 | path-is-absolute@^1.0.0:
550 | version "1.0.1"
551 | resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"
552 | integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18=
553 |
554 | path-key@^3.1.0:
555 | version "3.1.1"
556 | resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375"
557 | integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==
558 |
559 | prelude-ls@^1.2.1:
560 | version "1.2.1"
561 | resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396"
562 | integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==
563 |
564 | progress@^2.0.0:
565 | version "2.0.3"
566 | resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8"
567 | integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==
568 |
569 | punycode@^2.1.0:
570 | version "2.1.1"
571 | resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec"
572 | integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==
573 |
574 | regexpp@^3.1.0:
575 | version "3.1.0"
576 | resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.1.0.tgz#206d0ad0a5648cffbdb8ae46438f3dc51c9f78e2"
577 | integrity sha512-ZOIzd8yVsQQA7j8GCSlPGXwg5PfmA1mrq0JP4nGhh54LaKN3xdai/vHUDu74pKwV8OxseMS65u2NImosQcSD0Q==
578 |
579 | resolve-from@^4.0.0:
580 | version "4.0.0"
581 | resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6"
582 | integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==
583 |
584 | rimraf@2.6.3:
585 | version "2.6.3"
586 | resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.3.tgz#b2d104fe0d8fb27cf9e0a1cda8262dd3833c6cab"
587 | integrity sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==
588 | dependencies:
589 | glob "^7.1.3"
590 |
591 | semver@^7.2.1:
592 | version "7.3.2"
593 | resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.2.tgz#604962b052b81ed0786aae84389ffba70ffd3938"
594 | integrity sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==
595 |
596 | shebang-command@^2.0.0:
597 | version "2.0.0"
598 | resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea"
599 | integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==
600 | dependencies:
601 | shebang-regex "^3.0.0"
602 |
603 | shebang-regex@^3.0.0:
604 | version "3.0.0"
605 | resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172"
606 | integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==
607 |
608 | slice-ansi@^2.1.0:
609 | version "2.1.0"
610 | resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-2.1.0.tgz#cacd7693461a637a5788d92a7dd4fba068e81636"
611 | integrity sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==
612 | dependencies:
613 | ansi-styles "^3.2.0"
614 | astral-regex "^1.0.0"
615 | is-fullwidth-code-point "^2.0.0"
616 |
617 | sprintf-js@~1.0.2:
618 | version "1.0.3"
619 | resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c"
620 | integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=
621 |
622 | string-width@^3.0.0:
623 | version "3.1.0"
624 | resolved "https://registry.yarnpkg.com/string-width/-/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961"
625 | integrity sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==
626 | dependencies:
627 | emoji-regex "^7.0.1"
628 | is-fullwidth-code-point "^2.0.0"
629 | strip-ansi "^5.1.0"
630 |
631 | strip-ansi@^5.1.0:
632 | version "5.2.0"
633 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae"
634 | integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==
635 | dependencies:
636 | ansi-regex "^4.1.0"
637 |
638 | strip-ansi@^6.0.0:
639 | version "6.0.0"
640 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.0.tgz#0b1571dd7669ccd4f3e06e14ef1eed26225ae532"
641 | integrity sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==
642 | dependencies:
643 | ansi-regex "^5.0.0"
644 |
645 | strip-json-comments@^3.1.0, strip-json-comments@^3.1.1:
646 | version "3.1.1"
647 | resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006"
648 | integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==
649 |
650 | supports-color@^5.3.0:
651 | version "5.5.0"
652 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f"
653 | integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==
654 | dependencies:
655 | has-flag "^3.0.0"
656 |
657 | supports-color@^7.1.0:
658 | version "7.2.0"
659 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da"
660 | integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==
661 | dependencies:
662 | has-flag "^4.0.0"
663 |
664 | table@^5.2.3:
665 | version "5.4.6"
666 | resolved "https://registry.yarnpkg.com/table/-/table-5.4.6.tgz#1292d19500ce3f86053b05f0e8e7e4a3bb21079e"
667 | integrity sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug==
668 | dependencies:
669 | ajv "^6.10.2"
670 | lodash "^4.17.14"
671 | slice-ansi "^2.1.0"
672 | string-width "^3.0.0"
673 |
674 | text-table@^0.2.0:
675 | version "0.2.0"
676 | resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4"
677 | integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=
678 |
679 | type-check@^0.4.0, type-check@~0.4.0:
680 | version "0.4.0"
681 | resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1"
682 | integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==
683 | dependencies:
684 | prelude-ls "^1.2.1"
685 |
686 | type-fest@^0.8.1:
687 | version "0.8.1"
688 | resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d"
689 | integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==
690 |
691 | uri-js@^4.2.2:
692 | version "4.4.0"
693 | resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.0.tgz#aa714261de793e8a82347a7bcc9ce74e86f28602"
694 | integrity sha512-B0yRTzYdUCCn9n+F4+Gh4yIDtMQcaJsmYBDsTSG8g/OejKBodLQ2IHfN3bM7jUsRXndopT7OIXWdYqc1fjmV6g==
695 | dependencies:
696 | punycode "^2.1.0"
697 |
698 | v8-compile-cache@^2.0.3:
699 | version "2.2.0"
700 | resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.2.0.tgz#9471efa3ef9128d2f7c6a7ca39c4dd6b5055b132"
701 | integrity sha512-gTpR5XQNKFwOd4clxfnhaqvfqMpqEwr4tOtCyz4MtYZX2JYhfr1JvBFKdS+7K/9rfpZR3VLX+YWBbKoxCgS43Q==
702 |
703 | which@^2.0.1:
704 | version "2.0.2"
705 | resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1"
706 | integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==
707 | dependencies:
708 | isexe "^2.0.0"
709 |
710 | word-wrap@^1.2.3:
711 | version "1.2.3"
712 | resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c"
713 | integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==
714 |
715 | wrappy@1:
716 | version "1.0.2"
717 | resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
718 | integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=
719 |
720 | write@1.0.3:
721 | version "1.0.3"
722 | resolved "https://registry.yarnpkg.com/write/-/write-1.0.3.tgz#0800e14523b923a387e415123c865616aae0f5c3"
723 | integrity sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig==
724 | dependencies:
725 | mkdirp "^0.5.1"
726 |
--------------------------------------------------------------------------------