From 71e902599651b645cdb6996c8cd562e8007a32ea Mon Sep 17 00:00:00 2001 From: Jess Date: Wed, 12 Jan 2022 19:48:48 -0500 Subject: [PATCH] feat: adding documentation with vitepress (#80) --- .gitignore | 1 + CONTRIBUTING.md | 8 +- README.md | 43 +- docs/.vitepress/config.mjs | 114 + docs/.vitepress/theme/components/Badge.vue | 43 + .../theme/components/Playground.vue | 18 + docs/.vitepress/theme/components/index.mjs | 7 + docs/.vitepress/theme/index.mjs | 11 + docs/api/address.md | 181 ++ docs/api/commerce.md | 62 + docs/api/company.md | 106 + docs/api/database.md | 35 + docs/api/datatype.md | 125 ++ docs/api/date.md | 129 ++ docs/api/fake.md | 11 + docs/api/finance.md | 167 ++ docs/api/hacker.md | 51 + docs/api/helpers.md | 262 +++ docs/api/image.md | 318 +++ docs/api/internet.md | 186 ++ docs/api/localization.md | 67 + docs/guide/index.md | 64 + docs/guide/recent-faqs.md | 52 + docs/index.md | 24 + docs/playground/index.md | 5 + docs/public/logo.svg | 4 + netlify.toml | 5 + package-lock.json | 1875 ++++++++++++++--- package.json | 8 +- 29 files changed, 3618 insertions(+), 364 deletions(-) create mode 100644 docs/.vitepress/config.mjs create mode 100644 docs/.vitepress/theme/components/Badge.vue create mode 100644 docs/.vitepress/theme/components/Playground.vue create mode 100644 docs/.vitepress/theme/components/index.mjs create mode 100644 docs/.vitepress/theme/index.mjs create mode 100644 docs/api/address.md create mode 100644 docs/api/commerce.md create mode 100644 docs/api/company.md create mode 100644 docs/api/database.md create mode 100644 docs/api/datatype.md create mode 100644 docs/api/date.md create mode 100644 docs/api/fake.md create mode 100644 docs/api/finance.md create mode 100644 docs/api/hacker.md create mode 100644 docs/api/helpers.md create mode 100644 docs/api/image.md create mode 100644 docs/api/internet.md create mode 100644 docs/api/localization.md create mode 100644 docs/guide/index.md create mode 100644 docs/guide/recent-faqs.md create mode 100644 docs/index.md create mode 100644 docs/playground/index.md create mode 100644 docs/public/logo.svg create mode 100644 netlify.toml diff --git a/.gitignore b/.gitignore index 08b50ad7499..779a5e385e2 100644 --- a/.gitignore +++ b/.gitignore @@ -71,6 +71,7 @@ versions.json # Dist /dist +/docs/.vitepress/dist # Faker TAGS diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index ee788cf27e4..b2dfb576167 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,6 +1,5 @@ -A lot of effort has been put into `faker.js` to create a useful and handy -library. There are still a lot of things to be done, so all contributions are -welcome! If you can make `faker.js` better, please read the following contribution guide. +A lot of effort has been put into `Faker` to create a useful and handy +library. There are still a lot of things to be done, so all contributions are welcome! If you can make `Faker` better, please read the following contribution guide. # Important @@ -8,8 +7,7 @@ welcome! If you can make `faker.js` better, please read the following contributi ## Support -`faker.js` relies on [commonJS](http://www.commonjs.org/) standard and supports both node.js and the -browsers. Keep this in mind, when modifying and/or extending the sources. +`Faker` relies on [commonJS](http://www.commonjs.org/) standard and supports both node.js and the browsers. Keep this in mind, when modifying and/or extending the sources. ## Automation diff --git a/README.md b/README.md index a2049ad35c2..1c3c21d6d02 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # Faker -Generate massive amounts of fake data in the browser and node.js. +Generate massive amounts of fake data in the Browser and Node.js. [![Chat on Discord](https://img.shields.io/discord/929487054990110771)](https://discord.com/invite/4qDjAmDj4P) [![Continuous Integration](https://github.com/faker-js/faker/actions/workflows/ci.yml/badge.svg)](https://github.com/faker-js/faker/actions/workflows/ci.yml) @@ -29,7 +29,7 @@ declare module '@faker-js/faker' { This project was originally created and hosted at https://github.com/marak/Faker.js/ - however around 4th Jan, 2022 - the author decided to delete the repository (for unknown reasons). -In the interest of the community, it has been decided that faker.js will continue to be maintained here and all help in its development will be appreciated. +In the interest of the community, it has been decided that Faker will continue to be maintained here and all help in its development will be appreciated. ## Demo @@ -290,7 +290,7 @@ var randomCard = faker.helpers.createCard(); // random contact card containing m ### Faker.fake() -faker.js contains a super useful generator method `Faker.fake` for combining faker API methods using a mustache string format. +Faker contains a super useful generator method `Faker.fake` for combining faker API methods using a mustache string format. **Example:** @@ -304,7 +304,7 @@ This will interpolate the format string with the value of methods `name.lastName ## Localization -As of version `v2.0.0` faker.js has support for multiple localities. +As of version `v2.0.0` Faker has support for multiple localities. The default language locale is set to English. @@ -364,7 +364,7 @@ faker.locale = 'de'; ### Individual Localization Packages -faker.js supports incremental loading of locales. +Faker supports incremental loading of locales. By default, requiring `faker` will include _all_ locale data. @@ -392,6 +392,35 @@ var secondRandom = faker.datatype.number(); console.log(firstRandom === secondRandom); ``` +## Documentation + +Faker is currently in the process of migrating its documentation to Vitepress (the successor of Vuepress). + +**Developing the docs** + +```shell +# build the Faker library for the browser +# it's used inside of certain routes +npm run browser + +npm run docs:dev +``` + +**Building and serving the docs statically** + +```shell +# build the Faker library for the browser +# it's used inside of certain routes +npm run browser + +npm run docs:build # Output docs to /dist +npm run docs:serve # Serve docs from /dist +``` + +## Deploying Documentation + +The website is kindly hosted for free by the Netlify team under their Open Source plan. See the netlify.toml for configuration. + ## Tests ```shell @@ -401,9 +430,9 @@ npm run test You can view a code coverage report generated in coverage/lcov-report/index.html. -## Building faker.js +## Building Faker -faker uses [gulp](http://gulpjs.com/) to automate its build process. Each build operation is a separate task which can be run independently. +Faker uses [gulp](http://gulpjs.com/) to automate its build process. Each build operation is a separate task which can be run independently. ### Browser Bundle diff --git a/docs/.vitepress/config.mjs b/docs/.vitepress/config.mjs new file mode 100644 index 00000000000..5341a11450b --- /dev/null +++ b/docs/.vitepress/config.mjs @@ -0,0 +1,114 @@ +import { defineConfig } from 'vitepress'; + +const nav = [ + { text: 'Guide', link: '/guide/' }, + // { text: 'Playground', link: '/playground/' }, +]; + +const sidebar = { + '/': [ + { + text: 'Guide', + children: [ + { + text: 'Recent Statement and FAQs', + link: '/guide/recent-faqs', + }, + { + text: 'Getting Started', + link: '/guide/', + }, + ], + }, + { + text: 'API', + children: [ + { + text: 'Address', + link: '/api/address', + collapsable: false, // optional, defaults to true + }, + { + text: 'Commerce', + link: '/api/commerce', + }, + { + text: 'Company', + link: '/api/company', + }, + { + text: 'Database', + link: '/api/database', + }, + { + text: 'Datatype', + link: '/api/datatype', + }, + { + text: 'Date', + link: '/api/date', + }, + { + text: 'Fake', + link: '/api/fake', + }, + { + text: 'Finance', + link: '/api/finance', + }, + { + text: 'Hacker', + link: '/api/hacker', + }, + { + text: 'Helpers', + link: '/api/helpers', + }, + { + text: 'Image', + link: '/api/image', + }, + { + text: 'Internet', + link: '/api/internet', + }, + { + text: 'Localization', + link: '/api/localization', + }, + ], + }, + ], +}; + +// grab from process.env once this is building on netlify +const algolia = { + apiKey: '', + indexName: '', + searchParameters: { + facetFilters: [''], + }, +}; + +export default defineConfig({ + // Empty in order to use the faker.js logo instead of a text title. + // If we had a square logo, we could use it here. + title: 'Faker', + description: + 'Generate massive amounts of fake data in the browser and node.js', + head: [ + ['link', { rel: 'icon', href: '/logo.svg' }], + ['meta', { name: 'theme-color', content: '#40af7c' }], + ], + themeConfig: { + repo: 'faker-js/faker', + logo: '/logo.svg', + docsDir: 'docs', + docsBranch: 'main', + editLinks: true, + editLinkText: 'Suggest changes to this page', + nav, + sidebar, + algolia, + }, +}); diff --git a/docs/.vitepress/theme/components/Badge.vue b/docs/.vitepress/theme/components/Badge.vue new file mode 100644 index 00000000000..5ec0673cf00 --- /dev/null +++ b/docs/.vitepress/theme/components/Badge.vue @@ -0,0 +1,43 @@ + + + + + diff --git a/docs/.vitepress/theme/components/Playground.vue b/docs/.vitepress/theme/components/Playground.vue new file mode 100644 index 00000000000..d872798bc4b --- /dev/null +++ b/docs/.vitepress/theme/components/Playground.vue @@ -0,0 +1,18 @@ + + + diff --git a/docs/.vitepress/theme/components/index.mjs b/docs/.vitepress/theme/components/index.mjs new file mode 100644 index 00000000000..6a1c639d88b --- /dev/null +++ b/docs/.vitepress/theme/components/index.mjs @@ -0,0 +1,7 @@ +import Playground from './Playground.vue'; +import Badge from './Badge.vue'; + +export default { + Playground, + Badge, +}; diff --git a/docs/.vitepress/theme/index.mjs b/docs/.vitepress/theme/index.mjs new file mode 100644 index 00000000000..26a6b5caf75 --- /dev/null +++ b/docs/.vitepress/theme/index.mjs @@ -0,0 +1,11 @@ +import GlobalComponents from './components'; +import DefaultTheme from 'vitepress/theme'; + +export default { + ...DefaultTheme, + enhanceApp({ app }) { + for (const [name, component] of Object.entries(GlobalComponents)) { + app.component(name, component); + } + }, +}; diff --git a/docs/api/address.md b/docs/api/address.md new file mode 100644 index 00000000000..421aad7ead5 --- /dev/null +++ b/docs/api/address.md @@ -0,0 +1,181 @@ +# Address + +[[toc]] + +## City + +::: v-pre +Generates a random localized city name. The format string can contain any method provided by faker wrapped in `{{}}`, e.g. `{{name.firstName}}` in order to build the city name. + +::: tip +If no format string is provided one of the following is randomly used: + +- `{{address.cityPrefix}} {{name.firstName}}{{address.citySuffix}}` +- `{{address.cityPrefix}} {{name.firstName}}` +- `{{name.firstName}}{{address.citySuffix}}` +- `{{name.lastName}}{{address.citySuffix}}` + ::: + +```js +faker.address.city(); // Lake Raoulfort +faker.address.city('{{name.lastName}}{{address.citySuffix}}'); // Powlowski port +``` + +## City Prefix + +Return a random localized city prefix + +```js +faker.address.cityPrefix(); // South +``` + +## City Suffix + +Return a random localized city suffix + +```js +faker.address.citySuffix(); // burgh +``` + +## County + +Returns a random county + +```js +faker.address.county(); // Cambridgeshire +``` + +## Country + +Returns a random country + +```js +faker.address.country(); // Papua New Guinea +``` + +## Country Code + +Returns a random country code + +```js +faker.address.countryCode(); // SN +``` + +## Latitude + +Returns a random latitude. + +::: warning Params Available +| Param | Type | Default | +| ----- | ------ | :-----: | +| max | number | `90` | +| min | number | `-90` | +::: + +```js +faker.address.latitude(); // 78.9197 +faker.address.latitude(70, 10); // 40.1239 +``` + +## Longitude + +Returns a random longitude. + +::: warning Params Available +| Param | Type | Default | +| ----- | ------ | :-----: | +| max | number | `180` | +| min | number | `-180` | +::: + +```js +faker.address.longitude(); // 78.9197 +faker.address.longitude(70, 10); // 40.1239 +``` + +## State + +Returns a random state + +```js +faker.address.state(); // Montana +``` + +## State Abbreviation + +Returns a random state abbreviation + +```js +faker.address.stateAbbr(); // WV +``` + +## Street Name + +Returns a random localized street name + +```js +faker.address.streetName(); // Rowe Coves +``` + +## Street Address + +Returns a random localized street address. Pass in optional object boolean to get a full address. + +::: tip +| Param | Type | Default | +| -------------- | ------- | :-----: | +| useFullAddress | boolean | `false` | +::: + +```js +faker.address.streetAddress(); // 294 White Parkways +faker.address.streetAddress(true); // 294 White Parkways Apt. 506 +``` + +## Street Suffix + +Returns a random localized street suffix. + +```js +faker.address.streetSuffix(); // Garden +``` + +## Street Prefix + +Returns a random localized street prefix. + +```js +faker.address.streetPrefix(); // c +``` + +## Secondary Address + +Returns a random Secondary Address + +```js +faker.address.secondaryAddress(); // Suite 123 +``` + +## Zip Code + +Generates random zip code. If format is not specified, the locale's zip format is used. Use formats that are supported with [replaceSymbols](/api/helpers.html#replacesymbols-format) + +::: tip +| Param | Type | Default | +| ------ | ------ | :---------: | +| format | string | `undefined` | +::: + +```js +faker.address.zipCode(); // 98101-1234 +faker.address.zipCode('#####'); // 98101 +``` + +## Zip Code By State + +Generates random Zip Code from state abbreviation. If state abbreviation is not specified, a random zip code is generated according to the locale's zip format. Only works for locales with `postcode_by_state` definition. If a locale does not have a `postcode_by_state` definition, a random zip code is generated according to the locale's zip format. + +```js +faker.address.zipCodeByState(); // 12302 +faker.address.zipCodeByState('wa'); // 98101 +``` diff --git a/docs/api/commerce.md b/docs/api/commerce.md new file mode 100644 index 00000000000..a7809709f46 --- /dev/null +++ b/docs/api/commerce.md @@ -0,0 +1,62 @@ +# Commerce + +[[toc]] + +## Color + +Return random color name + +```js +faker.commerce.color(); // fuchsia +``` + +## Department + +Return random department name + +```js +faker.commerce.department(); // Grocery +``` + +## Price + +Generates random price + +::: tip +| Param | Type | Default | +| ------ | ------ | :-----: | +| min | number | `1` | +| max | number | `1000` | +| dec | number | `2` | +| symbol | string | `` | +::: + +```js +faker.commerce.price(); // 4.00 +faker.commerce.price(2, 22, 1, '$'); // $7.0 +``` + +## Product + +Return random product + +```js +faker.commerce.product(); // Gloves +faker.commerce.productName(); // Rustic Granite Shirt +``` + +## Product Adjective + +Return random product adjective + +```js +faker.commerce.productAdjective(); // Handmade +``` + +## Product Material + +Return random product material + +```js +faker.commerce.productMaterial(); // Steel +``` diff --git a/docs/api/company.md b/docs/api/company.md new file mode 100644 index 00000000000..c2919d6f9cd --- /dev/null +++ b/docs/api/company.md @@ -0,0 +1,106 @@ +# Company + +[[toc]] + +## Company Name + +Return random company name. Using one of the following format options +::: v-pre + +- `{{name.lastName}} {{company.companySuffix}}` +- `{{name.lastName}} - {{name.lastName}}` +- `{{name.lastName}}, {{name.lastName}} and {{name.lastName}}` + ::: + +::: tip +| Param | Type | Default | +| ----------- | ------ | :-----: | +| formatIndex | number | `0-2` | +::: + +```js +faker.company.companyName(); // Zboncak and Sons +faker.company.companyName(0); // Nikolaus Group +faker.company.companyName(1); // Keeling - Lind +faker.company.companyName(2); // Swaniawski, Howe and Leffler +``` + +## Company Suffix + +Return random company suffix + +```js +faker.company.companySuffix(); // and Sons +``` + +## Company Suffixes + +Return **array** of company suffixes + +```js +faker.company.suffixes(); // ["Inc", "and Sons", "LLC", "Group"] +``` + +## Catchphrase + +Return random company catch phrase + +```js +faker.company.catchPhrase(); // Team-oriented context-sensitive conglomeration +``` + +## Catchphrase Adjective + +Return random catch phrase adjective + +```js +faker.company.catchPhraseAdjective(); // Down-sized +``` + +## Catchphrase Descriptor + +Return random catch phrase descriptor + +```js +faker.company.catchPhraseDescriptor(); // bi-directional +``` + +## Catchphrase Noun + +Return random catch phrase noun + +```js +faker.company.catchPhraseNoun(); // complexity +``` + +## Company BS 💩 + +Return random company bs + +```js +faker.company.bs(); // ubiquitous empower e-business +``` + +## BS Adjective + +Return random company bs adjective + +```js +faker.company.bsAdjective(); // granular +``` + +## BS Buzzword + +Return random company bs buzz word + +```js +faker.company.bsBuzz(); // facilitate +``` + +## BS Noun + +Return random company bs noun + +```js +faker.company.bsNoun(); // models +``` diff --git a/docs/api/database.md b/docs/api/database.md new file mode 100644 index 00000000000..c9be1533c9d --- /dev/null +++ b/docs/api/database.md @@ -0,0 +1,35 @@ +# Database + +[[toc]] + +## Column + +Return database column name + +```js +faker.database.column(); // createdAt +``` + +## Type + +Return database column type + +```js +faker.database.type(); // text +``` + +## Collation + +Return database collation + +```js +faker.database.collation(); // cp1250_general_ci +``` + +## Engine + +Return database engine + +```js +faker.database.engine(); // MyISAM +``` diff --git a/docs/api/datatype.md b/docs/api/datatype.md new file mode 100644 index 00000000000..35a25716098 --- /dev/null +++ b/docs/api/datatype.md @@ -0,0 +1,125 @@ +# Data Type + +[[toc]] + +Generate basic data type, starting from `v5.5.0`. Similar functions from `faker.random` will be deprecated. + +## Number + +Generates random `number` data type. + +::: tip +| Param | Type | Default | +| ------- | ----- | :----------------------------------: | +| options | mixed | `{min: 0, max: 99999, precision: 1}` | + +**NOTE**: passing a number as the param will set the `max` value to that number and use the `min` and `precision` defaults +::: + +```js +faker.datatype.number(); // 3451 +faker.datatype.number(86); // 50 +faker.datatype.number({ min: 10 }); // 45991 +faker.datatype.number({ min: 10, max: 100 }); // 14 +faker.datatype.number({ min: 10, max: 100, precision: 0.25 }); // 44.5 +``` + +## Float + +Generates random `float` data type. + +::: tip +| Param | Type | Default | +| ------- | ----- | :----------------------------------: | +| options | mixed | `{min: 0, max: 99999, precision: 1}` | + +**NOTE 1**: passing a number as the param will set the `max` value to that number and use the `min` and `precision` defaults + +**NOTE 2**: javascript has single data type `number` for all kinds of numbers. Statement `typeof(faker.datatype.number(10)) === typeof(faker.datatype.float(10))` equals `true` +::: + +```js +faker.datatype.float(); // 428 +faker.datatype.float(100); // 23 +faker.datatype.float({ min: 10 }); // 1635 +faker.datatype.float({ min: 10, max: 100 }); // 49 +faker.datatype.float({ min: 10, max: 100, precision: 0.1 }); // 81.8 +``` + +## Array + +Generates array of random number or string. + +::: tip +| Param | Type | Default | +| ----- | ----- | :---------------: | +| length | number | 10 | + +**NOTE**: this method has no fine-grained control to create array of numbers or strings only, or specify criteria for array elements +::: + +```js +faker.datatype.array(); // [13,'hfa&', 41, 8301, '(6$bH', 2354, 'V73!', 'm*he?', 11911, 'gbdX#'] +faker.datatype.array(3); // [47460, 'b&r3#', 9003] +``` + +## UUID + +Generates random UUID + +```js +faker.datatype.uuid(); // 54d13fa1-6d84-4717-8fa2-477a62dac76c +``` + +## Boolean + +Generates random `boolean` data type. + +```js +faker.datatype.boolean(); // true +``` + +## String + +Generates random `string` data type. + +::: tip +| Param | Type | Default | +| ----- | ----- | :---------------: | +| length | number | 10 | +::: + +```js +faker.datatype.string(); // 'Y7=bR1.jpW' +faker.datatype.string(5); // '_9Kss' +``` + +## JSON + +Generates random JSON. It has default length of 7, and no options. + +::: tip +**NOTE**: The generated data type is `string`. To treat it like javascript `object`, use `JSON.parse()` function. +::: + +```js +faker.datatype.json(); // {"foo":61342,"bar":1587,"bike":88807,"a":69894,"b":"A?+(5w)E/Z","name":"U@Y`>Ygls}","prop":35014} (string) +JSON.parse(faker.datatype.json()); // (object) +``` + +## Hexadecimal + +Generates random hex (base-16) number. + +::: tip +| Param | Type | Default | +| ----- | ----- | :---------------: | +| length | number | 1 | +**NOTE**: The generated data type is `string`. To treat it like javascript `number`, use `parseInt()` function. +::: + +```js +faker.datatype.hexaDecimal(); // '0xA' (string) +faker.datatype.hexaDecimal(5); // '0x8D620' (string) +parseInt(faker.datatype.hexaDecimal(2)); // 0xC1 (number) +``` diff --git a/docs/api/date.md b/docs/api/date.md new file mode 100644 index 00000000000..359a77440ae --- /dev/null +++ b/docs/api/date.md @@ -0,0 +1,129 @@ +# Date + +[[toc]] + +## Past + +Return date sometime in the past. + +::: tip +| Param | Type | Default | +| -------- | ------- | :----------: | +| maxYears | number | `1` | +| refDate | Date | `new Date()` | +::: + +```js +faker.date.past(); +// Sat Oct 20 2018 04:19:38 GMT-0700 (Pacific Daylight Time) + +faker.date.past(100); +// Tue Jul 27 1971 21:08:49 GMT-0700 (Pacific Daylight Time) + +faker.date.past(100, new Date(-3000)); +// Wed Dec 07 1881 05:04:18 GMT-0752 (Pacific Standard Time) +``` + +## Future + +Return date sometime in the future. + +::: tip +| Param | Type | Default | +| ------- | ------- | :----------: | +| years | number | `1` | +| refDate | Date | `new Date()` | +::: + +```js +faker.date.future(); +// Mon Sep 02 2019 21:08:33 GMT-0700 (Pacific Daylight Time) + +faker.date.future(100); +// Fri Nov 23 2068 10:43:15 GMT-0800 (Pacific Standard Time) + +faker.date.future(100, new Date(-3000)); +// Mon Jun 26 2051 01:50:51 GMT-0700 (Pacific Daylight Time) +``` + +## Between + +Return date sometime in the future. + +::: tip +| Param | Type | Default | +| ----- | ---- | :------------------------------------------------: | +| from | Date | | +| to | Date | | +::: + +```js +faker.date.between(new Date(0), new Date(365 * 24 * 3600 * 1000)); +// Mon Oct 19 1970 14:12:01 GMT-0700 (Pacific Daylight Time) +``` + +## Recent + +Returns some date recent date + +::: tip +| Param | Type | Default | +| ------- | ------- | :----------: | +| days | number | `1` | +| refDate | Date | `new Date()` | +::: + +```js +faker.date.recent(); +``` + +## Soon + +Return date sometime soon. + +::: tip +| Param | Type | Default | +| ------- | ------- | :----------: | +| days | number | `1` | +| refDate | Date | `new Date()` | +::: + +```js +faker.date.soon(); +``` + +## Month + +Return random month name + +::: tip +| Param | Type | Default | +| ------ | ------ | :-----------------------------: | +| option | object | `{abbr: false, context: false}` | +::: + +```js +faker.date.month(); +// December + +faker.date.month({ abbr: true }); +// Dec +``` + +## Weekday + +Return random weekday name + +::: tip +| Param | Type | Default | +| ------ | ------ | :-----------------------------: | +| option | object | `{abbr: false, context: false}` | +::: + +```js +faker.date.weekday(); +// Sunday + +faker.date.weekday({ abbr: true }); +// Sun +``` diff --git a/docs/api/fake.md b/docs/api/fake.md new file mode 100644 index 00000000000..8fae509adab --- /dev/null +++ b/docs/api/fake.md @@ -0,0 +1,11 @@ +# Fake + +Useful generator method `faker.fake()` for combining faker API methods using a mustache string format. + +```js +faker.fake('{{name.lastName}}, {{name.firstName}} {{name.suffix}}'); +// Wintheiser, Shaylee Sr. + +faker.fake('{{company.bs}} is short for {{address.streetName}}'); +// cutting-edge leverage web services is short for Flatley Rue +``` diff --git a/docs/api/finance.md b/docs/api/finance.md new file mode 100644 index 00000000000..6035dbccdb0 --- /dev/null +++ b/docs/api/finance.md @@ -0,0 +1,167 @@ +# Finance + +[[toc]] + +## Account + +Return random account number + +::: tip +| Param | Type | Default | +| ------ | ------ | :-----: | +| length | number | `8` | +::: + +```js +faker.finance.account(); // 30764440 +faker.finance.account(12); // 194294967472 +``` + +## Account Name + +Return random account name + +```js +faker.finance.accountName(); // Investment Account +``` + +## Routing Number + +Return random routing number + +```js +faker.finance.routingNumber(); +``` + +## Mask + +Return random mask + +::: tip +| Param | Type | Default | +| -------- | ------- | :-----: | +| length | number | `4` | +| parens | boolean | `false` | +| ellipsis | boolean | `false` | +::: + +```js +faker.finance.mask(); // 8493 +faker.finance.mask(5, true); // (17126) +faker.finance.mask(5, true, true); // (...17126) +faker.finance.mask(5, false, true); // ...17126 +``` + +## Amount + +Return random amount + +::: tip +| Param | Type | Default | +| ------ | ------ | :-----: | +| min | number | `0` | +| max | number | `1000` | +| dec | number | `2` | +| symbol | string | `''` | +::: + +```js +faker.finance.amount(); // 466.98 +faker.finance.amount(42); // 197.40 +faker.finance.amount(42, 43); // 42.24 +faker.finance.amount(42, 43, 10); // 42.1601538648 +faker.finance.amount(42, 43, 2, '$'); // $42.89 +``` + +## Transaction Type + +Return random transaction type + +```js +faker.finance.transactionType(); // withdrawal +``` + +## Currency Code + +Return random currency code + +```js +faker.finance.currencyCode(); // HTG USD +``` + +## Currency Name + +Return random currency name + +```js +faker.finance.currencyName(); // Hryvnia +``` + +## Currency Symbol + +Return random currency symbol + +```js +faker.finance.currencySymbol(); // £ +``` + +## Credit Card Number + +Return random credit card number + +::: tip +| Param | Type | Default | +| -------- | ------ | :-----: | +| provider | string | `''` | +::: + +```js +faker.finance.creditCardNumber(); +``` + +## Credit Card CVV + +Return random credit card CVV + +```js +faker.finance.creditCardCVV(); +``` + +## Bitcoin Address + +Return random bitcoin address + +```js +faker.finance.bitcoinAddress(); // 3FINQD7C6JW7XPF4NMNHOJYAXLKLP +``` + +## Ethereum Address + +Return random Ethereum address + +```js +faker.finance.ethereumAddress(); +``` + +## IBAN (Intl. Bank Account Number) + +Return random IBAN (International Bank Account Number) + +::: tip +| Param | Type | Default | +| -------- | ------- | :-----: | +| formated | boolean | `false` | +::: + +```js +faker.finance.iban(); // BE56302102061244 +faker.finance.iban(true); // GI29 MRCH LR1V 0284 KE24 6K8 +``` + +## BIC (Banking Identifier Code) + +Return random BIC (Bank Identifier Code) + +```js +faker.finance.bic(); // OUAIDGK1 +``` diff --git a/docs/api/hacker.md b/docs/api/hacker.md new file mode 100644 index 00000000000..d692d4aedb5 --- /dev/null +++ b/docs/api/hacker.md @@ -0,0 +1,51 @@ +# Hacker + +[[toc]] + +## Abbreviation + +Return random abbreviation + +```js +faker.hacker.abbreviation(); // SMTP +``` + +## Adjective + +Return random adjective + +```js +faker.hacker.adjective(); // wireless +``` + +## Noun + +Return random noun + +```js +faker.hacker.noun(); // capacitor +``` + +## Phrase + +Return random phrase + +```js +faker.hacker.phrase(); // Try to reboot the SQL bus, maybe it will bypass the virtual application! +``` + +## Verb + +Return random verb + +```js +faker.hacker.verb(); // parse +``` + +## -ing Verb + +Return random ingverb + +```js +faker.hacker.ingverb(); // programming +``` diff --git a/docs/api/helpers.md b/docs/api/helpers.md new file mode 100644 index 00000000000..7a2db0d2f95 --- /dev/null +++ b/docs/api/helpers.md @@ -0,0 +1,262 @@ +# Helpers + +[[toc]] + +## Randomize Array + +Returns a random value from the provided array + +::: tip +| Param | Type | Default | +| ----- | ----- | :---------------: | +| array | array | `["a", "b", "c"]` | +::: + +```js +faker.helpers.randomize(); // a +faker.helpers.randomize(['bob', 'joe', 'tim']); // joe +``` + +## Slugify + +slugify the provided string + +::: tip +| Param | Type | Default | +| ------ | ------ | :-----: | +| string | string | `""` | +::: + +```js +faker.helpers.slugify(); // "" +faker.helpers.slugify('bob was here'); // bob-was-here +``` + +## Replace Symbol From Number + +Replace a symbol with a number + +::: tip +| Param | Type | Default | +| ------ | ------ | :-----: | +| string | string | `""` | +| symbol | string | `"#"` | +::: + +```js +faker.helpers.replaceSymbolWithNumber(); // "" +faker.helpers.replaceSymbolWithNumber('bob###@example.com'); // bob790@example.com +faker.helpers.replaceSymbolWithNumber('bob????##???', '?'); // bob6269##849 +``` + +## Replace Symbols + +Parses string for symbols (numbers or letters) and replaces them appropriately. + +- `#` will be replaced with a number, +- `?` with be replaced with a letter +- `*` will be replaced with a number or a letter + +::: tip +| Param | Type | Default | +| ------ | ------ | :-----: | +| format | string | `""` | +::: + +```js +faker.helpers.replaceSymbols('#####'); // 98101 +faker.helpers.replaceSymbols('???'); // ABC +faker.helpers.replaceSymbols('bob-###-42-??'); // bob-226-42-KB +``` + +## Shuffle Array + +Takes an array and returns it randomized + +::: tip +| Param | Type | Default | +| ----- | ----- | :-----: | +| array | array | `[]` | +::: + +```js +faker.helpers.shuffle(); // [] +faker.helpers.shuffle(['a', 'b', 'c']); // ["c", "a", "b"] +``` + +## Mustache + +replaces mustache variable in string with provided key pair + +::: tip +| Param | Type | Default | +| ----- | ------ | :-----: | +| str | string | `n/a` | +| data | object | `n/a` | +::: + +```js +faker.helpers.mustache(); // "" +faker.helpers.mustache('{{foo}} was {{baz}}', { foo: 'bar', baz: 42 }); // bar was 42 +``` + +## Create Card + +Returns an object, but the data is not consistent within itself. Please use [Contextual Card](/api/helpers.html#contextual-card) for data that is self-consistent. + +```js +faker.helpers.createCard(); +``` + +```json +{ + "name": "Glen Hahn", + "username": "Darrin_Champlin84", + "email": "Benton_Swift30@hotmail.com", + "address": { + "streetA": "Dickinson Forest", + "streetB": "63914 Eldora Forge", + "streetC": "095 Bella Lodge Apt. 590", + "streetD": "Apt. 980", + "city": "East Allan", + "state": "Nebraska", + "country": "Liechtenstein", + "zipcode": "08027", + "geo": { "lat": "3.4797", "lng": "-123.6115" } + }, + "phone": "(015) 568-3818 x649", + "website": "lysanne.org", + "company": { + "name": "Funk - Nicolas", + "catchPhrase": "Face to face dedicated moratorium", + "bs": "turn-key benchmark web services" + }, + "posts": [ + { + "words": "enim molestias architecto", + "sentence": "Beatae repellat deserunt eos.", + "sentences": "Vero quae laudantium. Vel autem corrupti eligendi. Reiciendis itaque delectus deserunt ea error molestiae aperiam.", + "paragraph": "Et sed nostrum placeat debitis maiores. Eos illum qui qui necessitatibus. Officiis a quisquam labore." + }, + { + "words": "qui dolor nihil", + "sentence": "Occaecati asperiores rerum magni aspernatur eius id officiis.", + "sentences": "Explicabo accusantium enim consequatur. Repellat placeat hic facere natus sint velit eligendi est distinctio.", + "paragraph": "Fugiat maiores corrupti similique laboriosam enim culpa maiores velit. Distinctio consequatur illo commodi fuga quo repellendus. Nihil sequi dolor non. Nihil et blanditiis rerum cupiditate est et facilis aliquam." + }, + { + "words": "nesciunt iusto qui", + "sentence": "Sapiente commodi facere laborum aut.", + "sentences": "Molestias nemo fugiat itaque expedita est aspernatur praesentium explicabo repellat. Ea incidunt quia sint cupiditate saepe et tempora. Autem doloribus dolor eius omnis dolor. Eos laborum nesciunt iste rem placeat ut autem. Commodi error est non sapiente a.", + "paragraph": "Eius maxime enim ut repellendus illum eum aut blanditiis. Quaerat qui omnis ab qui ipsum sint. Officiis iste neque ab qui dolor doloremque rerum quos sed." + } + ], + "accountHistory": [ + { + "amount": "251.84", + "date": "2012-02-02T08:00:00.000Z", + "business": "Breitenberg - Turcotte", + "name": "Checking Account 0226", + "type": "payment", + "account": "66727594" + }, + { + "amount": "740.75", + "date": "2012-02-02T08:00:00.000Z", + "business": "Shields - Heller", + "name": "Checking Account 3782", + "type": "invoice", + "account": "64889716" + }, + { + "amount": "378.68", + "date": "2012-02-02T08:00:00.000Z", + "business": "Dickens and Sons", + "name": "Home Loan Account 1699", + "type": "withdrawal", + "account": "69892278" + } + ] +} +``` + +## Contextual Card + +Returns an object where the name, username, and email are self-referrential. + +```js +faker.helpers.contextualCard(); +``` + +```json +{ + "name": "Joan", + "username": "Joan39", + "avatar": "https://s3.amazonaws.com/uifaces/faces/twitter/ripplemdk/128.jpg", + "email": "Joan39_Weimann93@gmail.com", + "dob": "1973-09-26T20:12:25.191Z", + "phone": "650-151-6699 x271", + "address": { + "street": "Boyle Points", + "suite": "Apt. 093", + "city": "Julioville", + "zipcode": "79041", + "geo": { "lat": "63.9355", "lng": "-150.2784" } + }, + "website": "laurianne.info", + "company": { + "name": "Hudson and Sons", + "catchPhrase": "Streamlined transitional firmware", + "bs": "value-added incentivize communities" + } +} +``` + +## User Card + +Returns an object representing a user. + +```js +faker.helpers.userCard(); +``` + +```json +{ + "name": "Adriel Dach", + "username": "Lawson.Rutherford83", + "email": "Kassandra86@gmail.com", + "address": { + "street": "Gislason View", + "suite": "Apt. 409", + "city": "Tellyside", + "zipcode": "00051", + "geo": { "lat": "69.6104", "lng": "-109.3244" } + }, + "phone": "1-685-232-7348", + "website": "dakota.org", + "company": { + "name": "DuBuque Group", + "catchPhrase": "Mandatory multi-state ability", + "bs": "real-time grow methodologies" + } +} +``` + +## Create Transaction + +Returns an object representing a transaction. + +```js +faker.helpers.createTransaction(); +``` + +```json +{ + "amount": "883.74", + "date": "2012-02-02T08:00:00.000Z", + "business": "Brakus LLC", + "name": "Credit Card Account 9671", + "type": "deposit", + "account": "54758588" +} +``` diff --git a/docs/api/image.md b/docs/api/image.md new file mode 100644 index 00000000000..1556ab3407b --- /dev/null +++ b/docs/api/image.md @@ -0,0 +1,318 @@ +# Image + +[[toc]] + +## Image + +Return [lorempixel](http://lorempixel.com/) url + +::: tip +| Param | Type | Default | +| --------- | ------- | :-----: | +| width | number | `640` | +| height | number | `480` | +| randomize | boolean | `false` | +::: + +```js +faker.image.image(); // http://lorempixel.com/640/480/nightlife +faker.image.image(200); // http://lorempixel.com/200/480/sports +faker.image.image(200, 600); // http://lorempixel.com/200/600/animals +faker.image.image(200, 600, true); // http://lorempixel.com/200/600/transport?12438 +``` + +## Avatar + +Return random avatar url + +```js +faker.image.avatar(); // https://s3.amazonaws.com/uifaces/faces/twitter/martip07/128.jpg +``` + +## Data URI + +Return random data uri + +::: tip +| Param | Type | Default | +| ------ | ------ | :-----: | +| width | number | `null` | +| height | number | `null` | +::: + +```js +faker.image.dataUri(); +// data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20version%3D%221.1%22%20baseProfile%3D%22full%22%20width%3D%22undefined%22%20height%3D%22undefined%22%3E%20%3Crect%20width%3D%22100%25%22%20height%3D%22100%25%22%20fill%3D%22grey%22%2F%3E%20%20%3Ctext%20x%3D%220%22%20y%3D%2220%22%20font-size%3D%2220%22%20text-anchor%3D%22start%22%20fill%3D%22white%22%3Eundefinedxundefined%3C%2Ftext%3E%20%3C%2Fsvg%3E +``` + +## Image URL + +Return [lorempixel](http://lorempixel.com/) url + +::: tip +| Param | Type | Default | +| --------- | ------- | :-----: | +| width | number | `640` | +| height | number | `480` | +| category | string | `480` | +| randomize | boolean | `false` | +| https | boolean | `false` | + +**Category Options:** `abstract` `animals` `business` `cats` `city` `food` `nightlife` `fashion` `people` `nature` `sports` `technics` `transport` +::: + +```js +faker.image.imageUrl(); // http://lorempixel.com/640/480 +faker.image.imageUrl(200); // http://lorempixel.com/200/480 +faker.image.imageUrl(200, 600); // http://lorempixel.com/200/600 +faker.image.imageUrl(200, 600, 'animals'); // http://lorempixel.com/200/600/animals +faker.image.imageUrl(200, 600, 'animals', true); // http://lorempixel.com/200/600/animals?3853 +faker.image.imageUrl(200, 600, 'animals', true, true); // https://lorempixel.com/200/600/animals?98461 +``` + +## Abstract Image + +Return [lorempixel](http://lorempixel.com/) url from abstract category + +::: tip +| Param | Type | Default | +| --------- | ------- | :-----: | +| width | number | `640` | +| height | number | `480` | +| randomize | boolean | `false` | +::: + +```js +faker.image.abstract(); // http://lorempixel.com/640/480/abstract +faker.image.abstract(200); // http://lorempixel.com/200/480/abstract +faker.image.abstract(200, 600); // http://lorempixel.com/200/600/abstract +faker.image.abstract(200, 600, true); // http://lorempixel.com/200/600/abstract?89872 +``` + +## Animal Image + +Return [lorempixel](http://lorempixel.com/) url from animals category + +::: tip +| Param | Type | Default | +| --------- | ------- | :-----: | +| width | number | `640` | +| height | number | `480` | +| randomize | boolean | `false` | +::: + +```js +faker.image.animals(); // http://lorempixel.com/640/480/animals +faker.image.animals(200); // http://lorempixel.com/200/480/animals +faker.image.animals(200, 600); // http://lorempixel.com/200/600/animals +faker.image.animals(200, 600, true); // http://lorempixel.com/200/600/animals?89872 +``` + +## Business Image + +Return [lorempixel](http://lorempixel.com/) url from business category + +::: tip +| Param | Type | Default | +| --------- | ------- | :-----: | +| width | number | `640` | +| height | number | `480` | +| randomize | boolean | `false` | +::: + +```js +faker.image.business(); // http://lorempixel.com/640/480/business +faker.image.business(200); // http://lorempixel.com/200/480/business +faker.image.business(200, 600); // http://lorempixel.com/200/600/business +faker.image.business(200, 600, true); // http://lorempixel.com/200/600/business?89872 +``` + +## Cat Image + +Return [lorempixel](http://lorempixel.com/) url from cats category + +::: tip +| Param | Type | Default | +| --------- | ------- | :-----: | +| width | number | `640` | +| height | number | `480` | +| randomize | boolean | `false` | +::: + +```js +faker.image.cats(); // http://lorempixel.com/640/480/cats +faker.image.cats(200); // http://lorempixel.com/200/480/cats +faker.image.cats(200, 600); // http://lorempixel.com/200/600/cats +faker.image.cats(200, 600, true); // http://lorempixel.com/200/600/cats?89872 +``` + +## City Image + +Return [lorempixel](http://lorempixel.com/) url from city category + +::: tip +| Param | Type | Default | +| --------- | ------- | :-----: | +| width | number | `640` | +| height | number | `480` | +| randomize | boolean | `false` | +::: + +```js +faker.image.city(); // http://lorempixel.com/640/480/city +faker.image.city(200); // http://lorempixel.com/200/480/city +faker.image.city(200, 600); // http://lorempixel.com/200/600/city +faker.image.city(200, 600, true); // http://lorempixel.com/200/600/city?89872 +``` + +## Food Image + +Return [lorempixel](http://lorempixel.com/) url from food category + +::: tip +| Param | Type | Default | +| --------- | ------- | :-----: | +| width | number | `640` | +| height | number | `480` | +| randomize | boolean | `false` | +::: + +```js +faker.image.food(); // http://lorempixel.com/640/480/food +faker.image.food(200); // http://lorempixel.com/200/480/food +faker.image.food(200, 600); // http://lorempixel.com/200/600/food +faker.image.food(200, 600, true); // http://lorempixel.com/200/600/food?89872 +``` + +## Nightlife Image + +Return [lorempixel](http://lorempixel.com/) url from nightlife category + +::: tip +| Param | Type | Default | +| --------- | ------- | :-----: | +| width | number | `640` | +| height | number | `480` | +| randomize | boolean | `false` | +::: + +```js +faker.image.nightlife(); // http://lorempixel.com/640/480/nightlife +faker.image.nightlife(200); // http://lorempixel.com/200/480/nightlife +faker.image.nightlife(200, 600); // http://lorempixel.com/200/600/nightlife +faker.image.nightlife(200, 600, true); // http://lorempixel.com/200/600/nightlife?89872 +``` + +## Fashion Image + +Return [lorempixel](http://lorempixel.com/) url from fashion category + +::: tip +| Param | Type | Default | +| --------- | ------- | :-----: | +| width | number | `640` | +| height | number | `480` | +| randomize | boolean | `false` | +::: + +```js +faker.image.fashion(); // http://lorempixel.com/640/480/fashion +faker.image.fashion(200); // http://lorempixel.com/200/480/fashion +faker.image.fashion(200, 600); // http://lorempixel.com/200/600/fashion +faker.image.fashion(200, 600, true); // http://lorempixel.com/200/600/fashion?89872 +``` + +## People Image + +Return [lorempixel](http://lorempixel.com/) url from people category + +::: tip +| Param | Type | Default | +| --------- | ------- | :-----: | +| width | number | `640` | +| height | number | `480` | +| randomize | boolean | `false` | +::: + +```js +faker.image.people(); // http://lorempixel.com/640/480/people +faker.image.people(200); // http://lorempixel.com/200/480/people +faker.image.people(200, 600); // http://lorempixel.com/200/600/people +faker.image.people(200, 600, true); // http://lorempixel.com/200/600/people?89872 +``` + +## Nature Image + +Return [lorempixel](http://lorempixel.com/) url from nature category + +::: tip +| Param | Type | Default | +| --------- | ------- | :-----: | +| width | number | `640` | +| height | number | `480` | +| randomize | boolean | `false` | +::: + +```js +faker.image.nature(); // http://lorempixel.com/640/480/nature +faker.image.nature(200); // http://lorempixel.com/200/480/nature +faker.image.nature(200, 600); // http://lorempixel.com/200/600/nature +faker.image.nature(200, 600, true); // http://lorempixel.com/200/600/nature?89872 +``` + +## Sports Image + +Return [lorempixel](http://lorempixel.com/) url from sports category + +::: tip +| Param | Type | Default | +| --------- | ------- | :-----: | +| width | number | `640` | +| height | number | `480` | +| randomize | boolean | `false` | +::: + +```js +faker.image.sports(); // http://lorempixel.com/640/480/sports +faker.image.sports(200); // http://lorempixel.com/200/480/sports +faker.image.sports(200, 600); // http://lorempixel.com/200/600/sports +faker.image.sports(200, 600, true); // http://lorempixel.com/200/600/sports?89872 +``` + +## Technics Image + +Return [lorempixel](http://lorempixel.com/) url from technics category + +::: tip +| Param | Type | Default | +| --------- | ------- | :-----: | +| width | number | `640` | +| height | number | `480` | +| randomize | boolean | `false` | +::: + +```js +faker.image.technics(); // http://lorempixel.com/640/480/technics +faker.image.technics(200); // http://lorempixel.com/200/480/technics +faker.image.technics(200, 600); // http://lorempixel.com/200/600/technics +faker.image.technics(200, 600, true); // http://lorempixel.com/200/600/technics?89872 +``` + +## Transport Image + +Return [lorempixel](http://lorempixel.com/) url from transport category + +::: tip +| Param | Type | Default | +| --------- | ------- | :-----: | +| width | number | `640` | +| height | number | `480` | +| randomize | boolean | `false` | +::: + +```js +faker.image.transport(); // http://lorempixel.com/640/480/transport +faker.image.transport(200); // http://lorempixel.com/200/480/transport +faker.image.transport(200, 600); // http://lorempixel.com/200/600/transport +faker.image.transport(200, 600, true); // http://lorempixel.com/200/600/transport?89872 +``` diff --git a/docs/api/internet.md b/docs/api/internet.md new file mode 100644 index 00000000000..3053881e270 --- /dev/null +++ b/docs/api/internet.md @@ -0,0 +1,186 @@ +# Internet + +[[toc]] + +## Avatar + +return random avatar url + +```js +faker.internet.avatar(); +// https://s3.amazonaws.com/uifaces/faces/twitter/dnezkumar/128.jpg +``` + +## Example E-mail + +Generates random email address from [safe domains](https://en.wikipedia.org/wiki/Example.com) + +::: tip +| Param | Type | Default | +| --------- | ------ | :----------------------: | +| firstName | string | `faker.name.firstName()` | +| lastName | string | `faker.name.lastName()` | +::: + +```js +faker.internet.exampleEmail(); // Rhiannon_Von81@example.com +faker.internet.exampleEmail('bob'); // bob26@example.net +faker.internet.exampleEmail('bob', 'jon'); // bob_jon@example.com +``` + +## E-mail + +Generates random email address + +::: danger +This uses real domains so it is likely to create a "real" email address. Use `exampleEmail()` to be safe. +::: + +::: tip +| Param | Type | Default | +| --------- | ------ | :-----------------------------------: | +| firstName | string | `faker.name.firstName()` | +| lastName | string | `faker.name.lastName()` | +| provider | string | `gmail.com` `yahoo.com` `hotmail.com` | +::: + +```js +faker.internet.email(); // Ottis_Cremin16@yahoo.com +faker.internet.email('bob'); // bob_jon@example.com +faker.internet.email('bob', 'jon'); // bob_jon73@hotmail.com +faker.internet.email('bob', 'jon', 'somedomain.com'); // bob_jon@somedomain.com +``` + +## User Name + +Generates a username based on one of several patterns. + +The pattern is chosen randomly from one of the following: `firstname#` `firstname.lastname` `firstname.lastname#` `firstnamelastname` `firstnamelastname#` + +::: tip +| Param | Type | Default | +| --------- | ------ | :----------------------: | +| firstName | string | `faker.name.firstName()` | +| lastName | string | `faker.name.lastName()` | +::: + +```js +faker.internet.userName(); // Maci12 +faker.internet.userName('bob')); // bob_Considine30 +faker.internet.userName('bob', 'jon')); // bob.jon61 +``` + +## Protocol + +Randomly generates http or https + +```js +faker.internet.protocol(); // https +``` + +## URL + +Generates a random URL. The URL could be secure or insecure. + +```js +faker.internet.url(); // http://chloe.net +``` + +## Domain Name + +Generates a random domain name. + +```js +faker.internet.domainName(); // hailie.biz +``` + +## Domain Suffix + +Generates a random domain suffix. + +```js +faker.internet.domainSuffix(); // org +``` + +## Domain Word + +Generates a random domain word. + +```js +faker.internet.domainWord(); // mattie +``` + +## IP Address + +Generates a random IP. + +```js +faker.internet.ip(); // 165.20.179.86 +``` + +## IPV6 + +Generates a random IPv6 address. + +```js +faker.internet.ipv6(); // 0e1a:48d6:8da6:b933:be58:442d:71db:42d7 +``` + +## User Agent + +Generates a random user agent. + +```js +faker.internet.userAgent(); +// Mozilla/5.0 (Windows NT 6.1; rv:6.0) Gecko/20100101 Firefox/6.0.0 +``` + +## Hexadecimal Color + +Generates a random hexadecimal color based on [this awesome response](http://stackoverflow.com/questions/43044/algorithm-to-randomly-generate-an-aesthetically-pleasing-color-palette) + +::: tip +| Param | Type | Default | +| ------------ | ------ | :-----: | +| baseRed255 | number | `0` | +| baseGreen255 | number | `0` | +| baseBlue255 | number | `0` | +::: + +```js +faker.internet.color(); // #630c7b +faker.internet.color(128); // #910145 +faker.internet.color(122, 148); // #a06a09 +faker.internet.color(42, 22, 11); // #48166d +``` + +## MAC Address + +Generates a random mac address. + +```js +faker.internet.mac(); // 00:87:14:24:31:ba +``` + +## Password + +Generates a random password. + +::: tip +| Param | Type | Default | +| --------- | ------- | :-----: | +| len | number | `15` | +| memorable | boolean | `false` | +| pattern | regex | `/\w/` | +| prefix | string | `''` | + +**Note:** `pattern` param is ignored if memorable is set to `true` +::: + +```js +faker.internet.password(); // 0ViHvR3Qp7AAsir +faker.internet.password(8); // m9Qw6dzR +faker.internet.password(8, true); // qecuquha +faker.internet.password(8, false, /^[A-Z]*$/); // PQGGVATB +faker.internet.password(8, false, /^[A-Z]*$/, 'bob'); // bobTXMPD +``` diff --git a/docs/api/localization.md b/docs/api/localization.md new file mode 100644 index 00000000000..dbd03b43c3e --- /dev/null +++ b/docs/api/localization.md @@ -0,0 +1,67 @@ +# Localization + +As of version `v2.0.0` Faker has support for multiple localities. + +The default language locale is set to English. + +Setting a new locale is simple: + +```js +// sets locale to de +faker.setLocale('de'); +// or +faker.locale = 'de'; +``` + +- az +- cz +- de +- de_AT +- de_CH +- en +- en_AU +- en_BORK +- en_CA +- en_GB +- en_IE +- en_IND +- en_US +- en_ZA +- en_au_ocker +- es +- es_MX +- fa +- fr +- fr_CA +- ge +- id_ID +- it +- ja +- ko +- nb_NO +- nep +- nl +- pl +- pt_BR +- pt_PT +- ru +- sk +- sv +- tr +- uk +- vi +- zh_CN +- zh_TW + +## Individual Localization Packages + +As of version `v3.0.0` Faker supports incremental loading of locales. + +By default, requiring `faker` will include _all_ locale data. + +In a production environment, you may only want to include the locale data for a specific set of locales. + +```js +// loads only de locale +const faker = require('faker/locale/de'); +``` diff --git a/docs/guide/index.md b/docs/guide/index.md new file mode 100644 index 00000000000..18f6c87d0a7 --- /dev/null +++ b/docs/guide/index.md @@ -0,0 +1,64 @@ +# Getting Started + +## Overview + +Faker is a popular library that generates fake (but reasonable) data that can be used for things such as: + +- Unit Testing +- Performance Testing +- Building Demos +- Working without a completed backend + +Faker was originally written in [Perl](https://metacpan.org/dist/Data-Faker) and this is the JavaScript port. Language bindings also exist for [Ruby](https://github.com/faker-ruby/faker), [Java](https://github.com/DiUS/java-faker), and [Python](https://github.com/joke2k/faker). + +This documentation only covers the JavaScript implementation of Faker. + +## Environments + +You can run Faker in the Browser, within Node, or the many other languages supported by Faker. ([Perl](https://metacpan.org/dist/Data-Faker), [Ruby](https://github.com/faker-ruby/faker), [Java](https://github.com/DiUS/java-faker), and [Python](https://github.com/joke2k/faker)) + +## Installation + +Install it as a Dev Dependency using your favorite package manager. + +```shell +npm install @faker-js/faker --save-dev +``` + +## Usage + +### Node.js + +```js +import faker from 'faker'; + +const randomName = faker.name.findName(); // Rowan Nikolaus +const randomEmail = faker.internet.email(); // Kassandra.Haley@erich.biz +const randomCard = faker.helpers.createCard(); // An object representing a random contact card containing many properties +``` + +### Browser + +```html + + + +``` + +:::tip Note +Using the browser is great for experimenting 👍. However, due to all of the strings Faker uses to generate fake data, **Faker is a large package**. It's around `1.57 MB` minified. **Please avoid deploying Faker in your web app.** +::: + +## Community + +If you have questions or need help, reach out to the community via Discord and GitHub Discussions. diff --git a/docs/guide/recent-faqs.md b/docs/guide/recent-faqs.md new file mode 100644 index 00000000000..89a114b2e7b --- /dev/null +++ b/docs/guide/recent-faqs.md @@ -0,0 +1,52 @@ +# Recent Statement and FAQs + +_January 11th, 2022_ + +Due to recent events, folks may have some questions or concerns about the future of Faker. + +Here are some answers. + +## What happened? + +In short, the author deleted the original repository in protest against large companies who did not pay him for maintaining Faker. + +In response to all that happened, we have created an entirely new GitHub Organization for the packages and ecosystem under the namespace [faker-js](https://github.com/faker-js). + +:::tip Support Open Source Software + +🙏 Please ask your company to do their part in sponsoring Open Source projects and contributors. + +Seriously, you don't have to sponsor _this_ project, just start having the conversation with your engineering leadership. +::: + +## Are these the official docs? + +**Yes**. This is the official site and documentation for the Faker library. + +## Who maintains Faker now? + +**Faker is now maintained by the organization [faker-js](https://github.com/faker-js)** after the original repository was deleted by the author. + +## My build broke. Help. + +If you have installed `faker` from npm, please uninstall it and migrate to `@faker-js/faker`. Due to the above issues, version 6 of faker.js **does not run** and is why the `@faker-js/faker` package exists. + +We will be releasing a new version shortly. + +**NPM** + +```shell +npm install @faker-js/faker --save-dev +``` + +**Yarn** + +```shell +yarn add @faker-js/faker -D +``` + +**pnpm** + +```shell +pnpm add -D @faker-js/faker +``` diff --git a/docs/index.md b/docs/index.md new file mode 100644 index 00000000000..aed22725896 --- /dev/null +++ b/docs/index.md @@ -0,0 +1,24 @@ +--- +home: true +title: 'Faker' +actionText: Get Started +actionLink: /guide/ + +# altActionText: Playground +# altActionLink: /playground/ + +features: + - title: 👠 Products + details: Generate Prices, Product Names, Adjectives, and Descriptions. + - title: 💸 Finance + details: Create stubbed out Account Details, Transactions, and Crypto Addresses. + - title: 💌 Addresses + details: Generate valid Addresses, Zip Codes, Street Names, States, and Countries! + - title: 👾 Hacker Jargon + details: “Try to reboot the SQL bus, maybe it will bypass the virtual application!” + - title: ⏰ Time-based Data + details: Past, present, future, recent, soon... whenever! + - title: 🌏 Localization + details: Set a locale to generate realistic looking Names, Addresses, and Phone Numbers. +footer: MIT Licensed 2022 +--- diff --git a/docs/playground/index.md b/docs/playground/index.md new file mode 100644 index 00000000000..db887d42a02 --- /dev/null +++ b/docs/playground/index.md @@ -0,0 +1,5 @@ +--- +sidebar: false +--- + + diff --git a/docs/public/logo.svg b/docs/public/logo.svg new file mode 100644 index 00000000000..a44f389860e --- /dev/null +++ b/docs/public/logo.svg @@ -0,0 +1,4 @@ + + + + diff --git a/netlify.toml b/netlify.toml new file mode 100644 index 00000000000..7fc9560839b --- /dev/null +++ b/netlify.toml @@ -0,0 +1,5 @@ +[build.environment] + NODE_VERSION = "16" +[build] + publish = "docs/.vitepress/dist" + command = "npm run browser && npm run docs:build" diff --git a/package-lock.json b/package-lock.json index 333b2b9c0f4..90132e57ef0 100644 --- a/package-lock.json +++ b/package-lock.json @@ -7,6 +7,7 @@ "": { "name": "faker", "version": "5.5.3", + "hasInstallScript": true, "license": "MIT", "devDependencies": { "browserify": "^16.5.2", @@ -35,7 +36,165 @@ "through2": "2.0.0", "vinyl-buffer": "^1.0.1", "vinyl-source-stream": "^2.0.0", - "vinyl-transform": "^1.0.0" + "vinyl-transform": "^1.0.0", + "vitepress": "^0.21.4" + } + }, + "node_modules/@algolia/autocomplete-core": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@algolia/autocomplete-core/-/autocomplete-core-1.5.0.tgz", + "integrity": "sha512-E7+VJwcvwMM8vPeaVn7fNUgix8WHV8A1WUeHDi2KHemCaaGc8lvUnP3QnvhMxiDhTe7OpMEv4o2TBUMyDgThaw==", + "dev": true, + "dependencies": { + "@algolia/autocomplete-shared": "1.5.0" + } + }, + "node_modules/@algolia/autocomplete-preset-algolia": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@algolia/autocomplete-preset-algolia/-/autocomplete-preset-algolia-1.5.0.tgz", + "integrity": "sha512-iiFxKERGHkvkiupmrFJbvESpP/zv5jSgH714XRiP5LDvUHaYOo4GLAwZCFf2ef/L5tdtPBARvekn6k1Xf33gjA==", + "dev": true, + "dependencies": { + "@algolia/autocomplete-shared": "1.5.0" + }, + "peerDependencies": { + "@algolia/client-search": "^4.9.1", + "algoliasearch": "^4.9.1" + } + }, + "node_modules/@algolia/autocomplete-shared": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@algolia/autocomplete-shared/-/autocomplete-shared-1.5.0.tgz", + "integrity": "sha512-bRSkqHHHSwZYbFY3w9hgMyQRm86Wz27bRaGCbNldLfbk0zUjApmE4ajx+ZCVSLqxvcUEjMqZFJzDsder12eKsg==", + "dev": true + }, + "node_modules/@algolia/cache-browser-local-storage": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/@algolia/cache-browser-local-storage/-/cache-browser-local-storage-4.12.0.tgz", + "integrity": "sha512-l+G560B6N1k0rIcOjTO1yCzFUbg2Zy2HCii9s03e13jGgqduVQmk79UUCYszjsJ5GPJpUEKcVEtAIpP7tjsXVA==", + "dev": true, + "dependencies": { + "@algolia/cache-common": "4.12.0" + } + }, + "node_modules/@algolia/cache-common": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/@algolia/cache-common/-/cache-common-4.12.0.tgz", + "integrity": "sha512-2Z8BV+NX7oN7RmmQbLqmW8lfN9aAjOexX1FJjzB0YfKC9ifpi9Jl4nSxlnbU+iLR6QhHo0IfuyQ7wcnucCGCGQ==", + "dev": true + }, + "node_modules/@algolia/cache-in-memory": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/@algolia/cache-in-memory/-/cache-in-memory-4.12.0.tgz", + "integrity": "sha512-b6ANkZF6vGAo+sYv6g25W5a0u3o6F549gEAgtTDTVA1aHcdWwe/HG/dTJ7NsnHbuR+A831tIwnNYQjRp3/V/Jw==", + "dev": true, + "dependencies": { + "@algolia/cache-common": "4.12.0" + } + }, + "node_modules/@algolia/client-account": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/@algolia/client-account/-/client-account-4.12.0.tgz", + "integrity": "sha512-gzXN75ZydNheNXUN3epS+aLsKnB/PHFVlGUUjXL8WHs4lJP3B5FtHvaA/NCN5DsM3aamhuY5p0ff1XIA+Lbcrw==", + "dev": true, + "dependencies": { + "@algolia/client-common": "4.12.0", + "@algolia/client-search": "4.12.0", + "@algolia/transporter": "4.12.0" + } + }, + "node_modules/@algolia/client-analytics": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/@algolia/client-analytics/-/client-analytics-4.12.0.tgz", + "integrity": "sha512-rO2cZCt00Opk66QBZb7IBGfCq4ZE3EiuGkXssf2Monb5urujy0r8CknK2i7bzaKtPbd2vlvhmLP4CEHQqF6SLQ==", + "dev": true, + "dependencies": { + "@algolia/client-common": "4.12.0", + "@algolia/client-search": "4.12.0", + "@algolia/requester-common": "4.12.0", + "@algolia/transporter": "4.12.0" + } + }, + "node_modules/@algolia/client-common": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/@algolia/client-common/-/client-common-4.12.0.tgz", + "integrity": "sha512-fcrFN7FBmxiSyjeu3sF4OnPkC1l7/8oyQ8RMM8CHpVY8cad6/ay35MrfRfgfqdzdFA8LzcBYO7fykuJv0eOqxw==", + "dev": true, + "dependencies": { + "@algolia/requester-common": "4.12.0", + "@algolia/transporter": "4.12.0" + } + }, + "node_modules/@algolia/client-personalization": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/@algolia/client-personalization/-/client-personalization-4.12.0.tgz", + "integrity": "sha512-wCJfSQEmX6ZOuJBJGjy+sbXiW0iy7tMNAhsVMV9RRaJE4727e5WAqwFWZssD877WQ74+/nF/VyTaB1+wejo33Q==", + "dev": true, + "dependencies": { + "@algolia/client-common": "4.12.0", + "@algolia/requester-common": "4.12.0", + "@algolia/transporter": "4.12.0" + } + }, + "node_modules/@algolia/client-search": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/@algolia/client-search/-/client-search-4.12.0.tgz", + "integrity": "sha512-ik6dswcTQtOdZN+8aKntI9X2E6Qpqjtyda/+VANiHThY9GD2PBXuNuuC2HvlF26AbBYp5xaSE/EKxn1DIiIJ4Q==", + "dev": true, + "dependencies": { + "@algolia/client-common": "4.12.0", + "@algolia/requester-common": "4.12.0", + "@algolia/transporter": "4.12.0" + } + }, + "node_modules/@algolia/logger-common": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/@algolia/logger-common/-/logger-common-4.12.0.tgz", + "integrity": "sha512-V//9rzLdJujA3iZ/tPhmKR/m2kjSZrymxOfUiF3024u2/7UyOpH92OOCrHUf023uMGYHRzyhBz5ESfL1oCdh7g==", + "dev": true + }, + "node_modules/@algolia/logger-console": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/@algolia/logger-console/-/logger-console-4.12.0.tgz", + "integrity": "sha512-pHvoGv53KXRIJHLk9uxBwKirwEo12G9+uo0sJLWESThAN3v5M+ycliU1AkUXQN8+9rds2KxfULAb+vfyfBKf8A==", + "dev": true, + "dependencies": { + "@algolia/logger-common": "4.12.0" + } + }, + "node_modules/@algolia/requester-browser-xhr": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/@algolia/requester-browser-xhr/-/requester-browser-xhr-4.12.0.tgz", + "integrity": "sha512-rGlHNMM3jIZBwSpz33CVkeXHilzuzHuFXEEW1icP/k3KW7kwBrKFJwBy42RzAJa5BYlLsTCFTS3xkPhYwTQKLg==", + "dev": true, + "dependencies": { + "@algolia/requester-common": "4.12.0" + } + }, + "node_modules/@algolia/requester-common": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/@algolia/requester-common/-/requester-common-4.12.0.tgz", + "integrity": "sha512-qgfdc73nXqpVyOMr6CMTx3nXvud9dP6GcMGDqPct+fnxogGcJsp24cY2nMqUrAfgmTJe9Nmy7Lddv0FyHjONMg==", + "dev": true + }, + "node_modules/@algolia/requester-node-http": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/@algolia/requester-node-http/-/requester-node-http-4.12.0.tgz", + "integrity": "sha512-mOTRGf/v/dXshBoZKNhMG00ZGxoUH9QdSpuMKYnuWwIgstN24uj3DQx+Ho3c+uq0TYfq7n2v71uoJWuiW32NMQ==", + "dev": true, + "dependencies": { + "@algolia/requester-common": "4.12.0" + } + }, + "node_modules/@algolia/transporter": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/@algolia/transporter/-/transporter-4.12.0.tgz", + "integrity": "sha512-MOQVHZ4BcBpf3LtOY/3fqXHAcvI8MahrXDHk9QrBE/iGensQhDiZby5Dn3o2JN/zd9FMnVbdPQ8gnkiMwZiakQ==", + "dev": true, + "dependencies": { + "@algolia/cache-common": "4.12.0", + "@algolia/logger-common": "4.12.0", + "@algolia/requester-common": "4.12.0" } }, "node_modules/@babel/code-frame": { @@ -392,6 +551,39 @@ "node": ">=4" } }, + "node_modules/@docsearch/css": { + "version": "3.0.0-alpha.42", + "resolved": "https://registry.npmjs.org/@docsearch/css/-/css-3.0.0-alpha.42.tgz", + "integrity": "sha512-AGwI2AXUacYhVOHmYnsXoYDJKO6Ued2W+QO80GERbMLhC7GH5tfvtW5REs/s7jSdcU3vzFoxT8iPDBCh/PkrlQ==", + "dev": true + }, + "node_modules/@docsearch/js": { + "version": "3.0.0-alpha.42", + "resolved": "https://registry.npmjs.org/@docsearch/js/-/js-3.0.0-alpha.42.tgz", + "integrity": "sha512-8rxxsvFKS5GzDX2MYMETeib4EOwAkoxVUHFP5R4tSENXojhuCEy3np+k3Q0c9WPT+MUmWLxKJab5jyl0jmaeBQ==", + "dev": true, + "dependencies": { + "@docsearch/react": "3.0.0-alpha.42", + "preact": "^10.0.0" + } + }, + "node_modules/@docsearch/react": { + "version": "3.0.0-alpha.42", + "resolved": "https://registry.npmjs.org/@docsearch/react/-/react-3.0.0-alpha.42.tgz", + "integrity": "sha512-1aOslZJDxwUUcm2QRNmlEePUgL8P5fOAeFdOLDMctHQkV2iTja9/rKVbkP8FZbIUnZxuuCCn8ErLrjD/oXWOag==", + "dev": true, + "dependencies": { + "@algolia/autocomplete-core": "1.5.0", + "@algolia/autocomplete-preset-algolia": "1.5.0", + "@docsearch/css": "3.0.0-alpha.42", + "algoliasearch": "^4.0.0" + }, + "peerDependencies": { + "@types/react": ">= 16.8.0 < 18.0.0", + "react": ">= 16.8.0 < 18.0.0", + "react-dom": ">= 16.8.0 < 18.0.0" + } + }, "node_modules/@hutson/parse-repository-url": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/@hutson/parse-repository-url/-/parse-repository-url-3.0.2.tgz", @@ -617,6 +809,197 @@ "integrity": "sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q==", "dev": true }, + "node_modules/@vitejs/plugin-vue": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-2.0.1.tgz", + "integrity": "sha512-wtdMnGVvys9K8tg+DxowU1ytTrdVveXr3LzdhaKakysgGXyrsfaeds2cDywtvujEASjWOwWL/OgWM+qoeM8Plg==", + "dev": true, + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "vite": "^2.5.10", + "vue": "^3.2.25" + } + }, + "node_modules/@vue/compiler-core": { + "version": "3.2.26", + "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.2.26.tgz", + "integrity": "sha512-N5XNBobZbaASdzY9Lga2D9Lul5vdCIOXvUMd6ThcN8zgqQhPKfCV+wfAJNNJKQkSHudnYRO2gEB+lp0iN3g2Tw==", + "dev": true, + "dependencies": { + "@babel/parser": "^7.16.4", + "@vue/shared": "3.2.26", + "estree-walker": "^2.0.2", + "source-map": "^0.6.1" + } + }, + "node_modules/@vue/compiler-core/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/@vue/compiler-dom": { + "version": "3.2.26", + "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.2.26.tgz", + "integrity": "sha512-smBfaOW6mQDxcT3p9TKT6mE22vjxjJL50GFVJiI0chXYGU/xzC05QRGrW3HHVuJrmLTLx5zBhsZ2dIATERbarg==", + "dev": true, + "dependencies": { + "@vue/compiler-core": "3.2.26", + "@vue/shared": "3.2.26" + } + }, + "node_modules/@vue/compiler-sfc": { + "version": "3.2.26", + "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.2.26.tgz", + "integrity": "sha512-ePpnfktV90UcLdsDQUh2JdiTuhV0Skv2iYXxfNMOK/F3Q+2BO0AulcVcfoksOpTJGmhhfosWfMyEaEf0UaWpIw==", + "dev": true, + "dependencies": { + "@babel/parser": "^7.16.4", + "@vue/compiler-core": "3.2.26", + "@vue/compiler-dom": "3.2.26", + "@vue/compiler-ssr": "3.2.26", + "@vue/reactivity-transform": "3.2.26", + "@vue/shared": "3.2.26", + "estree-walker": "^2.0.2", + "magic-string": "^0.25.7", + "postcss": "^8.1.10", + "source-map": "^0.6.1" + } + }, + "node_modules/@vue/compiler-sfc/node_modules/magic-string": { + "version": "0.25.7", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.7.tgz", + "integrity": "sha512-4CrMT5DOHTDk4HYDlzmwu4FVCcIYI8gauveasrdCu2IKIFOJ3f0v/8MDGJCDL9oD2ppz/Av1b0Nj345H9M+XIA==", + "dev": true, + "dependencies": { + "sourcemap-codec": "^1.4.4" + } + }, + "node_modules/@vue/compiler-sfc/node_modules/nanoid": { + "version": "3.1.30", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.30.tgz", + "integrity": "sha512-zJpuPDwOv8D2zq2WRoMe1HsfZthVewpel9CAvTfc/2mBD1uUT/agc5f7GHGWXlYkFvi1mVxe4IjvP2HNrop7nQ==", + "dev": true, + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/@vue/compiler-sfc/node_modules/postcss": { + "version": "8.4.5", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.5.tgz", + "integrity": "sha512-jBDboWM8qpaqwkMwItqTQTiFikhs/67OYVvblFFTM7MrZjt6yMKd6r2kgXizEbTTljacm4NldIlZnhbjr84QYg==", + "dev": true, + "dependencies": { + "nanoid": "^3.1.30", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/@vue/compiler-sfc/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/@vue/compiler-ssr": { + "version": "3.2.26", + "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.2.26.tgz", + "integrity": "sha512-2mywLX0ODc4Zn8qBoA2PDCsLEZfpUGZcyoFRLSOjyGGK6wDy2/5kyDOWtf0S0UvtoyVq95OTSGIALjZ4k2q/ag==", + "dev": true, + "dependencies": { + "@vue/compiler-dom": "3.2.26", + "@vue/shared": "3.2.26" + } + }, + "node_modules/@vue/reactivity": { + "version": "3.2.26", + "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.2.26.tgz", + "integrity": "sha512-h38bxCZLW6oFJVDlCcAiUKFnXI8xP8d+eO0pcDxx+7dQfSPje2AO6M9S9QO6MrxQB7fGP0DH0dYQ8ksf6hrXKQ==", + "dev": true, + "dependencies": { + "@vue/shared": "3.2.26" + } + }, + "node_modules/@vue/reactivity-transform": { + "version": "3.2.26", + "resolved": "https://registry.npmjs.org/@vue/reactivity-transform/-/reactivity-transform-3.2.26.tgz", + "integrity": "sha512-XKMyuCmzNA7nvFlYhdKwD78rcnmPb7q46uoR00zkX6yZrUmcCQ5OikiwUEVbvNhL5hBJuvbSO95jB5zkUon+eQ==", + "dev": true, + "dependencies": { + "@babel/parser": "^7.16.4", + "@vue/compiler-core": "3.2.26", + "@vue/shared": "3.2.26", + "estree-walker": "^2.0.2", + "magic-string": "^0.25.7" + } + }, + "node_modules/@vue/reactivity-transform/node_modules/magic-string": { + "version": "0.25.7", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.7.tgz", + "integrity": "sha512-4CrMT5DOHTDk4HYDlzmwu4FVCcIYI8gauveasrdCu2IKIFOJ3f0v/8MDGJCDL9oD2ppz/Av1b0Nj345H9M+XIA==", + "dev": true, + "dependencies": { + "sourcemap-codec": "^1.4.4" + } + }, + "node_modules/@vue/runtime-core": { + "version": "3.2.26", + "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.2.26.tgz", + "integrity": "sha512-BcYi7qZ9Nn+CJDJrHQ6Zsmxei2hDW0L6AB4vPvUQGBm2fZyC0GXd/4nVbyA2ubmuhctD5RbYY8L+5GUJszv9mQ==", + "dev": true, + "dependencies": { + "@vue/reactivity": "3.2.26", + "@vue/shared": "3.2.26" + } + }, + "node_modules/@vue/runtime-dom": { + "version": "3.2.26", + "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.2.26.tgz", + "integrity": "sha512-dY56UIiZI+gjc4e8JQBwAifljyexfVCkIAu/WX8snh8vSOt/gMSEGwPRcl2UpYpBYeyExV8WCbgvwWRNt9cHhQ==", + "dev": true, + "dependencies": { + "@vue/runtime-core": "3.2.26", + "@vue/shared": "3.2.26", + "csstype": "^2.6.8" + } + }, + "node_modules/@vue/server-renderer": { + "version": "3.2.26", + "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.2.26.tgz", + "integrity": "sha512-Jp5SggDUvvUYSBIvYEhy76t4nr1vapY/FIFloWmQzn7UxqaHrrBpbxrqPcTrSgGrcaglj0VBp22BKJNre4aA1w==", + "dev": true, + "dependencies": { + "@vue/compiler-ssr": "3.2.26", + "@vue/shared": "3.2.26" + }, + "peerDependencies": { + "vue": "3.2.26" + } + }, + "node_modules/@vue/shared": { + "version": "3.2.26", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.2.26.tgz", + "integrity": "sha512-vPV6Cq+NIWbH5pZu+V+2QHE9y1qfuTq49uNWw4f7FDEeZaDU2H2cx5jcUZOAKW7qTrUS4k6qZPbMy1x4N96nbA==", + "dev": true + }, "node_modules/acorn": { "version": "7.4.1", "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", @@ -702,6 +1085,28 @@ "url": "https://github.com/sponsors/epoberezkin" } }, + "node_modules/algoliasearch": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/algoliasearch/-/algoliasearch-4.12.0.tgz", + "integrity": "sha512-fZOMMm+F3Bi5M/MoFIz7hiuyCitJza0Hu+r8Wzz4LIQClC6YGMRq7kT6NNU1fSSoFDSeJIwMfedbbi5G9dJoVQ==", + "dev": true, + "dependencies": { + "@algolia/cache-browser-local-storage": "4.12.0", + "@algolia/cache-common": "4.12.0", + "@algolia/cache-in-memory": "4.12.0", + "@algolia/client-account": "4.12.0", + "@algolia/client-analytics": "4.12.0", + "@algolia/client-common": "4.12.0", + "@algolia/client-personalization": "4.12.0", + "@algolia/client-search": "4.12.0", + "@algolia/logger-common": "4.12.0", + "@algolia/logger-console": "4.12.0", + "@algolia/requester-browser-xhr": "4.12.0", + "@algolia/requester-common": "4.12.0", + "@algolia/requester-node-http": "4.12.0", + "@algolia/transporter": "4.12.0" + } + }, "node_modules/ansi-align": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-2.0.0.tgz", @@ -1845,6 +2250,16 @@ "node": ">=0.10.0" } }, + "node_modules/bindings": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", + "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", + "dev": true, + "optional": true, + "dependencies": { + "file-uri-to-path": "1.0.0" + } + }, "node_modules/bl": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/bl/-/bl-1.2.3.tgz", @@ -4004,6 +4419,12 @@ "node": ">=0.10.0" } }, + "node_modules/csstype": { + "version": "2.6.19", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.19.tgz", + "integrity": "sha512-ZVxXaNy28/k3kJg0Fou5MiYpp88j7H9hLZp8PDC3jV0WFjfH5E9xHb56L0W59cPbKbcHXeP4qyT8PrHp8t6LcQ==", + "dev": true + }, "node_modules/d": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz", @@ -4667,33 +5088,32 @@ } }, "node_modules/esbuild": { - "version": "0.14.11", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.14.11.tgz", - "integrity": "sha512-xZvPtVj6yecnDeFb3KjjCM6i7B5TCAQZT77kkW/CpXTMnd6VLnRPKrUB1XHI1pSq6a4Zcy3BGueQ8VljqjDGCg==", + "version": "0.13.15", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.13.15.tgz", + "integrity": "sha512-raCxt02HBKv8RJxE8vkTSCXGIyKHdEdGfUmiYb8wnabnaEmHzyW7DCHb5tEN0xU8ryqg5xw54mcwnYkC4x3AIw==", "dev": true, "hasInstallScript": true, "bin": { "esbuild": "bin/esbuild" }, "optionalDependencies": { - "esbuild-android-arm64": "0.14.11", - "esbuild-darwin-64": "0.14.11", - "esbuild-darwin-arm64": "0.14.11", - "esbuild-freebsd-64": "0.14.11", - "esbuild-freebsd-arm64": "0.14.11", - "esbuild-linux-32": "0.14.11", - "esbuild-linux-64": "0.14.11", - "esbuild-linux-arm": "0.14.11", - "esbuild-linux-arm64": "0.14.11", - "esbuild-linux-mips64le": "0.14.11", - "esbuild-linux-ppc64le": "0.14.11", - "esbuild-linux-s390x": "0.14.11", - "esbuild-netbsd-64": "0.14.11", - "esbuild-openbsd-64": "0.14.11", - "esbuild-sunos-64": "0.14.11", - "esbuild-windows-32": "0.14.11", - "esbuild-windows-64": "0.14.11", - "esbuild-windows-arm64": "0.14.11" + "esbuild-android-arm64": "0.13.15", + "esbuild-darwin-64": "0.13.15", + "esbuild-darwin-arm64": "0.13.15", + "esbuild-freebsd-64": "0.13.15", + "esbuild-freebsd-arm64": "0.13.15", + "esbuild-linux-32": "0.13.15", + "esbuild-linux-64": "0.13.15", + "esbuild-linux-arm": "0.13.15", + "esbuild-linux-arm64": "0.13.15", + "esbuild-linux-mips64le": "0.13.15", + "esbuild-linux-ppc64le": "0.13.15", + "esbuild-netbsd-64": "0.13.15", + "esbuild-openbsd-64": "0.13.15", + "esbuild-sunos-64": "0.13.15", + "esbuild-windows-32": "0.13.15", + "esbuild-windows-64": "0.13.15", + "esbuild-windows-arm64": "0.13.15" } }, "node_modules/esbuild-android-arm64": { @@ -4710,9 +5130,9 @@ ] }, "node_modules/esbuild-darwin-64": { - "version": "0.14.11", - "resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.14.11.tgz", - "integrity": "sha512-olq84ikh6TiBcrs3FnM4eR5VPPlcJcdW8BnUz/lNoEWYifYQ+Po5DuYV1oz1CTFMw4k6bQIZl8T3yxL+ZT2uvQ==", + "version": "0.13.15", + "resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.13.15.tgz", + "integrity": "sha512-ihOQRGs2yyp7t5bArCwnvn2Atr6X4axqPpEdCFPVp7iUj4cVSdisgvEKdNR7yH3JDjW6aQDw40iQFoTqejqxvQ==", "cpu": [ "x64" ], @@ -4880,62 +5300,94 @@ "typescript": "^4.0" } }, - "node_modules/esbuild-node-loader/node_modules/esbuild": { - "version": "0.13.15", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.13.15.tgz", - "integrity": "sha512-raCxt02HBKv8RJxE8vkTSCXGIyKHdEdGfUmiYb8wnabnaEmHzyW7DCHb5tEN0xU8ryqg5xw54mcwnYkC4x3AIw==", + "node_modules/esbuild-openbsd-64": { + "version": "0.14.11", + "resolved": "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.11.tgz", + "integrity": "sha512-l18TZDjmvwW6cDeR4fmizNoxndyDHamGOOAenwI4SOJbzlJmwfr0jUgjbaXCUuYVOA964siw+Ix+A+bhALWg8Q==", + "cpu": [ + "x64" + ], "dev": true, - "hasInstallScript": true, - "bin": { - "esbuild": "bin/esbuild" - }, - "optionalDependencies": { - "esbuild-android-arm64": "0.13.15", - "esbuild-darwin-64": "0.13.15", - "esbuild-darwin-arm64": "0.13.15", - "esbuild-freebsd-64": "0.13.15", - "esbuild-freebsd-arm64": "0.13.15", - "esbuild-linux-32": "0.13.15", - "esbuild-linux-64": "0.13.15", - "esbuild-linux-arm": "0.13.15", - "esbuild-linux-arm64": "0.13.15", - "esbuild-linux-mips64le": "0.13.15", - "esbuild-linux-ppc64le": "0.13.15", - "esbuild-netbsd-64": "0.13.15", - "esbuild-openbsd-64": "0.13.15", - "esbuild-sunos-64": "0.13.15", - "esbuild-windows-32": "0.13.15", - "esbuild-windows-64": "0.13.15", - "esbuild-windows-arm64": "0.13.15" + "optional": true, + "os": [ + "openbsd" + ] + }, + "node_modules/esbuild-register": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/esbuild-register/-/esbuild-register-3.3.1.tgz", + "integrity": "sha512-DjK9rOeo+Dhq8DXKy52DF2+O7zNPXkFRg9lZfqXDGLU6AzrULxBJZPOOFcH6WCNfkwqymKOZoNvd/ncCvEjwdw==", + "dev": true, + "peerDependencies": { + "esbuild": ">=0.12 <1" } }, - "node_modules/esbuild-node-loader/node_modules/esbuild-android-arm64": { - "version": "0.13.15", - "resolved": "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.13.15.tgz", - "integrity": "sha512-m602nft/XXeO8YQPUDVoHfjyRVPdPgjyyXOxZ44MK/agewFFkPa8tUo6lAzSWh5Ui5PB4KR9UIFTSBKh/RrCmg==", + "node_modules/esbuild-sunos-64": { + "version": "0.14.11", + "resolved": "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.14.11.tgz", + "integrity": "sha512-bmYzDtwASBB8c+0/HVOAiE9diR7+8zLm/i3kEojUH2z0aIs6x/S4KiTuT5/0VKJ4zk69kXel1cNWlHBMkmavQg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "sunos" + ] + }, + "node_modules/esbuild-windows-32": { + "version": "0.14.11", + "resolved": "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.14.11.tgz", + "integrity": "sha512-J1Ys5hMid8QgdY00OBvIolXgCQn1ARhYtxPnG6ESWNTty3ashtc4+As5nTrsErnv8ZGUcWZe4WzTP/DmEVX1UQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/esbuild-windows-64": { + "version": "0.14.11", + "resolved": "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.14.11.tgz", + "integrity": "sha512-h9FmMskMuGeN/9G9+LlHPAoiQk9jlKDUn9yA0MpiGzwLa82E7r1b1u+h2a+InprbSnSLxDq/7p5YGtYVO85Mlg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/esbuild-windows-arm64": { + "version": "0.14.11", + "resolved": "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.11.tgz", + "integrity": "sha512-dZp7Krv13KpwKklt9/1vBFBMqxEQIO6ri7Azf8C+ob4zOegpJmha2XY9VVWP/OyQ0OWk6cEeIzMJwInRZrzBUQ==", "cpu": [ "arm64" ], "dev": true, "optional": true, "os": [ - "android" + "win32" ] }, - "node_modules/esbuild-node-loader/node_modules/esbuild-darwin-64": { + "node_modules/esbuild/node_modules/esbuild-android-arm64": { "version": "0.13.15", - "resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.13.15.tgz", - "integrity": "sha512-ihOQRGs2yyp7t5bArCwnvn2Atr6X4axqPpEdCFPVp7iUj4cVSdisgvEKdNR7yH3JDjW6aQDw40iQFoTqejqxvQ==", + "resolved": "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.13.15.tgz", + "integrity": "sha512-m602nft/XXeO8YQPUDVoHfjyRVPdPgjyyXOxZ44MK/agewFFkPa8tUo6lAzSWh5Ui5PB4KR9UIFTSBKh/RrCmg==", "cpu": [ - "x64" + "arm64" ], "dev": true, "optional": true, "os": [ - "darwin" + "android" ] }, - "node_modules/esbuild-node-loader/node_modules/esbuild-darwin-arm64": { + "node_modules/esbuild/node_modules/esbuild-darwin-arm64": { "version": "0.13.15", "resolved": "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.13.15.tgz", "integrity": "sha512-i1FZssTVxUqNlJ6cBTj5YQj4imWy3m49RZRnHhLpefFIh0To05ow9DTrXROTE1urGTQCloFUXTX8QfGJy1P8dQ==", @@ -4948,7 +5400,7 @@ "darwin" ] }, - "node_modules/esbuild-node-loader/node_modules/esbuild-freebsd-64": { + "node_modules/esbuild/node_modules/esbuild-freebsd-64": { "version": "0.13.15", "resolved": "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.13.15.tgz", "integrity": "sha512-G3dLBXUI6lC6Z09/x+WtXBXbOYQZ0E8TDBqvn7aMaOCzryJs8LyVXKY4CPnHFXZAbSwkCbqiPuSQ1+HhrNk7EA==", @@ -4961,7 +5413,7 @@ "freebsd" ] }, - "node_modules/esbuild-node-loader/node_modules/esbuild-freebsd-arm64": { + "node_modules/esbuild/node_modules/esbuild-freebsd-arm64": { "version": "0.13.15", "resolved": "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.13.15.tgz", "integrity": "sha512-KJx0fzEDf1uhNOZQStV4ujg30WlnwqUASaGSFPhznLM/bbheu9HhqZ6mJJZM32lkyfGJikw0jg7v3S0oAvtvQQ==", @@ -4974,7 +5426,7 @@ "freebsd" ] }, - "node_modules/esbuild-node-loader/node_modules/esbuild-linux-32": { + "node_modules/esbuild/node_modules/esbuild-linux-32": { "version": "0.13.15", "resolved": "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.13.15.tgz", "integrity": "sha512-ZvTBPk0YWCLMCXiFmD5EUtB30zIPvC5Itxz0mdTu/xZBbbHJftQgLWY49wEPSn2T/TxahYCRDWun5smRa0Tu+g==", @@ -4987,7 +5439,7 @@ "linux" ] }, - "node_modules/esbuild-node-loader/node_modules/esbuild-linux-64": { + "node_modules/esbuild/node_modules/esbuild-linux-64": { "version": "0.13.15", "resolved": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.13.15.tgz", "integrity": "sha512-eCKzkNSLywNeQTRBxJRQ0jxRCl2YWdMB3+PkWFo2BBQYC5mISLIVIjThNtn6HUNqua1pnvgP5xX0nHbZbPj5oA==", @@ -5000,7 +5452,7 @@ "linux" ] }, - "node_modules/esbuild-node-loader/node_modules/esbuild-linux-arm": { + "node_modules/esbuild/node_modules/esbuild-linux-arm": { "version": "0.13.15", "resolved": "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.13.15.tgz", "integrity": "sha512-wUHttDi/ol0tD8ZgUMDH8Ef7IbDX+/UsWJOXaAyTdkT7Yy9ZBqPg8bgB/Dn3CZ9SBpNieozrPRHm0BGww7W/jA==", @@ -5013,7 +5465,7 @@ "linux" ] }, - "node_modules/esbuild-node-loader/node_modules/esbuild-linux-arm64": { + "node_modules/esbuild/node_modules/esbuild-linux-arm64": { "version": "0.13.15", "resolved": "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.13.15.tgz", "integrity": "sha512-bYpuUlN6qYU9slzr/ltyLTR9YTBS7qUDymO8SV7kjeNext61OdmqFAzuVZom+OLW1HPHseBfJ/JfdSlx8oTUoA==", @@ -5026,7 +5478,7 @@ "linux" ] }, - "node_modules/esbuild-node-loader/node_modules/esbuild-linux-mips64le": { + "node_modules/esbuild/node_modules/esbuild-linux-mips64le": { "version": "0.13.15", "resolved": "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.13.15.tgz", "integrity": "sha512-KlVjIG828uFPyJkO/8gKwy9RbXhCEUeFsCGOJBepUlpa7G8/SeZgncUEz/tOOUJTcWMTmFMtdd3GElGyAtbSWg==", @@ -5039,7 +5491,7 @@ "linux" ] }, - "node_modules/esbuild-node-loader/node_modules/esbuild-linux-ppc64le": { + "node_modules/esbuild/node_modules/esbuild-linux-ppc64le": { "version": "0.13.15", "resolved": "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.13.15.tgz", "integrity": "sha512-h6gYF+OsaqEuBjeesTBtUPw0bmiDu7eAeuc2OEH9S6mV9/jPhPdhOWzdeshb0BskRZxPhxPOjqZ+/OqLcxQwEQ==", @@ -5052,7 +5504,7 @@ "linux" ] }, - "node_modules/esbuild-node-loader/node_modules/esbuild-netbsd-64": { + "node_modules/esbuild/node_modules/esbuild-netbsd-64": { "version": "0.13.15", "resolved": "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.13.15.tgz", "integrity": "sha512-3+yE9emwoevLMyvu+iR3rsa+Xwhie7ZEHMGDQ6dkqP/ndFzRHkobHUKTe+NCApSqG5ce2z4rFu+NX/UHnxlh3w==", @@ -5065,7 +5517,7 @@ "netbsd" ] }, - "node_modules/esbuild-node-loader/node_modules/esbuild-openbsd-64": { + "node_modules/esbuild/node_modules/esbuild-openbsd-64": { "version": "0.13.15", "resolved": "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.13.15.tgz", "integrity": "sha512-wTfvtwYJYAFL1fSs8yHIdf5GEE4NkbtbXtjLWjM3Cw8mmQKqsg8kTiqJ9NJQe5NX/5Qlo7Xd9r1yKMMkHllp5g==", @@ -5078,7 +5530,7 @@ "openbsd" ] }, - "node_modules/esbuild-node-loader/node_modules/esbuild-sunos-64": { + "node_modules/esbuild/node_modules/esbuild-sunos-64": { "version": "0.13.15", "resolved": "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.13.15.tgz", "integrity": "sha512-lbivT9Bx3t1iWWrSnGyBP9ODriEvWDRiweAs69vI+miJoeKwHWOComSRukttbuzjZ8r1q0mQJ8Z7yUsDJ3hKdw==", @@ -5091,7 +5543,7 @@ "sunos" ] }, - "node_modules/esbuild-node-loader/node_modules/esbuild-windows-32": { + "node_modules/esbuild/node_modules/esbuild-windows-32": { "version": "0.13.15", "resolved": "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.13.15.tgz", "integrity": "sha512-fDMEf2g3SsJ599MBr50cY5ve5lP1wyVwTe6aLJsM01KtxyKkB4UT+fc5MXQFn3RLrAIAZOG+tHC+yXObpSn7Nw==", @@ -5104,7 +5556,7 @@ "win32" ] }, - "node_modules/esbuild-node-loader/node_modules/esbuild-windows-64": { + "node_modules/esbuild/node_modules/esbuild-windows-64": { "version": "0.13.15", "resolved": "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.13.15.tgz", "integrity": "sha512-9aMsPRGDWCd3bGjUIKG/ZOJPKsiztlxl/Q3C1XDswO6eNX/Jtwu4M+jb6YDH9hRSUflQWX0XKAfWzgy5Wk54JQ==", @@ -5117,7 +5569,7 @@ "win32" ] }, - "node_modules/esbuild-node-loader/node_modules/esbuild-windows-arm64": { + "node_modules/esbuild/node_modules/esbuild-windows-arm64": { "version": "0.13.15", "resolved": "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.13.15.tgz", "integrity": "sha512-zzvyCVVpbwQQATaf3IG8mu1IwGEiDxKkYUdA4FpoCHi1KtPa13jeScYDjlW0Qh+ebWzpKfR2ZwvqAQkSWNcKjA==", @@ -5130,80 +5582,6 @@ "win32" ] }, - "node_modules/esbuild-openbsd-64": { - "version": "0.14.11", - "resolved": "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.11.tgz", - "integrity": "sha512-l18TZDjmvwW6cDeR4fmizNoxndyDHamGOOAenwI4SOJbzlJmwfr0jUgjbaXCUuYVOA964siw+Ix+A+bhALWg8Q==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "openbsd" - ] - }, - "node_modules/esbuild-register": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/esbuild-register/-/esbuild-register-3.3.1.tgz", - "integrity": "sha512-DjK9rOeo+Dhq8DXKy52DF2+O7zNPXkFRg9lZfqXDGLU6AzrULxBJZPOOFcH6WCNfkwqymKOZoNvd/ncCvEjwdw==", - "dev": true, - "peerDependencies": { - "esbuild": ">=0.12 <1" - } - }, - "node_modules/esbuild-sunos-64": { - "version": "0.14.11", - "resolved": "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.14.11.tgz", - "integrity": "sha512-bmYzDtwASBB8c+0/HVOAiE9diR7+8zLm/i3kEojUH2z0aIs6x/S4KiTuT5/0VKJ4zk69kXel1cNWlHBMkmavQg==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "sunos" - ] - }, - "node_modules/esbuild-windows-32": { - "version": "0.14.11", - "resolved": "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.14.11.tgz", - "integrity": "sha512-J1Ys5hMid8QgdY00OBvIolXgCQn1ARhYtxPnG6ESWNTty3ashtc4+As5nTrsErnv8ZGUcWZe4WzTP/DmEVX1UQ==", - "cpu": [ - "ia32" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/esbuild-windows-64": { - "version": "0.14.11", - "resolved": "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.14.11.tgz", - "integrity": "sha512-h9FmMskMuGeN/9G9+LlHPAoiQk9jlKDUn9yA0MpiGzwLa82E7r1b1u+h2a+InprbSnSLxDq/7p5YGtYVO85Mlg==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/esbuild-windows-arm64": { - "version": "0.14.11", - "resolved": "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.11.tgz", - "integrity": "sha512-dZp7Krv13KpwKklt9/1vBFBMqxEQIO6ri7Azf8C+ob4zOegpJmha2XY9VVWP/OyQ0OWk6cEeIzMJwInRZrzBUQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ] - }, "node_modules/escalade": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", @@ -5341,6 +5719,49 @@ "node": ">= 8" } }, + "node_modules/esno/node_modules/esbuild": { + "version": "0.14.11", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.14.11.tgz", + "integrity": "sha512-xZvPtVj6yecnDeFb3KjjCM6i7B5TCAQZT77kkW/CpXTMnd6VLnRPKrUB1XHI1pSq6a4Zcy3BGueQ8VljqjDGCg==", + "dev": true, + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "optionalDependencies": { + "esbuild-android-arm64": "0.14.11", + "esbuild-darwin-64": "0.14.11", + "esbuild-darwin-arm64": "0.14.11", + "esbuild-freebsd-64": "0.14.11", + "esbuild-freebsd-arm64": "0.14.11", + "esbuild-linux-32": "0.14.11", + "esbuild-linux-64": "0.14.11", + "esbuild-linux-arm": "0.14.11", + "esbuild-linux-arm64": "0.14.11", + "esbuild-linux-mips64le": "0.14.11", + "esbuild-linux-ppc64le": "0.14.11", + "esbuild-linux-s390x": "0.14.11", + "esbuild-netbsd-64": "0.14.11", + "esbuild-openbsd-64": "0.14.11", + "esbuild-sunos-64": "0.14.11", + "esbuild-windows-32": "0.14.11", + "esbuild-windows-64": "0.14.11", + "esbuild-windows-arm64": "0.14.11" + } + }, + "node_modules/esno/node_modules/esbuild-darwin-64": { + "version": "0.14.11", + "resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.14.11.tgz", + "integrity": "sha512-olq84ikh6TiBcrs3FnM4eR5VPPlcJcdW8BnUz/lNoEWYifYQ+Po5DuYV1oz1CTFMw4k6bQIZl8T3yxL+ZT2uvQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ] + }, "node_modules/esno/node_modules/path-key": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", @@ -5464,6 +5885,12 @@ "node": ">=4.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/esutils": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", @@ -6002,6 +6429,13 @@ "node": ">=4" } }, + "node_modules/file-uri-to-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", + "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", + "dev": true, + "optional": true + }, "node_modules/filename-regex": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz", @@ -6336,6 +6770,25 @@ "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", "dev": true }, + "node_modules/fsevents": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", + "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", + "deprecated": "fsevents 1 will break on node v14+ and could be using insecure binaries. Upgrade to fsevents 2.", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "dependencies": { + "bindings": "^1.5.0", + "nan": "^2.12.1" + }, + "engines": { + "node": ">= 4.0" + } + }, "node_modules/function-bind": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", @@ -6953,10 +7406,10 @@ "google-closure-compiler-osx": "^20181008.0.0" } }, - "node_modules/google-closure-compiler-linux": { + "node_modules/google-closure-compiler-osx": { "version": "20181008.0.0", - "resolved": "https://registry.npmjs.org/google-closure-compiler-linux/-/google-closure-compiler-linux-20181008.0.0.tgz", - "integrity": "sha512-k8njGfH2uzWJiRPPvUxM7MJB28gPrf4kI2bbuiF0gJk/1arXcWCPGjLD6pzCU0UylMy52MUXLgsIpRorqf2brw==", + "resolved": "https://registry.npmjs.org/google-closure-compiler-osx/-/google-closure-compiler-osx-20181008.0.0.tgz", + "integrity": "sha512-xzf/yH/4MXdb6GbP84iHnpcVCOPBbH0gMVOs0JhR/KbrQh+DlJU+Y8Z/DQzTkw9HgD650R2/WZmBknURyg9OTw==", "cpu": [ "x64", "x86" @@ -6964,7 +7417,7 @@ "dev": true, "optional": true, "os": [ - "linux" + "darwin" ] }, "node_modules/google-closure-compiler/node_modules/ansi-regex": { @@ -11196,6 +11649,20 @@ "node": ">=8" } }, + "node_modules/mocha/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/mocha/node_modules/get-caller-file": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", @@ -11514,6 +11981,13 @@ "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", "dev": true }, + "node_modules/nan": { + "version": "2.15.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.15.0.tgz", + "integrity": "sha512-8ZtvEnA2c5aYCZYd1cvgdnU6cqwixRoYg70xPLWUws5ORTa/lnw+u4amixRS/Ac5U5mQVgp9pnlSUnbNWFaWZQ==", + "dev": true, + "optional": true + }, "node_modules/nanoid": { "version": "3.1.20", "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.20.tgz", @@ -13163,6 +13637,16 @@ "node": ">=0.10.0" } }, + "node_modules/preact": { + "version": "10.6.4", + "resolved": "https://registry.npmjs.org/preact/-/preact-10.6.4.tgz", + "integrity": "sha512-WyosM7pxGcndU8hY0OQlLd54tOU+qmG45QXj2dAYrL11HoyU/EzOSTlpJsirbBr1QW7lICxSsVJJmcmUglovHQ==", + "dev": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/preact" + } + }, "node_modules/prelude-ls": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", @@ -13211,6 +13695,15 @@ "node": ">= 0.8" } }, + "node_modules/prismjs": { + "version": "1.26.0", + "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.26.0.tgz", + "integrity": "sha512-HUoH9C5Z3jKkl3UunCyiD5jwk0+Hz0fIgQ2nbwU2Oo/ceuTAQAg+pPVnfdt2TJWRVLcxKh9iuoYDUSc8clb5UQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, "node_modules/private": { "version": "0.1.8", "resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz", @@ -14013,17 +14506,46 @@ "inherits": "^2.0.1" } }, - "node_modules/run-async": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", - "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==", + "node_modules/rollup": { + "version": "2.63.0", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.63.0.tgz", + "integrity": "sha512-nps0idjmD+NXl6OREfyYXMn/dar3WGcyKn+KBzPdaLecub3x/LrId0wUcthcr8oZUAcZAR8NKcfGGFlNgGL1kQ==", "dev": true, + "bin": { + "rollup": "dist/bin/rollup" + }, "engines": { - "node": ">=0.12.0" + "node": ">=10.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" } }, - "node_modules/run-parallel": { - "version": "1.2.0", + "node_modules/rollup/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/run-async": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", + "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==", + "dev": true, + "engines": { + "node": ">=0.12.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, @@ -14528,10 +15050,20 @@ "node": ">=0.10.0" } }, + "node_modules/source-map-js": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.1.tgz", + "integrity": "sha512-4+TN2b3tqOCd/kaGRJ/sTYA0tR0mdXx26ipdolxcwtJVqEnqNYvlCAt1q3ypy4QMlYus+Zh34RNtYLoq2oQ4IA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/source-map-resolve": { "version": "0.5.3", "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", + "deprecated": "See https://github.com/lydell/source-map-resolve#deprecated", "dev": true, "dependencies": { "atob": "^2.1.2", @@ -14554,6 +15086,7 @@ "version": "0.4.1", "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz", "integrity": "sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==", + "deprecated": "See https://github.com/lydell/source-map-url#deprecated", "dev": true }, "node_modules/sourcemap-codec": { @@ -16573,6 +17106,107 @@ "node": ">= 0.4" } }, + "node_modules/vite": { + "version": "2.7.10", + "resolved": "https://registry.npmjs.org/vite/-/vite-2.7.10.tgz", + "integrity": "sha512-KEY96ntXUid1/xJihJbgmLZx7QSC2D4Tui0FdS0Old5OokYzFclcofhtxtjDdGOk/fFpPbHv9yw88+rB93Tb8w==", + "dev": true, + "dependencies": { + "esbuild": "^0.13.12", + "postcss": "^8.4.5", + "resolve": "^1.20.0", + "rollup": "^2.59.0" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": ">=12.2.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + }, + "peerDependencies": { + "less": "*", + "sass": "*", + "stylus": "*" + }, + "peerDependenciesMeta": { + "less": { + "optional": true + }, + "sass": { + "optional": true + }, + "stylus": { + "optional": true + } + } + }, + "node_modules/vite/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/vite/node_modules/nanoid": { + "version": "3.1.30", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.30.tgz", + "integrity": "sha512-zJpuPDwOv8D2zq2WRoMe1HsfZthVewpel9CAvTfc/2mBD1uUT/agc5f7GHGWXlYkFvi1mVxe4IjvP2HNrop7nQ==", + "dev": true, + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/vite/node_modules/postcss": { + "version": "8.4.5", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.5.tgz", + "integrity": "sha512-jBDboWM8qpaqwkMwItqTQTiFikhs/67OYVvblFFTM7MrZjt6yMKd6r2kgXizEbTTljacm4NldIlZnhbjr84QYg==", + "dev": true, + "dependencies": { + "nanoid": "^3.1.30", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/vitepress": { + "version": "0.21.4", + "resolved": "https://registry.npmjs.org/vitepress/-/vitepress-0.21.4.tgz", + "integrity": "sha512-r7zAOp65T3/3tX6tD1QfQaqHnPzr2Xkq0Cw8gjXDk2MGZ7e3BMwow1wRn/k1D2lBZ2kEE2vQCC2/zfoCzrDRuw==", + "dev": true, + "dependencies": { + "@docsearch/css": "^3.0.0-alpha.41", + "@docsearch/js": "^3.0.0-alpha.41", + "@vitejs/plugin-vue": "^2.0.0", + "prismjs": "^1.25.0", + "vite": "^2.7.0", + "vue": "^3.2.26" + }, + "bin": { + "vitepress": "bin/vitepress.js" + }, + "engines": { + "node": ">=12.0.0" + } + }, "node_modules/vlq": { "version": "0.2.3", "resolved": "https://registry.npmjs.org/vlq/-/vlq-0.2.3.tgz", @@ -16585,6 +17219,19 @@ "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==", "dev": true }, + "node_modules/vue": { + "version": "3.2.26", + "resolved": "https://registry.npmjs.org/vue/-/vue-3.2.26.tgz", + "integrity": "sha512-KD4lULmskL5cCsEkfhERVRIOEDrfEL9CwAsLYpzptOGjaGFNWo3BQ9g8MAb7RaIO71rmVOziZ/uEN/rHwcUIhg==", + "dev": true, + "dependencies": { + "@vue/compiler-dom": "3.2.26", + "@vue/compiler-sfc": "3.2.26", + "@vue/runtime-dom": "3.2.26", + "@vue/server-renderer": "3.2.26", + "@vue/shared": "3.2.26" + } + }, "node_modules/wcwidth": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", @@ -17041,6 +17688,159 @@ } }, "dependencies": { + "@algolia/autocomplete-core": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@algolia/autocomplete-core/-/autocomplete-core-1.5.0.tgz", + "integrity": "sha512-E7+VJwcvwMM8vPeaVn7fNUgix8WHV8A1WUeHDi2KHemCaaGc8lvUnP3QnvhMxiDhTe7OpMEv4o2TBUMyDgThaw==", + "dev": true, + "requires": { + "@algolia/autocomplete-shared": "1.5.0" + } + }, + "@algolia/autocomplete-preset-algolia": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@algolia/autocomplete-preset-algolia/-/autocomplete-preset-algolia-1.5.0.tgz", + "integrity": "sha512-iiFxKERGHkvkiupmrFJbvESpP/zv5jSgH714XRiP5LDvUHaYOo4GLAwZCFf2ef/L5tdtPBARvekn6k1Xf33gjA==", + "dev": true, + "requires": { + "@algolia/autocomplete-shared": "1.5.0" + } + }, + "@algolia/autocomplete-shared": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@algolia/autocomplete-shared/-/autocomplete-shared-1.5.0.tgz", + "integrity": "sha512-bRSkqHHHSwZYbFY3w9hgMyQRm86Wz27bRaGCbNldLfbk0zUjApmE4ajx+ZCVSLqxvcUEjMqZFJzDsder12eKsg==", + "dev": true + }, + "@algolia/cache-browser-local-storage": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/@algolia/cache-browser-local-storage/-/cache-browser-local-storage-4.12.0.tgz", + "integrity": "sha512-l+G560B6N1k0rIcOjTO1yCzFUbg2Zy2HCii9s03e13jGgqduVQmk79UUCYszjsJ5GPJpUEKcVEtAIpP7tjsXVA==", + "dev": true, + "requires": { + "@algolia/cache-common": "4.12.0" + } + }, + "@algolia/cache-common": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/@algolia/cache-common/-/cache-common-4.12.0.tgz", + "integrity": "sha512-2Z8BV+NX7oN7RmmQbLqmW8lfN9aAjOexX1FJjzB0YfKC9ifpi9Jl4nSxlnbU+iLR6QhHo0IfuyQ7wcnucCGCGQ==", + "dev": true + }, + "@algolia/cache-in-memory": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/@algolia/cache-in-memory/-/cache-in-memory-4.12.0.tgz", + "integrity": "sha512-b6ANkZF6vGAo+sYv6g25W5a0u3o6F549gEAgtTDTVA1aHcdWwe/HG/dTJ7NsnHbuR+A831tIwnNYQjRp3/V/Jw==", + "dev": true, + "requires": { + "@algolia/cache-common": "4.12.0" + } + }, + "@algolia/client-account": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/@algolia/client-account/-/client-account-4.12.0.tgz", + "integrity": "sha512-gzXN75ZydNheNXUN3epS+aLsKnB/PHFVlGUUjXL8WHs4lJP3B5FtHvaA/NCN5DsM3aamhuY5p0ff1XIA+Lbcrw==", + "dev": true, + "requires": { + "@algolia/client-common": "4.12.0", + "@algolia/client-search": "4.12.0", + "@algolia/transporter": "4.12.0" + } + }, + "@algolia/client-analytics": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/@algolia/client-analytics/-/client-analytics-4.12.0.tgz", + "integrity": "sha512-rO2cZCt00Opk66QBZb7IBGfCq4ZE3EiuGkXssf2Monb5urujy0r8CknK2i7bzaKtPbd2vlvhmLP4CEHQqF6SLQ==", + "dev": true, + "requires": { + "@algolia/client-common": "4.12.0", + "@algolia/client-search": "4.12.0", + "@algolia/requester-common": "4.12.0", + "@algolia/transporter": "4.12.0" + } + }, + "@algolia/client-common": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/@algolia/client-common/-/client-common-4.12.0.tgz", + "integrity": "sha512-fcrFN7FBmxiSyjeu3sF4OnPkC1l7/8oyQ8RMM8CHpVY8cad6/ay35MrfRfgfqdzdFA8LzcBYO7fykuJv0eOqxw==", + "dev": true, + "requires": { + "@algolia/requester-common": "4.12.0", + "@algolia/transporter": "4.12.0" + } + }, + "@algolia/client-personalization": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/@algolia/client-personalization/-/client-personalization-4.12.0.tgz", + "integrity": "sha512-wCJfSQEmX6ZOuJBJGjy+sbXiW0iy7tMNAhsVMV9RRaJE4727e5WAqwFWZssD877WQ74+/nF/VyTaB1+wejo33Q==", + "dev": true, + "requires": { + "@algolia/client-common": "4.12.0", + "@algolia/requester-common": "4.12.0", + "@algolia/transporter": "4.12.0" + } + }, + "@algolia/client-search": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/@algolia/client-search/-/client-search-4.12.0.tgz", + "integrity": "sha512-ik6dswcTQtOdZN+8aKntI9X2E6Qpqjtyda/+VANiHThY9GD2PBXuNuuC2HvlF26AbBYp5xaSE/EKxn1DIiIJ4Q==", + "dev": true, + "requires": { + "@algolia/client-common": "4.12.0", + "@algolia/requester-common": "4.12.0", + "@algolia/transporter": "4.12.0" + } + }, + "@algolia/logger-common": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/@algolia/logger-common/-/logger-common-4.12.0.tgz", + "integrity": "sha512-V//9rzLdJujA3iZ/tPhmKR/m2kjSZrymxOfUiF3024u2/7UyOpH92OOCrHUf023uMGYHRzyhBz5ESfL1oCdh7g==", + "dev": true + }, + "@algolia/logger-console": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/@algolia/logger-console/-/logger-console-4.12.0.tgz", + "integrity": "sha512-pHvoGv53KXRIJHLk9uxBwKirwEo12G9+uo0sJLWESThAN3v5M+ycliU1AkUXQN8+9rds2KxfULAb+vfyfBKf8A==", + "dev": true, + "requires": { + "@algolia/logger-common": "4.12.0" + } + }, + "@algolia/requester-browser-xhr": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/@algolia/requester-browser-xhr/-/requester-browser-xhr-4.12.0.tgz", + "integrity": "sha512-rGlHNMM3jIZBwSpz33CVkeXHilzuzHuFXEEW1icP/k3KW7kwBrKFJwBy42RzAJa5BYlLsTCFTS3xkPhYwTQKLg==", + "dev": true, + "requires": { + "@algolia/requester-common": "4.12.0" + } + }, + "@algolia/requester-common": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/@algolia/requester-common/-/requester-common-4.12.0.tgz", + "integrity": "sha512-qgfdc73nXqpVyOMr6CMTx3nXvud9dP6GcMGDqPct+fnxogGcJsp24cY2nMqUrAfgmTJe9Nmy7Lddv0FyHjONMg==", + "dev": true + }, + "@algolia/requester-node-http": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/@algolia/requester-node-http/-/requester-node-http-4.12.0.tgz", + "integrity": "sha512-mOTRGf/v/dXshBoZKNhMG00ZGxoUH9QdSpuMKYnuWwIgstN24uj3DQx+Ho3c+uq0TYfq7n2v71uoJWuiW32NMQ==", + "dev": true, + "requires": { + "@algolia/requester-common": "4.12.0" + } + }, + "@algolia/transporter": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/@algolia/transporter/-/transporter-4.12.0.tgz", + "integrity": "sha512-MOQVHZ4BcBpf3LtOY/3fqXHAcvI8MahrXDHk9QrBE/iGensQhDiZby5Dn3o2JN/zd9FMnVbdPQ8gnkiMwZiakQ==", + "dev": true, + "requires": { + "@algolia/cache-common": "4.12.0", + "@algolia/logger-common": "4.12.0", + "@algolia/requester-common": "4.12.0" + } + }, "@babel/code-frame": { "version": "7.16.7", "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.7.tgz", @@ -17312,6 +18112,34 @@ } } }, + "@docsearch/css": { + "version": "3.0.0-alpha.42", + "resolved": "https://registry.npmjs.org/@docsearch/css/-/css-3.0.0-alpha.42.tgz", + "integrity": "sha512-AGwI2AXUacYhVOHmYnsXoYDJKO6Ued2W+QO80GERbMLhC7GH5tfvtW5REs/s7jSdcU3vzFoxT8iPDBCh/PkrlQ==", + "dev": true + }, + "@docsearch/js": { + "version": "3.0.0-alpha.42", + "resolved": "https://registry.npmjs.org/@docsearch/js/-/js-3.0.0-alpha.42.tgz", + "integrity": "sha512-8rxxsvFKS5GzDX2MYMETeib4EOwAkoxVUHFP5R4tSENXojhuCEy3np+k3Q0c9WPT+MUmWLxKJab5jyl0jmaeBQ==", + "dev": true, + "requires": { + "@docsearch/react": "3.0.0-alpha.42", + "preact": "^10.0.0" + } + }, + "@docsearch/react": { + "version": "3.0.0-alpha.42", + "resolved": "https://registry.npmjs.org/@docsearch/react/-/react-3.0.0-alpha.42.tgz", + "integrity": "sha512-1aOslZJDxwUUcm2QRNmlEePUgL8P5fOAeFdOLDMctHQkV2iTja9/rKVbkP8FZbIUnZxuuCCn8ErLrjD/oXWOag==", + "dev": true, + "requires": { + "@algolia/autocomplete-core": "1.5.0", + "@algolia/autocomplete-preset-algolia": "1.5.0", + "@docsearch/css": "3.0.0-alpha.42", + "algoliasearch": "^4.0.0" + } + }, "@hutson/parse-repository-url": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/@hutson/parse-repository-url/-/parse-repository-url-3.0.2.tgz", @@ -17492,6 +18320,175 @@ "integrity": "sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q==", "dev": true }, + "@vitejs/plugin-vue": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-2.0.1.tgz", + "integrity": "sha512-wtdMnGVvys9K8tg+DxowU1ytTrdVveXr3LzdhaKakysgGXyrsfaeds2cDywtvujEASjWOwWL/OgWM+qoeM8Plg==", + "dev": true, + "requires": {} + }, + "@vue/compiler-core": { + "version": "3.2.26", + "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.2.26.tgz", + "integrity": "sha512-N5XNBobZbaASdzY9Lga2D9Lul5vdCIOXvUMd6ThcN8zgqQhPKfCV+wfAJNNJKQkSHudnYRO2gEB+lp0iN3g2Tw==", + "dev": true, + "requires": { + "@babel/parser": "^7.16.4", + "@vue/shared": "3.2.26", + "estree-walker": "^2.0.2", + "source-map": "^0.6.1" + }, + "dependencies": { + "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 + } + } + }, + "@vue/compiler-dom": { + "version": "3.2.26", + "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.2.26.tgz", + "integrity": "sha512-smBfaOW6mQDxcT3p9TKT6mE22vjxjJL50GFVJiI0chXYGU/xzC05QRGrW3HHVuJrmLTLx5zBhsZ2dIATERbarg==", + "dev": true, + "requires": { + "@vue/compiler-core": "3.2.26", + "@vue/shared": "3.2.26" + } + }, + "@vue/compiler-sfc": { + "version": "3.2.26", + "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.2.26.tgz", + "integrity": "sha512-ePpnfktV90UcLdsDQUh2JdiTuhV0Skv2iYXxfNMOK/F3Q+2BO0AulcVcfoksOpTJGmhhfosWfMyEaEf0UaWpIw==", + "dev": true, + "requires": { + "@babel/parser": "^7.16.4", + "@vue/compiler-core": "3.2.26", + "@vue/compiler-dom": "3.2.26", + "@vue/compiler-ssr": "3.2.26", + "@vue/reactivity-transform": "3.2.26", + "@vue/shared": "3.2.26", + "estree-walker": "^2.0.2", + "magic-string": "^0.25.7", + "postcss": "^8.1.10", + "source-map": "^0.6.1" + }, + "dependencies": { + "magic-string": { + "version": "0.25.7", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.7.tgz", + "integrity": "sha512-4CrMT5DOHTDk4HYDlzmwu4FVCcIYI8gauveasrdCu2IKIFOJ3f0v/8MDGJCDL9oD2ppz/Av1b0Nj345H9M+XIA==", + "dev": true, + "requires": { + "sourcemap-codec": "^1.4.4" + } + }, + "nanoid": { + "version": "3.1.30", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.30.tgz", + "integrity": "sha512-zJpuPDwOv8D2zq2WRoMe1HsfZthVewpel9CAvTfc/2mBD1uUT/agc5f7GHGWXlYkFvi1mVxe4IjvP2HNrop7nQ==", + "dev": true + }, + "postcss": { + "version": "8.4.5", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.5.tgz", + "integrity": "sha512-jBDboWM8qpaqwkMwItqTQTiFikhs/67OYVvblFFTM7MrZjt6yMKd6r2kgXizEbTTljacm4NldIlZnhbjr84QYg==", + "dev": true, + "requires": { + "nanoid": "^3.1.30", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.1" + } + }, + "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 + } + } + }, + "@vue/compiler-ssr": { + "version": "3.2.26", + "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.2.26.tgz", + "integrity": "sha512-2mywLX0ODc4Zn8qBoA2PDCsLEZfpUGZcyoFRLSOjyGGK6wDy2/5kyDOWtf0S0UvtoyVq95OTSGIALjZ4k2q/ag==", + "dev": true, + "requires": { + "@vue/compiler-dom": "3.2.26", + "@vue/shared": "3.2.26" + } + }, + "@vue/reactivity": { + "version": "3.2.26", + "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.2.26.tgz", + "integrity": "sha512-h38bxCZLW6oFJVDlCcAiUKFnXI8xP8d+eO0pcDxx+7dQfSPje2AO6M9S9QO6MrxQB7fGP0DH0dYQ8ksf6hrXKQ==", + "dev": true, + "requires": { + "@vue/shared": "3.2.26" + } + }, + "@vue/reactivity-transform": { + "version": "3.2.26", + "resolved": "https://registry.npmjs.org/@vue/reactivity-transform/-/reactivity-transform-3.2.26.tgz", + "integrity": "sha512-XKMyuCmzNA7nvFlYhdKwD78rcnmPb7q46uoR00zkX6yZrUmcCQ5OikiwUEVbvNhL5hBJuvbSO95jB5zkUon+eQ==", + "dev": true, + "requires": { + "@babel/parser": "^7.16.4", + "@vue/compiler-core": "3.2.26", + "@vue/shared": "3.2.26", + "estree-walker": "^2.0.2", + "magic-string": "^0.25.7" + }, + "dependencies": { + "magic-string": { + "version": "0.25.7", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.7.tgz", + "integrity": "sha512-4CrMT5DOHTDk4HYDlzmwu4FVCcIYI8gauveasrdCu2IKIFOJ3f0v/8MDGJCDL9oD2ppz/Av1b0Nj345H9M+XIA==", + "dev": true, + "requires": { + "sourcemap-codec": "^1.4.4" + } + } + } + }, + "@vue/runtime-core": { + "version": "3.2.26", + "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.2.26.tgz", + "integrity": "sha512-BcYi7qZ9Nn+CJDJrHQ6Zsmxei2hDW0L6AB4vPvUQGBm2fZyC0GXd/4nVbyA2ubmuhctD5RbYY8L+5GUJszv9mQ==", + "dev": true, + "requires": { + "@vue/reactivity": "3.2.26", + "@vue/shared": "3.2.26" + } + }, + "@vue/runtime-dom": { + "version": "3.2.26", + "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.2.26.tgz", + "integrity": "sha512-dY56UIiZI+gjc4e8JQBwAifljyexfVCkIAu/WX8snh8vSOt/gMSEGwPRcl2UpYpBYeyExV8WCbgvwWRNt9cHhQ==", + "dev": true, + "requires": { + "@vue/runtime-core": "3.2.26", + "@vue/shared": "3.2.26", + "csstype": "^2.6.8" + } + }, + "@vue/server-renderer": { + "version": "3.2.26", + "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.2.26.tgz", + "integrity": "sha512-Jp5SggDUvvUYSBIvYEhy76t4nr1vapY/FIFloWmQzn7UxqaHrrBpbxrqPcTrSgGrcaglj0VBp22BKJNre4aA1w==", + "dev": true, + "requires": { + "@vue/compiler-ssr": "3.2.26", + "@vue/shared": "3.2.26" + } + }, + "@vue/shared": { + "version": "3.2.26", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.2.26.tgz", + "integrity": "sha512-vPV6Cq+NIWbH5pZu+V+2QHE9y1qfuTq49uNWw4f7FDEeZaDU2H2cx5jcUZOAKW7qTrUS4k6qZPbMy1x4N96nbA==", + "dev": true + }, "acorn": { "version": "7.4.1", "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", @@ -17558,6 +18555,28 @@ "uri-js": "^4.2.2" } }, + "algoliasearch": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/algoliasearch/-/algoliasearch-4.12.0.tgz", + "integrity": "sha512-fZOMMm+F3Bi5M/MoFIz7hiuyCitJza0Hu+r8Wzz4LIQClC6YGMRq7kT6NNU1fSSoFDSeJIwMfedbbi5G9dJoVQ==", + "dev": true, + "requires": { + "@algolia/cache-browser-local-storage": "4.12.0", + "@algolia/cache-common": "4.12.0", + "@algolia/cache-in-memory": "4.12.0", + "@algolia/client-account": "4.12.0", + "@algolia/client-analytics": "4.12.0", + "@algolia/client-common": "4.12.0", + "@algolia/client-personalization": "4.12.0", + "@algolia/client-search": "4.12.0", + "@algolia/logger-common": "4.12.0", + "@algolia/logger-console": "4.12.0", + "@algolia/requester-browser-xhr": "4.12.0", + "@algolia/requester-common": "4.12.0", + "@algolia/requester-node-http": "4.12.0", + "@algolia/transporter": "4.12.0" + } + }, "ansi-align": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-2.0.0.tgz", @@ -18544,6 +19563,16 @@ "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", "dev": true }, + "bindings": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", + "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", + "dev": true, + "optional": true, + "requires": { + "file-uri-to-path": "1.0.0" + } + }, "bl": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/bl/-/bl-1.2.3.tgz", @@ -20318,6 +21347,12 @@ "css-tree": "1.0.0-alpha.29" } }, + "csstype": { + "version": "2.6.19", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.19.tgz", + "integrity": "sha512-ZVxXaNy28/k3kJg0Fou5MiYpp88j7H9hLZp8PDC3jV0WFjfH5E9xHb56L0W59cPbKbcHXeP4qyT8PrHp8t6LcQ==", + "dev": true + }, "d": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz", @@ -20826,196 +21861,70 @@ "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==", "dev": true }, - "es6-iterator": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", - "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=", - "dev": true, - "requires": { - "d": "1", - "es5-ext": "^0.10.35", - "es6-symbol": "^3.1.1" - } - }, - "es6-promise": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-2.3.0.tgz", - "integrity": "sha1-lu258v2wGZWCKyY92KratnSBgbw=", - "dev": true - }, - "es6-symbol": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz", - "integrity": "sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==", - "dev": true, - "requires": { - "d": "^1.0.1", - "ext": "^1.1.2" - } - }, - "es6-weak-map": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.3.tgz", - "integrity": "sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA==", - "dev": true, - "requires": { - "d": "1", - "es5-ext": "^0.10.46", - "es6-iterator": "^2.0.3", - "es6-symbol": "^3.1.1" - } - }, - "esbuild": { - "version": "0.14.11", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.14.11.tgz", - "integrity": "sha512-xZvPtVj6yecnDeFb3KjjCM6i7B5TCAQZT77kkW/CpXTMnd6VLnRPKrUB1XHI1pSq6a4Zcy3BGueQ8VljqjDGCg==", - "dev": true, - "requires": { - "esbuild-android-arm64": "0.14.11", - "esbuild-darwin-64": "0.14.11", - "esbuild-darwin-arm64": "0.14.11", - "esbuild-freebsd-64": "0.14.11", - "esbuild-freebsd-arm64": "0.14.11", - "esbuild-linux-32": "0.14.11", - "esbuild-linux-64": "0.14.11", - "esbuild-linux-arm": "0.14.11", - "esbuild-linux-arm64": "0.14.11", - "esbuild-linux-mips64le": "0.14.11", - "esbuild-linux-ppc64le": "0.14.11", - "esbuild-linux-s390x": "0.14.11", - "esbuild-netbsd-64": "0.14.11", - "esbuild-openbsd-64": "0.14.11", - "esbuild-sunos-64": "0.14.11", - "esbuild-windows-32": "0.14.11", - "esbuild-windows-64": "0.14.11", - "esbuild-windows-arm64": "0.14.11" - } - }, - "esbuild-android-arm64": { - "version": "0.14.11", - "resolved": "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.14.11.tgz", - "integrity": "sha512-6iHjgvMnC/SzDH8TefL+/3lgCjYWwAd1LixYfmz/TBPbDQlxcuSkX0yiQgcJB9k+ibZ54yjVXziIwGdlc+6WNw==", - "dev": true, - "optional": true - }, - "esbuild-darwin-64": { - "version": "0.14.11", - "resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.14.11.tgz", - "integrity": "sha512-olq84ikh6TiBcrs3FnM4eR5VPPlcJcdW8BnUz/lNoEWYifYQ+Po5DuYV1oz1CTFMw4k6bQIZl8T3yxL+ZT2uvQ==", - "dev": true, - "optional": true - }, - "esbuild-darwin-arm64": { - "version": "0.14.11", - "resolved": "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.11.tgz", - "integrity": "sha512-Jj0ieWLREPBYr/TZJrb2GFH8PVzDqiQWavo1pOFFShrcmHWDBDrlDxPzEZ67NF/Un3t6sNNmeI1TUS/fe1xARg==", - "dev": true, - "optional": true - }, - "esbuild-freebsd-64": { - "version": "0.14.11", - "resolved": "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.11.tgz", - "integrity": "sha512-C5sT3/XIztxxz/zwDjPRHyzj/NJFOnakAanXuyfLDwhwupKPd76/PPHHyJx6Po6NI6PomgVp/zi6GRB8PfrOTA==", - "dev": true, - "optional": true - }, - "esbuild-freebsd-arm64": { - "version": "0.14.11", - "resolved": "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.11.tgz", - "integrity": "sha512-y3Llu4wbs0bk4cwjsdAtVOesXb6JkdfZDLKMt+v1U3tOEPBdSu6w8796VTksJgPfqvpX22JmPLClls0h5p+L9w==", - "dev": true, - "optional": true - }, - "esbuild-linux-32": { - "version": "0.14.11", - "resolved": "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.14.11.tgz", - "integrity": "sha512-Cg3nVsxArjyLke9EuwictFF3Sva+UlDTwHIuIyx8qpxRYAOUTmxr2LzYrhHyTcGOleLGXUXYsnUVwKqnKAgkcg==", - "dev": true, - "optional": true - }, - "esbuild-linux-64": { - "version": "0.14.11", - "resolved": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.14.11.tgz", - "integrity": "sha512-oeR6dIrrojr8DKVrxtH3xl4eencmjsgI6kPkDCRIIFwv4p+K7ySviM85K66BN01oLjzthpUMvBVfWSJkBLeRbg==", - "dev": true, - "optional": true - }, - "esbuild-linux-arm": { - "version": "0.14.11", - "resolved": "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.14.11.tgz", - "integrity": "sha512-vcwskfD9g0tojux/ZaTJptJQU3a7YgTYsptK1y6LQ/rJmw7U5QJvboNawqM98Ca3ToYEucfCRGbl66OTNtp6KQ==", - "dev": true, - "optional": true - }, - "esbuild-linux-arm64": { - "version": "0.14.11", - "resolved": "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.11.tgz", - "integrity": "sha512-+e6ZCgTFQYZlmg2OqLkg1jHLYtkNDksxWDBWNtI4XG4WxuOCUErLqfEt9qWjvzK3XBcCzHImrajkUjO+rRkbMg==", - "dev": true, - "optional": true - }, - "esbuild-linux-mips64le": { - "version": "0.14.11", - "resolved": "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.11.tgz", - "integrity": "sha512-Rrs99L+p54vepmXIb87xTG6ukrQv+CzrM8eoeR+r/OFL2Rg8RlyEtCeshXJ2+Q66MXZOgPJaokXJZb9snq28bw==", + "es6-iterator": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", + "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=", "dev": true, - "optional": true + "requires": { + "d": "1", + "es5-ext": "^0.10.35", + "es6-symbol": "^3.1.1" + } }, - "esbuild-linux-ppc64le": { - "version": "0.14.11", - "resolved": "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.11.tgz", - "integrity": "sha512-JyzziGAI0D30Vyzt0HDihp4s1IUtJ3ssV2zx9O/c+U/dhUHVP2TmlYjzCfCr2Q6mwXTeloDcLS4qkyvJtYptdQ==", - "dev": true, - "optional": true + "es6-promise": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-2.3.0.tgz", + "integrity": "sha1-lu258v2wGZWCKyY92KratnSBgbw=", + "dev": true }, - "esbuild-linux-s390x": { - "version": "0.14.11", - "resolved": "https://registry.npmjs.org/esbuild-linux-s390x/-/esbuild-linux-s390x-0.14.11.tgz", - "integrity": "sha512-DoThrkzunZ1nfRGoDN6REwmo8ZZWHd2ztniPVIR5RMw/Il9wiWEYBahb8jnMzQaSOxBsGp0PbyJeVLTUatnlcw==", + "es6-symbol": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz", + "integrity": "sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==", "dev": true, - "optional": true + "requires": { + "d": "^1.0.1", + "ext": "^1.1.2" + } }, - "esbuild-netbsd-64": { - "version": "0.14.11", - "resolved": "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.11.tgz", - "integrity": "sha512-12luoRQz+6eihKYh1zjrw0CBa2aw3twIiHV/FAfjh2NEBDgJQOY4WCEUEN+Rgon7xmLh4XUxCQjnwrvf8zhACw==", + "es6-weak-map": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.3.tgz", + "integrity": "sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA==", "dev": true, - "optional": true + "requires": { + "d": "1", + "es5-ext": "^0.10.46", + "es6-iterator": "^2.0.3", + "es6-symbol": "^3.1.1" + } }, - "esbuild-node-loader": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/esbuild-node-loader/-/esbuild-node-loader-0.6.3.tgz", - "integrity": "sha512-Bf6o8SiMMh5+r20jsjAThNOtzo3t8Ye4Qdzz+twWHnxu28SdkGUr5ahq8iX0qbd+I9ge8sLNX7oQoNW1YzHlqA==", + "esbuild": { + "version": "0.13.15", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.13.15.tgz", + "integrity": "sha512-raCxt02HBKv8RJxE8vkTSCXGIyKHdEdGfUmiYb8wnabnaEmHzyW7DCHb5tEN0xU8ryqg5xw54mcwnYkC4x3AIw==", "dev": true, "requires": { - "esbuild": "^0.13.12" + "esbuild-android-arm64": "0.13.15", + "esbuild-darwin-64": "0.13.15", + "esbuild-darwin-arm64": "0.13.15", + "esbuild-freebsd-64": "0.13.15", + "esbuild-freebsd-arm64": "0.13.15", + "esbuild-linux-32": "0.13.15", + "esbuild-linux-64": "0.13.15", + "esbuild-linux-arm": "0.13.15", + "esbuild-linux-arm64": "0.13.15", + "esbuild-linux-mips64le": "0.13.15", + "esbuild-linux-ppc64le": "0.13.15", + "esbuild-netbsd-64": "0.13.15", + "esbuild-openbsd-64": "0.13.15", + "esbuild-sunos-64": "0.13.15", + "esbuild-windows-32": "0.13.15", + "esbuild-windows-64": "0.13.15", + "esbuild-windows-arm64": "0.13.15" }, "dependencies": { - "esbuild": { - "version": "0.13.15", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.13.15.tgz", - "integrity": "sha512-raCxt02HBKv8RJxE8vkTSCXGIyKHdEdGfUmiYb8wnabnaEmHzyW7DCHb5tEN0xU8ryqg5xw54mcwnYkC4x3AIw==", - "dev": true, - "requires": { - "esbuild-android-arm64": "0.13.15", - "esbuild-darwin-64": "0.13.15", - "esbuild-darwin-arm64": "0.13.15", - "esbuild-freebsd-64": "0.13.15", - "esbuild-freebsd-arm64": "0.13.15", - "esbuild-linux-32": "0.13.15", - "esbuild-linux-64": "0.13.15", - "esbuild-linux-arm": "0.13.15", - "esbuild-linux-arm64": "0.13.15", - "esbuild-linux-mips64le": "0.13.15", - "esbuild-linux-ppc64le": "0.13.15", - "esbuild-netbsd-64": "0.13.15", - "esbuild-openbsd-64": "0.13.15", - "esbuild-sunos-64": "0.13.15", - "esbuild-windows-32": "0.13.15", - "esbuild-windows-64": "0.13.15", - "esbuild-windows-arm64": "0.13.15" - } - }, "esbuild-android-arm64": { "version": "0.13.15", "resolved": "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.13.15.tgz", @@ -21023,13 +21932,6 @@ "dev": true, "optional": true }, - "esbuild-darwin-64": { - "version": "0.13.15", - "resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.13.15.tgz", - "integrity": "sha512-ihOQRGs2yyp7t5bArCwnvn2Atr6X4axqPpEdCFPVp7iUj4cVSdisgvEKdNR7yH3JDjW6aQDw40iQFoTqejqxvQ==", - "dev": true, - "optional": true - }, "esbuild-darwin-arm64": { "version": "0.13.15", "resolved": "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.13.15.tgz", @@ -21137,6 +22039,106 @@ } } }, + "esbuild-android-arm64": { + "version": "0.14.11", + "resolved": "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.14.11.tgz", + "integrity": "sha512-6iHjgvMnC/SzDH8TefL+/3lgCjYWwAd1LixYfmz/TBPbDQlxcuSkX0yiQgcJB9k+ibZ54yjVXziIwGdlc+6WNw==", + "dev": true, + "optional": true + }, + "esbuild-darwin-64": { + "version": "0.13.15", + "resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.13.15.tgz", + "integrity": "sha512-ihOQRGs2yyp7t5bArCwnvn2Atr6X4axqPpEdCFPVp7iUj4cVSdisgvEKdNR7yH3JDjW6aQDw40iQFoTqejqxvQ==", + "dev": true, + "optional": true + }, + "esbuild-darwin-arm64": { + "version": "0.14.11", + "resolved": "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.11.tgz", + "integrity": "sha512-Jj0ieWLREPBYr/TZJrb2GFH8PVzDqiQWavo1pOFFShrcmHWDBDrlDxPzEZ67NF/Un3t6sNNmeI1TUS/fe1xARg==", + "dev": true, + "optional": true + }, + "esbuild-freebsd-64": { + "version": "0.14.11", + "resolved": "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.11.tgz", + "integrity": "sha512-C5sT3/XIztxxz/zwDjPRHyzj/NJFOnakAanXuyfLDwhwupKPd76/PPHHyJx6Po6NI6PomgVp/zi6GRB8PfrOTA==", + "dev": true, + "optional": true + }, + "esbuild-freebsd-arm64": { + "version": "0.14.11", + "resolved": "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.11.tgz", + "integrity": "sha512-y3Llu4wbs0bk4cwjsdAtVOesXb6JkdfZDLKMt+v1U3tOEPBdSu6w8796VTksJgPfqvpX22JmPLClls0h5p+L9w==", + "dev": true, + "optional": true + }, + "esbuild-linux-32": { + "version": "0.14.11", + "resolved": "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.14.11.tgz", + "integrity": "sha512-Cg3nVsxArjyLke9EuwictFF3Sva+UlDTwHIuIyx8qpxRYAOUTmxr2LzYrhHyTcGOleLGXUXYsnUVwKqnKAgkcg==", + "dev": true, + "optional": true + }, + "esbuild-linux-64": { + "version": "0.14.11", + "resolved": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.14.11.tgz", + "integrity": "sha512-oeR6dIrrojr8DKVrxtH3xl4eencmjsgI6kPkDCRIIFwv4p+K7ySviM85K66BN01oLjzthpUMvBVfWSJkBLeRbg==", + "dev": true, + "optional": true + }, + "esbuild-linux-arm": { + "version": "0.14.11", + "resolved": "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.14.11.tgz", + "integrity": "sha512-vcwskfD9g0tojux/ZaTJptJQU3a7YgTYsptK1y6LQ/rJmw7U5QJvboNawqM98Ca3ToYEucfCRGbl66OTNtp6KQ==", + "dev": true, + "optional": true + }, + "esbuild-linux-arm64": { + "version": "0.14.11", + "resolved": "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.11.tgz", + "integrity": "sha512-+e6ZCgTFQYZlmg2OqLkg1jHLYtkNDksxWDBWNtI4XG4WxuOCUErLqfEt9qWjvzK3XBcCzHImrajkUjO+rRkbMg==", + "dev": true, + "optional": true + }, + "esbuild-linux-mips64le": { + "version": "0.14.11", + "resolved": "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.11.tgz", + "integrity": "sha512-Rrs99L+p54vepmXIb87xTG6ukrQv+CzrM8eoeR+r/OFL2Rg8RlyEtCeshXJ2+Q66MXZOgPJaokXJZb9snq28bw==", + "dev": true, + "optional": true + }, + "esbuild-linux-ppc64le": { + "version": "0.14.11", + "resolved": "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.11.tgz", + "integrity": "sha512-JyzziGAI0D30Vyzt0HDihp4s1IUtJ3ssV2zx9O/c+U/dhUHVP2TmlYjzCfCr2Q6mwXTeloDcLS4qkyvJtYptdQ==", + "dev": true, + "optional": true + }, + "esbuild-linux-s390x": { + "version": "0.14.11", + "resolved": "https://registry.npmjs.org/esbuild-linux-s390x/-/esbuild-linux-s390x-0.14.11.tgz", + "integrity": "sha512-DoThrkzunZ1nfRGoDN6REwmo8ZZWHd2ztniPVIR5RMw/Il9wiWEYBahb8jnMzQaSOxBsGp0PbyJeVLTUatnlcw==", + "dev": true, + "optional": true + }, + "esbuild-netbsd-64": { + "version": "0.14.11", + "resolved": "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.11.tgz", + "integrity": "sha512-12luoRQz+6eihKYh1zjrw0CBa2aw3twIiHV/FAfjh2NEBDgJQOY4WCEUEN+Rgon7xmLh4XUxCQjnwrvf8zhACw==", + "dev": true, + "optional": true + }, + "esbuild-node-loader": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/esbuild-node-loader/-/esbuild-node-loader-0.6.3.tgz", + "integrity": "sha512-Bf6o8SiMMh5+r20jsjAThNOtzo3t8Ye4Qdzz+twWHnxu28SdkGUr5ahq8iX0qbd+I9ge8sLNX7oQoNW1YzHlqA==", + "dev": true, + "requires": { + "esbuild": "^0.13.12" + } + }, "esbuild-openbsd-64": { "version": "0.14.11", "resolved": "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.11.tgz", @@ -21285,6 +22287,39 @@ "which": "^2.0.1" } }, + "esbuild": { + "version": "0.14.11", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.14.11.tgz", + "integrity": "sha512-xZvPtVj6yecnDeFb3KjjCM6i7B5TCAQZT77kkW/CpXTMnd6VLnRPKrUB1XHI1pSq6a4Zcy3BGueQ8VljqjDGCg==", + "dev": true, + "requires": { + "esbuild-android-arm64": "0.14.11", + "esbuild-darwin-64": "0.14.11", + "esbuild-darwin-arm64": "0.14.11", + "esbuild-freebsd-64": "0.14.11", + "esbuild-freebsd-arm64": "0.14.11", + "esbuild-linux-32": "0.14.11", + "esbuild-linux-64": "0.14.11", + "esbuild-linux-arm": "0.14.11", + "esbuild-linux-arm64": "0.14.11", + "esbuild-linux-mips64le": "0.14.11", + "esbuild-linux-ppc64le": "0.14.11", + "esbuild-linux-s390x": "0.14.11", + "esbuild-netbsd-64": "0.14.11", + "esbuild-openbsd-64": "0.14.11", + "esbuild-sunos-64": "0.14.11", + "esbuild-windows-32": "0.14.11", + "esbuild-windows-64": "0.14.11", + "esbuild-windows-arm64": "0.14.11" + } + }, + "esbuild-darwin-64": { + "version": "0.14.11", + "resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.14.11.tgz", + "integrity": "sha512-olq84ikh6TiBcrs3FnM4eR5VPPlcJcdW8BnUz/lNoEWYifYQ+Po5DuYV1oz1CTFMw4k6bQIZl8T3yxL+ZT2uvQ==", + "dev": true, + "optional": true + }, "path-key": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", @@ -21374,6 +22409,12 @@ "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", "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 + }, "esutils": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", @@ -21816,6 +22857,13 @@ "flat-cache": "^2.0.1" } }, + "file-uri-to-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", + "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", + "dev": true, + "optional": true + }, "filename-regex": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz", @@ -22064,6 +23112,17 @@ "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", "dev": true }, + "fsevents": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", + "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", + "dev": true, + "optional": true, + "requires": { + "bindings": "^1.5.0", + "nan": "^2.12.1" + } + }, "function-bind": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", @@ -22618,10 +23677,10 @@ } } }, - "google-closure-compiler-linux": { + "google-closure-compiler-osx": { "version": "20181008.0.0", - "resolved": "https://registry.npmjs.org/google-closure-compiler-linux/-/google-closure-compiler-linux-20181008.0.0.tgz", - "integrity": "sha512-k8njGfH2uzWJiRPPvUxM7MJB28gPrf4kI2bbuiF0gJk/1arXcWCPGjLD6pzCU0UylMy52MUXLgsIpRorqf2brw==", + "resolved": "https://registry.npmjs.org/google-closure-compiler-osx/-/google-closure-compiler-osx-20181008.0.0.tgz", + "integrity": "sha512-xzf/yH/4MXdb6GbP84iHnpcVCOPBbH0gMVOs0JhR/KbrQh+DlJU+Y8Z/DQzTkw9HgD650R2/WZmBknURyg9OTw==", "dev": true, "optional": true }, @@ -25918,6 +26977,13 @@ "to-regex-range": "^5.0.1" } }, + "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 + }, "get-caller-file": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", @@ -26165,6 +27231,13 @@ "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", "dev": true }, + "nan": { + "version": "2.15.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.15.0.tgz", + "integrity": "sha512-8ZtvEnA2c5aYCZYd1cvgdnU6cqwixRoYg70xPLWUws5ORTa/lnw+u4amixRS/Ac5U5mQVgp9pnlSUnbNWFaWZQ==", + "dev": true, + "optional": true + }, "nanoid": { "version": "3.1.20", "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.20.tgz", @@ -27483,6 +28556,12 @@ } } }, + "preact": { + "version": "10.6.4", + "resolved": "https://registry.npmjs.org/preact/-/preact-10.6.4.tgz", + "integrity": "sha512-WyosM7pxGcndU8hY0OQlLd54tOU+qmG45QXj2dAYrL11HoyU/EzOSTlpJsirbBr1QW7lICxSsVJJmcmUglovHQ==", + "dev": true + }, "prelude-ls": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", @@ -27513,6 +28592,12 @@ "integrity": "sha1-t+PqQkNaTJsnWdmeDyAesZWALuE=", "dev": true }, + "prismjs": { + "version": "1.26.0", + "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.26.0.tgz", + "integrity": "sha512-HUoH9C5Z3jKkl3UunCyiD5jwk0+Hz0fIgQ2nbwU2Oo/ceuTAQAg+pPVnfdt2TJWRVLcxKh9iuoYDUSc8clb5UQ==", + "dev": true + }, "private": { "version": "0.1.8", "resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz", @@ -28163,6 +29248,24 @@ "inherits": "^2.0.1" } }, + "rollup": { + "version": "2.63.0", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.63.0.tgz", + "integrity": "sha512-nps0idjmD+NXl6OREfyYXMn/dar3WGcyKn+KBzPdaLecub3x/LrId0wUcthcr8oZUAcZAR8NKcfGGFlNgGL1kQ==", + "dev": true, + "requires": { + "fsevents": "~2.3.2" + }, + "dependencies": { + "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 + } + } + }, "run-async": { "version": "2.4.1", "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", @@ -28560,6 +29663,12 @@ "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", "dev": true }, + "source-map-js": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.1.tgz", + "integrity": "sha512-4+TN2b3tqOCd/kaGRJ/sTYA0tR0mdXx26ipdolxcwtJVqEnqNYvlCAt1q3ypy4QMlYus+Zh34RNtYLoq2oQ4IA==", + "dev": true + }, "source-map-resolve": { "version": "0.5.3", "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", @@ -30261,6 +31370,59 @@ } } }, + "vite": { + "version": "2.7.10", + "resolved": "https://registry.npmjs.org/vite/-/vite-2.7.10.tgz", + "integrity": "sha512-KEY96ntXUid1/xJihJbgmLZx7QSC2D4Tui0FdS0Old5OokYzFclcofhtxtjDdGOk/fFpPbHv9yw88+rB93Tb8w==", + "dev": true, + "requires": { + "esbuild": "^0.13.12", + "fsevents": "~2.3.2", + "postcss": "^8.4.5", + "resolve": "^1.20.0", + "rollup": "^2.59.0" + }, + "dependencies": { + "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 + }, + "nanoid": { + "version": "3.1.30", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.30.tgz", + "integrity": "sha512-zJpuPDwOv8D2zq2WRoMe1HsfZthVewpel9CAvTfc/2mBD1uUT/agc5f7GHGWXlYkFvi1mVxe4IjvP2HNrop7nQ==", + "dev": true + }, + "postcss": { + "version": "8.4.5", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.5.tgz", + "integrity": "sha512-jBDboWM8qpaqwkMwItqTQTiFikhs/67OYVvblFFTM7MrZjt6yMKd6r2kgXizEbTTljacm4NldIlZnhbjr84QYg==", + "dev": true, + "requires": { + "nanoid": "^3.1.30", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.1" + } + } + } + }, + "vitepress": { + "version": "0.21.4", + "resolved": "https://registry.npmjs.org/vitepress/-/vitepress-0.21.4.tgz", + "integrity": "sha512-r7zAOp65T3/3tX6tD1QfQaqHnPzr2Xkq0Cw8gjXDk2MGZ7e3BMwow1wRn/k1D2lBZ2kEE2vQCC2/zfoCzrDRuw==", + "dev": true, + "requires": { + "@docsearch/css": "^3.0.0-alpha.41", + "@docsearch/js": "^3.0.0-alpha.41", + "@vitejs/plugin-vue": "^2.0.0", + "prismjs": "^1.25.0", + "vite": "^2.7.0", + "vue": "^3.2.26" + } + }, "vlq": { "version": "0.2.3", "resolved": "https://registry.npmjs.org/vlq/-/vlq-0.2.3.tgz", @@ -30273,6 +31435,19 @@ "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==", "dev": true }, + "vue": { + "version": "3.2.26", + "resolved": "https://registry.npmjs.org/vue/-/vue-3.2.26.tgz", + "integrity": "sha512-KD4lULmskL5cCsEkfhERVRIOEDrfEL9CwAsLYpzptOGjaGFNWo3BQ9g8MAb7RaIO71rmVOziZ/uEN/rHwcUIhg==", + "dev": true, + "requires": { + "@vue/compiler-dom": "3.2.26", + "@vue/compiler-sfc": "3.2.26", + "@vue/runtime-dom": "3.2.26", + "@vue/server-renderer": "3.2.26", + "@vue/shared": "3.2.26" + } + }, "wcwidth": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", diff --git a/package.json b/package.json index aa451aa30c2..ccbffc455f7 100644 --- a/package.json +++ b/package.json @@ -12,7 +12,10 @@ "format": "prettier --write .", "lint": "echo 'TODO eslint'", "test": "node_modules/.bin/mocha test/*.*.js", - "coverage": "nyc report --reporter=text-lcov | coveralls" + "coverage": "nyc report --reporter=text-lcov | coveralls", + "docs:dev": "vitepress dev docs", + "docs:build": "vitepress build docs", + "docs:serve": "vitepress serve docs" }, "simple-git-hooks": { "pre-commit": "npx lint-staged --concurrent false", @@ -78,7 +81,8 @@ "through2": "2.0.0", "vinyl-buffer": "^1.0.1", "vinyl-source-stream": "^2.0.0", - "vinyl-transform": "^1.0.0" + "vinyl-transform": "^1.0.0", + "vitepress": "^0.21.4" }, "license": "MIT", "main": "index.js"