diff --git a/package.json b/package.json
index fe4338a0..c9717506 100644
--- a/package.json
+++ b/package.json
@@ -93,7 +93,7 @@
},
"dependencies": {
"acorn": "^8.7.0",
- "brotli-size": "0.0.3",
+ "brotli-size": "4.0.0",
"gzip-size": "^5.0.0",
"prettier": "^1.18.2",
"pretty-bytes": "^5.1.0"
diff --git a/packages/analytics-plugin-google-analytics-v3/README.md b/packages/analytics-plugin-google-analytics-v3/README.md
index 3acbd806..4f9de812 100644
--- a/packages/analytics-plugin-google-analytics-v3/README.md
+++ b/packages/analytics-plugin-google-analytics-v3/README.md
@@ -127,18 +127,19 @@ const analytics = Analytics({
### Configuration options for browser
-| Option | description |
-|:---------------------------|:-----------|
-| `trackingId`
**required** - string| Google Analytics site tracking Id |
-| `debug`
_optional_ - boolean| Enable Google Analytics debug mode |
-| `anonymizeIp`
_optional_ - boolean| Enable [Anonymizing IP addresses](https://bit.ly/3c660Rd) sent to Google Analytics. [See details below](#anonymize-visitor-ips) |
-| `customDimensions`
_optional_ - object| Map [Custom dimensions](https://bit.ly/3c5de88) to send extra information to Google Analytics. [See details below](#using-ga-custom-dimensions) |
+| Option | description |
+|:------------------------------------------------------|:-----------|
+| `trackingId`
**required** - string | Google Analytics site tracking Id |
+| `debug`
_optional_ - boolean | Enable Google Analytics debug mode |
+| `anonymizeIp`
_optional_ - boolean | Enable [Anonymizing IP addresses](https://bit.ly/3c660Rd) sent to Google Analytics. [See details below](#anonymize-visitor-ips) |
+| `customDimensions`
_optional_ - object | Map [Custom dimensions](https://bit.ly/3c5de88) to send extra information to Google Analytics. [See details below](#using-ga-custom-dimensions) |
| `resetCustomDimensionsOnPage`
_optional_ - object| Reset custom dimensions by key on analytics.page() calls. Useful for single page apps. |
-| `setCustomDimensionsToPage`
_optional_ - boolean| Mapped dimensions will be set to the page & sent as properties of all subsequent events on that page. If false, analytics will only pass custom dimensions as part of individual events |
-| `instanceName`
_optional_ - string| Custom tracker name for google analytics. Use this if you need multiple googleAnalytics scripts loaded |
-| `customScriptSrc`
_optional_ - string| Custom URL for google analytics script, if proxying calls |
-| `cookieConfig`
_optional_ - object| Additional cookie properties for configuring the [ga cookie](https://developers.google.com/analytics/devguides/collection/analyticsjs/cookies-user-id#configuring_cookie_field_settings) |
-| `tasks`
_optional_ - object| [Set custom google analytic tasks](https://developers.google.com/analytics/devguides/collection/analyticsjs/tasks) |
+| `setCustomDimensionsToPage`
_optional_ - boolean | Mapped dimensions will be set to the page & sent as properties of all subsequent events on that page. If false, analytics will only pass custom dimensions as part of individual events |
+| `instanceName`
_optional_ - string | Custom tracker name for google analytics. Use this if you need multiple googleAnalytics scripts loaded |
+| `customScriptSrc`
_optional_ - string | Custom URL for google analytics script, if proxying calls |
+| `cookieConfig`
_optional_ - object | Additional cookie properties for configuring the [ga cookie](https://developers.google.com/analytics/devguides/collection/analyticsjs/cookies-user-id#configuring_cookie_field_settings) |
+| `tasks`
_optional_ - object | [Set custom google analytic tasks](https://developers.google.com/analytics/devguides/collection/analyticsjs/tasks) |
+| `nonce`
_optional_ - string | Content-Security-Policy nonce value |
## Server-side usage
diff --git a/packages/analytics-plugin-google-analytics-v3/src/browser.js b/packages/analytics-plugin-google-analytics-v3/src/browser.js
index 1adf131f..35182043 100644
--- a/packages/analytics-plugin-google-analytics-v3/src/browser.js
+++ b/packages/analytics-plugin-google-analytics-v3/src/browser.js
@@ -37,6 +37,7 @@ let loadedInstances = {}
* @param {string} [pluginConfig.customScriptSrc] - Custom URL for google analytics script, if proxying calls
* @param {object} [pluginConfig.cookieConfig] - Additional cookie properties for configuring the [ga cookie](https://developers.google.com/analytics/devguides/collection/analyticsjs/cookies-user-id#configuring_cookie_field_settings)
* @param {object} [pluginConfig.tasks] - [Set custom google analytic tasks](https://developers.google.com/analytics/devguides/collection/analyticsjs/tasks)
+ * @param {string} [pluginConfig.nonce] - Content-Security-Policy nonce value
* @return {*}
* @example
*
@@ -58,7 +59,7 @@ function googleAnalyticsV3(pluginConfig = {}) {
initialize: (pluginApi) => {
const { config, instance } = pluginApi
if (!config.trackingId) throw new Error('No GA trackingId defined')
- const { customDimensions, customScriptSrc } = config
+ const { customDimensions, customScriptSrc, nonce } = config
// var to hoist
const scriptSrc = customScriptSrc || 'https://www.google-analytics.com/analytics.js'
// Load google analytics script to page
@@ -68,7 +69,7 @@ function googleAnalyticsV3(pluginConfig = {}) {
i['GoogleAnalyticsObject'] = r; i[r] = i[r] || function() {
(i[r].q = i[r].q || []).push(arguments)
}, i[r].l = 1 * new Date(); a = s.createElement(o),
- m = s.getElementsByTagName(o)[0]; a.async = 1; a.src = g; m.parentNode.insertBefore(a, m)
+ m = s.getElementsByTagName(o)[0]; a.async = 1; a.src = g; nonce && a.setAttribute('nonce', nonce); m.parentNode.insertBefore(a, m)
})(window, document, 'script', scriptSrc, 'ga')
/* eslint-enable */
}
diff --git a/packages/analytics-plugin-google-analytics/README.md b/packages/analytics-plugin-google-analytics/README.md
index 010c9e88..fcdcb9a0 100644
--- a/packages/analytics-plugin-google-analytics/README.md
+++ b/packages/analytics-plugin-google-analytics/README.md
@@ -108,19 +108,20 @@ const analytics = Analytics({
### Configuration options for browser
-| Option | description |
-|:---------------------------|:-----------|
-| `measurementIds`
**required** - Array.| Google Analytics MEASUREMENT IDs |
-| `debug`
_optional_ - boolean| Enable Google Analytics debug mode |
-| `dataLayerName`
_optional_ - string| The optional name for dataLayer object. Defaults to ga4DataLayer. |
-| `gtagName`
_optional_ - string| The optional name for dataLayer object. Defaults to `gtag`. |
-| `gtagConfig.anonymize_ip`
_optional_ - boolean| Enable [Anonymizing IP addresses](https://bit.ly/3c660Rd) sent to Google Analytics. |
-| `gtagConfig.cookie_domain`
_optional_ - object| Additional cookie properties for configuring the [ga cookie](https://developers.google.com/analytics/devguides/collection/analyticsjs/cookies-user-id#configuring_cookie_field_settings) |
+| Option | description |
+|:----------------------------------------------------|:-----------|
+| `measurementIds`
**required** - Array. | Google Analytics MEASUREMENT IDs |
+| `debug`
_optional_ - boolean | Enable Google Analytics debug mode |
+| `dataLayerName`
_optional_ - string | The optional name for dataLayer object. Defaults to ga4DataLayer. |
+| `gtagName`
_optional_ - string | The optional name for dataLayer object. Defaults to `gtag`. |
+| `gtagConfig.anonymize_ip`
_optional_ - boolean | Enable [Anonymizing IP addresses](https://bit.ly/3c660Rd) sent to Google Analytics. |
+| `gtagConfig.cookie_domain`
_optional_ - object | Additional cookie properties for configuring the [ga cookie](https://developers.google.com/analytics/devguides/collection/analyticsjs/cookies-user-id#configuring_cookie_field_settings) |
| `gtagConfig.cookie_expires`
_optional_ - object| Additional cookie properties for configuring the [ga cookie](https://developers.google.com/analytics/devguides/collection/analyticsjs/cookies-user-id#configuring_cookie_field_settings) |
-| `gtagConfig.cookie_prefix`
_optional_ - object| Additional cookie properties for configuring the [ga cookie](https://developers.google.com/analytics/devguides/collection/analyticsjs/cookies-user-id#configuring_cookie_field_settings) |
-| `gtagConfig.cookie_update`
_optional_ - object| Additional cookie properties for configuring the [ga cookie](https://developers.google.com/analytics/devguides/collection/analyticsjs/cookies-user-id#configuring_cookie_field_settings) |
-| `gtagConfig.cookie_flags`
_optional_ - object| Additional cookie properties for configuring the [ga cookie](https://developers.google.com/analytics/devguides/collection/analyticsjs/cookies-user-id#configuring_cookie_field_settings) |
-| `customScriptSrc`
_optional_ - string| Custom URL for google analytics script, if proxying calls |
+| `gtagConfig.cookie_prefix`
_optional_ - object | Additional cookie properties for configuring the [ga cookie](https://developers.google.com/analytics/devguides/collection/analyticsjs/cookies-user-id#configuring_cookie_field_settings) |
+| `gtagConfig.cookie_update`
_optional_ - object | Additional cookie properties for configuring the [ga cookie](https://developers.google.com/analytics/devguides/collection/analyticsjs/cookies-user-id#configuring_cookie_field_settings) |
+| `gtagConfig.cookie_flags`
_optional_ - object | Additional cookie properties for configuring the [ga cookie](https://developers.google.com/analytics/devguides/collection/analyticsjs/cookies-user-id#configuring_cookie_field_settings) |
+| `customScriptSrc`
_optional_ - string | Custom URL for google analytics script, if proxying calls |
+| `nonce`
_optional_ - string | Content-Security-Policy nonce value |
## Additional examples
diff --git a/packages/analytics-plugin-google-analytics/src/browser.js b/packages/analytics-plugin-google-analytics/src/browser.js
index 944e68bf..609a77c8 100644
--- a/packages/analytics-plugin-google-analytics/src/browser.js
+++ b/packages/analytics-plugin-google-analytics/src/browser.js
@@ -62,6 +62,7 @@ const defaultConfig = {
* @param {object} [pluginConfig.gtagConfig.cookie_update] - Additional cookie properties for configuring the [ga cookie](https://developers.google.com/analytics/devguides/collection/analyticsjs/cookies-user-id#configuring_cookie_field_settings)
* @param {object} [pluginConfig.gtagConfig.cookie_flags] - Additional cookie properties for configuring the [ga cookie](https://developers.google.com/analytics/devguides/collection/analyticsjs/cookies-user-id#configuring_cookie_field_settings)
* @param {string} [pluginConfig.customScriptSrc] - Custom URL for google analytics script, if proxying calls
+ * @param {string} [pluginConfig.nonce] - Content-Security-Policy nonce value
* @return {*}
* @example
*
@@ -82,7 +83,7 @@ function googleAnalytics(pluginConfig = {}) {
config: initConfig,
// Load gtag.js and define gtag
initialize: ({ config, instance }) => {
- const { dataLayerName, customScriptSrc, gtagName, gtagConfig, debug } = config
+ const { dataLayerName, customScriptSrc, gtagName, gtagConfig, debug, nonce } = config
/* Inject google gtag.js script if not found */
/* If other gtags are loaded already, add ours anyway */
const customLayerName = dataLayerName ? `&l=${dataLayerName}` : "";
@@ -91,6 +92,9 @@ function googleAnalytics(pluginConfig = {}) {
const script = document.createElement('script')
script.async = true
script.src = src
+ if (nonce) {
+ script.setAttribute('nonce', nonce);
+ }
document.body.appendChild(script)
}
/* Set up gtag and datalayer */
diff --git a/packages/analytics-plugin-google-analytics/x.js b/packages/analytics-plugin-google-analytics/x.js
deleted file mode 100644
index e69de29b..00000000
diff --git a/packages/analytics-plugin-google-tag-manager/README.md b/packages/analytics-plugin-google-tag-manager/README.md
index 8230e8ed..450c9f3a 100644
--- a/packages/analytics-plugin-google-tag-manager/README.md
+++ b/packages/analytics-plugin-google-tag-manager/README.md
@@ -104,14 +104,15 @@ const analytics = Analytics({
### Configuration options for browser
-| Option | description |
-|:---------------------------|:-----------|
-| `containerId`
**required** - string| The Container ID uniquely identifies the GTM Container. |
-| `dataLayerName`
_optional_ - string| The optional name for dataLayer-object. Defaults to dataLayer. |
-| `customScriptSrc`
_optional_ - string| Load Google Tag Manager script from a custom source |
-| `preview`
_optional_ - string| The preview-mode environment |
-| `auth`
_optional_ - string| The preview-mode authentication credentials |
-| `execution`
_optional_ - string| The script execution mode |
+| Option | description |
+|:-------------------------------------------|:---------------------------------------------------------------|
+| `containerId`
**required** - string | The Container ID uniquely identifies the GTM Container. |
+| `dataLayerName`
_optional_ - string | The optional name for dataLayer-object. Defaults to dataLayer. |
+| `customScriptSrc`
_optional_ - string | Load Google Tag Manager script from a custom source |
+| `preview`
_optional_ - string | The preview-mode environment |
+| `auth`
_optional_ - string | The preview-mode authentication credentials |
+| `execution`
_optional_ - string | The script execution mode |
+| `nonce`
_optional_ - string | Content-Security-Policy nonce value |
## Additional examples
diff --git a/packages/analytics-plugin-google-tag-manager/src/browser.js b/packages/analytics-plugin-google-tag-manager/src/browser.js
index a2f14a74..0bb30ccc 100644
--- a/packages/analytics-plugin-google-tag-manager/src/browser.js
+++ b/packages/analytics-plugin-google-tag-manager/src/browser.js
@@ -22,6 +22,7 @@ let initializedDataLayerName;
* @param {string} [pluginConfig.preview] - The preview-mode environment
* @param {string} [pluginConfig.auth] - The preview-mode authentication credentials
* @param {string} [pluginConfig.execution] - The script execution mode
+ * @param {string} [pluginConfig.nonce] - Content-Security-Policy nonce value
* @return {object} Analytics plugin
* @example
*
@@ -41,7 +42,7 @@ function googleTagManager(pluginConfig = {}) {
...pluginConfig
},
initialize: ({ config }) => {
- const { containerId, dataLayerName, customScriptSrc, preview, auth, execution } = config
+ const { containerId, dataLayerName, customScriptSrc, preview, auth, execution, nonce } = config
if (!containerId) {
throw new Error('No google tag manager containerId defined')
}
@@ -64,6 +65,9 @@ function googleTagManager(pluginConfig = {}) {
j[execution] = true;
}
j.src = `${scriptSrc}?id=` + i + dl + p;
+ if (nonce) {
+ j.setAttribute('nonce', nonce);
+ }
f.parentNode.insertBefore(j, f);
})(window, document, 'script', dataLayerName, containerId);
/* eslint-enable */
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index ce18951e..354fdac5 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -12,8 +12,8 @@ importers:
specifier: ^8.7.0
version: 8.7.0
brotli-size:
- specifier: 0.0.3
- version: 0.0.3
+ specifier: 4.0.0
+ version: 4.0.0
gzip-size:
specifier: ^5.0.0
version: 5.1.1
@@ -142,7 +142,7 @@ importers:
packages/analytics:
dependencies:
'@analytics/core':
- specifier: ^0.12.9
+ specifier: ^0.12.15
version: link:../analytics-core
'@analytics/storage-utils':
specifier: ^0.4.2
@@ -307,7 +307,7 @@ importers:
specifier: ^0.1.2
version: link:../analytics-util-queue
'@analytics/session-utils':
- specifier: ^0.1.19
+ specifier: ^0.2.0
version: link:../analytics-util-session
'@analytics/type-utils':
specifier: ^0.3.1
@@ -342,7 +342,7 @@ importers:
version: 7.15.3(@babel/core@7.15.8)
aws-sdk-client-mock:
specifier: ^0.5.5
- version: 0.5.5(@aws-sdk/client-s3@3.511.0)(@aws-sdk/types@3.38.0)
+ version: 0.5.5(@aws-sdk/client-s3@3.511.0)(@aws-sdk/types@3.511.0)
c8:
specifier: ^7.10.0
version: 7.10.0
@@ -2261,6 +2261,7 @@ packages:
/@aws-sdk/types@3.38.0:
resolution: {integrity: sha512-Opux3HLwMlWb7GIJxERsOnmbHrT2A1gsd8aF5zHapWPPH5Z0rYsgTIq64qgim896XlKlOw6/YzhD5CdyNjlQWg==}
engines: {node: '>= 10.0.0'}
+ dev: false
/@aws-sdk/types@3.511.0:
resolution: {integrity: sha512-P03ufufxmkvd7nO46oOeEqYIMPJ8qMCKxAsfJk1JBVPQ1XctVntbail4/UFnrnzij8DTl4Mk/D62uGo7+RolXA==}
@@ -5843,6 +5844,7 @@ packages:
/@humanwhocodes/config-array@0.11.14:
resolution: {integrity: sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==}
engines: {node: '>=10.10.0'}
+ deprecated: Use @eslint/config-array instead
dependencies:
'@humanwhocodes/object-schema': 2.0.2
debug: 4.3.2(supports-color@8.1.1)
@@ -5858,6 +5860,7 @@ packages:
/@humanwhocodes/object-schema@2.0.2:
resolution: {integrity: sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw==}
+ deprecated: Use @eslint/object-schema instead
dev: true
/@istanbuljs/schema@0.1.3:
@@ -8531,6 +8534,7 @@ packages:
/ansi-regex@2.1.1:
resolution: {integrity: sha1-w7M6te42DYbg5ijwRorn7yfWVN8=}
engines: {node: '>=0.10.0'}
+ dev: true
/ansi-regex@3.0.0:
resolution: {integrity: sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=}
@@ -8598,6 +8602,7 @@ packages:
/aproba@1.2.0:
resolution: {integrity: sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==}
+ dev: true
/aproba@2.0.0:
resolution: {integrity: sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==}
@@ -8612,6 +8617,7 @@ packages:
dependencies:
delegates: 1.0.0
readable-stream: 2.3.7
+ dev: true
/arg@2.0.0:
resolution: {integrity: sha512-XxNTUzKnz1ctK3ZIcI2XUPlD96wbHP2nGqkPKpvk/HNRlPveYrXIVSTk9m3LcqOgDPg3B1nMvdV/K8wZd7PG4w==}
@@ -8964,14 +8970,14 @@ packages:
- supports-color
dev: true
- /aws-sdk-client-mock@0.5.5(@aws-sdk/client-s3@3.511.0)(@aws-sdk/types@3.38.0):
+ /aws-sdk-client-mock@0.5.5(@aws-sdk/client-s3@3.511.0)(@aws-sdk/types@3.511.0):
resolution: {integrity: sha512-djwyYj4vRAXGGH0nycd04/qxj4lK4UscK12dgRgYLigFzQ8EdM0+eZoFobbjXnXoPBG+YeN57UqrEbE1YW1qag==}
peerDependencies:
'@aws-sdk/client-s3': ^3.0.0
'@aws-sdk/types': ^3.0.0
dependencies:
'@aws-sdk/client-s3': 3.511.0
- '@aws-sdk/types': 3.38.0
+ '@aws-sdk/types': 3.511.0
'@types/sinon': 10.0.2
sinon: 11.1.2
tslib: 2.3.1
@@ -9310,6 +9316,7 @@ packages:
/base64-js@1.5.1:
resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==}
+ dev: true
/base@0.11.2:
resolution: {integrity: sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==}
@@ -9376,6 +9383,7 @@ packages:
buffer: 5.7.1
inherits: 2.0.4
readable-stream: 3.6.0
+ dev: true
/bluebird@3.7.2:
resolution: {integrity: sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==}
@@ -9474,20 +9482,11 @@ packages:
resolution: {integrity: sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=}
dev: true
- /brotli-size@0.0.3:
- resolution: {integrity: sha512-bBIdd8uUGxKGldAVykxOqPegl+HlIm4FpXJamwWw5x77WCE8jO7AhXFE1YXOhOB28gS+2pTQete0FqRE6U5hQQ==}
- engines: {node: '>=0.12.0'}
- dependencies:
- duplexer: 0.1.2
- iltorb: 2.4.5
- dev: false
-
/brotli-size@4.0.0:
resolution: {integrity: sha512-uA9fOtlTRC0iqKfzff1W34DXUA3GyVqbUaeo3Rw3d4gd1eavKVCETXrn3NzO74W+UVkG3UHu8WxUi+XvKI/huA==}
engines: {node: '>= 10.16.0'}
dependencies:
duplexer: 0.1.1
- dev: true
/browser-process-hrtime@1.0.0:
resolution: {integrity: sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==}
@@ -9614,6 +9613,7 @@ packages:
dependencies:
base64-js: 1.5.1
ieee754: 1.2.1
+ dev: true
/builtin-modules@3.2.0:
resolution: {integrity: sha512-lGzLKcioL90C7wMczpkY0n/oART3MbBa8R9OFGE1rJxoVI86u4WAGfEk8Wjv10eKSyTHVGkSo3bvBylCEtk7LA==}
@@ -10006,6 +10006,7 @@ packages:
/chownr@1.1.4:
resolution: {integrity: sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==}
+ dev: true
/chownr@2.0.0:
resolution: {integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==}
@@ -10246,6 +10247,7 @@ packages:
/code-point-at@1.1.0:
resolution: {integrity: sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=}
engines: {node: '>=0.10.0'}
+ dev: true
/coffee-script@1.12.7:
resolution: {integrity: sha512-fLeEhqwymYat/MpTPUjSKHVYYl0ec2mOyALEMLmzr5i1isuG+6jfI2j2d5oBO3VIzgUXgBVIcOT9uH1TFxBckw==}
@@ -10534,6 +10536,7 @@ packages:
/console-control-strings@1.1.0:
resolution: {integrity: sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=}
+ dev: true
/constants-browserify@1.0.0:
resolution: {integrity: sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=}
@@ -11080,13 +11083,6 @@ packages:
mimic-response: 1.0.1
dev: true
- /decompress-response@4.2.1:
- resolution: {integrity: sha512-jOSne2qbyE+/r8G1VU+G/82LBs2Fs4LAsTiLSHOCOMZQl2OKZ6i8i4IyHemTe+/yIXOtTcRQMzPcgyhoFlqPkw==}
- engines: {node: '>=8'}
- dependencies:
- mimic-response: 2.1.0
- dev: false
-
/decompress-response@6.0.0:
resolution: {integrity: sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==}
engines: {node: '>=10'}
@@ -11112,6 +11108,7 @@ packages:
/deep-extend@0.6.0:
resolution: {integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==}
engines: {node: '>=4.0.0'}
+ dev: true
/deep-is@0.1.4:
resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==}
@@ -11209,6 +11206,7 @@ packages:
/delegates@1.0.0:
resolution: {integrity: sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=}
+ dev: true
/depd@1.1.2:
resolution: {integrity: sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=}
@@ -11241,12 +11239,6 @@ packages:
engines: {node: '>=8'}
dev: true
- /detect-libc@1.0.3:
- resolution: {integrity: sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=}
- engines: {node: '>=0.10'}
- hasBin: true
- dev: false
-
/dezalgo@1.0.3:
resolution: {integrity: sha1-f3Qt4Gb8dIvI24IFad3c5Jvw1FY=}
dependencies:
@@ -11407,8 +11399,7 @@ packages:
dev: true
/duplexer@0.1.1:
- resolution: {integrity: sha1-rOb/gIwc5mtX0ev5eXessCM0z8E=}
- dev: true
+ resolution: {integrity: sha512-sxNZ+ljy+RA1maXoUReeqBBpBC6RLKmg5ewzV+x+mSETmWNoKdZN6vcQjpFROemza23hGFskJtFNoUWUaQ+R4Q==}
/duplexer@0.1.2:
resolution: {integrity: sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==}
@@ -11895,11 +11886,6 @@ packages:
fill-range: 2.2.4
dev: false
- /expand-template@2.0.3:
- resolution: {integrity: sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==}
- engines: {node: '>=6'}
- dev: false
-
/extend-shallow@2.0.1:
resolution: {integrity: sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=}
engines: {node: '>=0.10.0'}
@@ -12321,6 +12307,7 @@ packages:
/fs-constants@1.0.0:
resolution: {integrity: sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==}
+ dev: true
/fs-extra@1.0.0:
resolution: {integrity: sha1-zTzl9+fLYUWIP8rjGR6Yd/hYeVA=}
@@ -12416,6 +12403,7 @@ packages:
string-width: 1.0.2
strip-ansi: 3.0.1
wide-align: 1.1.5
+ dev: true
/gen-esm-wrapper@1.1.3:
resolution: {integrity: sha512-LNHZ+QpaCW/0VhABIbXn45V+P8kFvjjwuue9hbV23eOjuFVz6c0FE3z1XpLX9pSjLW7UmtCkXo5F9vhZWVs8oQ==}
@@ -12576,10 +12564,6 @@ packages:
ini: 1.3.8
dev: true
- /github-from-package@0.0.0:
- resolution: {integrity: sha1-l/tdlr/eiXMxPyDoKI75oWf6ZM4=}
- dev: false
-
/github-slugger@1.4.0:
resolution: {integrity: sha512-w0dzqw/nt51xMVmlaV1+JRzN+oCa1KfcgGEWhxUG16wbdA+Xnt/yoFO8Z8x/V82ZcZ0wy6ln9QDup5avbhiDhQ==}
dev: true
@@ -12911,6 +12895,7 @@ packages:
/has-unicode@2.0.1:
resolution: {integrity: sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=}
+ dev: true
/has-value@0.3.1:
resolution: {integrity: sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=}
@@ -13181,6 +13166,7 @@ packages:
/ieee754@1.2.1:
resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==}
+ dev: true
/iferr@0.1.5:
resolution: {integrity: sha1-xg7taebY/bazEEofy8ocGS3FtQE=}
@@ -13219,18 +13205,6 @@ packages:
engines: {node: '>= 4'}
dev: true
- /iltorb@2.4.5:
- resolution: {integrity: sha512-EMCMl3LnnNSZJS5QrxyZmMTaAC4+TJkM5woD+xbpm9RB+mFYCr7C05GFE3TEGCsVQSVHmjX+3sf5AiwsylNInQ==}
- deprecated: The zlib module provides APIs for brotli compression/decompression starting with Node.js v10.16.0, please use it over iltorb
- requiresBuild: true
- dependencies:
- detect-libc: 1.0.3
- nan: 2.15.0
- npmlog: 4.1.2
- prebuild-install: 5.3.6
- which-pm-runs: 1.0.0
- dev: false
-
/import-cwd@3.0.0:
resolution: {integrity: sha512-4pnzH16plW+hgvRECbDWpQl3cqtvSofHWh44met7ESfZ8UZOWWddm8hEyDTqREJ9RbYHY8gi8DqmaelApoOGMg==}
engines: {node: '>=8'}
@@ -13332,6 +13306,7 @@ packages:
/ini@1.3.8:
resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==}
+ dev: true
/ini@2.0.0:
resolution: {integrity: sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==}
@@ -13588,6 +13563,7 @@ packages:
engines: {node: '>=0.10.0'}
dependencies:
number-is-nan: 1.0.1
+ dev: true
/is-fullwidth-code-point@2.0.0:
resolution: {integrity: sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=}
@@ -15495,11 +15471,6 @@ packages:
resolution: {integrity: sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==}
engines: {node: '>=4'}
- /mimic-response@2.1.0:
- resolution: {integrity: sha512-wXqjST+SLt7R009ySCglWBCFpjUygmCIfD790/kVbiGmUgfYGuB14PiTd5DwVxSV4NcYHjzMkoj5LjQZwTQLEA==}
- engines: {node: '>=8'}
- dev: false
-
/mimic-response@3.1.0:
resolution: {integrity: sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==}
engines: {node: '>=10'}
@@ -15648,6 +15619,7 @@ packages:
/mkdirp-classic@0.5.3:
resolution: {integrity: sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==}
+ dev: true
/mkdirp-promise@5.0.1:
resolution: {integrity: sha1-6bj2jlUsaKnBcTuEiD96HdA5uKE=}
@@ -15733,6 +15705,9 @@ packages:
/nan@2.15.0:
resolution: {integrity: sha512-8ZtvEnA2c5aYCZYd1cvgdnU6cqwixRoYg70xPLWUws5ORTa/lnw+u4amixRS/Ac5U5mQVgp9pnlSUnbNWFaWZQ==}
+ requiresBuild: true
+ dev: true
+ optional: true
/nanocolors@0.1.12:
resolution: {integrity: sha512-2nMHqg1x5PU+unxX7PGY7AuYxl2qDx7PSrTRjizr8sxdd3l/3hBuWWaki62qmtYm2U5i4Z5E7GbjlyDFhs9/EQ==}
@@ -15768,10 +15743,6 @@ packages:
engines: {node: ^8.0.0 || ^10.0.0 || ^12.0.0 || ^14.0.0 || >=16.0.0}
dev: true
- /napi-build-utils@1.0.2:
- resolution: {integrity: sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg==}
- dev: false
-
/natural-compare@1.4.0:
resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==}
dev: true
@@ -15813,12 +15784,6 @@ packages:
path-to-regexp: 1.8.0
dev: true
- /node-abi@2.30.1:
- resolution: {integrity: sha512-/2D0wOQPgaUWzVSVgRMx+trKJRC2UG4SUc4oCJoXx9Uxjtp0Vy3/kt7zcbxHF8+Z/pK3UloLWzBISg72brfy1w==}
- dependencies:
- semver: 5.7.1
- dev: false
-
/node-fetch-npm@2.0.4:
resolution: {integrity: sha512-iOuIQDWDyjhv9qSDrj9aq/klt6F9z1p2otB3AV7v3zBDcL/x+OfGsvGQZZCcMZbUf4Ujw1xGNQkjvGnVT22cKg==}
engines: {node: '>=4'}
@@ -15911,10 +15876,6 @@ packages:
resolution: {integrity: sha512-CqyzN6z7Q6aMeF/ktcMVTzhAHCEpf8SOarwpzpf8pNBY2k5/oM34UHldUwp8VKI7uxct2HxSRdJjBaZeESzcxA==}
dev: true
- /noop-logger@0.1.1:
- resolution: {integrity: sha1-lKKxYzxPExdVMAfYlm/Q6EG2pMI=}
- dev: false
-
/nopt@4.0.3:
resolution: {integrity: sha512-CvaGwVMztSMJLOeXPrez7fyfObdZqNUK1cPAEzLHrTybIua9pMdmmPR5YwtfNftIOMv3DPUhFaxsZMNTQO20Kg==}
hasBin: true
@@ -16142,6 +16103,7 @@ packages:
console-control-strings: 1.1.0
gauge: 2.7.4
set-blocking: 2.0.0
+ dev: true
/nth-check@2.0.1:
resolution: {integrity: sha512-it1vE95zF6dTT9lBsYbxvqh0Soy4SPowchj0UBGj/V6cTPnXXtQOPUbhZ6CmGzAD/rW22LQK6E96pcdJXk4A4w==}
@@ -16152,6 +16114,7 @@ packages:
/number-is-nan@1.0.1:
resolution: {integrity: sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=}
engines: {node: '>=0.10.0'}
+ dev: true
/nwsapi@2.2.0:
resolution: {integrity: sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ==}
@@ -17283,28 +17246,6 @@ packages:
source-map-js: 0.6.2
dev: true
- /prebuild-install@5.3.6:
- resolution: {integrity: sha512-s8Aai8++QQGi4sSbs/M1Qku62PFK49Jm1CbgXklGz4nmHveDq0wzJkg7Na5QbnO1uNH8K7iqx2EQ/mV0MZEmOg==}
- engines: {node: '>=6'}
- hasBin: true
- dependencies:
- detect-libc: 1.0.3
- expand-template: 2.0.3
- github-from-package: 0.0.0
- minimist: 1.2.5
- mkdirp-classic: 0.5.3
- napi-build-utils: 1.0.2
- node-abi: 2.30.1
- noop-logger: 0.1.1
- npmlog: 4.1.2
- pump: 3.0.0
- rc: 1.2.8
- simple-get: 3.1.0
- tar-fs: 2.1.1
- tunnel-agent: 0.6.0
- which-pm-runs: 1.0.0
- dev: false
-
/prelude-ls@1.1.2:
resolution: {integrity: sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=}
engines: {node: '>= 0.8.0'}
@@ -17653,6 +17594,7 @@ packages:
ini: 1.3.8
minimist: 1.2.5
strip-json-comments: 2.0.1
+ dev: true
/react-is@16.13.1:
resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==}
@@ -17809,6 +17751,7 @@ packages:
inherits: 2.0.4
string_decoder: 1.3.0
util-deprecate: 1.0.2
+ dev: true
/readable-web-to-node-stream@2.0.0:
resolution: {integrity: sha512-+oZJurc4hXpaaqsN68GoZGQAQIA3qr09Or4fqEsargABnbe5Aau8hFn6ISVleT3cpY/0n/8drn7huyyEvTbghA==}
@@ -18549,6 +18492,7 @@ packages:
/semver@5.7.1:
resolution: {integrity: sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==}
hasBin: true
+ dev: true
/semver@6.3.0:
resolution: {integrity: sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==}
@@ -18626,6 +18570,7 @@ packages:
/set-blocking@2.0.0:
resolution: {integrity: sha1-BF+XgtARrppoA93TgrJDkrPYkPc=}
+ dev: true
/set-getter@0.1.1:
resolution: {integrity: sha512-9sVWOy+gthr+0G9DzqqLaYNA7+5OKkSmcqjL9cBpDEaZrr3ShQlyX2cZ/O/ozE41oxn/Tt0LGEM/w4Rub3A3gw==}
@@ -18707,18 +18652,7 @@ packages:
/signal-exit@3.0.5:
resolution: {integrity: sha512-KWcOiKeQj6ZyXx7zq4YxSMgHRlod4czeBQZrPb8OKcohcqAXShm7E20kEMle9WBt26hFcAf0qLOcp5zmY7kOqQ==}
-
- /simple-concat@1.0.1:
- resolution: {integrity: sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==}
- dev: false
-
- /simple-get@3.1.0:
- resolution: {integrity: sha512-bCR6cP+aTdScaQCnQKbPKtJOKDp/hj9EDLJo3Nw4y1QksqaovlW/bnptB6/c1e+qmNIDHRK+oXFDdEqBT8WzUA==}
- dependencies:
- decompress-response: 4.2.1
- once: 1.4.0
- simple-concat: 1.0.1
- dev: false
+ dev: true
/sinon@11.1.2:
resolution: {integrity: sha512-59237HChms4kg7/sXhiRcUzdSkKuydDeTiamT/jesUVHshBgL8XAmhgFo0GfK6RruMDM/iRSij1EybmMog9cJw==}
@@ -19119,6 +19053,7 @@ packages:
code-point-at: 1.1.0
is-fullwidth-code-point: 1.0.0
strip-ansi: 3.0.1
+ dev: true
/string-width@2.1.1:
resolution: {integrity: sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==}
@@ -19192,12 +19127,14 @@ packages:
resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==}
dependencies:
safe-buffer: 5.2.1
+ dev: true
/strip-ansi@3.0.1:
resolution: {integrity: sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=}
engines: {node: '>=0.10.0'}
dependencies:
ansi-regex: 2.1.1
+ dev: true
/strip-ansi@4.0.0:
resolution: {integrity: sha1-qEeQIusaw2iocTibY1JixQXuNo8=}
@@ -19279,6 +19216,7 @@ packages:
/strip-json-comments@2.0.1:
resolution: {integrity: sha1-PFMZQukIwml8DsNEhYwobHygpgo=}
engines: {node: '>=0.10.0'}
+ dev: true
/strip-json-comments@3.1.1:
resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==}
@@ -19460,6 +19398,7 @@ packages:
mkdirp-classic: 0.5.3
pump: 3.0.0
tar-stream: 2.2.0
+ dev: true
/tar-stream@2.2.0:
resolution: {integrity: sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==}
@@ -19470,6 +19409,7 @@ packages:
fs-constants: 1.0.0
inherits: 2.0.4
readable-stream: 3.6.0
+ dev: true
/tar@4.4.19:
resolution: {integrity: sha512-a20gEsvHnWe0ygBY8JbxoM4w3SJdhc7ZAuxkLqh+nvNQN2IOt0B5lLgM490X5Hl8FF0dl0tOf2ewFYAlIFgzVA==}
@@ -20583,10 +20523,6 @@ packages:
resolution: {integrity: sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=}
dev: true
- /which-pm-runs@1.0.0:
- resolution: {integrity: sha1-Zws6+8VS4LVd9rd4DKdGFfI60cs=}
- dev: false
-
/which@1.3.1:
resolution: {integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==}
hasBin: true
@@ -20606,6 +20542,7 @@ packages:
resolution: {integrity: sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==}
dependencies:
string-width: 1.0.2
+ dev: true
/widest-line@2.0.1:
resolution: {integrity: sha512-Ba5m9/Fa4Xt9eb2ELXt77JxVDV8w7qQrH0zS/TWSJdLyAwQjWoOzpzj5lwVftDz6n/EOu3tNACS84v509qwnJA==}