From c27c26e2ae1377b2879662502dce1538470c9a21 Mon Sep 17 00:00:00 2001 From: andrzejewsky Date: Fri, 5 Mar 2021 12:33:25 +0100 Subject: [PATCH 1/8] middleware docs --- packages/core/docs/.vuepress/config.js | 21 ++- .../docs/advanced/calling-platform-api.md | 28 ++++ .../core/docs/advanced/server-middleware.md | 138 ++++++++++++++++++ packages/core/docs/general/key-concepts.md | 8 + packages/core/docs/guide/composables.md | 44 ++++++ .../core/docs/images/middleware-diagram.jpg | Bin 0 -> 97033 bytes 6 files changed, 237 insertions(+), 2 deletions(-) create mode 100644 packages/core/docs/advanced/calling-platform-api.md create mode 100644 packages/core/docs/advanced/server-middleware.md create mode 100644 packages/core/docs/images/middleware-diagram.jpg diff --git a/packages/core/docs/.vuepress/config.js b/packages/core/docs/.vuepress/config.js index f63157a2b80..688530687d0 100644 --- a/packages/core/docs/.vuepress/config.js +++ b/packages/core/docs/.vuepress/config.js @@ -5,6 +5,21 @@ module.exports = { head: [ ['link', { rel: 'icon', href: '/favicon.png' }] ], + configureWebpack: (config) => { + config.module.rules = config.module.rules.map(rule => ({ + ...rule, + use: rule.use && rule.use.map(useRule => ({ + ...useRule, + options: useRule.loader === 'url-loader' ? + /** + Hack for loading images properly. + ref: https://github.com/vuejs/vue-loader/issues/1612#issuecomment-559366730 + */ + { ...useRule.options, esModule: false } : + useRule.options + })) + })) + }, themeConfig: { logo: 'https://camo.githubusercontent.com/48c886ac0703e3a46bc0ec963e20f126337229fc/68747470733a2f2f643968687267346d6e767a6f772e636c6f756466726f6e742e6e65742f7777772e76756573746f726566726f6e742e696f2f32383062313964302d6c6f676f2d76735f3062793032633062793032633030303030302e6a7067', nav: [ @@ -164,12 +179,14 @@ module.exports = { title: 'Advanced [WIP]', collapsable: false, children: [ + ['/advanced/architecture', 'Architecture'], ['/advanced/context', 'Application Context'], + ['/advanced/calling-platform-api', 'Calling Platform Api'], + ['/advanced/server-middleware', 'Server Middleware'], ['/advanced/internationalization', 'Internationalization'], ['/advanced/performance', 'Performance'], ['/advanced/ssr-cache', 'SSR Cache'], - ['/advanced/logging', 'Logging'], - ['/advanced/architecture', 'Architecture'] + ['/advanced/logging', 'Logging'] ] }, { diff --git a/packages/core/docs/advanced/calling-platform-api.md b/packages/core/docs/advanced/calling-platform-api.md new file mode 100644 index 00000000000..920c7bc6dc8 --- /dev/null +++ b/packages/core/docs/advanced/calling-platform-api.md @@ -0,0 +1,28 @@ +# Calling platform API + +The Vue Storefront has its own way to communicate with other platform APIs. First of all, each integration implements a API-client that defines a interaction and connection with given platform. Each time you make a call to the external platform, you actually use API-client beneach. We use that in all of integrations and also you can reach the API-client in your project if it's needed. + +## What is an integration API Client? + +Basically, API-client is a sort of SDK for given platform you integrate with. It has set of functions, each is dedicated for one action, endpoint, feature or something else. It's aiming to provide a abstraction for the developers when it comes to making calls. + +## Using useVSFContext to access integration API Client methods + +To access API-client functions, you can use composable function `useVSFContext` that reads from the application context every possible integration so you can easily access it. + +```ts +const { $ct } = useVSFContext(); + +$ct.api.getProduct({ id: 1 }) +``` + +In the example above we have accessed the API-client for commercetools (Each integration has dedicated tagname, look at [context docs](/advanced/context)) and we called function `getProduct`. + + +::: tip +Remember that API-client you are accessing from the front-end side is only a stub. It's making a call to our middleware where the real API-client is being called. For more info, jump to the [server middleware](/advanced/server-middleware) section. +::: + +## Extending API Client + +Sometimes, it's necessary to override the original behavior either API-client or even an entire request that comes from an external platform. The Vue Storefront also provides possiblity to do this by using [middleware extensions](/advanced/server-middleware) \ No newline at end of file diff --git a/packages/core/docs/advanced/server-middleware.md b/packages/core/docs/advanced/server-middleware.md new file mode 100644 index 00000000000..d53afdf316d --- /dev/null +++ b/packages/core/docs/advanced/server-middleware.md @@ -0,0 +1,138 @@ +# Server middleware + +The server middleware is a part of Vue Storefront networking. That's the way of making conenctions with eCommerce platform and also a solution to reduce bundle size, number of calls, credentials sharing, extensibility handling and more. + +## What is Vue Storefront Middleware and why we need it? + +The Vue Storefront middleware is a express.js proxy that taking the rquests from the front-end, translate them to the certaing integration, and call related API-client. + +We have implemented it for variety of reasons. + +First of all it allows us to provide a prover way of extensibility - As developer you have controll of the requests and the responses in the given platform and you can write an extension to add something extra in you project. + +A front-end application sometimes need an additional API endpoint - that's also possible since you have server written in express. + +All of credentials for your platform are stored only on the backend side, there are no shared keys in the browser. + +## How it works (in a nutshell) + +The way of how it works represents the following diagram: + +
+ Middleware Diagram +
+ +In the Vue Storefront platform, you always have a few compoenents: Core, UI, Middleware and integration part: composables, API-client (and sometimes UI). As we mentioned before, API-client is being called only on the middleware, but you still can access it on the front-end side - how is that possible? + +When you access a API-client on the front-end side, you are accessing actually a stub, instead of real API-client instance. This stub makes a call to the middleware (Remote Procedure Call), and ask for loading a specific integration, and executing specific function. + +Middlware recognises this by the tagname of a integration and the function name that needs to be called. + +When the middleware has loaded an API-client (integration) it proceeds to create a connection and make a requested API-client function call. Within this whole process, all of extensions are being executed. Once the middleware has finished its job, the response backs to the front-end side as if it was transferred using a direct connection. + + +## Configuration + +When it comes to configuration, you only need to tell middleware what the integrations you have along with their credentials. There is dedicated config to do that called `middleware.config.js` that contains a section with integrations definition (`integrations`). + +Each entry under this section starts with a tag name of given integration, and contains an object with a following fields: + +- `location` - points to the package of the API-client, related with given integration (server entrypoint) +- `configuration` - contains a configuration of given integration, such as credentials and others +- `extensions` - a function that returns a extensions (jump to the next section) +- `customQueries` - section that contains custom queries (graphql only) + +```js +module.exports = { + integrations: { + : { + location: '@/server', + configuration: {} + extensions: (extensions) => extensions, + customQeries: {} + } + } +}; +``` + +## Extending Middleware + +A middleware allows you to inject into lifecycle of entire network flow, starting with configuring a connection and ending with final response. To use that things, we created a extension feature. + +You can define as many extensions as you want. Remember they are always correlated with a specyfic API-client (integration). How they look like? Each extension has the followin structure: + +```js +const extension = { + name: 'extension-name', + extendApiMethods: { + getProduct: async () => { /* ... */ } + }, + hooks: (req, res) => { + return { + beforeCreate: ({ configuration }) => configuration, + afterCreate: ({ configuration }) => configuration, + beforeCall: ({ configuration, callName, args }) => args, + afterCall: ({ configuration, callName, args, response }) => response + } + } +} +``` + +- `name` - defines the unique name of a extension +- `extendApiMethods` - overides the original functions from API-client +- `hooks` - defines a lifecycle hooks of API-client +- `hooks:beforeCreate` - called before API-client creates a connection, takes the given configuration as argument and must return the configuration. In this place you can attach something else to the configuration or even change it. +- `hooks:afterCreate` - Similar to the previous one, but called after connection has been created. It also returns a configuration and you can change it. +- `hooks:beforeCall` - Triggered before each API-client function. We have access to the configuraton, function name and its arguments. This function must return the arguments and based on the input parameters we can change it. +- `hooks:afterCall` - Triggered after each API-client function.We have access to the configuraton, function name and its arguments. This function must return the response and based on the input parameters we can attach something to it. + + +To register a created extension, we have to add it do the middleware config file: + +```js +module.exports = { + integrations: { + : { + location: '@/server', + configuration: {} + extensions: (extensions) => [ + ...extensions, + { + name: 'our-extension' + hooks: () => { /* ... */} + } + ], + customQeries: {} + } + } +}; +``` + +## Separating middleware from Nuxt + +By default, Vue Storefront middleware is running withing the Nuxt.js process. Sometimes there is a need to disconnect it from the app, and run as a separate instance, and independent process. + +Since is the real express.js application, you can do this, by creating file: + +```js +const { createServer } = require('@vue-storefront/middleware'); +const { integrations } = require('./middleware.config'); + +const app = createServer({ integrations }); + +app.listen(8181, () => { + console.log('Middleware started'); +}); +``` + +Now, when you run this using node, your middleware should work separetly. + +Additionally, you need to remove middleware module entry from the nuxt.config.js and configure the domain, where yor middleware is settled. + +```js +export default { + publicRuntimeConfig: { + middlewareUrl: 'https://api.commerce.com' + } +} +``` \ No newline at end of file diff --git a/packages/core/docs/general/key-concepts.md b/packages/core/docs/general/key-concepts.md index 78aaf894faf..077af4214ee 100644 --- a/packages/core/docs/general/key-concepts.md +++ b/packages/core/docs/general/key-concepts.md @@ -90,6 +90,14 @@ const { $ct } = useVSFContext() You can read more about Vue Storefront Context [here](/advanced/context) + +## Middleware + +When it comes to networking layer, Vue Storefront uses a middleware that's is a bridge between front-end and othe backends (eCommerce or 3rd party services). The front-end always calls middleware that is redirecting requests to correlated destination. It allows developers to implement a custom logic that injects into lifecycle of the requests or even create a custom API endpoints if it's needed. + +You can read more about Vue Storefront Middleware [here](/advanced/server-middleware) + + ## Integrations Even though high-level APIs are the same for all Vue Storefront integrations they're different on the low level (data formats, search params). Check the docs of a specific platform on the left side under "eCommerce integrations" tab to learn about them. diff --git a/packages/core/docs/guide/composables.md b/packages/core/docs/guide/composables.md index 66d3bce6926..2c83619fc5e 100644 --- a/packages/core/docs/guide/composables.md +++ b/packages/core/docs/guide/composables.md @@ -348,3 +348,47 @@ watch(error, (error, prevError) => { In this example, we are using `useUiNotification` - a composable that handles notifications state. You can read more about it in the API reference. [//]: # 'TODO: This should be added to API reference' + +### How to customize graphql queries? + +If the integration you are currently using has GraphQL api, you may need to change the default query that is being send to fetch the data. That's quite common case so Vue Storefront also provides that ability. + +Since the comminication with an API goes over the our middleware, all of the queries also are defined there. + +To customize or even totally override the original (default) queries you need to follow two steps. + +Firstly, you need to use a dedicated parameter: `customQuery` that tells the app, what to do with a query. +This parameter is an object that has name of the queries as a keys, and name of the queries function under the values. + + +```ts +const { search } = useProduct(); + +search({ customQuery: { products: 'my-products-query' } }); +``` + +In example above, we are changing `products` query, and our function that will take care of this overriding is `my-products-query`. As second step we need to define that function. + + +Each definition of query function we can find in the `middleware.config.js`. Therefore, this is the place where we define `my-products-query`: + +```js +module.exports = { + integrations: { + ct: { + location: '@vue-storefront/commercetools-api/server', + configuration: { /* ... */ }, + customQueries: { + 'my-products-query': ({ query, variables }) => { + + variables.locale = 'en' + + return { query, variables } + } + } + } + } +}; +``` + +The custom query function always has in the arguments the default query and default variables and must return the query and its variavles as well. In the body you can do anything you want with those parameters - you can override them or even change to the new ones. \ No newline at end of file diff --git a/packages/core/docs/images/middleware-diagram.jpg b/packages/core/docs/images/middleware-diagram.jpg new file mode 100644 index 0000000000000000000000000000000000000000..e073e46382e4c3bd4f57fb52a381c57e847d13a0 GIT binary patch literal 97033 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 UfcY0cr2o_Xf3FcZ_xt4k0+6XXy#N3J literal 0 HcmV?d00001 From 0ed45b4b2b4504614e841c5d92aa8513d86d2797 Mon Sep 17 00:00:00 2001 From: andrzejewsky Date: Fri, 5 Mar 2021 12:47:58 +0100 Subject: [PATCH 2/8] typos --- .../docs/advanced/calling-platform-api.md | 10 +- .../core/docs/advanced/server-middleware.md | 46 +- packages/core/docs/general/key-concepts.md | 4 +- yarn.lock | 1619 +++++++++++++++-- 4 files changed, 1519 insertions(+), 160 deletions(-) diff --git a/packages/core/docs/advanced/calling-platform-api.md b/packages/core/docs/advanced/calling-platform-api.md index 920c7bc6dc8..d351b399397 100644 --- a/packages/core/docs/advanced/calling-platform-api.md +++ b/packages/core/docs/advanced/calling-platform-api.md @@ -1,14 +1,14 @@ # Calling platform API -The Vue Storefront has its own way to communicate with other platform APIs. First of all, each integration implements a API-client that defines a interaction and connection with given platform. Each time you make a call to the external platform, you actually use API-client beneach. We use that in all of integrations and also you can reach the API-client in your project if it's needed. +The Vue Storefront has its own way to communicate with other platform APIs. First of all, each integration implements an API-client that defines an interaction and connection with a given platform. Each time you make a call to the external platform, you actually use API-client beneath. We use that in all of the integrations and also you can reach the API-client in your project if it's needed. ## What is an integration API Client? -Basically, API-client is a sort of SDK for given platform you integrate with. It has set of functions, each is dedicated for one action, endpoint, feature or something else. It's aiming to provide a abstraction for the developers when it comes to making calls. +Basically, API-client is a sort of SDK for a given platform you integrate with. It has a set of functions, each is dedicated to one action, endpoint, feature, or something else. It's aiming to provide an abstraction for the developers when it comes to making calls. ## Using useVSFContext to access integration API Client methods -To access API-client functions, you can use composable function `useVSFContext` that reads from the application context every possible integration so you can easily access it. +To access API-client functions, you can use the composable function `useVSFContext` that reads from the application context every possible integration so you can easily access it. ```ts const { $ct } = useVSFContext(); @@ -16,7 +16,7 @@ const { $ct } = useVSFContext(); $ct.api.getProduct({ id: 1 }) ``` -In the example above we have accessed the API-client for commercetools (Each integration has dedicated tagname, look at [context docs](/advanced/context)) and we called function `getProduct`. +In the example above we have accessed the API-client for commercetools (Each integration has dedicated tag name, look at [context docs](/advanced/context)) and we called function `getProduct`. ::: tip @@ -25,4 +25,4 @@ Remember that API-client you are accessing from the front-end side is only a stu ## Extending API Client -Sometimes, it's necessary to override the original behavior either API-client or even an entire request that comes from an external platform. The Vue Storefront also provides possiblity to do this by using [middleware extensions](/advanced/server-middleware) \ No newline at end of file +Sometimes, it's necessary to override the original behavior either API-client or even an entire request that comes from an external platform. The Vue Storefront also provides possibility to do this by using [middleware extensions](/advanced/server-middleware) \ No newline at end of file diff --git a/packages/core/docs/advanced/server-middleware.md b/packages/core/docs/advanced/server-middleware.md index d53afdf316d..f2e9b70f915 100644 --- a/packages/core/docs/advanced/server-middleware.md +++ b/packages/core/docs/advanced/server-middleware.md @@ -1,18 +1,18 @@ # Server middleware -The server middleware is a part of Vue Storefront networking. That's the way of making conenctions with eCommerce platform and also a solution to reduce bundle size, number of calls, credentials sharing, extensibility handling and more. +The server middleware is a part of Vue Storefront networking. That's the way of making connections with the eCommerce platform and also a solution to reduce bundle size, number of calls, credentials sharing, extensibility handling, and more. ## What is Vue Storefront Middleware and why we need it? -The Vue Storefront middleware is a express.js proxy that taking the rquests from the front-end, translate them to the certaing integration, and call related API-client. +The Vue Storefront middleware is an express.js proxy that taking the requests from the front-end translates them to a certain integration and call-related API-client. -We have implemented it for variety of reasons. +We have implemented it for a variety of reasons. -First of all it allows us to provide a prover way of extensibility - As developer you have controll of the requests and the responses in the given platform and you can write an extension to add something extra in you project. +First of all, it allows us to provide a prover way of extensibility - As a developer, you have control of the requests and the responses in the given platform and you can write an extension to add something extra in your project. -A front-end application sometimes need an additional API endpoint - that's also possible since you have server written in express. +A front-end application sometimes needs an additional API endpoint - that's also possible since you have a server written in express.js. -All of credentials for your platform are stored only on the backend side, there are no shared keys in the browser. +All credentials for your platform are stored only on the backend side, there are no shared keys in the browser. ## How it works (in a nutshell) @@ -22,22 +22,22 @@ The way of how it works represents the following diagram: Middleware Diagram -In the Vue Storefront platform, you always have a few compoenents: Core, UI, Middleware and integration part: composables, API-client (and sometimes UI). As we mentioned before, API-client is being called only on the middleware, but you still can access it on the front-end side - how is that possible? +In the Vue Storefront platform, you always have a few components: Core, UI, Middleware, and integration part: composables, API-client (and sometimes UI). As we mentioned before, API-client is being called only on the middleware, but you still can access it on the front-end side - how is that possible? -When you access a API-client on the front-end side, you are accessing actually a stub, instead of real API-client instance. This stub makes a call to the middleware (Remote Procedure Call), and ask for loading a specific integration, and executing specific function. +When you access an API-client on the front-end side, you are accessing actually a stub, instead of a real API-client instance. This stub makes a call to the middleware (Remote Procedure Call), and ask for loading a specific integration, and executing specific function. -Middlware recognises this by the tagname of a integration and the function name that needs to be called. +Middleware recognizes this by the tag name of integration and the function name that needs to be called. -When the middleware has loaded an API-client (integration) it proceeds to create a connection and make a requested API-client function call. Within this whole process, all of extensions are being executed. Once the middleware has finished its job, the response backs to the front-end side as if it was transferred using a direct connection. +When the middleware has loaded an API-client (integration) it proceeds to create a connection and make a requested API-client function call. Within this whole process, all of the extensions are being executed. Once the middleware has finished its job, the response backs to the front-end side as if it was transferred using a direct connection. ## Configuration -When it comes to configuration, you only need to tell middleware what the integrations you have along with their credentials. There is dedicated config to do that called `middleware.config.js` that contains a section with integrations definition (`integrations`). +When it comes to configuration, you only need to tell middleware what the integrations you have along with their credentials. There is a dedicated config to do that called `middleware.config.js` that contains a section with integrations definition (`integrations`). -Each entry under this section starts with a tag name of given integration, and contains an object with a following fields: +Each entry under this section starts with a tag name of given integration, and contains an object with the following fields: -- `location` - points to the package of the API-client, related with given integration (server entrypoint) +- `location` - points to the package of the API-client, related to given integration (server entry point) - `configuration` - contains a configuration of given integration, such as credentials and others - `extensions` - a function that returns a extensions (jump to the next section) - `customQueries` - section that contains custom queries (graphql only) @@ -57,7 +57,7 @@ module.exports = { ## Extending Middleware -A middleware allows you to inject into lifecycle of entire network flow, starting with configuring a connection and ending with final response. To use that things, we created a extension feature. +Middleware allows you to inject into the lifecycle of the entire network flow, starting with configuring a connection and ending with a final response. To use those things, we created an extension feature. You can define as many extensions as you want. Remember they are always correlated with a specyfic API-client (integration). How they look like? Each extension has the followin structure: @@ -78,13 +78,13 @@ const extension = { } ``` -- `name` - defines the unique name of a extension +- `name` - defines the unique name of an extension - `extendApiMethods` - overides the original functions from API-client -- `hooks` - defines a lifecycle hooks of API-client -- `hooks:beforeCreate` - called before API-client creates a connection, takes the given configuration as argument and must return the configuration. In this place you can attach something else to the configuration or even change it. -- `hooks:afterCreate` - Similar to the previous one, but called after connection has been created. It also returns a configuration and you can change it. -- `hooks:beforeCall` - Triggered before each API-client function. We have access to the configuraton, function name and its arguments. This function must return the arguments and based on the input parameters we can change it. -- `hooks:afterCall` - Triggered after each API-client function.We have access to the configuraton, function name and its arguments. This function must return the response and based on the input parameters we can attach something to it. +- `hooks` - defines lifecycle hooks of API-client +- `hooks:beforeCreate` - called before API-client creates a connection, takes the given configuration as an argument, and must return the configuration. In this place, you can attach something else to the configuration or even change it. +- `hooks:afterCreate` - Similar to the previous one, but called after the connection has been created. It also returns a configuration and you can change it. +- `hooks:beforeCall` - Triggered before each API-client function. We have access to the configuration, function name, and its arguments. This function must return the arguments and based on the input parameters we can change it. +- `hooks:afterCall` - Triggered after each API-client function.We have access to the configuration, function name, and its arguments. This function must return the response and based on the input parameters we can attach something to it. To register a created extension, we have to add it do the middleware config file: @@ -110,7 +110,7 @@ module.exports = { ## Separating middleware from Nuxt -By default, Vue Storefront middleware is running withing the Nuxt.js process. Sometimes there is a need to disconnect it from the app, and run as a separate instance, and independent process. +By default, Vue Storefront middleware is running within the Nuxt.js process. Sometimes there is a need to disconnect it from the app, and run it as a separate instance, and independent process. Since is the real express.js application, you can do this, by creating file: @@ -125,9 +125,9 @@ app.listen(8181, () => { }); ``` -Now, when you run this using node, your middleware should work separetly. +Now, when you run this using node, your middleware should work separately. -Additionally, you need to remove middleware module entry from the nuxt.config.js and configure the domain, where yor middleware is settled. +Additionally, you need to remove the middleware module entry from the nuxt.config.js and configure the domain, where your middleware is settled. ```js export default { diff --git a/packages/core/docs/general/key-concepts.md b/packages/core/docs/general/key-concepts.md index 077af4214ee..426302d7d1c 100644 --- a/packages/core/docs/general/key-concepts.md +++ b/packages/core/docs/general/key-concepts.md @@ -93,11 +93,11 @@ You can read more about Vue Storefront Context [here](/advanced/context) ## Middleware -When it comes to networking layer, Vue Storefront uses a middleware that's is a bridge between front-end and othe backends (eCommerce or 3rd party services). The front-end always calls middleware that is redirecting requests to correlated destination. It allows developers to implement a custom logic that injects into lifecycle of the requests or even create a custom API endpoints if it's needed. +When it comes to the networking layer, Vue Storefront uses a middleware that's is a bridge between front-end and other backends (eCommerce or 3rd party services). The front-end always calls middleware that is redirecting requests to correlated destinations. It allows developers to implement a custom logic that injects into the lifecycle of the requests or even create custom API endpoints if it's needed. You can read more about Vue Storefront Middleware [here](/advanced/server-middleware) ## Integrations -Even though high-level APIs are the same for all Vue Storefront integrations they're different on the low level (data formats, search params). Check the docs of a specific platform on the left side under "eCommerce integrations" tab to learn about them. +Even though high-level APIs are the same for all Vue Storefront integrations they're different on the low level (data formats, search params). Check the docs of a specific platform on the left side under the "eCommerce integrations" tab to learn about them. diff --git a/yarn.lock b/yarn.lock index dea3dfec18d..bc1ee862a1d 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1106,6 +1106,15 @@ resolved "https://registrynpm.storefrontcloud.io/@graphql-typed-document-node%2fcore/-/core-3.1.0.tgz#0eee6373e11418bfe0b5638f654df7a4ca6a3950" integrity sha512-wYn6r8zVZyQJ6rQaALBEln5B1pzxb9shV5Ef97kTvn6yVGrqyXVnDqnU24MXnFubR+rZjBY9NWuxX3FB2sTsjg== +"@iarna/cli@^1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@iarna/cli/-/cli-1.2.0.tgz#0f7af5e851afe895104583c4ca07377a8094d641" + integrity sha512-ukITQAqVs2n9HGmn3car/Ir7d3ta650iXhrG7pjr3EWdFmJuuOVWgYsu7ftsSe5VifEFFhjxVuX9+8F7L8hwcA== + dependencies: + signal-exit "^3.0.2" + update-notifier "^2.2.0" + yargs "^8.0.2" + "@intlify/vue-i18n-extensions@^1.0.1": version "1.0.2" resolved "https://registrynpm.storefrontcloud.io/@intlify%2fvue-i18n-extensions/-/vue-i18n-extensions-1.0.2.tgz#ab7f8507f7d423c368e44fa21d6dece700261fca" @@ -2365,9 +2374,9 @@ defu "^3.2.2" normalize-path "^3.0.0" -"@nuxtjs/composition-api@git+https://github.com/andrzejewsky/composition-api.git#ssr-ref-concurrent-fix": +"@nuxtjs/composition-api@https://github.com/andrzejewsky/composition-api.git#ssr-ref-concurrent-fix": version "0.16.4" - resolved "git+https://github.com/andrzejewsky/composition-api.git#f1908d57a18f18feffcec0fd44de949c5dab65d3" + resolved "https://github.com/andrzejewsky/composition-api.git#f1908d57a18f18feffcec0fd44de949c5dab65d3" dependencies: "@vue/composition-api" "1.0.0-beta.21" defu "^3.2.2" @@ -2618,6 +2627,24 @@ dependencies: defer-to-connect "^1.0.1" +"@textlint/ast-node-types@^4.0.3": + version "4.4.1" + resolved "https://registry.yarnpkg.com/@textlint/ast-node-types/-/ast-node-types-4.4.1.tgz#715dd42b3ec7ff02729fa81cdc9557fe2cdd4f10" + integrity sha512-2QBwlqi2SU83vTHibfdTxGiLdIqR0btNyMGfVl0bwA6FI85HnSYoGFLrdCnq2V0nxpbhuvwzcm2Ja81w0VkMGA== + +"@textlint/markdown-to-ast@~6.0.9": + version "6.0.9" + resolved "https://registry.yarnpkg.com/@textlint/markdown-to-ast/-/markdown-to-ast-6.0.9.tgz#e7c89e5ad15d17dcd8e5a62758358936827658fa" + integrity sha512-hfAWBvTeUGh5t5kTn2U3uP3qOSM1BSrxzl1jF3nn0ywfZXpRBZr5yRjXnl4DzIYawCtZOshmRi/tI3/x4TE1jQ== + dependencies: + "@textlint/ast-node-types" "^4.0.3" + debug "^2.1.3" + remark-frontmatter "^1.2.0" + remark-parse "^5.0.0" + structured-source "^3.0.2" + traverse "^0.6.6" + unified "^6.1.6" + "@types/anymatch@*": version "1.3.1" resolved "https://registrynpm.storefrontcloud.io/@types%2fanymatch/-/anymatch-1.3.1.tgz#336badc1beecb9dacc38bea2cf32adf627a8421a" @@ -3657,7 +3684,7 @@ mkdirp-promise "^5.0.1" mz "^2.5.0" -JSONStream@^1.0.4, JSONStream@^1.3.4: +JSONStream@^1.0.4, JSONStream@^1.3.4, JSONStream@^1.3.5: version "1.3.5" resolved "https://registrynpm.storefrontcloud.io/JSONStream/-/JSONStream-1.3.5.tgz#3208c1f08d3a4d99261ab64f92302bc15e111ca0" integrity sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ== @@ -3670,7 +3697,7 @@ abab@^2.0.0: resolved "https://registrynpm.storefrontcloud.io/abab/-/abab-2.0.5.tgz#c0b678fb32d60fc1219c784d6a826fe385aeb79a" integrity sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q== -abbrev@1: +abbrev@1, abbrev@~1.1.1: version "1.1.1" resolved "https://registrynpm.storefrontcloud.io/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q== @@ -3826,6 +3853,20 @@ amdefine@>=0.0.4: resolved "https://registrynpm.storefrontcloud.io/amdefine/-/amdefine-1.0.1.tgz#4a5282ac164729e93619bcfd3ad151f817ce91f5" integrity sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU= +anchor-markdown-header@^0.5.5: + version "0.5.7" + resolved "https://registry.yarnpkg.com/anchor-markdown-header/-/anchor-markdown-header-0.5.7.tgz#045063d76e6a1f9cd327a57a0126aa0fdec371a7" + integrity sha1-BFBj125qH5zTJ6V6ASaqD97Dcac= + dependencies: + emoji-regex "~6.1.0" + +ansi-align@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ansi-align/-/ansi-align-2.0.0.tgz#c36aeccba563b89ceb556f3690f0b1d9e3547f7f" + integrity sha1-w2rsy6VjuJzrVW82kPCx2eNUf38= + dependencies: + string-width "^2.0.0" + ansi-align@^3.0.0: version "3.0.0" resolved "https://registrynpm.storefrontcloud.io/ansi-align/-/ansi-align-3.0.0.tgz#b536b371cf687caaef236c18d3e21fe3797467cb" @@ -3899,6 +3940,16 @@ ansi-styles@^4.0.0, ansi-styles@^4.1.0: dependencies: color-convert "^2.0.1" +ansicolors@~0.3.2: + version "0.3.2" + resolved "https://registry.yarnpkg.com/ansicolors/-/ansicolors-0.3.2.tgz#665597de86a9ffe3aa9bfbe6cae5c6ea426b4979" + integrity sha1-ZlWX3oap/+Oqm/vmyuXG6kJrSXk= + +ansistyles@~0.1.3: + version "0.1.3" + resolved "https://registry.yarnpkg.com/ansistyles/-/ansistyles-0.1.3.tgz#5de60415bda071bb37127854c864f41b23254539" + integrity sha1-XeYEFb2gcbs3EnhUyGT0GyMlRTk= + any-promise@^1.0.0: version "1.3.0" resolved "https://registrynpm.storefrontcloud.io/any-promise/-/any-promise-1.3.0.tgz#abc6afeedcea52e809cdc0376aed3ce39635d17f" @@ -4025,16 +4076,21 @@ apollo-utilities@1.3.4, apollo-utilities@^1.0.1, apollo-utilities@^1.3.0, apollo ts-invariant "^0.4.0" tslib "^1.10.0" -aproba@^1.0.3, aproba@^1.1.1: +aproba@^1.0.3, aproba@^1.1.1, aproba@^1.1.2: version "1.2.0" resolved "https://registrynpm.storefrontcloud.io/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" integrity sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw== -aproba@^2.0.0: +"aproba@^1.1.2 || 2", aproba@^2.0.0: version "2.0.0" resolved "https://registrynpm.storefrontcloud.io/aproba/-/aproba-2.0.0.tgz#52520b8ae5b569215b354efc0caa3fe1e45a8adc" integrity sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ== +archy@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/archy/-/archy-1.0.0.tgz#f9c8c13757cc1dd7bc379ac77b2c62a5c2868c40" + integrity sha1-+cjBN1fMHde8N5rHeyxipcKGjEA= + are-we-there-yet@~1.1.2: version "1.1.5" resolved "https://registrynpm.storefrontcloud.io/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz#4b35c2944f062a8bfcda66410760350fe9ddfc21" @@ -4378,6 +4434,11 @@ babel-preset-jest@^24.9.0: "@babel/plugin-syntax-object-rest-spread" "^7.0.0" babel-plugin-jest-hoist "^24.9.0" +bail@^1.0.0: + version "1.0.5" + resolved "https://registry.yarnpkg.com/bail/-/bail-1.0.5.tgz#b6fa133404a392cbc1f8c4bf63f5953351e7a776" + integrity sha512-xFbRxM1tahm08yHBP16MMjVUAvDaBMD38zsM9EMAUN61omwLmKlOpB/Zku5QkjZ8TZ4vn53pj+t518cH0S03RQ== + balanced-match@^1.0.0: version "1.0.0" resolved "https://registrynpm.storefrontcloud.io/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" @@ -4443,6 +4504,18 @@ big.js@^5.2.2: resolved "https://registrynpm.storefrontcloud.io/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328" integrity sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ== +bin-links@^1.1.2, bin-links@^1.1.8: + version "1.1.8" + resolved "https://registry.yarnpkg.com/bin-links/-/bin-links-1.1.8.tgz#bd39aadab5dc4bdac222a07df5baf1af745b2228" + integrity sha512-KgmVfx+QqggqP9dA3iIc5pA4T1qEEEL+hOhOhNPaUm77OTrJoOXE/C05SJLNJe6m/2wUK7F1tDSou7n5TfCDzQ== + dependencies: + bluebird "^3.5.3" + cmd-shim "^3.0.0" + gentle-fs "^2.3.0" + graceful-fs "^4.1.15" + npm-normalize-package-bin "^1.0.0" + write-file-atomic "^2.3.0" + binary-extensions@^1.0.0: version "1.13.1" resolved "https://registrynpm.storefrontcloud.io/binary-extensions/-/binary-extensions-1.13.1.tgz#598afe54755b2868a5330d2aff9d4ebb53209b65" @@ -4520,6 +4593,24 @@ boolbase@^1.0.0, boolbase@~1.0.0: resolved "https://registrynpm.storefrontcloud.io/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" integrity sha1-aN/1++YMUes3cl6p4+0xDcwed24= +boundary@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/boundary/-/boundary-1.0.1.tgz#4d67dc2602c0cc16dd9bce7ebf87e948290f5812" + integrity sha1-TWfcJgLAzBbdm85+v4fpSCkPWBI= + +boxen@^1.2.1: + version "1.3.0" + resolved "https://registry.yarnpkg.com/boxen/-/boxen-1.3.0.tgz#55c6c39a8ba58d9c61ad22cd877532deb665a20b" + integrity sha512-TNPjfTr432qx7yOjQyaXm3dSR0MH9vXp7eT1BFSl/C51g+EFnOR9hTg1IreahGBmDNCehscshe45f+C1TBZbLw== + dependencies: + ansi-align "^2.0.0" + camelcase "^4.0.0" + chalk "^2.0.1" + cli-boxes "^1.0.0" + string-width "^2.0.0" + term-size "^1.2.0" + widest-line "^2.0.0" + boxen@^4.2.0: version "4.2.0" resolved "https://registrynpm.storefrontcloud.io/boxen/-/boxen-4.2.0.tgz#e411b62357d6d6d36587c8ac3d5d974daa070e64" @@ -4863,6 +4954,11 @@ call-bind@^1.0.0, call-bind@^1.0.2: function-bind "^1.1.1" get-intrinsic "^1.0.2" +call-limit@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/call-limit/-/call-limit-1.1.1.tgz#ef15f2670db3f1992557e2d965abc459e6e358d4" + integrity sha512-5twvci5b9eRBw2wCfPtN0GmlR2/gadZqyFpPhOK6CvMFoFgA+USnZ6Jpu1lhG9h85pQ3Ouil3PfXWRD4EUaRiQ== + call-me-maybe@^1.0.1: version "1.0.1" resolved "https://registrynpm.storefrontcloud.io/call-me-maybe/-/call-me-maybe-1.0.1.tgz#26d208ea89e37b5cbde60250a15f031c16a4d66b" @@ -4939,7 +5035,7 @@ camelcase@^2.0.0: resolved "https://registrynpm.storefrontcloud.io/camelcase/-/camelcase-2.1.1.tgz#7c1d16d679a1bbe59ca02cacecfb011e201f5a1f" integrity sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8= -camelcase@^4.1.0: +camelcase@^4.0.0, camelcase@^4.1.0: version "4.1.0" resolved "https://registrynpm.storefrontcloud.io/camelcase/-/camelcase-4.1.0.tgz#d545635be1e33c542649c69173e5de6acfae34dd" integrity sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0= @@ -4981,6 +5077,11 @@ capture-exit@^2.0.0: dependencies: rsvp "^4.8.4" +capture-stack-trace@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/capture-stack-trace/-/capture-stack-trace-1.0.1.tgz#a6c0bbe1f38f3aa0b92238ecb6ff42c344d4135d" + integrity sha512-mYQLZnx5Qt1JgB1WEiMCf2647plpGeQ2NMR/5L0HNZzGQo4fuSPnK+wjfPnKZV0aiJDgzmWqqkV/g7JD+DW0qw== + caseless@~0.12.0: version "0.12.0" resolved "https://registrynpm.storefrontcloud.io/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" @@ -5022,6 +5123,21 @@ chalk@^4.0.0, chalk@^4.1.0: ansi-styles "^4.1.0" supports-color "^7.1.0" +character-entities-legacy@^1.0.0: + version "1.1.4" + resolved "https://registry.yarnpkg.com/character-entities-legacy/-/character-entities-legacy-1.1.4.tgz#94bc1845dce70a5bb9d2ecc748725661293d8fc1" + integrity sha512-3Xnr+7ZFS1uxeiUDvV02wQ+QDbc55o97tIV5zHScSPJpcLm/r0DFPcoY3tYRp+VZukxuMeKgXYmsXQHO05zQeA== + +character-entities@^1.0.0: + version "1.2.4" + resolved "https://registry.yarnpkg.com/character-entities/-/character-entities-1.2.4.tgz#e12c3939b7eaf4e5b15e7ad4c5e28e1d48c5b16b" + integrity sha512-iBMyeEHxfVnIakwOuDXpVkc54HijNgCyQB2w0VfGQThle6NXn50zU6V/u+LDhxHcDUPojn6Kpga3PTAD8W1bQw== + +character-reference-invalid@^1.0.0: + version "1.1.4" + resolved "https://registry.yarnpkg.com/character-reference-invalid/-/character-reference-invalid-1.1.4.tgz#083329cda0eae272ab3dbbf37e9a382c13af1560" + integrity sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg== + chardet@^0.7.0: version "0.7.0" resolved "https://registrynpm.storefrontcloud.io/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e" @@ -5066,7 +5182,7 @@ chokidar@^3.3.1, chokidar@^3.4.1, chokidar@^3.4.2, chokidar@^3.5.1: optionalDependencies: fsevents "~2.3.1" -chownr@^1.1.1, chownr@^1.1.2: +chownr@^1.1.1, chownr@^1.1.2, chownr@^1.1.4: version "1.1.4" resolved "https://registrynpm.storefrontcloud.io/chownr/-/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b" integrity sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg== @@ -5098,6 +5214,13 @@ ci-info@^3.0.0: resolved "https://registrynpm.storefrontcloud.io/ci-info/-/ci-info-3.1.1.tgz#9a32fcefdf7bcdb6f0a7e1c0f8098ec57897b80a" integrity sha512-kdRWLBIJwdsYJWYJFtAFFYxybguqeF91qpZaggjG5Nf8QKdizFG2hjqvaTXbxFIcYbSaD74KpAXv6BSm17DHEQ== +cidr-regex@^2.0.10: + version "2.0.10" + resolved "https://registry.yarnpkg.com/cidr-regex/-/cidr-regex-2.0.10.tgz#af13878bd4ad704de77d6dc800799358b3afa70d" + integrity sha512-sB3ogMQXWvreNPbJUZMRApxuRYd+KoIo4RGQ81VatjmMW6WJPo+IJZ2846FGItr9VzKo5w7DXzijPLGtSd0N3Q== + dependencies: + ip-regex "^2.1.0" + cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: version "1.0.4" resolved "https://registrynpm.storefrontcloud.io/cipher-base/-/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de" @@ -5128,11 +5251,24 @@ clean-stack@^2.0.0: resolved "https://registrynpm.storefrontcloud.io/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b" integrity sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A== +cli-boxes@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-1.0.0.tgz#4fa917c3e59c94a004cd61f8ee509da651687143" + integrity sha1-T6kXw+WclKAEzWH47lCdplFocUM= + cli-boxes@^2.2.0, cli-boxes@^2.2.1: version "2.2.1" resolved "https://registrynpm.storefrontcloud.io/cli-boxes/-/cli-boxes-2.2.1.tgz#ddd5035d25094fce220e9cab40a45840a440318f" integrity sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw== +cli-columns@^3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/cli-columns/-/cli-columns-3.1.2.tgz#6732d972979efc2ae444a1f08e08fa139c96a18e" + integrity sha1-ZzLZcpee/CrkRKHwjgj6E5yWoY4= + dependencies: + string-width "^2.0.0" + strip-ansi "^3.0.1" + cli-cursor@^2.1.0: version "2.1.0" resolved "https://registrynpm.storefrontcloud.io/cli-cursor/-/cli-cursor-2.1.0.tgz#b35dac376479facc3e94747d41d0d0f5238ffcb5" @@ -5147,6 +5283,16 @@ cli-cursor@^3.1.0: dependencies: restore-cursor "^3.1.0" +cli-table3@^0.5.0, cli-table3@^0.5.1: + version "0.5.1" + resolved "https://registry.yarnpkg.com/cli-table3/-/cli-table3-0.5.1.tgz#0252372d94dfc40dbd8df06005f48f31f656f202" + integrity sha512-7Qg2Jrep1S/+Q3EceiZtQcDPWxhAvBw+ERf1162v4sikJrvojMHFqXt8QIVha8UlH9rgU0BeWPytZ9/TzYqlUw== + dependencies: + object-assign "^4.1.0" + string-width "^2.1.1" + optionalDependencies: + colors "^1.1.2" + cli-truncate@^2.1.0: version "2.1.0" resolved "https://registrynpm.storefrontcloud.io/cli-truncate/-/cli-truncate-2.1.0.tgz#c39e28bf05edcde5be3b98992a22deed5a2b93c7" @@ -5174,6 +5320,15 @@ clipboard@^2.0.0: select "^1.1.2" tiny-emitter "^2.0.0" +cliui@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-3.2.0.tgz#120601537a916d29940f934da3b48d585a39213d" + integrity sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0= + dependencies: + string-width "^1.0.1" + strip-ansi "^3.0.1" + wrap-ansi "^2.0.0" + cliui@^5.0.0: version "5.0.0" resolved "https://registrynpm.storefrontcloud.io/cliui/-/cliui-5.0.0.tgz#deefcfdb2e800784aa34f46fa08e06851c7bbbc5" @@ -5220,6 +5375,14 @@ cloudinary-build-url@^0.1.1: dependencies: "@cld-apis/utils" "^0.1.0" +cmd-shim@^3.0.0, cmd-shim@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/cmd-shim/-/cmd-shim-3.0.3.tgz#2c35238d3df37d98ecdd7d5f6b8dc6b21cadc7cb" + integrity sha512-DtGg+0xiFhQIntSBRzL2fRQBnmtAVwXIDo4Qq46HPpObYquxMaZS4sb82U9nH91qJrlosC1wa9gwr0QyL/HypA== + dependencies: + graceful-fs "^4.1.2" + mkdirp "~0.5.0" + co@^4.6.0: version "4.6.0" resolved "https://registrynpm.storefrontcloud.io/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" @@ -5239,6 +5402,11 @@ code-point-at@^1.0.0: resolved "https://registrynpm.storefrontcloud.io/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" integrity sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c= +collapse-white-space@^1.0.2: + version "1.0.6" + resolved "https://registry.yarnpkg.com/collapse-white-space/-/collapse-white-space-1.0.6.tgz#e63629c0016665792060dbbeb79c42239d2c5287" + integrity sha512-jEovNnrhMuqyCcjfEJA56v0Xq8SkIoPKDyaHahwo3POf4qcSXqMYuwNcOTzp74vTsR9Tn08z4MxWqAhcekogkQ== + collection-visit@^1.0.0: version "1.0.0" resolved "https://registrynpm.storefrontcloud.io/collection-visit/-/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0" @@ -5292,7 +5460,12 @@ colorette@^1.2.1: resolved "https://registrynpm.storefrontcloud.io/colorette/-/colorette-1.2.2.tgz#cbcc79d5e99caea2dbf10eb3a26fd8b3e6acfa94" integrity sha512-MKGMzyfeuutC/ZJ1cba9NqcNpfeqMUcYmyF1ZFY6/Cn7CNSAKx6a+s48sqLqyAiZuaP2TcqMhoo+dlwFnVxT9w== -columnify@^1.5.4: +colors@^1.1.2, colors@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/colors/-/colors-1.4.0.tgz#c50491479d4c1bdaed2c9ced32cf7c7dc2360f78" + integrity sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA== + +columnify@^1.5.4, columnify@~1.5.4: version "1.5.4" resolved "https://registrynpm.storefrontcloud.io/columnify/-/columnify-1.5.4.tgz#4737ddf1c7b69a8a7c340570782e947eec8e78bb" integrity sha1-Rzfd8ce2mop8NAVweC6UfuyOeLs= @@ -5385,6 +5558,20 @@ concat-map@0.0.1: resolved "https://registrynpm.storefrontcloud.io/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= +concat-md@^0.3.5: + version "0.3.5" + resolved "https://registry.yarnpkg.com/concat-md/-/concat-md-0.3.5.tgz#8ec179f6d503f1b865f98f15558d3b95c40c7cd9" + integrity sha512-JVb5rp3JKFqpc6aapqsjgE8k6fWpDJ9YNBNn1Vyi009B1lWc35/cYmT/Rjec7gI4+giC1azkC5RhdHyI2cD89w== + dependencies: + doctoc "^1.4.0" + front-matter "^3.1.0" + globby "^11" + install "^0.13.0" + lodash.startcase "^4.4.0" + meow "^7.0.0" + npm "^6.14.5" + transform-markdown-links "^2.0.0" + concat-stream@^1.5.0: version "1.6.2" resolved "https://registrynpm.storefrontcloud.io/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" @@ -5422,6 +5609,18 @@ config-chain@^1.1.11, config-chain@^1.1.12: ini "^1.3.4" proto-list "~1.2.1" +configstore@^3.0.0: + version "3.1.5" + resolved "https://registry.yarnpkg.com/configstore/-/configstore-3.1.5.tgz#e9af331fadc14dabd544d3e7e76dc446a09a530f" + integrity sha512-nlOhI4+fdzoK5xmJ+NY+1gZK56bwEaWZr8fYuXohZ9Vkc1o3a4T/R3M+yE/w7x/ZVJ1zF8c+oaOvF0dztdUgmA== + dependencies: + dot-prop "^4.2.1" + graceful-fs "^4.1.2" + make-dir "^1.0.0" + unique-string "^1.0.0" + write-file-atomic "^2.0.0" + xdg-basedir "^3.0.0" + configstore@^5.0.1: version "5.0.1" resolved "https://registrynpm.storefrontcloud.io/configstore/-/configstore-5.0.1.tgz#d365021b5df4b98cdd187d6a3b0e3f6a7cc5ed96" @@ -5469,7 +5668,7 @@ console-browserify@^1.1.0: resolved "https://registrynpm.storefrontcloud.io/console-browserify/-/console-browserify-1.2.0.tgz#67063cef57ceb6cf4993a2ab3a55840ae8c49336" integrity sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA== -console-control-strings@^1.0.0, console-control-strings@~1.1.0: +console-control-strings@^1.0.0, console-control-strings@^1.1.0, console-control-strings@~1.1.0: version "1.1.0" resolved "https://registrynpm.storefrontcloud.io/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" integrity sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4= @@ -5750,6 +5949,13 @@ create-ecdh@^4.0.0: bn.js "^4.1.0" elliptic "^6.5.3" +create-error-class@^3.0.0: + version "3.0.2" + resolved "https://registry.yarnpkg.com/create-error-class/-/create-error-class-3.0.2.tgz#06be7abef947a3f14a30fd610671d401bca8b7b6" + integrity sha1-Br56vvlHo/FKMP1hBnHUAbyot7Y= + dependencies: + capture-stack-trace "^1.0.0" + create-hash@^1.1.0, create-hash@^1.1.2, create-hash@^1.2.0: version "1.2.0" resolved "https://registrynpm.storefrontcloud.io/create-hash/-/create-hash-1.2.0.tgz#889078af11a63756bcfb59bd221996be3a9ef196" @@ -5793,6 +5999,15 @@ cross-spawn@^3.0.0: lru-cache "^4.0.1" which "^1.2.9" +cross-spawn@^5.0.1: + version "5.1.0" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449" + integrity sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk= + dependencies: + lru-cache "^4.0.1" + shebang-command "^1.2.0" + which "^1.2.9" + cross-spawn@^6.0.0, cross-spawn@^6.0.5: version "6.0.5" resolved "https://registrynpm.storefrontcloud.io/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" @@ -5830,6 +6045,11 @@ crypto-browserify@^3.11.0: randombytes "^2.0.0" randomfill "^1.0.3" +crypto-random-string@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-1.0.0.tgz#a230f64f568310e1498009940790ec99545bca7e" + integrity sha1-ojD2T1aDEOFJgAmUB5DsmVRbyn4= + crypto-random-string@^2.0.0: version "2.0.0" resolved "https://registrynpm.storefrontcloud.io/crypto-random-string/-/crypto-random-string-2.0.0.tgz#ef2a7a966ec11083388369baa02ebead229b30d5" @@ -6110,7 +6330,7 @@ de-indent@^1.0.2: resolved "https://registrynpm.storefrontcloud.io/de-indent/-/de-indent-1.0.2.tgz#b2038e846dc33baa5796128d0804b455b8c1e21d" integrity sha1-sgOOhG3DO6pXlhKNCAS0VbjB4h0= -debug@2.6.9, debug@^2.2.0, debug@^2.3.3, debug@^2.6.9: +debug@2.6.9, debug@^2.1.3, debug@^2.2.0, debug@^2.3.3, debug@^2.6.9: version "2.6.9" resolved "https://registrynpm.storefrontcloud.io/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== @@ -6138,7 +6358,7 @@ debug@^4.0.1, debug@^4.1.0, debug@^4.1.1, debug@^4.2.0: dependencies: ms "2.1.2" -debuglog@^1.0.1: +debuglog@*, debuglog@^1.0.1: version "1.0.1" resolved "https://registrynpm.storefrontcloud.io/debuglog/-/debuglog-1.0.1.tgz#aa24ffb9ac3df9a2351837cfb2d279360cd78492" integrity sha1-qiT/uaw9+aI1GDfPstJ5NgzXhJI= @@ -6151,7 +6371,7 @@ decamelize-keys@^1.0.0, decamelize-keys@^1.1.0: decamelize "^1.1.0" map-obj "^1.0.0" -decamelize@^1.1.0, decamelize@^1.1.2, decamelize@^1.2.0: +decamelize@^1.1.0, decamelize@^1.1.1, decamelize@^1.1.2, decamelize@^1.2.0: version "1.2.0" resolved "https://registrynpm.storefrontcloud.io/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA= @@ -6325,7 +6545,7 @@ destroy@^1.0.4, destroy@~1.0.4: resolved "https://registrynpm.storefrontcloud.io/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" integrity sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA= -detect-indent@^5.0.0: +detect-indent@^5.0.0, detect-indent@~5.0.0: version "5.0.0" resolved "https://registrynpm.storefrontcloud.io/detect-indent/-/detect-indent-5.0.0.tgz#3871cc0a6a002e8c3e5b3cf7f336264675f06b9d" integrity sha1-OHHMCmoALow+Wzz38zYmRnXwa50= @@ -6345,7 +6565,7 @@ devalue@^2.0.1: resolved "https://registrynpm.storefrontcloud.io/devalue/-/devalue-2.0.1.tgz#5d368f9adc0928e47b77eea53ca60d2f346f9762" integrity sha512-I2TiqT5iWBEyB8GRfTDP0hiLZ0YeDJZ+upDxjBfOC2lebO5LezQMv7QvIUTzdb64jQyAKLf1AHADtGN+jw6v8Q== -dezalgo@^1.0.0: +dezalgo@^1.0.0, dezalgo@~1.0.3: version "1.0.3" resolved "https://registrynpm.storefrontcloud.io/dezalgo/-/dezalgo-1.0.3.tgz#7f742de066fc748bc8db820569dddce49bf0d456" integrity sha1-f3Qt4Gb8dIvI24IFad3c5Jvw1FY= @@ -6424,6 +6644,18 @@ docsearch.js@^2.5.2: to-factory "^1.0.0" zepto "^1.2.0" +doctoc@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/doctoc/-/doctoc-1.4.0.tgz#3115aa61d0a92f0abb0672036918ea904f5b9e02" + integrity sha512-8IAq3KdMkxhXCUF+xdZxdJxwuz8N2j25sMgqiu4U4JWluN9tRKMlAalxGASszQjlZaBprdD2YfXpL3VPWUD4eg== + dependencies: + "@textlint/markdown-to-ast" "~6.0.9" + anchor-markdown-header "^0.5.5" + htmlparser2 "~3.9.2" + minimist "~1.2.0" + underscore "~1.8.3" + update-section "^0.3.0" + doctrine@1.5.0: version "1.5.0" resolved "https://registrynpm.storefrontcloud.io/doctrine/-/doctrine-1.5.0.tgz#379dce730f6166f76cefa4e6707a159b02c5a6fa" @@ -6469,7 +6701,7 @@ domain-browser@^1.1.1: resolved "https://registrynpm.storefrontcloud.io/domain-browser/-/domain-browser-1.2.0.tgz#3d31f50191a6749dd1375a7f522e823d42e54eda" integrity sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA== -domelementtype@1, domelementtype@^1.3.1: +domelementtype@1, domelementtype@^1.3.0, domelementtype@^1.3.1: version "1.3.1" resolved "https://registrynpm.storefrontcloud.io/domelementtype/-/domelementtype-1.3.1.tgz#d048c44b37b0d10a7f2a3d5fee3f4333d790481f" integrity sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w== @@ -6509,7 +6741,7 @@ dot-case@^3.0.4: no-case "^3.0.4" tslib "^2.0.3" -dot-prop@^4.2.0: +dot-prop@^4.2.0, dot-prop@^4.2.1: version "4.2.1" resolved "https://registrynpm.storefrontcloud.io/dot-prop/-/dot-prop-4.2.1.tgz#45884194a71fc2cda71cbb4bceb3a4dd2f433ba4" integrity sha512-l0p4+mIuJIua0mhxGoh4a+iNL9bmeK5DvnSVQa6T0OhrVmaEa1XScX5Etc673FePCJOArq/4Pa2cLGODUWTPOQ== @@ -6523,6 +6755,11 @@ dot-prop@^5.1.0, dot-prop@^5.2.0: dependencies: is-obj "^2.0.0" +dotenv@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-5.0.1.tgz#a5317459bd3d79ab88cff6e44057a6a3fbb1fcef" + integrity sha512-4As8uPrjfwb7VXC+WnLCbXK7y+Ueb2B3zgNCePYfhxS1PYeaO1YTeplffTEcbfLhvFNGLAz90VvJs9yomG7bow== + dotenv@^8.2.0: version "8.2.0" resolved "https://registrynpm.storefrontcloud.io/dotenv/-/dotenv-8.2.0.tgz#97e619259ada750eea3e4ea3e26bceea5424b16a" @@ -6556,6 +6793,11 @@ ecc-jsbn@~0.1.1: jsbn "~0.1.0" safer-buffer "^2.1.0" +editor@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/editor/-/editor-1.0.0.tgz#60c7f87bd62bcc6a894fa8ccd6afb7823a24f742" + integrity sha1-YMf4e9YrzGqJT6jM1q+3gjok90I= + editorconfig@^0.15.3: version "0.15.3" resolved "https://registrynpm.storefrontcloud.io/editorconfig/-/editorconfig-0.15.3.tgz#bef84c4e75fb8dcb0ce5cee8efd51c15999befc5" @@ -6611,6 +6853,11 @@ emoji-regex@^8.0.0: resolved "https://registrynpm.storefrontcloud.io/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== +emoji-regex@~6.1.0: + version "6.1.3" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-6.1.3.tgz#ec79a3969b02d2ecf2b72254279bf99bc7a83932" + integrity sha1-7HmjlpsC0uzytyJUJ5v5m8eoOTI= + emojis-list@^2.0.0: version "2.1.0" resolved "https://registrynpm.storefrontcloud.io/emojis-list/-/emojis-list-2.1.0.tgz#4daa4d9db00f9819880c79fa457ae5b09a1fd389" @@ -7078,6 +7325,19 @@ exec-sh@^0.3.2: resolved "https://registrynpm.storefrontcloud.io/exec-sh/-/exec-sh-0.3.4.tgz#3a018ceb526cc6f6df2bb504b2bfe8e3a4934ec5" integrity sha512-sEFIkc61v75sWeOe72qyrqg2Qg0OuLESziUDk/O/z2qgS15y2gWVFrI6f2Qn/qw/0/NCfCEsmNA4zOjkwEZT1A== +execa@^0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/execa/-/execa-0.7.0.tgz#944becd34cc41ee32a63a9faf27ad5a65fc59777" + integrity sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c= + dependencies: + cross-spawn "^5.0.1" + get-stream "^3.0.0" + is-stream "^1.1.0" + npm-run-path "^2.0.0" + p-finally "^1.0.0" + signal-exit "^3.0.0" + strip-eof "^1.0.0" + execa@^1.0.0: version "1.0.0" resolved "https://registrynpm.storefrontcloud.io/execa/-/execa-1.0.0.tgz#c6236a5bb4df6d6f15e88e7f017798216749ddd8" @@ -7202,7 +7462,7 @@ extend-shallow@^3.0.0, extend-shallow@^3.0.2: assign-symbols "^1.0.0" is-extendable "^1.0.1" -extend@~3.0.2: +extend@^3.0.0, extend@~3.0.2: version "3.0.2" resolved "https://registrynpm.storefrontcloud.io/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== @@ -7303,6 +7563,13 @@ fastq@^1.6.0: dependencies: reusify "^1.0.4" +fault@^1.0.1: + version "1.0.4" + resolved "https://registry.yarnpkg.com/fault/-/fault-1.0.4.tgz#eafcfc0a6d214fc94601e170df29954a4f842f13" + integrity sha512-CJ0HCB5tL5fYTEA7ToAq5+kTwd++Borf1/bifxd9iT70QcXr4MRrO3Llf8Ifs70q+SJcGHFtnIE/Nw6giCtECA== + dependencies: + format "^0.2.0" + faye-websocket@^0.11.3: version "0.11.3" resolved "https://registrynpm.storefrontcloud.io/faye-websocket/-/faye-websocket-0.11.3.tgz#5c0e9a8968e8912c286639fde977a8b209f2508e" @@ -7429,6 +7696,11 @@ find-cache-dir@^3.0.0, find-cache-dir@^3.3.1: make-dir "^3.0.2" pkg-dir "^4.1.0" +find-npm-prefix@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/find-npm-prefix/-/find-npm-prefix-1.0.2.tgz#8d8ce2c78b3b4b9e66c8acc6a37c231eb841cfdf" + integrity sha512-KEftzJ+H90x6pcKtdXZEPsQse8/y/UnvzRKrOSQFprnrGaFuJ62fVkP34Iu2IYuMvyauCyoLTNkJZgrrGA2wkA== + find-up@^1.0.0: version "1.1.2" resolved "https://registrynpm.storefrontcloud.io/find-up/-/find-up-1.1.2.tgz#6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f" @@ -7566,6 +7838,11 @@ form-data@~2.3.2: combined-stream "^1.0.6" mime-types "^2.1.12" +format@^0.2.0: + version "0.2.2" + resolved "https://registry.yarnpkg.com/format/-/format-0.2.2.tgz#d6170107e9efdc4ed30c9dc39016df942b5cb58b" + integrity sha1-1hcBB+nv3E7TDJ3DkBbflCtctYs= + forwarded@~0.1.2: version "0.1.2" resolved "https://registrynpm.storefrontcloud.io/forwarded/-/forwarded-0.1.2.tgz#98c23dab1175657b8c0573e8ceccd91b0ff18c84" @@ -7583,6 +7860,14 @@ fresh@0.5.2, fresh@^0.5.2: resolved "https://registrynpm.storefrontcloud.io/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" integrity sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac= +from2@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/from2/-/from2-1.3.0.tgz#88413baaa5f9a597cfde9221d86986cd3c061dfd" + integrity sha1-iEE7qqX5pZfP3pIh2GmGzTwGHf0= + dependencies: + inherits "~2.0.1" + readable-stream "~1.1.10" + from2@^2.1.0: version "2.3.0" resolved "https://registrynpm.storefrontcloud.io/from2/-/from2-2.3.0.tgz#8bfb5502bde4a4d36cfdeea007fcca21d7e382af" @@ -7591,6 +7876,13 @@ from2@^2.1.0: inherits "^2.0.1" readable-stream "^2.0.0" +front-matter@^3.1.0: + version "3.2.1" + resolved "https://registry.yarnpkg.com/front-matter/-/front-matter-3.2.1.tgz#88be839638f397bbbcb0d61ac03bd08abb4f0a40" + integrity sha512-YUhgEhbL6tG+Ok3vTGIoSDKqcr47aSDvyhEqIv8B+YuBJFsPnOiArNXTPp2yO07NL+a0L4+2jXlKlKqyVcsRRA== + dependencies: + js-yaml "^3.13.1" + fs-extra@8.1.0, fs-extra@^8.1.0: version "8.1.0" resolved "https://registrynpm.storefrontcloud.io/fs-extra/-/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0" @@ -7643,7 +7935,16 @@ fs-monkey@1.0.1: resolved "https://registrynpm.storefrontcloud.io/fs-monkey/-/fs-monkey-1.0.1.tgz#4a82f36944365e619f4454d9fff106553067b781" integrity sha512-fcSa+wyTqZa46iWweI7/ZiUfegOZl0SG8+dltIwFXo7+zYU9J9kpS3NB6pZcSlJdhvIwp81Adx2XhZorncxiaA== -fs-write-stream-atomic@^1.0.8: +fs-vacuum@^1.2.10, fs-vacuum@~1.2.10: + version "1.2.10" + resolved "https://registry.yarnpkg.com/fs-vacuum/-/fs-vacuum-1.2.10.tgz#b7629bec07a4031a2548fdf99f5ecf1cc8b31e36" + integrity sha1-t2Kb7AekAxolSP35n17PHMizHjY= + dependencies: + graceful-fs "^4.1.2" + path-is-inside "^1.0.1" + rimraf "^2.5.2" + +fs-write-stream-atomic@^1.0.8, fs-write-stream-atomic@~1.0.10: version "1.0.10" resolved "https://registrynpm.storefrontcloud.io/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz#b47df53493ef911df75731e70a9ded0189db40c9" integrity sha1-tH31NJPvkR33VzHnCp3tAYnbQMk= @@ -7722,6 +8023,28 @@ gensync@^1.0.0-beta.2: resolved "https://registrynpm.storefrontcloud.io/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0" integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== +gentle-fs@^2.3.0, gentle-fs@^2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/gentle-fs/-/gentle-fs-2.3.1.tgz#11201bf66c18f930ddca72cf69460bdfa05727b1" + integrity sha512-OlwBBwqCFPcjm33rF2BjW+Pr6/ll2741l+xooiwTCeaX2CA1ZuclavyMBe0/KlR21/XGsgY6hzEQZ15BdNa13Q== + dependencies: + aproba "^1.1.2" + chownr "^1.1.2" + cmd-shim "^3.0.3" + fs-vacuum "^1.2.10" + graceful-fs "^4.1.11" + iferr "^0.1.5" + infer-owner "^1.0.4" + mkdirp "^0.5.1" + path-is-inside "^1.0.2" + read-cmd-shim "^1.0.1" + slide "^1.1.6" + +get-caller-file@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.3.tgz#f978fa4c90d1dfe7ff2d6beda2a515e713bdcf4a" + integrity sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w== + get-caller-file@^2.0.1: version "2.0.5" resolved "https://registrynpm.storefrontcloud.io/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" @@ -7769,6 +8092,11 @@ get-stdin@^4.0.1: resolved "https://registrynpm.storefrontcloud.io/get-stdin/-/get-stdin-4.0.1.tgz#b968c6b0a04384324902e8bf1a5df32579a450fe" integrity sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4= +get-stream@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14" + integrity sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ= + get-stream@^4.0.0, get-stream@^4.1.0: version "4.1.0" resolved "https://registrynpm.storefrontcloud.io/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5" @@ -7894,6 +8222,13 @@ glob@^7.0.0, glob@^7.0.3, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, gl once "^1.3.0" path-is-absolute "^1.0.0" +global-dirs@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/global-dirs/-/global-dirs-0.1.1.tgz#b319c0dd4607f353f3be9cca4c72fc148c49f445" + integrity sha1-sxnA3UYH81PzvpzKTHL8FIxJ9EU= + dependencies: + ini "^1.3.4" + global-dirs@^2.0.1: version "2.1.0" resolved "https://registrynpm.storefrontcloud.io/global-dirs/-/global-dirs-2.1.0.tgz#e9046a49c806ff04d6c1825e196c8f0091e8df4d" @@ -7921,7 +8256,7 @@ globals@^12.1.0: dependencies: type-fest "^0.8.1" -globby@^11.0.1, globby@^11.0.2: +globby@^11, globby@^11.0.1, globby@^11.0.2: version "11.0.2" resolved "https://registrynpm.storefrontcloud.io/globby/-/globby-11.0.2.tgz#1af538b766a3b540ebfb58a32b2e2d5897321d83" integrity sha512-2ZThXDvvV8fYFRVIxnrMQBipZQDr7MxKAmQK1vujaj9/7eF0efG7BPUKJ7jP7G5SLF37xKDXvO4S/KKLj/Z0og== @@ -7986,6 +8321,23 @@ good-listener@^1.2.2: dependencies: delegate "^3.1.2" +got@^6.7.1: + version "6.7.1" + resolved "https://registry.yarnpkg.com/got/-/got-6.7.1.tgz#240cd05785a9a18e561dc1b44b41c763ef1e8db0" + integrity sha1-JAzQV4WpoY5WHcG0S0HHY+8ejbA= + dependencies: + create-error-class "^3.0.0" + duplexer3 "^0.1.4" + get-stream "^3.0.0" + is-redirect "^1.0.0" + is-retry-allowed "^1.0.0" + is-stream "^1.0.0" + lowercase-keys "^1.0.0" + safe-buffer "^5.0.1" + timed-out "^4.0.0" + unzip-response "^2.0.1" + url-parse-lax "^1.0.0" + got@^9.6.0: version "9.6.0" resolved "https://registrynpm.storefrontcloud.io/got/-/got-9.6.0.tgz#edf45e7d67f99545705de1f7bbeeeb121765ed85" @@ -8083,7 +8435,7 @@ handle-thing@^2.0.0: resolved "https://registrynpm.storefrontcloud.io/handle-thing/-/handle-thing-2.0.1.tgz#857f79ce359580c340d43081cc648970d0bb234e" integrity sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg== -handlebars@^4.7.6: +handlebars@^4.7.6, handlebars@^4.7.7: version "4.7.7" resolved "https://registrynpm.storefrontcloud.io/handlebars/-/handlebars-4.7.7.tgz#9ce33416aad02dbd6c8fafa8240d5d98004945a1" integrity sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA== @@ -8154,7 +8506,7 @@ has-symbols@^1.0.1: resolved "https://registrynpm.storefrontcloud.io/has-symbols/-/has-symbols-1.0.2.tgz#165d3070c00309752a1236a479331e3ac56f1423" integrity sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw== -has-unicode@^2.0.0, has-unicode@^2.0.1: +has-unicode@^2.0.0, has-unicode@^2.0.1, has-unicode@~2.0.1: version "2.0.1" resolved "https://registrynpm.storefrontcloud.io/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" integrity sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk= @@ -8247,11 +8599,6 @@ hex-color-regex@^1.1.0: resolved "https://registrynpm.storefrontcloud.io/hex-color-regex/-/hex-color-regex-1.1.0.tgz#4c06fccb4602fe2602b3c93df82d7e7dbf1a8a8e" integrity sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ== -highlight.js@^10.0.0: - version "10.6.0" - resolved "https://registrynpm.storefrontcloud.io/highlight.js/-/highlight.js-10.6.0.tgz#0073aa71d566906965ba6e1b7be7b2682f5e18b6" - integrity sha512-8mlRcn5vk/r4+QcqerapwBYTe+iPL5ih6xrNylxrnBdHQiijDETfXX7VIxC3UiCRiINBJfANBAsPzAvRQj8RpQ== - hmac-drbg@^1.0.1: version "1.0.1" resolved "https://registrynpm.storefrontcloud.io/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" @@ -8281,7 +8628,7 @@ hoopy@^0.1.4: resolved "https://registrynpm.storefrontcloud.io/hoopy/-/hoopy-0.1.4.tgz#609207d661100033a9a9402ad3dea677381c1b1d" integrity sha512-HRcs+2mr52W0K+x8RzcLzuPPmVIKMSv97RGHy0Ea9y/mpcaK+xTrjICA04KAHi4GRzxliNqNJEFYWHghy3rSfQ== -hosted-git-info@^2.1.4, hosted-git-info@^2.7.1: +hosted-git-info@^2.1.4, hosted-git-info@^2.7.1, hosted-git-info@^2.8.8: version "2.8.8" resolved "https://registrynpm.storefrontcloud.io/hosted-git-info/-/hosted-git-info-2.8.8.tgz#7539bd4bc1e0e0a895815a2e0262420b12858488" integrity sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg== @@ -8411,6 +8758,18 @@ htmlparser2@^3.10.1: inherits "^2.0.1" readable-stream "^3.1.1" +htmlparser2@~3.9.2: + version "3.9.2" + resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-3.9.2.tgz#1bdf87acca0f3f9e53fa4fcceb0f4b4cbb00b338" + integrity sha1-G9+HrMoPP55T+k/M6w9LTLsAszg= + dependencies: + domelementtype "^1.3.0" + domhandler "^2.3.0" + domutils "^1.5.1" + entities "^1.1.1" + inherits "^2.0.1" + readable-stream "^2.0.2" + http-cache-semantics@^3.8.1: version "3.8.1" resolved "https://registrynpm.storefrontcloud.io/http-cache-semantics/-/http-cache-semantics-3.8.1.tgz#39b0e16add9b605bf0a9ef3d9daaf4843b4cacd2" @@ -8581,6 +8940,11 @@ iferr@^0.1.5: resolved "https://registrynpm.storefrontcloud.io/iferr/-/iferr-0.1.5.tgz#c60eed69e6d8fdb6b3104a1fcbca1c192dc5b501" integrity sha1-xg7taebY/bazEEofy8ocGS3FtQE= +iferr@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/iferr/-/iferr-1.0.2.tgz#e9fde49a9da06dc4a4194c6c9ed6d08305037a6d" + integrity sha512-9AfeLfji44r5TKInjhz3W9DyZI1zR1JAf2hVBMGhddAKPqBsupb89jGfbCTHIGZd6fGZl9WlHdn4AObygyMKwg== + ignore-walk@^3.0.1: version "3.0.3" resolved "https://registrynpm.storefrontcloud.io/ignore-walk/-/ignore-walk-3.0.3.tgz#017e2447184bfeade7c238e4aefdd1e8f95b1e37" @@ -8651,7 +9015,7 @@ import-local@^2.0.0: pkg-dir "^3.0.0" resolve-cwd "^2.0.0" -imurmurhash@^0.1.4: +imurmurhash@*, imurmurhash@^0.1.4: version "0.1.4" resolved "https://registrynpm.storefrontcloud.io/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= @@ -8688,7 +9052,7 @@ infer-owner@^1.0.3, infer-owner@^1.0.4: resolved "https://registrynpm.storefrontcloud.io/infer-owner/-/infer-owner-1.0.4.tgz#c4cefcaa8e51051c2a40ba2ce8a3d27295af9467" integrity sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A== -inflight@^1.0.4: +inflight@^1.0.4, inflight@~1.0.6: version "1.0.6" resolved "https://registrynpm.storefrontcloud.io/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= @@ -8696,7 +9060,7 @@ inflight@^1.0.4: once "^1.3.0" wrappy "1" -inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.0, inherits@~2.0.1, inherits@~2.0.3: +inherits@2, inherits@2.0.4, inherits@^2.0.0, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.0, inherits@~2.0.1, inherits@~2.0.3: version "2.0.4" resolved "https://registrynpm.storefrontcloud.io/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== @@ -8716,7 +9080,7 @@ ini@1.3.7: resolved "https://registrynpm.storefrontcloud.io/ini/-/ini-1.3.7.tgz#a09363e1911972ea16d7a8851005d84cf09a9a84" integrity sha512-iKpRpXP+CrP2jyrxvg1kMUpXDyRUFDWurxbnVT1vQPx+Wz9uCYsMIqYuSBLV+PAaZG/d7kRLKRFc9oDMsH+mFQ== -ini@^1.3.2, ini@^1.3.4, ini@^1.3.5, ini@~1.3.0: +ini@^1.3.2, ini@^1.3.4, ini@^1.3.5, ini@^1.3.8, ini@~1.3.0: version "1.3.8" resolved "https://registrynpm.storefrontcloud.io/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== @@ -8773,6 +9137,11 @@ inquirer@^7.3.3: strip-ansi "^6.0.0" through "^2.3.6" +install@^0.13.0: + version "0.13.0" + resolved "https://registry.yarnpkg.com/install/-/install-0.13.0.tgz#6af6e9da9dd0987de2ab420f78e60d9c17260776" + integrity sha512-zDml/jzr2PKU9I8J/xyZBQn8rPCAY//UOYNmR01XwNwyfhEWObo2SWfSl1+0tm1u6PhxLwDnfsT/6jB7OUxqFA== + internal-ip@^4.3.0: version "4.3.0" resolved "https://registrynpm.storefrontcloud.io/internal-ip/-/internal-ip-4.3.0.tgz#845452baad9d2ca3b69c635a137acb9a0dad0907" @@ -8793,6 +9162,11 @@ invariant@^2.2.4: dependencies: loose-envify "^1.0.0" +invert-kv@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-1.0.0.tgz#104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6" + integrity sha1-EEqOSqym09jNFXqO+L+rLXo//bY= + ip-regex@^2.1.0: version "2.1.0" resolved "https://registrynpm.storefrontcloud.io/ip-regex/-/ip-regex-2.1.0.tgz#fa78bf5d2e6913c911ce9f819ee5146bb6d844e9" @@ -8832,6 +9206,19 @@ is-accessor-descriptor@^1.0.0: dependencies: kind-of "^6.0.0" +is-alphabetical@^1.0.0: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-alphabetical/-/is-alphabetical-1.0.4.tgz#9e7d6b94916be22153745d184c298cbf986a686d" + integrity sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg== + +is-alphanumerical@^1.0.0: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-alphanumerical/-/is-alphanumerical-1.0.4.tgz#7eb9a2431f855f6b1ef1a78e326df515696c4dbf" + integrity sha512-UzoZUr+XfVz3t3v4KyGEniVL9BDRoQtY7tOyrRybkVNjDFWyo1yhXNGrrBTQxp3ib9BLAWs7k2YKBQsFRkZG9A== + dependencies: + is-alphabetical "^1.0.0" + is-decimal "^1.0.0" + is-arguments@^1.0.4: version "1.1.0" resolved "https://registrynpm.storefrontcloud.io/is-arguments/-/is-arguments-1.1.0.tgz#62353031dfbee07ceb34656a6bde59efecae8dd9" @@ -8863,7 +9250,7 @@ is-binary-path@~2.1.0: dependencies: binary-extensions "^2.0.0" -is-buffer@^1.1.5: +is-buffer@^1.1.4, is-buffer@^1.1.5: version "1.1.6" resolved "https://registrynpm.storefrontcloud.io/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== @@ -8878,7 +9265,7 @@ is-callable@^1.1.3, is-callable@^1.1.4, is-callable@^1.2.2: resolved "https://registrynpm.storefrontcloud.io/is-callable/-/is-callable-1.2.3.tgz#8b1e0500b73a1d76c70487636f368e519de8db8e" integrity sha512-J1DcMe8UYTBSrKezuIUTUwjXsho29693unXM2YhJUTR2txK/eG47bvNa/wipPFmZFgr/N6f1GA66dv0mEyTIyQ== -is-ci@^1.1.0: +is-ci@^1.0.10, is-ci@^1.1.0: version "1.2.1" resolved "https://registrynpm.storefrontcloud.io/is-ci/-/is-ci-1.2.1.tgz#e3779c8ee17fccf428488f6e281187f2e632841c" integrity sha512-s6tfsaQaQi3JNciBH6shVqEDvhGut0SUXr31ag8Pd8BBbVVlcGfWhpPmEOoM6RJ5TFhbypvf5yyRw/VXW1IiWg== @@ -8892,6 +9279,13 @@ is-ci@^2.0.0: dependencies: ci-info "^2.0.0" +is-cidr@^3.0.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/is-cidr/-/is-cidr-3.1.1.tgz#e92ef121bdec2782271a77ce487a8b8df3718ab7" + integrity sha512-Gx+oErgq1j2jAKCR2Kbq0b3wbH0vQKqZ0wOlHxm0o56nq51Cs/DZA8oz9dMDhbHyHEGgJ86eTeVudtgMMOx3Mw== + dependencies: + cidr-regex "^2.0.10" + is-color-stop@^1.0.0: version "1.1.0" resolved "https://registrynpm.storefrontcloud.io/is-color-stop/-/is-color-stop-1.1.0.tgz#cfff471aee4dd5c9e158598fbe12967b5cdad345" @@ -8930,6 +9324,11 @@ is-date-object@^1.0.1: resolved "https://registrynpm.storefrontcloud.io/is-date-object/-/is-date-object-1.0.2.tgz#bda736f2cd8fd06d32844e7743bfa7494c3bfd7e" integrity sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g== +is-decimal@^1.0.0: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-decimal/-/is-decimal-1.0.4.tgz#65a3a5958a1c5b63a706e1b333d7cd9f630d3fa5" + integrity sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw== + is-descriptor@^0.1.0: version "0.1.6" resolved "https://registrynpm.storefrontcloud.io/is-descriptor/-/is-descriptor-0.1.6.tgz#366d8240dde487ca51823b1ab9f07a10a78251ca" @@ -9016,11 +9415,24 @@ is-glob@^4.0.0, is-glob@^4.0.1, is-glob@~4.0.1: dependencies: is-extglob "^2.1.1" +is-hexadecimal@^1.0.0: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-hexadecimal/-/is-hexadecimal-1.0.4.tgz#cc35c97588da4bd49a8eedd6bc4082d44dcb23a7" + integrity sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw== + is-https@^3.0.0, is-https@^3.0.2: version "3.0.2" resolved "https://registrynpm.storefrontcloud.io/is-https/-/is-https-3.0.2.tgz#4d24e002e47edd3f1b07f14bc722433354ccba49" integrity sha512-jFgAKhbNF7J+lTMJxbq5z9bf1V9f8rXn9mP5RSY2GUEW5M0nOiVhVC9dNra96hQDjGpNzskIzusUnXwngqmhAA== +is-installed-globally@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/is-installed-globally/-/is-installed-globally-0.1.0.tgz#0dfd98f5a9111716dd535dda6492f67bf3d25a80" + integrity sha1-Df2Y9akRFxbdU13aZJL2e/PSWoA= + dependencies: + global-dirs "^0.1.0" + is-path-inside "^1.0.0" + is-installed-globally@^0.3.1: version "0.3.2" resolved "https://registrynpm.storefrontcloud.io/is-installed-globally/-/is-installed-globally-0.3.2.tgz#fd3efa79ee670d1187233182d5b0a1dd00313141" @@ -9034,6 +9446,11 @@ is-negative-zero@^2.0.1: resolved "https://registrynpm.storefrontcloud.io/is-negative-zero/-/is-negative-zero-2.0.1.tgz#3de746c18dda2319241a53675908d8f766f11c24" integrity sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w== +is-npm@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-npm/-/is-npm-1.0.0.tgz#f2fb63a65e4905b406c86072765a1a4dc793b9f4" + integrity sha1-8vtjpl5JBbQGyGBydloaTceTufQ= + is-npm@^4.0.0: version "4.0.0" resolved "https://registrynpm.storefrontcloud.io/is-npm/-/is-npm-4.0.0.tgz#c90dd8380696df87a7a6d823c20d0b12bbe3c84d" @@ -9073,6 +9490,13 @@ is-path-in-cwd@^2.0.0: dependencies: is-path-inside "^2.1.0" +is-path-inside@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-1.0.1.tgz#8ef5b7de50437a3fdca6b4e865ef7aa55cb48036" + integrity sha1-jvW33lBDej/cprToZe96pVy0gDY= + dependencies: + path-is-inside "^1.0.1" + is-path-inside@^2.1.0: version "2.1.0" resolved "https://registrynpm.storefrontcloud.io/is-path-inside/-/is-path-inside-2.1.0.tgz#7c9810587d659a40d27bcdb4d5616eab059494b2" @@ -9102,6 +9526,11 @@ is-plain-object@^5.0.0: resolved "https://registrynpm.storefrontcloud.io/is-plain-object/-/is-plain-object-5.0.0.tgz#4427f50ab3429e9025ea7d52e9043a9ef4159344" integrity sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q== +is-redirect@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-redirect/-/is-redirect-1.0.0.tgz#1d03dded53bd8db0f30c26e4f95d36fc7c87dc24" + integrity sha1-HQPd7VO9jbDzDCbk+V02/HyH3CQ= + is-regex@^1.0.4, is-regex@^1.1.1: version "1.1.2" resolved "https://registrynpm.storefrontcloud.io/is-regex/-/is-regex-1.1.2.tgz#81c8ebde4db142f2cf1c53fc86d6a45788266251" @@ -9120,6 +9549,11 @@ is-resolvable@^1.0.0: resolved "https://registrynpm.storefrontcloud.io/is-resolvable/-/is-resolvable-1.1.0.tgz#fb18f87ce1feb925169c9a407c19318a3206ed88" integrity sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg== +is-retry-allowed@^1.0.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/is-retry-allowed/-/is-retry-allowed-1.2.0.tgz#d778488bd0a4666a3be8a1482b9f2baafedea8b4" + integrity sha512-RUbUeKwvm3XG2VYamhJL1xFktgjvPzL0Hq8C+6yrWIswDy3BIXGqCxhxkc30N9jqK311gVU137K8Ei55/zVJRg== + is-ssh@^1.3.0: version "1.3.2" resolved "https://registrynpm.storefrontcloud.io/is-ssh/-/is-ssh-1.3.2.tgz#a4b82ab63d73976fd8263cceee27f99a88bdae2b" @@ -9127,7 +9561,7 @@ is-ssh@^1.3.0: dependencies: protocols "^1.1.0" -is-stream@^1.0.1, is-stream@^1.1.0: +is-stream@^1.0.0, is-stream@^1.0.1, is-stream@^1.1.0: version "1.1.0" resolved "https://registrynpm.storefrontcloud.io/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ= @@ -9173,6 +9607,11 @@ is-utf8@^0.2.0: resolved "https://registrynpm.storefrontcloud.io/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72" integrity sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI= +is-whitespace-character@^1.0.0: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-whitespace-character/-/is-whitespace-character-1.0.4.tgz#0858edd94a95594c7c9dd0b5c174ec6e45ee4aa7" + integrity sha512-SDweEzfIZM0SJV0EUga669UTKlmL0Pq8Lno0QDQsPnvECB3IM2aP0gdx5TrU0A01MAPfViaZiI2V1QMZLaKK5w== + is-whitespace@^0.3.0: version "0.3.0" resolved "https://registrynpm.storefrontcloud.io/is-whitespace/-/is-whitespace-0.3.0.tgz#1639ecb1be036aec69a54cbb401cfbed7114ab7f" @@ -9183,6 +9622,11 @@ is-windows@^1.0.0, is-windows@^1.0.2: resolved "https://registrynpm.storefrontcloud.io/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA== +is-word-character@^1.0.0: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-word-character/-/is-word-character-1.0.4.tgz#ce0e73216f98599060592f62ff31354ddbeb0230" + integrity sha512-5SMO8RVennx3nZrqtKwCGyyetPE9VDba5ugvKLaD4KopPG5kR4mQ7tNt/r7feL5yt5h3lpuBbIUmCOG2eSzXHA== + is-wsl@^1.1.0: version "1.1.0" resolved "https://registrynpm.storefrontcloud.io/is-wsl/-/is-wsl-1.1.0.tgz#1f16e4aa22b04d1336b66188a66af3c600c3a66d" @@ -9193,6 +9637,11 @@ is-yarn-global@^0.3.0: resolved "https://registrynpm.storefrontcloud.io/is-yarn-global/-/is-yarn-global-0.3.0.tgz#d502d3382590ea3004893746754c89139973e232" integrity sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw== +isarray@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" + integrity sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8= + isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0: version "1.0.0" resolved "https://registrynpm.storefrontcloud.io/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" @@ -9940,6 +10389,13 @@ last-call-webpack-plugin@^3.0.0: lodash "^4.17.5" webpack-sources "^1.1.0" +latest-version@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/latest-version/-/latest-version-3.1.0.tgz#a205383fea322b33b5ae3b18abee0dc2f356ee15" + integrity sha1-ogU4P+oyKzO1rjsYq+4NwvNW7hU= + dependencies: + package-json "^4.0.0" + latest-version@^5.0.0: version "5.1.0" resolved "https://registrynpm.storefrontcloud.io/latest-version/-/latest-version-5.1.0.tgz#119dfe908fe38d15dfa43ecd13fa12ec8832face" @@ -9962,6 +10418,18 @@ launch-editor@^2.2.1: chalk "^2.3.0" shell-quote "^1.6.1" +lazy-property@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/lazy-property/-/lazy-property-1.0.0.tgz#84ddc4b370679ba8bd4cdcfa4c06b43d57111147" + integrity sha1-hN3Es3Bnm6i9TNz6TAa0PVcREUc= + +lcid@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/lcid/-/lcid-1.0.0.tgz#308accafa0bc483a3867b4b6f2b9506251d1b835" + integrity sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU= + dependencies: + invert-kv "^1.0.0" + leaflet@^1.5.1: version "1.7.1" resolved "https://registrynpm.storefrontcloud.io/leaflet/-/leaflet-1.7.1.tgz#10d684916edfe1bf41d688a3b97127c0322a2a19" @@ -10017,45 +10485,179 @@ levn@~0.3.0: prelude-ls "~1.1.2" type-check "~0.3.2" -lines-and-columns@^1.1.6: - version "1.1.6" - resolved "https://registrynpm.storefrontcloud.io/lines-and-columns/-/lines-and-columns-1.1.6.tgz#1c00c743b433cd0a4e80758f7b64a57440d9ff00" - integrity sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA= +libcipm@^4.0.8: + version "4.0.8" + resolved "https://registry.yarnpkg.com/libcipm/-/libcipm-4.0.8.tgz#dcea4919e10dfbce420327e63901613b9141bc89" + integrity sha512-IN3hh2yDJQtZZ5paSV4fbvJg4aHxCCg5tcZID/dSVlTuUiWktsgaldVljJv6Z5OUlYspx6xQkbR0efNodnIrOA== + dependencies: + bin-links "^1.1.2" + bluebird "^3.5.1" + figgy-pudding "^3.5.1" + find-npm-prefix "^1.0.2" + graceful-fs "^4.1.11" + ini "^1.3.5" + lock-verify "^2.1.0" + mkdirp "^0.5.1" + npm-lifecycle "^3.0.0" + npm-logical-tree "^1.2.1" + npm-package-arg "^6.1.0" + pacote "^9.1.0" + read-package-json "^2.0.13" + rimraf "^2.6.2" + worker-farm "^1.6.0" -linkify-it@^2.0.0: - version "2.2.0" - resolved "https://registrynpm.storefrontcloud.io/linkify-it/-/linkify-it-2.2.0.tgz#e3b54697e78bf915c70a38acd78fd09e0058b1cf" - integrity sha512-GnAl/knGn+i1U/wjBz3akz2stz+HrHLsxMwHQGofCDfPvlf+gDKN58UtfmUquTY4/MXeE2x7k19KQmeoZi94Iw== +libnpm@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/libnpm/-/libnpm-3.0.1.tgz#0be11b4c9dd4d1ffd7d95c786e92e55d65be77a2" + integrity sha512-d7jU5ZcMiTfBqTUJVZ3xid44fE5ERBm9vBnmhp2ECD2Ls+FNXWxHSkO7gtvrnbLO78gwPdNPz1HpsF3W4rjkBQ== dependencies: - uc.micro "^1.0.1" + bin-links "^1.1.2" + bluebird "^3.5.3" + find-npm-prefix "^1.0.2" + libnpmaccess "^3.0.2" + libnpmconfig "^1.2.1" + libnpmhook "^5.0.3" + libnpmorg "^1.0.1" + libnpmpublish "^1.1.2" + libnpmsearch "^2.0.2" + libnpmteam "^1.0.2" + lock-verify "^2.0.2" + npm-lifecycle "^3.0.0" + npm-logical-tree "^1.2.1" + npm-package-arg "^6.1.0" + npm-profile "^4.0.2" + npm-registry-fetch "^4.0.0" + npmlog "^4.1.2" + pacote "^9.5.3" + read-package-json "^2.0.13" + stringify-package "^1.0.0" -lint-staged@^10.0.7: - version "10.5.4" - resolved "https://registrynpm.storefrontcloud.io/lint-staged/-/lint-staged-10.5.4.tgz#cd153b5f0987d2371fc1d2847a409a2fe705b665" - integrity sha512-EechC3DdFic/TdOPgj/RB3FicqE6932LTHCUm0Y2fsD9KGlLB+RwJl2q1IYBIvEsKzDOgn0D4gll+YxG5RsrKg== +libnpmaccess@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/libnpmaccess/-/libnpmaccess-3.0.2.tgz#8b2d72345ba3bef90d3b4f694edd5c0417f58923" + integrity sha512-01512AK7MqByrI2mfC7h5j8N9V4I7MHJuk9buo8Gv+5QgThpOgpjB7sQBDDkeZqRteFb1QM/6YNdHfG7cDvfAQ== dependencies: - chalk "^4.1.0" - cli-truncate "^2.1.0" - commander "^6.2.0" - cosmiconfig "^7.0.0" - debug "^4.2.0" - dedent "^0.7.0" - enquirer "^2.3.6" - execa "^4.1.0" - listr2 "^3.2.2" - log-symbols "^4.0.0" - micromatch "^4.0.2" - normalize-path "^3.0.0" - please-upgrade-node "^3.2.0" - string-argv "0.3.1" - stringify-object "^3.3.0" + aproba "^2.0.0" + get-stream "^4.0.0" + npm-package-arg "^6.1.0" + npm-registry-fetch "^4.0.0" -listr2@^3.2.2: - version "3.3.4" - resolved "https://registrynpm.storefrontcloud.io/listr2/-/listr2-3.3.4.tgz#bca480e784877330b9d96d6cdc613ad243332e20" - integrity sha512-b0lhLAvXSr63AtPF9Dgn6tyxm8Kiz6JXpVGM0uZJdnDcZp02jt7FehgAnMfA9R7riQimOKjQgLknBTdz2nmXwQ== +libnpmconfig@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/libnpmconfig/-/libnpmconfig-1.2.1.tgz#c0c2f793a74e67d4825e5039e7a02a0044dfcbc0" + integrity sha512-9esX8rTQAHqarx6qeZqmGQKBNZR5OIbl/Ayr0qQDy3oXja2iFVQQI81R6GZ2a02bSNZ9p3YOGX1O6HHCb1X7kA== dependencies: - chalk "^4.1.0" + figgy-pudding "^3.5.1" + find-up "^3.0.0" + ini "^1.3.5" + +libnpmhook@^5.0.3: + version "5.0.3" + resolved "https://registry.yarnpkg.com/libnpmhook/-/libnpmhook-5.0.3.tgz#4020c0f5edbf08ebe395325caa5ea01885b928f7" + integrity sha512-UdNLMuefVZra/wbnBXECZPefHMGsVDTq5zaM/LgKNE9Keyl5YXQTnGAzEo+nFOpdRqTWI9LYi4ApqF9uVCCtuA== + dependencies: + aproba "^2.0.0" + figgy-pudding "^3.4.1" + get-stream "^4.0.0" + npm-registry-fetch "^4.0.0" + +libnpmorg@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/libnpmorg/-/libnpmorg-1.0.1.tgz#5d2503f6ceb57f33dbdcc718e6698fea6d5ad087" + integrity sha512-0sRUXLh+PLBgZmARvthhYXQAWn0fOsa6T5l3JSe2n9vKG/lCVK4nuG7pDsa7uMq+uTt2epdPK+a2g6btcY11Ww== + dependencies: + aproba "^2.0.0" + figgy-pudding "^3.4.1" + get-stream "^4.0.0" + npm-registry-fetch "^4.0.0" + +libnpmpublish@^1.1.2: + version "1.1.3" + resolved "https://registry.yarnpkg.com/libnpmpublish/-/libnpmpublish-1.1.3.tgz#e3782796722d79eef1a0a22944c117e0c4ca4280" + integrity sha512-/3LsYqVc52cHXBmu26+J8Ed7sLs/hgGVFMH1mwYpL7Qaynb9RenpKqIKu0sJ130FB9PMkpMlWjlbtU8A4m7CQw== + dependencies: + aproba "^2.0.0" + figgy-pudding "^3.5.1" + get-stream "^4.0.0" + lodash.clonedeep "^4.5.0" + normalize-package-data "^2.4.0" + npm-package-arg "^6.1.0" + npm-registry-fetch "^4.0.0" + semver "^5.5.1" + ssri "^6.0.1" + +libnpmsearch@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/libnpmsearch/-/libnpmsearch-2.0.2.tgz#9a4f059102d38e3dd44085bdbfe5095f2a5044cf" + integrity sha512-VTBbV55Q6fRzTdzziYCr64+f8AopQ1YZ+BdPOv16UegIEaE8C0Kch01wo4s3kRTFV64P121WZJwgmBwrq68zYg== + dependencies: + figgy-pudding "^3.5.1" + get-stream "^4.0.0" + npm-registry-fetch "^4.0.0" + +libnpmteam@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/libnpmteam/-/libnpmteam-1.0.2.tgz#8b48bcbb6ce70dd8150c950fcbdbf3feb6eec820" + integrity sha512-p420vM28Us04NAcg1rzgGW63LMM6rwe+6rtZpfDxCcXxM0zUTLl7nPFEnRF3JfFBF5skF/yuZDUthTsHgde8QA== + dependencies: + aproba "^2.0.0" + figgy-pudding "^3.4.1" + get-stream "^4.0.0" + npm-registry-fetch "^4.0.0" + +libnpx@^10.2.4: + version "10.2.4" + resolved "https://registry.yarnpkg.com/libnpx/-/libnpx-10.2.4.tgz#ef0e3258e29aef2ec7ee3276115e20e67f67d4ee" + integrity sha512-BPc0D1cOjBeS8VIBKUu5F80s6njm0wbVt7CsGMrIcJ+SI7pi7V0uVPGpEMH9H5L8csOcclTxAXFE2VAsJXUhfA== + dependencies: + dotenv "^5.0.1" + npm-package-arg "^6.0.0" + rimraf "^2.6.2" + safe-buffer "^5.1.0" + update-notifier "^2.3.0" + which "^1.3.0" + y18n "^4.0.0" + yargs "^14.2.3" + +lines-and-columns@^1.1.6: + version "1.1.6" + resolved "https://registrynpm.storefrontcloud.io/lines-and-columns/-/lines-and-columns-1.1.6.tgz#1c00c743b433cd0a4e80758f7b64a57440d9ff00" + integrity sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA= + +linkify-it@^2.0.0: + version "2.2.0" + resolved "https://registrynpm.storefrontcloud.io/linkify-it/-/linkify-it-2.2.0.tgz#e3b54697e78bf915c70a38acd78fd09e0058b1cf" + integrity sha512-GnAl/knGn+i1U/wjBz3akz2stz+HrHLsxMwHQGofCDfPvlf+gDKN58UtfmUquTY4/MXeE2x7k19KQmeoZi94Iw== + dependencies: + uc.micro "^1.0.1" + +lint-staged@^10.0.7: + version "10.5.4" + resolved "https://registrynpm.storefrontcloud.io/lint-staged/-/lint-staged-10.5.4.tgz#cd153b5f0987d2371fc1d2847a409a2fe705b665" + integrity sha512-EechC3DdFic/TdOPgj/RB3FicqE6932LTHCUm0Y2fsD9KGlLB+RwJl2q1IYBIvEsKzDOgn0D4gll+YxG5RsrKg== + dependencies: + chalk "^4.1.0" + cli-truncate "^2.1.0" + commander "^6.2.0" + cosmiconfig "^7.0.0" + debug "^4.2.0" + dedent "^0.7.0" + enquirer "^2.3.6" + execa "^4.1.0" + listr2 "^3.2.2" + log-symbols "^4.0.0" + micromatch "^4.0.2" + normalize-path "^3.0.0" + please-upgrade-node "^3.2.0" + string-argv "0.3.1" + stringify-object "^3.3.0" + +listr2@^3.2.2: + version "3.3.4" + resolved "https://registrynpm.storefrontcloud.io/listr2/-/listr2-3.3.4.tgz#bca480e784877330b9d96d6cdc613ad243332e20" + integrity sha512-b0lhLAvXSr63AtPF9Dgn6tyxm8Kiz6JXpVGM0uZJdnDcZp02jt7FehgAnMfA9R7riQimOKjQgLknBTdz2nmXwQ== + dependencies: + chalk "^4.1.0" cli-truncate "^2.1.0" figures "^3.2.0" indent-string "^4.0.0" @@ -10180,17 +10782,78 @@ locate-path@^6.0.0: dependencies: p-locate "^5.0.0" +lock-verify@^2.0.2, lock-verify@^2.1.0: + version "2.2.1" + resolved "https://registry.yarnpkg.com/lock-verify/-/lock-verify-2.2.1.tgz#81107948c51ed16f97b96ff8b60675affb243fc1" + integrity sha512-n0Zw2DVupKfZMazy/HIFVNohJ1z8fIoZ77WBnyyBGG6ixw83uJNyrbiJvvHWe1QKkGiBCjj8RCPlymltliqEww== + dependencies: + "@iarna/cli" "^1.2.0" + npm-package-arg "^6.1.0" + semver "^5.4.1" + +lockfile@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/lockfile/-/lockfile-1.0.4.tgz#07f819d25ae48f87e538e6578b6964a4981a5609" + integrity sha512-cvbTwETRfsFh4nHsL1eGWapU1XFi5Ot9E85sWAwia7Y7EgB7vfqcZhTKZ+l7hCGxSPoushMv5GKhT5PdLv03WA== + dependencies: + signal-exit "^3.0.2" + lodash-es@^4.17.15: version "4.17.21" resolved "https://registrynpm.storefrontcloud.io/lodash-es/-/lodash-es-4.17.21.tgz#43e626c46e6591b7750beb2b50117390c609e3ee" integrity sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw== +lodash._baseindexof@*: + version "3.1.0" + resolved "https://registry.yarnpkg.com/lodash._baseindexof/-/lodash._baseindexof-3.1.0.tgz#fe52b53a1c6761e42618d654e4a25789ed61822c" + integrity sha1-/lK1OhxnYeQmGNZU5KJXie1hgiw= + +lodash._baseuniq@~4.6.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/lodash._baseuniq/-/lodash._baseuniq-4.6.0.tgz#0ebb44e456814af7905c6212fa2c9b2d51b841e8" + integrity sha1-DrtE5FaBSveQXGIS+iybLVG4Qeg= + dependencies: + lodash._createset "~4.0.0" + lodash._root "~3.0.0" + +lodash._bindcallback@*: + version "3.0.1" + resolved "https://registry.yarnpkg.com/lodash._bindcallback/-/lodash._bindcallback-3.0.1.tgz#e531c27644cf8b57a99e17ed95b35c748789392e" + integrity sha1-5THCdkTPi1epnhftlbNcdIeJOS4= + +lodash._cacheindexof@*: + version "3.0.2" + resolved "https://registry.yarnpkg.com/lodash._cacheindexof/-/lodash._cacheindexof-3.0.2.tgz#3dc69ac82498d2ee5e3ce56091bafd2adc7bde92" + integrity sha1-PcaayCSY0u5ePOVgkbr9Ktx73pI= + +lodash._createcache@*: + version "3.1.2" + resolved "https://registry.yarnpkg.com/lodash._createcache/-/lodash._createcache-3.1.2.tgz#56d6a064017625e79ebca6b8018e17440bdcf093" + integrity sha1-VtagZAF2JeeevKa4AY4XRAvc8JM= + dependencies: + lodash._getnative "^3.0.0" + +lodash._createset@~4.0.0: + version "4.0.3" + resolved "https://registry.yarnpkg.com/lodash._createset/-/lodash._createset-4.0.3.tgz#0f4659fbb09d75194fa9e2b88a6644d363c9fe26" + integrity sha1-D0ZZ+7CddRlPqeK4imZE02PJ/iY= + +lodash._getnative@*, lodash._getnative@^3.0.0: + version "3.9.1" + resolved "https://registry.yarnpkg.com/lodash._getnative/-/lodash._getnative-3.9.1.tgz#570bc7dede46d61cdcde687d65d3eecbaa3aaff5" + integrity sha1-VwvH3t5G1hzc3mh9ZdPuy6o6r/U= + lodash._reinterpolate@^3.0.0: version "3.0.0" resolved "https://registrynpm.storefrontcloud.io/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz#0ccf2d89166af03b3663c796538b75ac6e114d9d" integrity sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0= -lodash.clonedeep@^4.5.0: +lodash._root@~3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/lodash._root/-/lodash._root-3.0.1.tgz#fba1c4524c19ee9a5f8136b4609f017cf4ded692" + integrity sha1-+6HEUkwZ7ppfgTa0YJ8BfPTe1pI= + +lodash.clonedeep@^4.5.0, lodash.clonedeep@~4.5.0: version "4.5.0" resolved "https://registrynpm.storefrontcloud.io/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz#e23f3f9c4f8fbdde872529c1071857a086e5ccef" integrity sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8= @@ -10230,6 +10893,11 @@ lodash.merge@^4.6.2: resolved "https://registrynpm.storefrontcloud.io/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== +lodash.restparam@*: + version "3.6.1" + resolved "https://registry.yarnpkg.com/lodash.restparam/-/lodash.restparam-3.6.1.tgz#936a4e309ef330a7645ed4145986c85ae5b20805" + integrity sha1-k2pOMJ7zMKdkXtQUWYbIWuWyCAU= + lodash.set@^4.3.2: version "4.3.2" resolved "https://registrynpm.storefrontcloud.io/lodash.set/-/lodash.set-4.3.2.tgz#d8757b1da807dde24816b0d6a84bea1a76230b23" @@ -10245,6 +10913,11 @@ lodash.sortby@^4.7.0: resolved "https://registrynpm.storefrontcloud.io/lodash.sortby/-/lodash.sortby-4.7.0.tgz#edd14c824e2cc9c1e0b0a1b42bb5210516a42438" integrity sha1-7dFMgk4sycHgsKG0K7UhBRakJDg= +lodash.startcase@^4.4.0: + version "4.4.0" + resolved "https://registry.yarnpkg.com/lodash.startcase/-/lodash.startcase-4.4.0.tgz#9436e34ed26093ed7ffae1936144350915d9add8" + integrity sha1-lDbjTtJgk+1/+uGTYUQ1CRXZrdg= + lodash.template@^4.0.2, lodash.template@^4.5.0: version "4.5.0" resolved "https://registrynpm.storefrontcloud.io/lodash.template/-/lodash.template-4.5.0.tgz#f976195cf3f347d0d5f52483569fe8031ccce8ab" @@ -10265,11 +10938,21 @@ lodash.throttle@^4.1.1: resolved "https://registrynpm.storefrontcloud.io/lodash.throttle/-/lodash.throttle-4.1.1.tgz#c23e91b710242ac70c37f1e1cda9274cc39bf2f4" integrity sha1-wj6RtxAkKscMN/HhzaknTMOb8vQ= -lodash.uniq@^4.5.0: +lodash.union@~4.6.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/lodash.union/-/lodash.union-4.6.0.tgz#48bb5088409f16f1821666641c44dd1aaae3cd88" + integrity sha1-SLtQiECfFvGCFmZkHETdGqrjzYg= + +lodash.uniq@^4.5.0, lodash.uniq@~4.5.0: version "4.5.0" resolved "https://registrynpm.storefrontcloud.io/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" integrity sha1-0CJTc662Uq3BvILklFM5qEJ1R3M= +lodash.without@~4.4.0: + version "4.4.0" + resolved "https://registry.yarnpkg.com/lodash.without/-/lodash.without-4.4.0.tgz#3cd4574a00b67bae373a94b748772640507b7aac" + integrity sha1-PNRXSgC2e643OpS3SHcmQFB7eqw= + lodash@4.x, lodash@^4.0.0, lodash@^4.15.0, lodash@^4.17.11, lodash@^4.17.12, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.20, lodash@^4.17.21, lodash@^4.17.3, lodash@^4.17.5, lodash@^4.2.1, lodash@~4.17.10: version "4.17.21" resolved "https://registrynpm.storefrontcloud.io/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" @@ -10361,9 +11044,9 @@ lru-cache@^6.0.0: dependencies: yallist "^4.0.0" -lunr@^2.3.8: +lunr@^2.3.9: version "2.3.9" - resolved "https://registrynpm.storefrontcloud.io/lunr/-/lunr-2.3.9.tgz#18b123142832337dd6e964df1a5a7707b25d35e1" + resolved "https://registry.yarnpkg.com/lunr/-/lunr-2.3.9.tgz#18b123142832337dd6e964df1a5a7707b25d35e1" integrity sha512-zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow== macos-release@^2.2.0: @@ -10463,6 +11146,11 @@ map-visit@^1.0.0: dependencies: object-visit "^1.0.0" +markdown-escapes@^1.0.0: + version "1.0.4" + resolved "https://registry.yarnpkg.com/markdown-escapes/-/markdown-escapes-1.0.4.tgz#c95415ef451499d7602b91095f3c8e8975f78535" + integrity sha512-8z4efJYk43E0upd0NbVXwgSTQs6cT3T06etieCMEg7dRbzCbxUCK/GHlX8mhHRDcp+OLlHkPKsvqQTCvsRl2cg== + markdown-it-anchor@^5.0.2: version "5.3.0" resolved "https://registrynpm.storefrontcloud.io/markdown-it-anchor/-/markdown-it-anchor-5.3.0.tgz#d549acd64856a8ecd1bea58365ef385effbac744" @@ -10501,10 +11189,10 @@ markdown-it@^8.4.1: mdurl "^1.0.1" uc.micro "^1.0.5" -marked@1.0.0: - version "1.0.0" - resolved "https://registrynpm.storefrontcloud.io/marked/-/marked-1.0.0.tgz#d35784245a04871e5988a491e28867362e941693" - integrity sha512-Wo+L1pWTVibfrSr+TTtMuiMfNzmZWiOPeO7rZsQUY5bgsxpHesBEcIWJloWVTFnrMXnf/TL30eTFSGJddmQAng== +marked@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/marked/-/marked-2.0.1.tgz#5e7ed7009bfa5c95182e4eb696f85e948cefcee3" + integrity sha512-5+/fKgMv2hARmMW7DOpykr2iLhl0NgjyELk5yn92iE7z8Se1IS9n3UsFm86hFXIkvMBmVxki8+ckcpjBeyo/hw== md5.js@^1.3.4: version "1.3.5" @@ -10530,11 +11218,23 @@ mdurl@^1.0.1: resolved "https://registrynpm.storefrontcloud.io/mdurl/-/mdurl-1.0.1.tgz#fe85b2ec75a59037f2adfec100fd6c601761152e" integrity sha1-/oWy7HWlkDfyrf7BAP1sYBdhFS4= +meant@^1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/meant/-/meant-1.0.3.tgz#67769af9de1d158773e928ae82c456114903554c" + integrity sha512-88ZRGcNxAq4EH38cQ4D85PM57pikCwS8Z99EWHODxN7KBY+UuPiqzRTtZzS8KTXO/ywSWbdjjJST2Hly/EQxLw== + media-typer@0.3.0: version "0.3.0" resolved "https://registrynpm.storefrontcloud.io/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" integrity sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g= +mem@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/mem/-/mem-1.1.0.tgz#5edd52b485ca1d900fe64895505399a0dfa45f76" + integrity sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y= + dependencies: + mimic-fn "^1.0.0" + mem@^8.0.0: version "8.0.0" resolved "https://registrynpm.storefrontcloud.io/mem/-/mem-8.0.0.tgz#b5e4b6d2d241c6296da05436173b4d0c7ae1f9ac" @@ -10597,6 +11297,23 @@ meow@^4.0.0: redent "^2.0.0" trim-newlines "^2.0.0" +meow@^7.0.0: + version "7.1.1" + resolved "https://registry.yarnpkg.com/meow/-/meow-7.1.1.tgz#7c01595e3d337fcb0ec4e8eed1666ea95903d306" + integrity sha512-GWHvA5QOcS412WCo8vwKDlTelGLsCGBVevQB5Kva961rmNfun0PCbv5+xta2kUMFJyR8/oWnn7ddeKdosbAPbA== + dependencies: + "@types/minimist" "^1.2.0" + camelcase-keys "^6.2.2" + decamelize-keys "^1.1.0" + hard-rejection "^2.1.0" + minimist-options "4.1.0" + normalize-package-data "^2.5.0" + read-pkg-up "^7.0.1" + redent "^3.0.0" + trim-newlines "^3.0.0" + type-fest "^0.13.1" + yargs-parser "^18.1.3" + meow@^8.0.0: version "8.1.2" resolved "https://registrynpm.storefrontcloud.io/meow/-/meow-8.1.2.tgz#bcbe45bda0ee1729d350c03cffc8395a36c4e897" @@ -10774,7 +11491,7 @@ minimist-options@^3.0.1: arrify "^1.0.1" is-plain-obj "^1.1.0" -minimist@^1.1.1, minimist@^1.1.3, minimist@^1.2.0, minimist@^1.2.5: +minimist@^1.1.1, minimist@^1.1.3, minimist@^1.2.0, minimist@^1.2.5, minimist@~1.2.0: version "1.2.5" resolved "https://registrynpm.storefrontcloud.io/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== @@ -10871,7 +11588,7 @@ mkdirp@0.3.0: resolved "https://registrynpm.storefrontcloud.io/mkdirp/-/mkdirp-0.3.0.tgz#1bbf5ab1ba827af23575143490426455f481fe1e" integrity sha1-G79asbqCevI1dRQ0kEJkVfSB/h4= -mkdirp@0.x, "mkdirp@>=0.5 0", mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@^0.5.3, mkdirp@^0.5.5, mkdirp@~0.5.1: +mkdirp@0.x, "mkdirp@>=0.5 0", mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@^0.5.3, mkdirp@^0.5.5, mkdirp@~0.5.0, mkdirp@~0.5.1: version "0.5.5" resolved "https://registrynpm.storefrontcloud.io/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def" integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ== @@ -11069,7 +11786,7 @@ node-gyp@^3.8.0: tar "^2.0.0" which "1" -node-gyp@^5.0.2: +node-gyp@^5.0.2, node-gyp@^5.1.0: version "5.1.1" resolved "https://registrynpm.storefrontcloud.io/node-gyp/-/node-gyp-5.1.1.tgz#eb915f7b631c937d282e33aed44cb7a025f62a3e" integrity sha512-WH0WKGi+a4i4DUt2mHnvocex/xPLp9pYt5R6M2JdFB7pJ7Z34hveZ4nDTGTiLXCkitA9T8HFZjhinBCiVHYcWw== @@ -11201,7 +11918,7 @@ nopt@1.0.10: dependencies: abbrev "1" -nopt@^4.0.1: +nopt@^4.0.1, nopt@^4.0.3: version "4.0.3" resolved "https://registrynpm.storefrontcloud.io/nopt/-/nopt-4.0.3.tgz#a375cad9d02fd921278d954c2254d5aa57e15e48" integrity sha512-CvaGwVMztSMJLOeXPrez7fyfObdZqNUK1cPAEzLHrTybIua9pMdmmPR5YwtfNftIOMv3DPUhFaxsZMNTQO20Kg== @@ -11282,6 +11999,14 @@ normalize-url@^4.1.0: resolved "https://registrynpm.storefrontcloud.io/normalize-url/-/normalize-url-4.5.0.tgz#453354087e6ca96957bd8f5baf753f5982142129" integrity sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ== +npm-audit-report@^1.3.3: + version "1.3.3" + resolved "https://registry.yarnpkg.com/npm-audit-report/-/npm-audit-report-1.3.3.tgz#8226deeb253b55176ed147592a3995442f2179ed" + integrity sha512-8nH/JjsFfAWMvn474HB9mpmMjrnKb1Hx/oTAdjv4PT9iZBvBxiZ+wtDUapHCJwLqYGQVPaAfs+vL5+5k9QndXw== + dependencies: + cli-table3 "^0.5.0" + console-control-strings "^1.1.0" + npm-bundled@^1.0.1: version "1.1.1" resolved "https://registrynpm.storefrontcloud.io/npm-bundled/-/npm-bundled-1.1.1.tgz#1edd570865a94cdb1bc8220775e29466c9fb234b" @@ -11289,7 +12014,19 @@ npm-bundled@^1.0.1: dependencies: npm-normalize-package-bin "^1.0.1" -npm-lifecycle@^3.1.2: +npm-cache-filename@~1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/npm-cache-filename/-/npm-cache-filename-1.0.2.tgz#ded306c5b0bfc870a9e9faf823bc5f283e05ae11" + integrity sha1-3tMGxbC/yHCp6fr4I7xfKD4FrhE= + +npm-install-checks@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/npm-install-checks/-/npm-install-checks-3.0.2.tgz#ab2e32ad27baa46720706908e5b14c1852de44d9" + integrity sha512-E4kzkyZDIWoin6uT5howP8VDvkM+E8IQDcHAycaAxMbwkqhIg5eEYALnXOl3Hq9MrkdQB/2/g1xwBINXdKSRkg== + dependencies: + semver "^2.3.0 || 3.x || 4 || 5" + +npm-lifecycle@^3.0.0, npm-lifecycle@^3.1.2, npm-lifecycle@^3.1.5: version "3.1.5" resolved "https://registrynpm.storefrontcloud.io/npm-lifecycle/-/npm-lifecycle-3.1.5.tgz#9882d3642b8c82c815782a12e6a1bfeed0026309" integrity sha512-lDLVkjfZmvmfvpvBzA4vzee9cn+Me4orq0QF8glbswJVEbIcSNWib7qGOffolysc3teCqbbPZZkzbr3GQZTL1g== @@ -11303,12 +12040,17 @@ npm-lifecycle@^3.1.2: umask "^1.1.0" which "^1.3.1" +npm-logical-tree@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/npm-logical-tree/-/npm-logical-tree-1.2.1.tgz#44610141ca24664cad35d1e607176193fd8f5b88" + integrity sha512-AJI/qxDB2PWI4LG1CYN579AY1vCiNyWfkiquCsJWqntRu/WwimVrC8yXeILBFHDwxfOejxewlmnvW9XXjMlYIg== + npm-normalize-package-bin@^1.0.0, npm-normalize-package-bin@^1.0.1: version "1.0.1" resolved "https://registrynpm.storefrontcloud.io/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz#6e79a41f23fd235c0623218228da7d9c23b8f6e2" integrity sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA== -"npm-package-arg@^4.0.0 || ^5.0.0 || ^6.0.0", npm-package-arg@^6.0.0, npm-package-arg@^6.1.0: +"npm-package-arg@^4.0.0 || ^5.0.0 || ^6.0.0", npm-package-arg@^6.0.0, npm-package-arg@^6.1.0, npm-package-arg@^6.1.1: version "6.1.1" resolved "https://registrynpm.storefrontcloud.io/npm-package-arg/-/npm-package-arg-6.1.1.tgz#02168cb0a49a2b75bf988a28698de7b529df5cb7" integrity sha512-qBpssaL3IOZWi5vEKUKW0cO7kzLeT+EQO9W8RsLOZf76KF9E/K9+wH0C7t06HXPpaH8WH5xF1MExLuCwbTqRUg== @@ -11318,7 +12060,7 @@ npm-normalize-package-bin@^1.0.0, npm-normalize-package-bin@^1.0.1: semver "^5.6.0" validate-npm-package-name "^3.0.0" -npm-packlist@^1.4.4: +npm-packlist@^1.1.12, npm-packlist@^1.4.4, npm-packlist@^1.4.8: version "1.4.8" resolved "https://registrynpm.storefrontcloud.io/npm-packlist/-/npm-packlist-1.4.8.tgz#56ee6cc135b9f98ad3d51c1c95da22bbb9b2ef3e" integrity sha512-5+AZgwru5IevF5ZdnFglB5wNlHG1AOOuw28WhUq8/8emhBmLv6jX5by4WJCh7lW0uSYZYS6DXqIsyZVIXRZU9A== @@ -11327,7 +12069,7 @@ npm-packlist@^1.4.4: npm-bundled "^1.0.1" npm-normalize-package-bin "^1.0.1" -npm-pick-manifest@^3.0.0: +npm-pick-manifest@^3.0.0, npm-pick-manifest@^3.0.2: version "3.0.2" resolved "https://registrynpm.storefrontcloud.io/npm-pick-manifest/-/npm-pick-manifest-3.0.2.tgz#f4d9e5fd4be2153e5f4e5f9b7be8dc419a99abb7" integrity sha512-wNprTNg+X5nf+tDi+hbjdHhM4bX+mKqv6XmPh7B5eG+QY9VARfQPfCEH013H5GqfNj6ee8Ij2fg8yk0mzps1Vw== @@ -11336,6 +12078,28 @@ npm-pick-manifest@^3.0.0: npm-package-arg "^6.0.0" semver "^5.4.1" +npm-profile@^4.0.2, npm-profile@^4.0.4: + version "4.0.4" + resolved "https://registry.yarnpkg.com/npm-profile/-/npm-profile-4.0.4.tgz#28ee94390e936df6d084263ee2061336a6a1581b" + integrity sha512-Ta8xq8TLMpqssF0H60BXS1A90iMoM6GeKwsmravJ6wYjWwSzcYBTdyWa3DZCYqPutacBMEm7cxiOkiIeCUAHDQ== + dependencies: + aproba "^1.1.2 || 2" + figgy-pudding "^3.4.1" + npm-registry-fetch "^4.0.0" + +npm-registry-fetch@^4.0.0, npm-registry-fetch@^4.0.7: + version "4.0.7" + resolved "https://registry.yarnpkg.com/npm-registry-fetch/-/npm-registry-fetch-4.0.7.tgz#57951bf6541e0246b34c9f9a38ab73607c9449d7" + integrity sha512-cny9v0+Mq6Tjz+e0erFAB+RYJ/AVGzkjnISiobqP8OWj9c9FLoZZu8/SPSKJWE17F1tk4018wfjV+ZbIbqC7fQ== + dependencies: + JSONStream "^1.3.4" + bluebird "^3.5.1" + figgy-pudding "^3.4.1" + lru-cache "^5.1.1" + make-fetch-happen "^5.0.0" + npm-package-arg "^6.1.0" + safe-buffer "^5.2.0" + npm-run-path@^2.0.0: version "2.0.2" resolved "https://registrynpm.storefrontcloud.io/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" @@ -11350,7 +12114,133 @@ npm-run-path@^4.0.0, npm-run-path@^4.0.1: dependencies: path-key "^3.0.0" -"npmlog@0 || 1 || 2 || 3 || 4", npmlog@^4.0.0, npmlog@^4.1.2: +npm-user-validate@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/npm-user-validate/-/npm-user-validate-1.0.1.tgz#31428fc5475fe8416023f178c0ab47935ad8c561" + integrity sha512-uQwcd/tY+h1jnEaze6cdX/LrhWhoBxfSknxentoqmIuStxUExxjWd3ULMLFPiFUrZKbOVMowH6Jq2FRWfmhcEw== + +npm@^6.14.5: + version "6.14.11" + resolved "https://registry.yarnpkg.com/npm/-/npm-6.14.11.tgz#e0b5598d7b9a42d275e61d8bd28cd7eee0074a3b" + integrity sha512-1Zh7LjuIoEhIyjkBflSSGzfjuPQwDlghNloppjruOH5bmj9midT9qcNT0tRUZRR04shU9ekrxNy9+UTBrqeBpQ== + dependencies: + JSONStream "^1.3.5" + abbrev "~1.1.1" + ansicolors "~0.3.2" + ansistyles "~0.1.3" + aproba "^2.0.0" + archy "~1.0.0" + bin-links "^1.1.8" + bluebird "^3.5.5" + byte-size "^5.0.1" + cacache "^12.0.3" + call-limit "^1.1.1" + chownr "^1.1.4" + ci-info "^2.0.0" + cli-columns "^3.1.2" + cli-table3 "^0.5.1" + cmd-shim "^3.0.3" + columnify "~1.5.4" + config-chain "^1.1.12" + detect-indent "~5.0.0" + detect-newline "^2.1.0" + dezalgo "~1.0.3" + editor "~1.0.0" + figgy-pudding "^3.5.1" + find-npm-prefix "^1.0.2" + fs-vacuum "~1.2.10" + fs-write-stream-atomic "~1.0.10" + gentle-fs "^2.3.1" + glob "^7.1.6" + graceful-fs "^4.2.4" + has-unicode "~2.0.1" + hosted-git-info "^2.8.8" + iferr "^1.0.2" + infer-owner "^1.0.4" + inflight "~1.0.6" + inherits "^2.0.4" + ini "^1.3.8" + init-package-json "^1.10.3" + is-cidr "^3.0.0" + json-parse-better-errors "^1.0.2" + lazy-property "~1.0.0" + libcipm "^4.0.8" + libnpm "^3.0.1" + libnpmaccess "^3.0.2" + libnpmhook "^5.0.3" + libnpmorg "^1.0.1" + libnpmsearch "^2.0.2" + libnpmteam "^1.0.2" + libnpx "^10.2.4" + lock-verify "^2.1.0" + lockfile "^1.0.4" + lodash._baseuniq "~4.6.0" + lodash.clonedeep "~4.5.0" + lodash.union "~4.6.0" + lodash.uniq "~4.5.0" + lodash.without "~4.4.0" + lru-cache "^5.1.1" + meant "^1.0.2" + mississippi "^3.0.0" + mkdirp "^0.5.5" + move-concurrently "^1.0.1" + node-gyp "^5.1.0" + nopt "^4.0.3" + normalize-package-data "^2.5.0" + npm-audit-report "^1.3.3" + npm-cache-filename "~1.0.2" + npm-install-checks "^3.0.2" + npm-lifecycle "^3.1.5" + npm-package-arg "^6.1.1" + npm-packlist "^1.4.8" + npm-pick-manifest "^3.0.2" + npm-profile "^4.0.4" + npm-registry-fetch "^4.0.7" + npm-user-validate "^1.0.1" + npmlog "~4.1.2" + once "~1.4.0" + opener "^1.5.2" + osenv "^0.1.5" + pacote "^9.5.12" + path-is-inside "~1.0.2" + promise-inflight "~1.0.1" + qrcode-terminal "^0.12.0" + query-string "^6.8.2" + qw "~1.0.1" + read "~1.0.7" + read-cmd-shim "^1.0.5" + read-installed "~4.0.3" + read-package-json "^2.1.1" + read-package-tree "^5.3.1" + readable-stream "^3.6.0" + readdir-scoped-modules "^1.1.0" + request "^2.88.0" + retry "^0.12.0" + rimraf "^2.7.1" + safe-buffer "^5.1.2" + semver "^5.7.1" + sha "^3.0.0" + slide "~1.1.6" + sorted-object "~2.0.1" + sorted-union-stream "~2.1.3" + ssri "^6.0.1" + stringify-package "^1.0.1" + tar "^4.4.13" + text-table "~0.2.0" + tiny-relative-date "^1.3.0" + uid-number "0.0.6" + umask "~1.1.0" + unique-filename "^1.1.1" + unpipe "~1.0.0" + update-notifier "^2.5.0" + uuid "^3.3.3" + validate-npm-package-license "^3.0.4" + validate-npm-package-name "~3.0.0" + which "^1.3.1" + worker-farm "^1.7.0" + write-file-atomic "^2.4.3" + +"npmlog@0 || 1 || 2 || 3 || 4", npmlog@^4.0.0, npmlog@^4.1.2, npmlog@~4.1.2: version "4.1.2" resolved "https://registrynpm.storefrontcloud.io/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b" integrity sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg== @@ -11536,7 +12426,7 @@ on-headers@^1.0.2, on-headers@~1.0.2: resolved "https://registrynpm.storefrontcloud.io/on-headers/-/on-headers-1.0.2.tgz#772b0ae6aaa525c399e489adfad90c403eb3c28f" integrity sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA== -once@^1.3.0, once@^1.3.1, once@^1.4.0: +once@^1.3.0, once@^1.3.1, once@^1.4.0, once@~1.4.0: version "1.4.0" resolved "https://registrynpm.storefrontcloud.io/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= @@ -11557,6 +12447,13 @@ onetime@^5.1.0, onetime@^5.1.2: dependencies: mimic-fn "^2.1.0" +onigasm@^2.2.5: + version "2.2.5" + resolved "https://registry.yarnpkg.com/onigasm/-/onigasm-2.2.5.tgz#cc4d2a79a0fa0b64caec1f4c7ea367585a676892" + integrity sha512-F+th54mPc0l1lp1ZcFMyL/jTs2Tlq4SqIHKIXGZOR/VkHkF9A7Fr5rRr5+ZG/lWeRsyrClLYRq7s/yFQ/XhWCA== + dependencies: + lru-cache "^5.1.1" + opencollective-postinstall@^2.0.2: version "2.0.3" resolved "https://registrynpm.storefrontcloud.io/opencollective-postinstall/-/opencollective-postinstall-2.0.3.tgz#7a0fff978f6dbfa4d006238fbac98ed4198c3259" @@ -11638,6 +12535,15 @@ os-homedir@^1.0.0: resolved "https://registrynpm.storefrontcloud.io/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" integrity sha1-/7xJiDNuDoM94MFox+8VISGqf7M= +os-locale@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-2.1.0.tgz#42bc2900a6b5b8bd17376c8e882b65afccf24bf2" + integrity sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA== + dependencies: + execa "^0.7.0" + lcid "^1.0.0" + mem "^1.1.0" + os-name@^3.1.0: version "3.1.0" resolved "https://registrynpm.storefrontcloud.io/os-name/-/os-name-3.1.0.tgz#dec19d966296e1cd62d701a5a66ee1ddeae70801" @@ -11790,6 +12696,16 @@ p-waterfall@^1.0.0: dependencies: p-reduce "^1.0.0" +package-json@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/package-json/-/package-json-4.0.1.tgz#8869a0401253661c4c4ca3da6c2121ed555f5eed" + integrity sha1-iGmgQBJTZhxMTKPabCEh7VVfXu0= + dependencies: + got "^6.7.1" + registry-auth-token "^3.0.1" + registry-url "^3.0.3" + semver "^5.1.0" + package-json@^6.3.0: version "6.5.0" resolved "https://registrynpm.storefrontcloud.io/package-json/-/package-json-6.5.0.tgz#6feedaca35e75725876d0b0e64974697fed145b0" @@ -11800,6 +12716,42 @@ package-json@^6.3.0: registry-url "^5.0.0" semver "^6.2.0" +pacote@^9.1.0, pacote@^9.5.12, pacote@^9.5.3: + version "9.5.12" + resolved "https://registry.yarnpkg.com/pacote/-/pacote-9.5.12.tgz#1e11dd7a8d736bcc36b375a9804d41bb0377bf66" + integrity sha512-BUIj/4kKbwWg4RtnBncXPJd15piFSVNpTzY0rysSr3VnMowTYgkGKcaHrbReepAkjTr8lH2CVWRi58Spg2CicQ== + dependencies: + bluebird "^3.5.3" + cacache "^12.0.2" + chownr "^1.1.2" + figgy-pudding "^3.5.1" + get-stream "^4.1.0" + glob "^7.1.3" + infer-owner "^1.0.4" + lru-cache "^5.1.1" + make-fetch-happen "^5.0.0" + minimatch "^3.0.4" + minipass "^2.3.5" + mississippi "^3.0.0" + mkdirp "^0.5.1" + normalize-package-data "^2.4.0" + npm-normalize-package-bin "^1.0.0" + npm-package-arg "^6.1.0" + npm-packlist "^1.1.12" + npm-pick-manifest "^3.0.0" + npm-registry-fetch "^4.0.0" + osenv "^0.1.5" + promise-inflight "^1.0.1" + promise-retry "^1.1.1" + protoduck "^5.0.1" + rimraf "^2.6.2" + safe-buffer "^5.1.2" + semver "^5.6.0" + ssri "^6.0.1" + tar "^4.4.10" + unique-filename "^1.1.1" + which "^1.3.1" + pako@~1.0.5: version "1.0.11" resolved "https://registrynpm.storefrontcloud.io/pako/-/pako-1.0.11.tgz#6c9599d340d54dfd3946380252a35705a6b992bf" @@ -11847,6 +12799,18 @@ parse-asn1@^5.0.0, parse-asn1@^5.1.5: pbkdf2 "^3.0.3" safe-buffer "^5.1.1" +parse-entities@^1.1.0: + version "1.2.2" + resolved "https://registry.yarnpkg.com/parse-entities/-/parse-entities-1.2.2.tgz#c31bf0f653b6661354f8973559cb86dd1d5edf50" + integrity sha512-NzfpbxW/NPrzZ/yYSoQxyqUZMZXIdCfE0OIN4ESsnptHJECoUk3FZktxNuzQf4tjt5UEopnxpYJbvYuxIFDdsg== + dependencies: + character-entities "^1.0.0" + character-entities-legacy "^1.0.0" + character-reference-invalid "^1.0.0" + is-alphanumerical "^1.0.0" + is-decimal "^1.0.0" + is-hexadecimal "^1.0.0" + parse-git-config@^3.0.0: version "3.0.0" resolved "https://registrynpm.storefrontcloud.io/parse-git-config/-/parse-git-config-3.0.0.tgz#4a2de08c7b74a2555efa5ae94d40cd44302a6132" @@ -11960,7 +12924,7 @@ path-is-absolute@^1.0.0: resolved "https://registrynpm.storefrontcloud.io/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= -path-is-inside@^1.0.2: +path-is-inside@^1.0.1, path-is-inside@^1.0.2, path-is-inside@~1.0.2: version "1.0.2" resolved "https://registrynpm.storefrontcloud.io/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53" integrity sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM= @@ -12826,7 +13790,7 @@ prelude-ls@~1.1.2: resolved "https://registrynpm.storefrontcloud.io/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" integrity sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ= -prepend-http@^1.0.0: +prepend-http@^1.0.0, prepend-http@^1.0.1: version "1.0.4" resolved "https://registrynpm.storefrontcloud.io/prepend-http/-/prepend-http-1.0.4.tgz#d4f4562b0ce3696e41ac52d0e002e57a635dc6dc" integrity sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw= @@ -12910,7 +13874,7 @@ progress@^2.0.0, progress@^2.0.3: resolved "https://registrynpm.storefrontcloud.io/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA== -promise-inflight@^1.0.1: +promise-inflight@^1.0.1, promise-inflight@~1.0.1: version "1.0.1" resolved "https://registrynpm.storefrontcloud.io/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3" integrity sha1-mEcocL8igTL8vdhoEputEsPAKeM= @@ -13079,6 +14043,11 @@ q@^1.1.2, q@^1.5.1: resolved "https://registrynpm.storefrontcloud.io/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7" integrity sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc= +qrcode-terminal@^0.12.0: + version "0.12.0" + resolved "https://registry.yarnpkg.com/qrcode-terminal/-/qrcode-terminal-0.12.0.tgz#bb5b699ef7f9f0505092a3748be4464fe71b5819" + integrity sha512-EXtzRZmC+YGmGlDFbXKxQiMZNwCLEO6BANKXG4iCtSIM0yqc/pappSx3RIKr4r0uh5JsBckOXeKrB3Iz7mdQpQ== + qs@6.7.0: version "6.7.0" resolved "https://registrynpm.storefrontcloud.io/qs/-/qs-6.7.0.tgz#41dc1a015e3d581f1621776be31afb2876a9b1bc" @@ -13116,7 +14085,7 @@ query-string@^5.0.1: object-assign "^4.1.0" strict-uri-encode "^1.0.0" -query-string@^6.13.8, query-string@^6.2.0: +query-string@^6.13.8, query-string@^6.2.0, query-string@^6.8.2: version "6.14.1" resolved "https://registrynpm.storefrontcloud.io/query-string/-/query-string-6.14.1.tgz#7ac2dca46da7f309449ba0f86b1fd28255b0c86a" integrity sha512-XDxAeVmpfu1/6IjyT/gXHOl+S0vQ9owggJ30hhWKdHAsNPOcasn5o9BW0eejZqL2e4vMjhAxoW3jVHcD6mbcYw== @@ -13161,6 +14130,11 @@ quick-lru@^4.0.1: resolved "https://registrynpm.storefrontcloud.io/quick-lru/-/quick-lru-4.0.1.tgz#5b8878f113a58217848c6482026c73e1ba57727f" integrity sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g== +qw@~1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/qw/-/qw-1.0.1.tgz#efbfdc740f9ad054304426acb183412cc8b996d4" + integrity sha1-77/cdA+a0FQwRCassYNBLMi5ltQ= + randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5, randombytes@^2.1.0: version "2.1.0" resolved "https://registrynpm.storefrontcloud.io/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" @@ -13200,7 +14174,7 @@ rc9@^1.2.0: destr "^1.0.0" flat "^5.0.0" -rc@^1.2.8: +rc@^1.0.1, rc@^1.1.6, rc@^1.2.8: version "1.2.8" resolved "https://registrynpm.storefrontcloud.io/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw== @@ -13227,14 +14201,28 @@ read-cache@^1.0.0: dependencies: pify "^2.3.0" -read-cmd-shim@^1.0.1: +read-cmd-shim@^1.0.1, read-cmd-shim@^1.0.5: version "1.0.5" resolved "https://registrynpm.storefrontcloud.io/read-cmd-shim/-/read-cmd-shim-1.0.5.tgz#87e43eba50098ba5a32d0ceb583ab8e43b961c16" integrity sha512-v5yCqQ/7okKoZZkBQUAfTsQ3sVJtXdNfbPnI5cceppoxEVLYA3k+VtV2omkeo8MS94JCy4fSiUwlRBAwCVRPUA== dependencies: graceful-fs "^4.1.2" -"read-package-json@1 || 2", read-package-json@^2.0.0, read-package-json@^2.0.13: +read-installed@~4.0.3: + version "4.0.3" + resolved "https://registry.yarnpkg.com/read-installed/-/read-installed-4.0.3.tgz#ff9b8b67f187d1e4c29b9feb31f6b223acd19067" + integrity sha1-/5uLZ/GH0eTCm5/rMfayI6zRkGc= + dependencies: + debuglog "^1.0.1" + read-package-json "^2.0.0" + readdir-scoped-modules "^1.0.0" + semver "2 || 3 || 4 || 5" + slide "~1.1.3" + util-extend "^1.0.1" + optionalDependencies: + graceful-fs "^4.1.2" + +"read-package-json@1 || 2", read-package-json@^2.0.0, read-package-json@^2.0.13, read-package-json@^2.1.1: version "2.1.2" resolved "https://registrynpm.storefrontcloud.io/read-package-json/-/read-package-json-2.1.2.tgz#6992b2b66c7177259feb8eaac73c3acd28b9222a" integrity sha512-D1KmuLQr6ZSJS0tW8hf3WGpRlwszJOXZ3E8Yd/DNRaM5d+1wVRZdHlpGBLAuovjr28LbWvjpWkBHMxpRGGjzNA== @@ -13244,7 +14232,7 @@ read-cmd-shim@^1.0.1: normalize-package-data "^2.0.0" npm-normalize-package-bin "^1.0.0" -read-package-tree@^5.1.6: +read-package-tree@^5.1.6, read-package-tree@^5.3.1: version "5.3.1" resolved "https://registrynpm.storefrontcloud.io/read-package-tree/-/read-package-tree-5.3.1.tgz#a32cb64c7f31eb8a6f31ef06f9cedf74068fe636" integrity sha512-mLUDsD5JVtlZxjSlPPx1RETkNjjvQYuweKwNVt1Sn8kP5Jh44pvYuUHCp6xSVDZWbNxVxG5lyZJ921aJH61sTw== @@ -13331,7 +14319,7 @@ read-pkg@^5.2.0: parse-json "^5.0.0" type-fest "^0.6.0" -read@1, read@~1.0.1: +read@1, read@~1.0.1, read@~1.0.7: version "1.0.7" resolved "https://registrynpm.storefrontcloud.io/read/-/read-1.0.7.tgz#b3da19bd052431a97671d44a42634adf710b40c4" integrity sha1-s9oZvQUkMal2cdRKQmNK33ELQMQ= @@ -13360,7 +14348,17 @@ read@1, read@~1.0.1: string_decoder "^1.1.1" util-deprecate "^1.0.1" -readdir-scoped-modules@^1.0.0: +readable-stream@~1.1.10: + version "1.1.14" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.1.14.tgz#7cf4c54ef648e3813084c636dd2079e166c081d9" + integrity sha1-fPTFTvZI44EwhMY23SB54WbAgdk= + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.1" + isarray "0.0.1" + string_decoder "~0.10.x" + +readdir-scoped-modules@^1.0.0, readdir-scoped-modules@^1.1.0: version "1.1.0" resolved "https://registrynpm.storefrontcloud.io/readdir-scoped-modules/-/readdir-scoped-modules-1.1.0.tgz#8d45407b4f870a0dcaebc0e28670d18e74514309" integrity sha512-asaikDeqAQg7JifRsZn1NJZXo9E+VwlyCfbkZhwyISinqk5zNS6266HS5kah6P0SaQKGF6SkNnZVHUzHFYxYDw== @@ -13488,6 +14486,14 @@ regexpu-core@^4.7.1: unicode-match-property-ecmascript "^1.0.4" unicode-match-property-value-ecmascript "^1.2.0" +registry-auth-token@^3.0.1: + version "3.4.0" + resolved "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-3.4.0.tgz#d7446815433f5d5ed6431cd5dca21048f66b397e" + integrity sha512-4LM6Fw8eBQdwMYcES4yTnn2TqIasbXuwDx3um+QRs7S55aMKCBKBxvPXl2RiUjHwuJLTyYfxSpmfSAjQpcuP+A== + dependencies: + rc "^1.1.6" + safe-buffer "^5.0.1" + registry-auth-token@^4.0.0: version "4.2.1" resolved "https://registrynpm.storefrontcloud.io/registry-auth-token/-/registry-auth-token-4.2.1.tgz#6d7b4006441918972ccd5fedcd41dc322c79b250" @@ -13495,6 +14501,13 @@ registry-auth-token@^4.0.0: dependencies: rc "^1.2.8" +registry-url@^3.0.3: + version "3.1.0" + resolved "https://registry.yarnpkg.com/registry-url/-/registry-url-3.1.0.tgz#3d4ef870f73dde1d77f0cf9a381432444e174942" + integrity sha1-PU74cPc93h138M+aOBQyRE4XSUI= + dependencies: + rc "^1.0.1" + registry-url@^5.0.0: version "5.1.0" resolved "https://registrynpm.storefrontcloud.io/registry-url/-/registry-url-5.1.0.tgz#e98334b50d5434b81136b44ec638d9c2009c5009" @@ -13519,6 +14532,35 @@ relateurl@0.2.x, relateurl@^0.2.7: resolved "https://registrynpm.storefrontcloud.io/relateurl/-/relateurl-0.2.7.tgz#54dbf377e51440aca90a4cd274600d3ff2d888a9" integrity sha1-VNvzd+UUQKypCkzSdGANP/LYiKk= +remark-frontmatter@^1.2.0: + version "1.3.3" + resolved "https://registry.yarnpkg.com/remark-frontmatter/-/remark-frontmatter-1.3.3.tgz#67ec63c89da5a84bb793ecec166e11b4eb47af10" + integrity sha512-fM5eZPBvu2pVNoq3ZPW22q+5Ativ1oLozq2qYt9I2oNyxiUd/tDl0iLLntEVAegpZIslPWg1brhcP1VsaSVUag== + dependencies: + fault "^1.0.1" + xtend "^4.0.1" + +remark-parse@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/remark-parse/-/remark-parse-5.0.0.tgz#4c077f9e499044d1d5c13f80d7a98cf7b9285d95" + integrity sha512-b3iXszZLH1TLoyUzrATcTQUZrwNl1rE70rVdSruJFlDaJ9z5aMkhrG43Pp68OgfHndL/ADz6V69Zow8cTQu+JA== + dependencies: + collapse-white-space "^1.0.2" + is-alphabetical "^1.0.0" + is-decimal "^1.0.0" + is-whitespace-character "^1.0.0" + is-word-character "^1.0.0" + markdown-escapes "^1.0.0" + parse-entities "^1.1.0" + repeat-string "^1.5.4" + state-toggle "^1.0.0" + trim "0.0.1" + trim-trailing-lines "^1.0.0" + unherit "^1.0.4" + unist-util-remove-position "^1.0.0" + vfile-location "^2.0.0" + xtend "^4.0.1" + remove-trailing-separator@^1.0.1: version "1.1.0" resolved "https://registrynpm.storefrontcloud.io/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" @@ -13540,7 +14582,7 @@ repeat-element@^1.1.2: resolved "https://registrynpm.storefrontcloud.io/repeat-element/-/repeat-element-1.1.3.tgz#782e0d825c0c5a3bb39731f84efee6b742e6b1ce" integrity sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g== -repeat-string@^1.6.1: +repeat-string@^1.5.4, repeat-string@^1.6.1: version "1.6.1" resolved "https://registrynpm.storefrontcloud.io/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" integrity sha1-jcrkcOHIirwtYA//Sndihtp15jc= @@ -13552,6 +14594,11 @@ repeating@^2.0.0: dependencies: is-finite "^1.0.0" +replace-ext@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/replace-ext/-/replace-ext-1.0.0.tgz#de63128373fcbf7c3ccfa4de5a480c45a67958eb" + integrity sha1-3mMSg3P8v3w8z6TeWkgMRaZ5WOs= + request-promise-core@1.1.4: version "1.1.4" resolved "https://registrynpm.storefrontcloud.io/request-promise-core/-/request-promise-core-1.1.4.tgz#3eedd4223208d419867b78ce815167d10593a22f" @@ -13604,6 +14651,11 @@ require-from-string@^2.0.2: resolved "https://registrynpm.storefrontcloud.io/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909" integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw== +require-main-filename@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-1.0.1.tgz#97f717b69d48784f5f526a6c5aa8ffdda055a4d1" + integrity sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE= + require-main-filename@^2.0.0: version "2.0.0" resolved "https://registrynpm.storefrontcloud.io/require-main-filename/-/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b" @@ -13707,7 +14759,7 @@ rgba-regex@^1.0.0: resolved "https://registrynpm.storefrontcloud.io/rgba-regex/-/rgba-regex-1.0.0.tgz#43374e2e2ca0968b0ef1523460b7d730ff22eeb3" integrity sha1-QzdOLiyglosO8VI0YLfXMP8i7rM= -rimraf@2, rimraf@^2.5.4, rimraf@^2.6.2, rimraf@^2.6.3: +rimraf@2, rimraf@^2.5.2, rimraf@^2.5.4, rimraf@^2.6.2, rimraf@^2.6.3, rimraf@^2.7.1: version "2.7.1" resolved "https://registrynpm.storefrontcloud.io/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== @@ -13958,6 +15010,13 @@ semver-compare@^1.0.0: resolved "https://registrynpm.storefrontcloud.io/semver-compare/-/semver-compare-1.0.0.tgz#0dee216a1c941ab37e9efb1788f6afc5ff5537fc" integrity sha1-De4hahyUGrN+nvsXiPavxf9VN/w= +semver-diff@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/semver-diff/-/semver-diff-2.1.0.tgz#4bbb8437c8d37e4b0cf1a68fd726ec6d645d6d36" + integrity sha1-S7uEN8jTfksM8aaP1ybsbWRdbTY= + dependencies: + semver "^5.0.3" + semver-diff@^3.1.1: version "3.1.1" resolved "https://registrynpm.storefrontcloud.io/semver-diff/-/semver-diff-3.1.1.tgz#05f77ce59f325e00e2706afd67bb506ddb1ca32b" @@ -13970,7 +15029,7 @@ semver-regex@^3.1.2: resolved "https://registrynpm.storefrontcloud.io/semver-regex/-/semver-regex-3.1.2.tgz#34b4c0d361eef262e07199dbef316d0f2ab11807" integrity sha512-bXWyL6EAKOJa81XG1OZ/Yyuq+oT0b2YLlxx7c+mrdYPaPbnj6WgVULXhinMIeZGufuUBu/eVRqXEhiv4imfwxA== -"semver@2 || 3 || 4 || 5", "semver@2.x || 3.x || 4 || 5", semver@^5.1.0, semver@^5.4.1, semver@^5.5, semver@^5.5.0, semver@^5.5.1, semver@^5.6.0, semver@^5.7.0, semver@^5.7.1: +"semver@2 || 3 || 4 || 5", "semver@2.x || 3.x || 4 || 5", "semver@^2.3.0 || 3.x || 4 || 5", semver@^5.0.3, semver@^5.1.0, semver@^5.4.1, semver@^5.5, semver@^5.5.0, semver@^5.5.1, semver@^5.6.0, semver@^5.7.0, semver@^5.7.1: version "5.7.1" resolved "https://registrynpm.storefrontcloud.io/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== @@ -14110,6 +15169,13 @@ sha.js@^2.4.0, sha.js@^2.4.8: inherits "^2.0.1" safe-buffer "^5.0.1" +sha@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/sha/-/sha-3.0.0.tgz#b2f2f90af690c16a3a839a6a6c680ea51fedd1ae" + integrity sha512-DOYnM37cNsLNSGIG/zZWch5CKIRNoLdYUQTQlcgkRkoYIUwDYjqDyye16YcDZg/OPdcbUgTKMjc4SY6TB7ZAPw== + dependencies: + graceful-fs "^4.1.2" + shallow-clone@^3.0.0: version "3.0.1" resolved "https://registrynpm.storefrontcloud.io/shallow-clone/-/shallow-clone-3.0.1.tgz#8f2981ad92531f55035b01fb230769a40e02efa3" @@ -14160,6 +15226,14 @@ shellwords@^0.1.1: resolved "https://registrynpm.storefrontcloud.io/shellwords/-/shellwords-0.1.1.tgz#d6b9181c1a48d397324c84871efbcfc73fc0654b" integrity sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww== +shiki@^0.9.2: + version "0.9.2" + resolved "https://registry.yarnpkg.com/shiki/-/shiki-0.9.2.tgz#b9e660b750d38923275765c4dc4c92b23877b115" + integrity sha512-BjUCxVbxMnvjs8jC4b+BQ808vwjJ9Q8NtLqPwXShZ307HdXiDFYP968ORSVfaTNNSWYDBYdMnVKJ0fYNsoZUBA== + dependencies: + onigasm "^2.2.5" + vscode-textmate "^5.2.0" + sigmund@^1.0.1: version "1.0.1" resolved "https://registrynpm.storefrontcloud.io/sigmund/-/sigmund-1.0.1.tgz#3ff21f198cad2175f9f3b781853fd94d0d19b590" @@ -14244,7 +15318,7 @@ slice-ansi@^4.0.0: astral-regex "^2.0.0" is-fullwidth-code-point "^3.0.0" -slide@^1.1.6: +slide@^1.1.6, slide@~1.1.3, slide@~1.1.6: version "1.1.6" resolved "https://registrynpm.storefrontcloud.io/slide/-/slide-1.1.6.tgz#56eb027d65b4d2dce6cb2e2d32c4d4afc9e1d707" integrity sha1-VusCfWW00tzmyy4tMsTUr8nh1wc= @@ -14340,6 +15414,19 @@ sort-keys@^2.0.0: dependencies: is-plain-obj "^1.0.0" +sorted-object@~2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/sorted-object/-/sorted-object-2.0.1.tgz#7d631f4bd3a798a24af1dffcfbfe83337a5df5fc" + integrity sha1-fWMfS9OnmKJK8d/8+/6DM3pd9fw= + +sorted-union-stream@~2.1.3: + version "2.1.3" + resolved "https://registry.yarnpkg.com/sorted-union-stream/-/sorted-union-stream-2.1.3.tgz#c7794c7e077880052ff71a8d4a2dbb4a9a638ac7" + integrity sha1-x3lMfgd4gAUv9xqNSi27Sppjisc= + dependencies: + from2 "^1.3.0" + stream-iterate "^1.1.0" + source-list-map@^2.0.0: version "2.0.1" resolved "https://registrynpm.storefrontcloud.io/source-list-map/-/source-list-map-2.0.1.tgz#3993bd873bfc48479cca9ea3a547835c7c154b34" @@ -14539,6 +15626,11 @@ stackframe@^1.1.1: resolved "https://registrynpm.storefrontcloud.io/stackframe/-/stackframe-1.2.0.tgz#52429492d63c62eb989804c11552e3d22e779303" integrity sha512-GrdeshiRmS1YLMYgzF16olf2jJ/IzxXY9lhKOskuVziubpTYcYqyOwYeJKzQkwy7uN0fYSsbsC4RQaXf9LCrYA== +state-toggle@^1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/state-toggle/-/state-toggle-1.0.3.tgz#e123b16a88e143139b09c6852221bc9815917dfe" + integrity sha512-d/5Z4/2iiCnHw6Xzghyhb+GcmF89bxwgXG60wjIiZaxnymbyOmI8Hk4VqHXiVVp6u2ysaskFfXg3ekCj4WNftQ== + static-extend@^0.1.1: version "0.1.2" resolved "https://registrynpm.storefrontcloud.io/static-extend/-/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6" @@ -14605,6 +15697,14 @@ stream-http@^2.7.2: to-arraybuffer "^1.0.0" xtend "^4.0.0" +stream-iterate@^1.1.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/stream-iterate/-/stream-iterate-1.2.0.tgz#2bd7c77296c1702a46488b8ad41f79865eecd4e1" + integrity sha1-K9fHcpbBcCpGSIuK1B95hl7s1OE= + dependencies: + readable-stream "^2.1.5" + stream-shift "^1.0.0" + stream-shift@^1.0.0: version "1.0.1" resolved "https://registrynpm.storefrontcloud.io/stream-shift/-/stream-shift-1.0.1.tgz#d7088281559ab2778424279b0877da3c392d5a3d" @@ -14642,7 +15742,7 @@ string-width@^1.0.1: is-fullwidth-code-point "^1.0.0" strip-ansi "^3.0.0" -"string-width@^1.0.2 || 2", string-width@^2.0.0, string-width@^2.1.0: +"string-width@^1.0.2 || 2", string-width@^2.0.0, string-width@^2.1.0, string-width@^2.1.1: version "2.1.1" resolved "https://registrynpm.storefrontcloud.io/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw== @@ -14691,6 +15791,11 @@ string_decoder@^1.0.0, string_decoder@^1.1.1: dependencies: safe-buffer "~5.2.0" +string_decoder@~0.10.x: + version "0.10.31" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" + integrity sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ= + string_decoder@~1.1.1: version "1.1.1" resolved "https://registrynpm.storefrontcloud.io/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" @@ -14707,6 +15812,11 @@ stringify-object@^3.3.0: is-obj "^1.0.1" is-regexp "^1.0.0" +stringify-package@^1.0.0, stringify-package@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/stringify-package/-/stringify-package-1.0.1.tgz#e5aa3643e7f74d0f28628b72f3dad5cecfc3ba85" + integrity sha512-sa4DUQsYciMP1xhKWGuFM04fB0LG/9DlluZoSVywUMRNvzid6XucHK0/90xGxRoHrAaROrcHK1aPKaijCtSrhg== + strip-ansi@^3.0.0, strip-ansi@^3.0.1: version "3.0.1" resolved "https://registrynpm.storefrontcloud.io/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" @@ -14800,6 +15910,13 @@ strong-log-transformer@^2.0.0: minimist "^1.2.0" through "^2.3.4" +structured-source@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/structured-source/-/structured-source-3.0.2.tgz#dd802425e0f53dc4a6e7aca3752901a1ccda7af5" + integrity sha1-3YAkJeD1PcSm56yjdSkBoczaevU= + dependencies: + boundary "^1.0.1" + style-resources-loader@^1.4.1: version "1.4.1" resolved "https://registrynpm.storefrontcloud.io/style-resources-loader/-/style-resources-loader-1.4.1.tgz#87f520e6c8120a71e756726c1c53a78c544ca7db" @@ -14930,7 +16047,7 @@ tar@^2.0.0: fstream "^1.0.12" inherits "2" -tar@^4.4.10, tar@^4.4.12, tar@^4.4.8: +tar@^4.4.10, tar@^4.4.12, tar@^4.4.13, tar@^4.4.8: version "4.4.13" resolved "https://registrynpm.storefrontcloud.io/tar/-/tar-4.4.13.tgz#43b364bc52888d555298637b10d60790254ab525" integrity sha512-w2VwSrBoHa5BsSyH+KxEqeQBAllHhccyMFVHtGtdMpF4W7IRWfZjFiQceJPChOeTsSDVUpER2T8FA93pr0L+QA== @@ -14972,6 +16089,13 @@ temp-write@^3.4.0: temp-dir "^1.0.0" uuid "^3.0.1" +term-size@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/term-size/-/term-size-1.2.0.tgz#458b83887f288fc56d6fffbfad262e26638efa69" + integrity sha1-RYuDiH8oj8Vtb/+/rSYuJmOO+mk= + dependencies: + execa "^0.7.0" + term-size@^2.1.0: version "2.2.1" resolved "https://registrynpm.storefrontcloud.io/term-size/-/term-size-2.2.1.tgz#2a6a54840432c2fb6320fea0f415531e90189f54" @@ -15040,7 +16164,7 @@ text-extensions@^1.0.0: resolved "https://registrynpm.storefrontcloud.io/text-extensions/-/text-extensions-1.9.0.tgz#1853e45fee39c945ce6f6c36b2d659b5aabc2a26" integrity sha512-wiBrwC1EhBelW12Zy26JeOUkQ5mRu+5o8rpsJk5+2t+Y5vE7e842qtZDQ2g1NpX/29HdyFeJ4nSIhI47ENSxlQ== -text-table@^0.2.0: +text-table@^0.2.0, text-table@~0.2.0: version "0.2.0" resolved "https://registrynpm.storefrontcloud.io/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ= @@ -15111,6 +16235,11 @@ time-fix-plugin@^2.0.7: resolved "https://registrynpm.storefrontcloud.io/time-fix-plugin/-/time-fix-plugin-2.0.7.tgz#4ba70ae2e40cedf34dabe505eda7b71b1b244f50" integrity sha512-uVFet1LQToeUX0rTcSiYVYVoGuBpc8gP/2jnlUzuHMHe+gux6XLsNzxLUweabMwiUj5ejhoIMsUI55nVSEa/Vw== +timed-out@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/timed-out/-/timed-out-4.0.1.tgz#f32eacac5a175bea25d7fab565ab3ed8741ef56f" + integrity sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8= + timers-browserify@^2.0.4: version "2.0.12" resolved "https://registrynpm.storefrontcloud.io/timers-browserify/-/timers-browserify-2.0.12.tgz#44a45c11fbf407f34f97bccd1577c652361b00ee" @@ -15128,6 +16257,11 @@ tiny-emitter@^2.0.0: resolved "https://registrynpm.storefrontcloud.io/tiny-emitter/-/tiny-emitter-2.1.0.tgz#1d1a56edfc51c43e863cbb5382a72330e3555423" integrity sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q== +tiny-relative-date@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/tiny-relative-date/-/tiny-relative-date-1.3.0.tgz#fa08aad501ed730f31cc043181d995c39a935e07" + integrity sha512-MOQHpzllWxDCHHaDno30hhLfbouoYlOI8YlMNtvKe1zXbjEVhbcEovQxvZrPvtiYW630GQDoMMarCnjfyfHA+A== + tmp@^0.0.33: version "0.0.33" resolved "https://registrynpm.storefrontcloud.io/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" @@ -15227,6 +16361,16 @@ tr46@^1.0.1: dependencies: punycode "^2.1.0" +transform-markdown-links@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/transform-markdown-links/-/transform-markdown-links-2.0.0.tgz#b79e9283d4474cb9b079899ae09152d4ec46325a" + integrity sha1-t56Sg9RHTLmweYma4JFS1OxGMlo= + +traverse@^0.6.6: + version "0.6.6" + resolved "https://registry.yarnpkg.com/traverse/-/traverse-0.6.6.tgz#cbdf560fd7b9af632502fed40f918c157ea97137" + integrity sha1-y99WD9e5r2MlAv7UD5GMFX6pcTc= + trim-newlines@^1.0.0: version "1.0.0" resolved "https://registrynpm.storefrontcloud.io/trim-newlines/-/trim-newlines-1.0.0.tgz#5887966bb582a4503a41eb524f7d35011815a613" @@ -15247,6 +16391,21 @@ trim-off-newlines@^1.0.0: resolved "https://registrynpm.storefrontcloud.io/trim-off-newlines/-/trim-off-newlines-1.0.1.tgz#9f9ba9d9efa8764c387698bcbfeb2c848f11adb3" integrity sha1-n5up2e+odkw4dpi8v+sshI8RrbM= +trim-trailing-lines@^1.0.0: + version "1.1.4" + resolved "https://registry.yarnpkg.com/trim-trailing-lines/-/trim-trailing-lines-1.1.4.tgz#bd4abbec7cc880462f10b2c8b5ce1d8d1ec7c2c0" + integrity sha512-rjUWSqnfTNrjbB9NQWfPMH/xRK1deHeGsHoVfpxJ++XeYXE0d6B1En37AHfw3jtfTU7dzMzZL2jjpe8Qb5gLIQ== + +trim@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/trim/-/trim-0.0.1.tgz#5858547f6b290757ee95cccc666fb50084c460dd" + integrity sha1-WFhUf2spB1fulczMZm+1AITEYN0= + +trough@^1.0.0: + version "1.0.5" + resolved "https://registry.yarnpkg.com/trough/-/trough-1.0.5.tgz#b8b639cefad7d0bb2abd37d433ff8293efa5f406" + integrity sha512-rvuRbTarPXmMb79SmzEp8aqXNKcK+y0XaB298IXueQ8I2PsrATcPBCSPyK/dDNa2iWOhKlfNnOjdAOTBU/nkFA== + "true-case-path@^1.0.2": version "1.0.3" resolved "https://registrynpm.storefrontcloud.io/true-case-path/-/true-case-path-1.0.3.tgz#f813b5a8c86b40da59606722b144e3225799f47d" @@ -15398,6 +16557,11 @@ type-fest@^0.11.0: resolved "https://registrynpm.storefrontcloud.io/type-fest/-/type-fest-0.11.0.tgz#97abf0872310fed88a5c466b25681576145e33f1" integrity sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ== +type-fest@^0.13.1: + version "0.13.1" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.13.1.tgz#0172cb5bce80b0bd542ea348db50c7e21834d934" + integrity sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg== + type-fest@^0.18.0: version "0.18.1" resolved "https://registrynpm.storefrontcloud.io/type-fest/-/type-fest-0.18.1.tgz#db4bc151a4a2cf4eebf9add5db75508db6cc841f" @@ -15443,28 +16607,39 @@ typedarray@^0.0.6: resolved "https://registrynpm.storefrontcloud.io/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= -typedoc-default-themes@^0.10.2: - version "0.10.2" - resolved "https://registrynpm.storefrontcloud.io/typedoc-default-themes/-/typedoc-default-themes-0.10.2.tgz#743380a80afe62c5ef92ca1bd4abe2ac596be4d2" - integrity sha512-zo09yRj+xwLFE3hyhJeVHWRSPuKEIAsFK5r2u47KL/HBKqpwdUSanoaz5L34IKiSATFrjG5ywmIu98hPVMfxZg== - dependencies: - lunr "^2.3.8" +typedoc-default-themes@^0.12.8: + version "0.12.8" + resolved "https://registry.yarnpkg.com/typedoc-default-themes/-/typedoc-default-themes-0.12.8.tgz#a04dfc4c01545bc52d2ee6c6ed98a381f2b7249f" + integrity sha512-tyjyDTKy/JLnBSwvhoqd99VIjrP33SdOtwcMD32b+OqnrjZWe8HmZECbfBoacqoxjHd58gfeNw6wA7uvqWFa4w== -typedoc@^0.17.1: - version "0.17.8" - resolved "https://registrynpm.storefrontcloud.io/typedoc/-/typedoc-0.17.8.tgz#96b67e9454aa7853bfc4dc9a55c8a07adfd5478e" - integrity sha512-/OyrHCJ8jtzu+QZ+771YaxQ9s4g5Z3XsQE3Ma7q+BL392xxBn4UMvvCdVnqKC2T/dz03/VXSLVKOP3lHmDdc/w== +typedoc-plugin-markdown@^3.4.5: + version "3.6.0" + resolved "https://registry.yarnpkg.com/typedoc-plugin-markdown/-/typedoc-plugin-markdown-3.6.0.tgz#08067aeb69a6b5e16c0eda72cceaa99cf91ff245" + integrity sha512-fg4xby3awJVVxB8TdhHNsZQfiTC5x1XmauVwhKXc6hGeu1bzTnqrkmDT8NCjxfUgw64si8cUX1jBfBjAHthWpQ== dependencies: - fs-extra "^8.1.0" handlebars "^4.7.6" - highlight.js "^10.0.0" - lodash "^4.17.15" - lunr "^2.3.8" - marked "1.0.0" + +typedoc@^0.20.20: + version "0.20.29" + resolved "https://registry.yarnpkg.com/typedoc/-/typedoc-0.20.29.tgz#696952beb78c37b3c132e86754d2cf0549189177" + integrity sha512-IyzrbtwNAXtylUJn41FbopQsNSQ1jcM6lUhDL/REOFo31G3Q9fsniZUQP+tIcTX5JaCntRdw3PTMZTQPV52low== + dependencies: + colors "^1.4.0" + fs-extra "^9.1.0" + handlebars "^4.7.7" + lodash "^4.17.21" + lunr "^2.3.9" + marked "^2.0.1" minimatch "^3.0.0" progress "^2.0.3" shelljs "^0.8.4" - typedoc-default-themes "^0.10.2" + shiki "^0.9.2" + typedoc-default-themes "^0.12.8" + +typescript@^3.6.4: + version "3.9.9" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.9.9.tgz#e69905c54bc0681d0518bd4d587cc6f2d0b1a674" + integrity sha512-kdMjTiekY+z/ubJCATUPlRDl39vXYiMV9iyeMuEuXZh2we6zz80uovNN2WlAxmmdE/Z/YQe+EbOEXB5RHEED3w== typescript@^4.2.2: version "4.2.2" @@ -15509,16 +16684,29 @@ uid-number@0.0.6: resolved "https://registrynpm.storefrontcloud.io/uid-number/-/uid-number-0.0.6.tgz#0ea10e8035e8eb5b8e4449f06da1c730663baa81" integrity sha1-DqEOgDXo61uOREnwbaHHMGY7qoE= -umask@^1.1.0: +umask@^1.1.0, umask@~1.1.0: version "1.1.0" resolved "https://registrynpm.storefrontcloud.io/umask/-/umask-1.1.0.tgz#f29cebf01df517912bb58ff9c4e50fde8e33320d" integrity sha1-8pzr8B31F5ErtY/5xOUP3o4zMg0= +underscore@~1.8.3: + version "1.8.3" + resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.8.3.tgz#4f3fb53b106e6097fcf9cb4109f2a5e9bdfa5022" + integrity sha1-Tz+1OxBuYJf8+ctBCfKl6b36UCI= + unfetch@^4.2.0: version "4.2.0" resolved "https://registrynpm.storefrontcloud.io/unfetch/-/unfetch-4.2.0.tgz#7e21b0ef7d363d8d9af0fb929a5555f6ef97a3be" integrity sha512-F9p7yYCn6cIW9El1zi0HI6vqpeIvBsr3dSuRO6Xuppb1u5rXpCPmMvLSyECLhybr9isec8Ohl0hPekMVrEinDA== +unherit@^1.0.4: + version "1.1.3" + resolved "https://registry.yarnpkg.com/unherit/-/unherit-1.1.3.tgz#6c9b503f2b41b262330c80e91c8614abdaa69c22" + integrity sha512-Ft16BJcnapDKp0+J/rqFC3Rrk6Y/Ng4nzsC028k2jdDII/rdZ7Wd3pPT/6+vIIxRagwRc9K0IUX0Ra4fKvw+WQ== + dependencies: + inherits "^2.0.0" + xtend "^4.0.0" + unicode-canonical-property-names-ecmascript@^1.0.4: version "1.0.4" resolved "https://registrynpm.storefrontcloud.io/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz#2619800c4c825800efdd8343af7dd9933cbe2818" @@ -15542,6 +16730,18 @@ unicode-property-aliases-ecmascript@^1.0.4: resolved "https://registrynpm.storefrontcloud.io/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.1.0.tgz#dd57a99f6207bedff4628abefb94c50db941c8f4" integrity sha512-PqSoPh/pWetQ2phoj5RLiaqIk4kCNwoV3CI+LfGmWLKI3rE3kl1h59XpX2BjgDrmbxD9ARtQobPGU1SguCYuQg== +unified@^6.1.6: + version "6.2.0" + resolved "https://registry.yarnpkg.com/unified/-/unified-6.2.0.tgz#7fbd630f719126d67d40c644b7e3f617035f6dba" + integrity sha512-1k+KPhlVtqmG99RaTbAv/usu85fcSRu3wY8X+vnsEhIxNP5VbVIDiXnLqyKIG+UMdyTg0ZX9EI6k2AfjJkHPtA== + dependencies: + bail "^1.0.0" + extend "^3.0.0" + is-plain-obj "^1.1.0" + trough "^1.0.0" + vfile "^2.0.0" + x-is-string "^0.1.0" + union-value@^1.0.0: version "1.0.1" resolved "https://registrynpm.storefrontcloud.io/union-value/-/union-value-1.0.1.tgz#0b6fe7b835aecda61c6ea4d4f02c14221e109847" @@ -15576,6 +16776,13 @@ unique-slug@^2.0.0: dependencies: imurmurhash "^0.1.4" +unique-string@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/unique-string/-/unique-string-1.0.0.tgz#9e1057cca851abb93398f8b33ae187b99caec11a" + integrity sha1-nhBXzKhRq7kzmPizOuGHuZyuwRo= + dependencies: + crypto-random-string "^1.0.0" + unique-string@^2.0.0: version "2.0.0" resolved "https://registrynpm.storefrontcloud.io/unique-string/-/unique-string-2.0.0.tgz#39c6451f81afb2749de2b233e3f7c5e8843bd89d" @@ -15583,6 +16790,37 @@ unique-string@^2.0.0: dependencies: crypto-random-string "^2.0.0" +unist-util-is@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/unist-util-is/-/unist-util-is-3.0.0.tgz#d9e84381c2468e82629e4a5be9d7d05a2dd324cd" + integrity sha512-sVZZX3+kspVNmLWBPAB6r+7D9ZgAFPNWm66f7YNb420RlQSbn+n8rG8dGZSkrER7ZIXGQYNm5pqC3v3HopH24A== + +unist-util-remove-position@^1.0.0: + version "1.1.4" + resolved "https://registry.yarnpkg.com/unist-util-remove-position/-/unist-util-remove-position-1.1.4.tgz#ec037348b6102c897703eee6d0294ca4755a2020" + integrity sha512-tLqd653ArxJIPnKII6LMZwH+mb5q+n/GtXQZo6S6csPRs5zB0u79Yw8ouR3wTw8wxvdJFhpP6Y7jorWdCgLO0A== + dependencies: + unist-util-visit "^1.1.0" + +unist-util-stringify-position@^1.0.0, unist-util-stringify-position@^1.1.1: + version "1.1.2" + resolved "https://registry.yarnpkg.com/unist-util-stringify-position/-/unist-util-stringify-position-1.1.2.tgz#3f37fcf351279dcbca7480ab5889bb8a832ee1c6" + integrity sha512-pNCVrk64LZv1kElr0N1wPiHEUoXNVFERp+mlTg/s9R5Lwg87f9bM/3sQB99w+N9D/qnM9ar3+AKDBwo/gm/iQQ== + +unist-util-visit-parents@^2.0.0: + version "2.1.2" + resolved "https://registry.yarnpkg.com/unist-util-visit-parents/-/unist-util-visit-parents-2.1.2.tgz#25e43e55312166f3348cae6743588781d112c1e9" + integrity sha512-DyN5vD4NE3aSeB+PXYNKxzGsfocxp6asDc2XXE3b0ekO2BaRUpBicbbUygfSvYfUz1IkmjFR1YF7dPklraMZ2g== + dependencies: + unist-util-is "^3.0.0" + +unist-util-visit@^1.1.0: + version "1.4.1" + resolved "https://registry.yarnpkg.com/unist-util-visit/-/unist-util-visit-1.4.1.tgz#4724aaa8486e6ee6e26d7ff3c8685960d560b1e3" + integrity sha512-AvGNk7Bb//EmJZyhtRUnNMEpId/AZ5Ph/KUpTI09WHQuDZHKovQ1oEv3mfmKpWKtoMzyMC4GLBm1Zy5k12fjIw== + dependencies: + unist-util-visit-parents "^2.0.0" + universal-user-agent@^4.0.0: version "4.0.1" resolved "https://registrynpm.storefrontcloud.io/universal-user-agent/-/universal-user-agent-4.0.1.tgz#fd8d6cb773a679a709e967ef8288a31fcc03e557" @@ -15623,6 +16861,11 @@ unset-value@^1.0.0: has-value "^0.3.1" isobject "^3.0.0" +unzip-response@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/unzip-response/-/unzip-response-2.0.1.tgz#d2f0f737d16b0615e72a6935ed04214572d56f97" + integrity sha1-0vD3N9FrBhXnKmk17QQhRXLVb5c= + upath@^1.1.0, upath@^1.1.1, upath@^1.2.0: version "1.2.0" resolved "https://registrynpm.storefrontcloud.io/upath/-/upath-1.2.0.tgz#8f66dbcd55a883acdae4408af8b035a5044c1894" @@ -15633,6 +16876,22 @@ upath@^2.0.1: resolved "https://registrynpm.storefrontcloud.io/upath/-/upath-2.0.1.tgz#50c73dea68d6f6b990f51d279ce6081665d61a8b" integrity sha512-1uEe95xksV1O0CYKXo8vQvN1JEbtJp7lb7C5U9HMsIp6IVwntkH/oNUzyVNQSd4S1sYk2FpSSW44FqMc8qee5w== +update-notifier@^2.2.0, update-notifier@^2.3.0, update-notifier@^2.5.0: + version "2.5.0" + resolved "https://registry.yarnpkg.com/update-notifier/-/update-notifier-2.5.0.tgz#d0744593e13f161e406acb1d9408b72cad08aff6" + integrity sha512-gwMdhgJHGuj/+wHJJs9e6PcCszpxR1b236igrOkUofGhqJuG+amlIKwApH1IW1WWl7ovZxsX49lMBWLxSdm5Dw== + dependencies: + boxen "^1.2.1" + chalk "^2.0.1" + configstore "^3.0.0" + import-lazy "^2.1.0" + is-ci "^1.0.10" + is-installed-globally "^0.1.0" + is-npm "^1.0.0" + latest-version "^3.0.0" + semver-diff "^2.0.0" + xdg-basedir "^3.0.0" + update-notifier@^4.0.0: version "4.1.3" resolved "https://registrynpm.storefrontcloud.io/update-notifier/-/update-notifier-4.1.3.tgz#be86ee13e8ce48fb50043ff72057b5bd598e1ea3" @@ -15652,6 +16911,11 @@ update-notifier@^4.0.0: semver-diff "^3.1.1" xdg-basedir "^4.0.0" +update-section@^0.3.0: + version "0.3.3" + resolved "https://registry.yarnpkg.com/update-section/-/update-section-0.3.3.tgz#458f17820d37820dc60e20b86d94391b00123158" + integrity sha1-RY8Xgg03gg3GDiC4bZQ5GwASMVg= + upper-case@^1.1.1: version "1.1.3" resolved "https://registrynpm.storefrontcloud.io/upper-case/-/upper-case-1.1.3.tgz#f6b4501c2ec4cdd26ba78be7222961de77621598" @@ -15687,6 +16951,13 @@ url-loader@^4.1.1: mime-types "^2.1.27" schema-utils "^3.0.0" +url-parse-lax@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/url-parse-lax/-/url-parse-lax-1.0.0.tgz#7af8f303645e9bd79a272e7a14ac68bc0609da73" + integrity sha1-evjzA2Rem9eaJy56FKxovAYJ2nM= + dependencies: + prepend-http "^1.0.1" + url-parse-lax@^3.0.0: version "3.0.0" resolved "https://registrynpm.storefrontcloud.io/url-parse-lax/-/url-parse-lax-3.0.0.tgz#16b5cafc07dbe3676c1b1999177823d6503acb0c" @@ -15720,6 +16991,11 @@ util-deprecate@^1.0.1, util-deprecate@^1.0.2, util-deprecate@~1.0.1: resolved "https://registrynpm.storefrontcloud.io/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= +util-extend@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/util-extend/-/util-extend-1.0.3.tgz#a7c216d267545169637b3b6edc6ca9119e2ff93f" + integrity sha1-p8IW0mdUUWljeztu3GypEZ4v+T8= + util-promisify@^2.1.0: version "2.1.0" resolved "https://registrynpm.storefrontcloud.io/util-promisify/-/util-promisify-2.1.0.tgz#3c2236476c4d32c5ff3c47002add7c13b9a82a53" @@ -15780,7 +17056,7 @@ utils-merge@1.0.1: resolved "https://registrynpm.storefrontcloud.io/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" integrity sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM= -uuid@^3.0.1, uuid@^3.1.0, uuid@^3.3.2, uuid@^3.4.0: +uuid@^3.0.1, uuid@^3.1.0, uuid@^3.3.2, uuid@^3.3.3, uuid@^3.4.0: version "3.4.0" resolved "https://registrynpm.storefrontcloud.io/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== @@ -15790,7 +17066,7 @@ v8-compile-cache@^2.0.3: resolved "https://registrynpm.storefrontcloud.io/v8-compile-cache/-/v8-compile-cache-2.2.0.tgz#9471efa3ef9128d2f7c6a7ca39c4dd6b5055b132" integrity sha512-gTpR5XQNKFwOd4clxfnhaqvfqMpqEwr4tOtCyz4MtYZX2JYhfr1JvBFKdS+7K/9rfpZR3VLX+YWBbKoxCgS43Q== -validate-npm-package-license@^3.0.1, validate-npm-package-license@^3.0.3: +validate-npm-package-license@^3.0.1, validate-npm-package-license@^3.0.3, validate-npm-package-license@^3.0.4: version "3.0.4" resolved "https://registrynpm.storefrontcloud.io/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" integrity sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew== @@ -15798,7 +17074,7 @@ validate-npm-package-license@^3.0.1, validate-npm-package-license@^3.0.3: spdx-correct "^3.0.0" spdx-expression-parse "^3.0.0" -validate-npm-package-name@^3.0.0: +validate-npm-package-name@^3.0.0, validate-npm-package-name@~3.0.0: version "3.0.0" resolved "https://registrynpm.storefrontcloud.io/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz#5fa912d81eb7d0c74afc140de7317f0ca7df437e" integrity sha1-X6kS2B630MdK/BQN5zF/DKffQ34= @@ -15829,11 +17105,38 @@ verror@1.10.0: core-util-is "1.0.2" extsprintf "^1.2.0" +vfile-location@^2.0.0: + version "2.0.6" + resolved "https://registry.yarnpkg.com/vfile-location/-/vfile-location-2.0.6.tgz#8a274f39411b8719ea5728802e10d9e0dff1519e" + integrity sha512-sSFdyCP3G6Ka0CEmN83A2YCMKIieHx0EDaj5IDP4g1pa5ZJ4FJDvpO0WODLxo4LUX4oe52gmSCK7Jw4SBghqxA== + +vfile-message@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/vfile-message/-/vfile-message-1.1.1.tgz#5833ae078a1dfa2d96e9647886cd32993ab313e1" + integrity sha512-1WmsopSGhWt5laNir+633LszXvZ+Z/lxveBf6yhGsqnQIhlhzooZae7zV6YVM1Sdkw68dtAW3ow0pOdPANugvA== + dependencies: + unist-util-stringify-position "^1.1.1" + +vfile@^2.0.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/vfile/-/vfile-2.3.0.tgz#e62d8e72b20e83c324bc6c67278ee272488bf84a" + integrity sha512-ASt4mBUHcTpMKD/l5Q+WJXNtshlWxOogYyGYYrg4lt/vuRjC1EFQtlAofL5VmtVNIZJzWYFJjzGWZ0Gw8pzW1w== + dependencies: + is-buffer "^1.1.4" + replace-ext "1.0.0" + unist-util-stringify-position "^1.0.0" + vfile-message "^1.0.0" + vm-browserify@^1.0.1: version "1.1.2" resolved "https://registrynpm.storefrontcloud.io/vm-browserify/-/vm-browserify-1.1.2.tgz#78641c488b8e6ca91a75f511e7a3b32a86e5dda0" integrity sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ== +vscode-textmate@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/vscode-textmate/-/vscode-textmate-5.2.0.tgz#01f01760a391e8222fe4f33fbccbd1ad71aed74e" + integrity sha512-Uw5ooOQxRASHgu6C7GVvUxisKXfSgW4oFlO+aa+PAkgmH89O3CXxEEzNRNtHSqtXFTl0nAC1uYj0GMSH27uwtQ== + vue-client-only@^2.0.0: version "2.0.0" resolved "https://registrynpm.storefrontcloud.io/vue-client-only/-/vue-client-only-2.0.0.tgz#ddad8d675ee02c761a14229f0e440e219de1da1c" @@ -15998,9 +17301,9 @@ vuepress-plugin-smooth-scroll@^0.0.3: dependencies: smoothscroll-polyfill "^0.4.3" -vuepress@^1.2.0: +vuepress@^1.8.2: version "1.8.2" - resolved "https://registrynpm.storefrontcloud.io/vuepress/-/vuepress-1.8.2.tgz#97e8bf979630611fc7b621fc4cc35b798ee5e847" + resolved "https://registry.yarnpkg.com/vuepress/-/vuepress-1.8.2.tgz#97e8bf979630611fc7b621fc4cc35b798ee5e847" integrity sha512-BU1lUDwsA3ghf7a9ga4dsf0iTc++Z/l7BR1kUagHWVBHw7HNRgRDfAZBDDQXhllMILVToIxaTifpne9mSi94OA== dependencies: "@vuepress/core" "1.8.2" @@ -16358,6 +17661,13 @@ wide-align@^1.1.0: dependencies: string-width "^1.0.2 || 2" +widest-line@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/widest-line/-/widest-line-2.0.1.tgz#7438764730ec7ef4381ce4df82fb98a53142a3fc" + integrity sha512-Ba5m9/Fa4Xt9eb2ELXt77JxVDV8w7qQrH0zS/TWSJdLyAwQjWoOzpzj5lwVftDz6n/EOu3tNACS84v509qwnJA== + dependencies: + string-width "^2.1.1" + widest-line@^3.1.0: version "3.1.0" resolved "https://registrynpm.storefrontcloud.io/widest-line/-/widest-line-3.1.0.tgz#8292333bbf66cb45ff0de1603b136b7ae1496eca" @@ -16387,13 +17697,21 @@ workbox-cdn@^5.1.4: resolved "https://registrynpm.storefrontcloud.io/workbox-cdn/-/workbox-cdn-5.1.4.tgz#dbd8acee70b1978be70106207590bbb76af935cf" integrity sha512-04gM3mi8QGutokkSaA9xunVfjURnLbo9TTWyi8+pSDCEW5cD8u5GbJiliLK1vB9CShk/9OY1UDfW+XcmD+d6KQ== -worker-farm@^1.7.0: +worker-farm@^1.6.0, worker-farm@^1.7.0: version "1.7.0" resolved "https://registrynpm.storefrontcloud.io/worker-farm/-/worker-farm-1.7.0.tgz#26a94c5391bbca926152002f69b84a4bf772e5a8" integrity sha512-rvw3QTZc8lAxyVrqcSGVm5yP/IJ2UcB3U0graE3LCFoZ0Yn2x4EoVSqJKdB/T5M+FLcRPjz4TDacRf3OCfNUzw== dependencies: errno "~0.1.7" +wrap-ansi@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-2.1.0.tgz#d8fc3d284dd05794fe84973caecdd1cf824fdd85" + integrity sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU= + dependencies: + string-width "^1.0.1" + strip-ansi "^3.0.1" + wrap-ansi@^5.1.0: version "5.1.0" resolved "https://registrynpm.storefrontcloud.io/wrap-ansi/-/wrap-ansi-5.1.0.tgz#1fd1f67235d5b6d0fee781056001bfb694c03b09" @@ -16435,7 +17753,7 @@ write-file-atomic@2.4.1: imurmurhash "^0.1.4" signal-exit "^3.0.2" -write-file-atomic@^2.0.0, write-file-atomic@^2.3.0, write-file-atomic@^2.4.2: +write-file-atomic@^2.0.0, write-file-atomic@^2.3.0, write-file-atomic@^2.4.2, write-file-atomic@^2.4.3: version "2.4.3" resolved "https://registrynpm.storefrontcloud.io/write-file-atomic/-/write-file-atomic-2.4.3.tgz#1fd2e9ae1df3e75b8d8c367443c692d4ca81f481" integrity sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ== @@ -16505,6 +17823,16 @@ ws@^7.3.1: resolved "https://registrynpm.storefrontcloud.io/ws/-/ws-7.4.3.tgz#1f9643de34a543b8edb124bdcbc457ae55a6e5cd" integrity sha512-hr6vCR76GsossIRsr8OLR9acVVm1jyfEWvhbNjtgPOrfvAlKzvyeg/P6r8RuDjRyrcQoPQT7K0DGEPc7Ae6jzA== +x-is-string@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/x-is-string/-/x-is-string-0.1.0.tgz#474b50865af3a49a9c4657f05acd145458f77d82" + integrity sha1-R0tQhlrzpJqcRlfwWs0UVFj3fYI= + +xdg-basedir@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-3.0.0.tgz#496b2cc109eca8dbacfe2dc72b603c17c5870ad4" + integrity sha1-SWsswQnsqNus/i3HK2A8F8WHCtQ= + xdg-basedir@^4.0.0: version "4.0.0" resolved "https://registrynpm.storefrontcloud.io/xdg-basedir/-/xdg-basedir-4.0.0.tgz#4bc8d9984403696225ef83a1573cbbcb4e79db13" @@ -16515,7 +17843,7 @@ xml-name-validator@^3.0.0: resolved "https://registrynpm.storefrontcloud.io/xml-name-validator/-/xml-name-validator-3.0.0.tgz#6ae73e06de4d8c6e47f9fb181f78d648ad457c6a" integrity sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw== -xtend@^4.0.0, xtend@~4.0.1: +xtend@^4.0.0, xtend@^4.0.1, xtend@~4.0.1: version "4.0.2" resolved "https://registrynpm.storefrontcloud.io/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== @@ -16527,6 +17855,11 @@ xxhashjs@^0.2.1: dependencies: cuint "^0.2.2" +y18n@^3.2.1: + version "3.2.2" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-3.2.2.tgz#85c901bd6470ce71fc4bb723ad209b70f7f28696" + integrity sha512-uGZHXkHnhF0XeeAPgnKfPv1bgKAYyVvmNL1xlKsPYZPaIHxGti2hHqvOCQv71XMsLxu1QjergkqogUnms5D3YQ== + y18n@^4.0.0: version "4.0.1" resolved "https://registrynpm.storefrontcloud.io/y18n/-/y18n-4.0.1.tgz#8db2b83c31c5d75099bb890b23f3094891e247d4" @@ -16580,7 +17913,7 @@ yargs-parser@^15.0.1: camelcase "^5.0.0" decamelize "^1.2.0" -yargs-parser@^18.1.2: +yargs-parser@^18.1.2, yargs-parser@^18.1.3: version "18.1.3" resolved "https://registrynpm.storefrontcloud.io/yargs-parser/-/yargs-parser-18.1.3.tgz#be68c4975c6b2abf469236b0c870362fab09a7b0" integrity sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ== @@ -16588,6 +17921,13 @@ yargs-parser@^18.1.2: camelcase "^5.0.0" decamelize "^1.2.0" +yargs-parser@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-7.0.0.tgz#8d0ac42f16ea55debd332caf4c4038b3e3f5dfd9" + integrity sha1-jQrELxbqVd69MyyvTEA4s+P139k= + dependencies: + camelcase "^4.1.0" + yargs@^13.3.0, yargs@^13.3.2: version "13.3.2" resolved "https://registrynpm.storefrontcloud.io/yargs/-/yargs-13.3.2.tgz#ad7ffefec1aa59565ac915f82dccb38a9c31a2dd" @@ -16604,7 +17944,7 @@ yargs@^13.3.0, yargs@^13.3.2: y18n "^4.0.0" yargs-parser "^13.1.2" -yargs@^14.2.2: +yargs@^14.2.2, yargs@^14.2.3: version "14.2.3" resolved "https://registrynpm.storefrontcloud.io/yargs/-/yargs-14.2.3.tgz#1a1c3edced1afb2a2fea33604bc6d1d8d688a414" integrity sha512-ZbotRWhF+lkjijC/VhmOT9wSgyBQ7+zr13+YLkhfsSiTriYsMzkTUFP18pFhWwBeMa5gUc1MzbhrO6/VB7c9Xg== @@ -16638,6 +17978,25 @@ yargs@^15.3.1: y18n "^4.0.0" yargs-parser "^18.1.2" +yargs@^8.0.2: + version "8.0.2" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-8.0.2.tgz#6299a9055b1cefc969ff7e79c1d918dceb22c360" + integrity sha1-YpmpBVsc78lp/355wdkY3Osiw2A= + dependencies: + camelcase "^4.1.0" + cliui "^3.2.0" + decamelize "^1.1.1" + get-caller-file "^1.0.1" + os-locale "^2.0.0" + read-pkg-up "^2.0.0" + require-directory "^2.1.1" + require-main-filename "^1.0.1" + set-blocking "^2.0.0" + string-width "^2.0.0" + which-module "^2.0.0" + y18n "^3.2.1" + yargs-parser "^7.0.0" + yn@3.1.1: version "3.1.1" resolved "https://registrynpm.storefrontcloud.io/yn/-/yn-3.1.1.tgz#1e87401a09d767c1d5eab26a6e4c185182d2eb50" From 00afa86d38600ba69efc8231d6fee9a417ce2e57 Mon Sep 17 00:00:00 2001 From: andrzejewsky Date: Fri, 5 Mar 2021 12:50:33 +0100 Subject: [PATCH 3/8] typos --- packages/core/docs/guide/composables.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/packages/core/docs/guide/composables.md b/packages/core/docs/guide/composables.md index 2c83619fc5e..69af09756f2 100644 --- a/packages/core/docs/guide/composables.md +++ b/packages/core/docs/guide/composables.md @@ -351,14 +351,14 @@ In this example, we are using `useUiNotification` - a composable that handles no ### How to customize graphql queries? -If the integration you are currently using has GraphQL api, you may need to change the default query that is being send to fetch the data. That's quite common case so Vue Storefront also provides that ability. +If the integration you are currently using has GraphQL API, you may need to change the default query that is being sent to fetch the data. That's quite a common case so Vue Storefront also provides that ability. Since the comminication with an API goes over the our middleware, all of the queries also are defined there. To customize or even totally override the original (default) queries you need to follow two steps. Firstly, you need to use a dedicated parameter: `customQuery` that tells the app, what to do with a query. -This parameter is an object that has name of the queries as a keys, and name of the queries function under the values. +This parameter is an object that has a name of the queries as keys, and the name of the queries function under the values. ```ts @@ -367,7 +367,7 @@ const { search } = useProduct(); search({ customQuery: { products: 'my-products-query' } }); ``` -In example above, we are changing `products` query, and our function that will take care of this overriding is `my-products-query`. As second step we need to define that function. +In the example above, we are changing `products` query, and our function that will take care of this overriding is `my-products-query`. As a second step, we need to define that function. Each definition of query function we can find in the `middleware.config.js`. Therefore, this is the place where we define `my-products-query`: @@ -391,4 +391,4 @@ module.exports = { }; ``` -The custom query function always has in the arguments the default query and default variables and must return the query and its variavles as well. In the body you can do anything you want with those parameters - you can override them or even change to the new ones. \ No newline at end of file +The custom query function always has in the arguments the default query and default variables and must return the query and its variables as well. In the body you can do anything you want with those parameters - you can override them or even change to the new ones. \ No newline at end of file From faa4262e427c5148e150a625744818243a4d3e40 Mon Sep 17 00:00:00 2001 From: Patryk Andrzejewski Date: Mon, 8 Mar 2021 12:35:42 +0100 Subject: [PATCH 4/8] Update packages/core/docs/advanced/calling-platform-api.md Co-authored-by: Filip Rakowski --- packages/core/docs/advanced/calling-platform-api.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/core/docs/advanced/calling-platform-api.md b/packages/core/docs/advanced/calling-platform-api.md index d351b399397..14f5ace627d 100644 --- a/packages/core/docs/advanced/calling-platform-api.md +++ b/packages/core/docs/advanced/calling-platform-api.md @@ -2,7 +2,7 @@ The Vue Storefront has its own way to communicate with other platform APIs. First of all, each integration implements an API-client that defines an interaction and connection with a given platform. Each time you make a call to the external platform, you actually use API-client beneath. We use that in all of the integrations and also you can reach the API-client in your project if it's needed. -## What is an integration API Client? +## How do Integrations work? Basically, API-client is a sort of SDK for a given platform you integrate with. It has a set of functions, each is dedicated to one action, endpoint, feature, or something else. It's aiming to provide an abstraction for the developers when it comes to making calls. @@ -25,4 +25,4 @@ Remember that API-client you are accessing from the front-end side is only a stu ## Extending API Client -Sometimes, it's necessary to override the original behavior either API-client or even an entire request that comes from an external platform. The Vue Storefront also provides possibility to do this by using [middleware extensions](/advanced/server-middleware) \ No newline at end of file +Sometimes, it's necessary to override the original behavior either API-client or even an entire request that comes from an external platform. The Vue Storefront also provides possibility to do this by using [middleware extensions](/advanced/server-middleware) From 917242a0956fc75447e39281925bcebe0c0eabd1 Mon Sep 17 00:00:00 2001 From: Patryk Andrzejewski Date: Mon, 8 Mar 2021 12:35:57 +0100 Subject: [PATCH 5/8] Update packages/core/docs/advanced/calling-platform-api.md Co-authored-by: Filip Rakowski --- packages/core/docs/advanced/calling-platform-api.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/core/docs/advanced/calling-platform-api.md b/packages/core/docs/advanced/calling-platform-api.md index 14f5ace627d..2b9f8eb7f28 100644 --- a/packages/core/docs/advanced/calling-platform-api.md +++ b/packages/core/docs/advanced/calling-platform-api.md @@ -4,7 +4,7 @@ The Vue Storefront has its own way to communicate with other platform APIs. Firs ## How do Integrations work? -Basically, API-client is a sort of SDK for a given platform you integrate with. It has a set of functions, each is dedicated to one action, endpoint, feature, or something else. It's aiming to provide an abstraction for the developers when it comes to making calls. +Integration API-client is a sort of SDK for a given platform you integrate with. It has a set of functions, each is dedicated to one action, endpoint or a feature eg. `getProduct` , `loadCart` `addToCart` ## Using useVSFContext to access integration API Client methods From 84b089b2ba725db94fe8d71f98b76247ee46486a Mon Sep 17 00:00:00 2001 From: Patryk Andrzejewski Date: Mon, 8 Mar 2021 12:36:06 +0100 Subject: [PATCH 6/8] Update packages/core/docs/advanced/calling-platform-api.md Co-authored-by: Filip Rakowski --- packages/core/docs/advanced/calling-platform-api.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/core/docs/advanced/calling-platform-api.md b/packages/core/docs/advanced/calling-platform-api.md index 2b9f8eb7f28..778567edae2 100644 --- a/packages/core/docs/advanced/calling-platform-api.md +++ b/packages/core/docs/advanced/calling-platform-api.md @@ -6,7 +6,7 @@ The Vue Storefront has its own way to communicate with other platform APIs. Firs Integration API-client is a sort of SDK for a given platform you integrate with. It has a set of functions, each is dedicated to one action, endpoint or a feature eg. `getProduct` , `loadCart` `addToCart` -## Using useVSFContext to access integration API Client methods +## Accessing integration methods on the frontend To access API-client functions, you can use the composable function `useVSFContext` that reads from the application context every possible integration so you can easily access it. From a6740d67d250b5239ca112e71d0a6477cd323871 Mon Sep 17 00:00:00 2001 From: Patryk Andrzejewski Date: Mon, 8 Mar 2021 12:36:13 +0100 Subject: [PATCH 7/8] Update packages/core/docs/advanced/calling-platform-api.md Co-authored-by: Filip Rakowski --- packages/core/docs/advanced/calling-platform-api.md | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/core/docs/advanced/calling-platform-api.md b/packages/core/docs/advanced/calling-platform-api.md index 778567edae2..085175c2afa 100644 --- a/packages/core/docs/advanced/calling-platform-api.md +++ b/packages/core/docs/advanced/calling-platform-api.md @@ -11,6 +11,7 @@ Integration API-client is a sort of SDK for a given platform you integrate with. To access API-client functions, you can use the composable function `useVSFContext` that reads from the application context every possible integration so you can easily access it. ```ts +// each platform has different tag to access its methods, eg $spryker, $storyblok etc. const { $ct } = useVSFContext(); $ct.api.getProduct({ id: 1 }) From edf5b332183130c5a956b40522ba26b41ad63c88 Mon Sep 17 00:00:00 2001 From: Patryk Andrzejewski Date: Mon, 8 Mar 2021 12:36:21 +0100 Subject: [PATCH 8/8] Update packages/core/docs/advanced/calling-platform-api.md Co-authored-by: Filip Rakowski --- packages/core/docs/advanced/calling-platform-api.md | 3 --- 1 file changed, 3 deletions(-) diff --git a/packages/core/docs/advanced/calling-platform-api.md b/packages/core/docs/advanced/calling-platform-api.md index 085175c2afa..3473ad88f29 100644 --- a/packages/core/docs/advanced/calling-platform-api.md +++ b/packages/core/docs/advanced/calling-platform-api.md @@ -20,9 +20,6 @@ $ct.api.getProduct({ id: 1 }) In the example above we have accessed the API-client for commercetools (Each integration has dedicated tag name, look at [context docs](/advanced/context)) and we called function `getProduct`. -::: tip -Remember that API-client you are accessing from the front-end side is only a stub. It's making a call to our middleware where the real API-client is being called. For more info, jump to the [server middleware](/advanced/server-middleware) section. -::: ## Extending API Client